RyTask docs
Self-hosting & administration

Self-hosting & administration

Run RyTask on your own server with Docker Compose — what one command gives you, and where to go from there.

View as MarkdownOpen in ChatGPTOpen in Claude

RyTask is built to be self-hosted. One command brings up the whole stack — database, cache, API, background worker, and web app — already migrated and seeded with a working demo workspace:

docker compose up -d --build

After that, the web app is at http://localhost:3000 and the API at http://localhost:3001. A one-shot migrate service runs the database migrations and an idempotent seed before the API and worker start, so there is no separate "initialize the database" step.

What the stack contains

ServiceWhat it isPort(s)
webThe Next.js web app3000
apiThe NestJS HTTP API3001
workerBackground jobs — same image as api, started with WORKER=1
migrateOne-shot: runs migrations, then the seed, then exits
postgresPostgreSQL 16 — all your data lives here5432
redisRedis 7 — queues, rate limits, idempotency cache6379
minioS3-compatible object storage, reserved for attachments Coming soon9000, 9001
mailhogDevelopment mail catcher (SMTP and a web inbox)1025, 8025

The guides in this section

  • Requirements — what you need before you start, for Docker and for running from source.
  • Production setup — the full walkthrough: secrets the API refuses to start without, the override file, health checks, and where data lives.
  • Reverse proxy & TLS — putting HTTPS in front of the web app and the API, with Caddy and nginx examples.
  • Backups & restore — one command to back up, one to restore, and what actually needs backing up.
  • Upgrades & migrations — how upgrades re-run migrations automatically, and the honest rollback story.
  • Scaling — API vs. worker, and how to run more of each.
  • Storage & email — what MinIO and Mailhog are doing in the stack today, stated plainly.

For every environment variable in one table, see the environment variables reference.

On this page