RyTask docs
Self-hosting & administration

Requirements

What you need before self-hosting RyTask — for the recommended Docker route and for running from source.

View as MarkdownOpen in ChatGPTOpen in Claude

There are two ways to run RyTask. Most people should use Docker — it brings up everything in one command, already migrated and seeded. Running from source is for development.

You need:

RequirementNotes
Docker Engine with the Compose plugindocker compose version should work. Docker Desktop and OrbStack both include it.
~2 GB of RAM for the stackComfortable for the whole stack — Postgres, Redis, API, worker, web app, and the dev extras. A small team fits easily.
x86_64 or arm64The images build and run on both, including Apple Silicon and ARM cloud machines.
Disk space for your dataYour data lives in a named Postgres volume. Start with a few GB and watch it grow with use.

That is the whole list. You do not need Node, pnpm, or a database installed on the host — the images contain everything, and docker compose up -d --build builds them locally from the source you cloned.

The source route (development)

If you want to hack on RyTask itself, run it from source:

RequirementNotes
Node.js 22 or newerThe repo pins engines.node >= 22; the Docker images use Node 22 too.
pnpm 9Pinned via packageManager (pnpm@9.15.9). With corepack enabled, the right version is used automatically.
PostgreSQL 16All durable data. docker compose up -d postgres is an easy way to get one.
Redis 7Queues, rate limiting, and the idempotency cache. Also easy to run from the compose file.

Copy .env.example to .env and adjust the connection strings if your Postgres or Redis are not on the default local ports.

What each service is for

Whichever route you take, this is what is actually running:

ServiceWhat it does
webThe Next.js web app your team uses, on port 3000.
apiThe NestJS HTTP API, on port 3001. Everything — the web app, the Slack integration, the MCP server — talks to RyTask through it.
workerBackground jobs. The same image as api, started with WORKER=1. Processes Slack captures and notification jobs.
migrateA one-shot job that runs database migrations and the seed, then exits. Re-runs safely on every start.
postgresPostgreSQL 16. The single source of truth — this is what you back up.
redisRedis 7. Job queues, rate-limit counters, and the idempotency cache. Nothing durable lives here.
minioS3-compatible object storage, reserved for attachments Coming soon. Nothing writes to it yet.
mailhogA development mail catcher. See Storage & email for the honest state of email.

Browser support

RyTask supports current versions of the evergreen browsers — Chrome, Edge, Firefox, and Safari.

Next step

Ready to go? Follow the production setup walkthrough, or try the quickstart first on your own machine.

On this page