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.