Setup

Railway services

One GitHub monorepo. Each Railway service uses a different Root Directory.

  • Postgres — auth + app data (DATABASE_URL everywhere needed).
  • Bucket (storage) — object storage for audio/assets.
  • s3-server — Root Directory s3-server. Set PORT=8080. Prefer public domain for S3_SERVER_PUBLIC_URL.
  • main-server — Root Directory server. Public domain required (Suno callbacks). Runs schema migrations on boot.
  • render-server — Root Directory render-api. ffmpeg worker.
  • youtube-server — Root Directory youtube-upload-api. Public domain for Google OAuth.
  • web — Root Directory / (repo root). Public domain users visit.

Full env tables live in selfhostdocs/railway-phase1.md inside the template repo. Prefer public HTTPS URLs when private Railway refs expand with an empty port.