Skip to content

Deploy on Railway (no VPS) ​

Railway is a managed platform that runs your TuneCamp instance without requiring a VPS, SSH access, or any server management. A single click deploys from the official template.

One-click deploy ​

Deploy on Railway

This provisions:

  • The TuneCamp Node.js server
  • A persistent volume for the SQLite database and media files
  • A public HTTPS URL on .railway.app (usable for federation)

What you get ​

FeatureDetail
HTTPSAutomatic β€” no Nginx or Certbot needed
Persistent storageVolume attached at /app/data
Environment variablesSet via the Railway dashboard β†’ Variables tab
Custom domainAdd your own in Railway β†’ Settings β†’ Domains
LogsRailway dashboard β†’ Deployments β†’ View logs

Environment variables ​

Set these in Railway β†’ Variables before or after first deploy:

VariableRequiredDefaultDescription
TUNECAMP_PUBLIC_URLYes (for federation)β€”Your full public URL, e.g. https://yourname.up.railway.app
TUNECAMP_ADMIN_USERNoadminOverride default admin username
TUNECAMP_ADMIN_PASSNoadminOverride default admin password β€” change this
JWT_SECRETRecommendedauto-generatedSet a stable random string so sessions survive redeploys

First login ​

Default credentials (same as Docker path):

UsernamePassword
adminadmin

Change the password immediately in Admin β†’ Settings.

Persistent media ​

Railway volumes persist across redeploys. Your SQLite database and uploaded/scanned media live inside the volume. If you need to upload a large library, use one of the remote ingestion paths instead of local file scan:

Limits ​

Railway's free Hobby tier has execution-hour limits. For a production instance with heavy streaming traffic, upgrade to a paid plan or consider a VPS with Docker instead (see Getting Started).

Custom domain + federation ​

To federate with other TuneCamp instances, ActivityPub requires a stable HTTPS URL. Set TUNECAMP_PUBLIC_URL to your Railway app URL (or a custom domain) and register with a directory instance:

bash
curl -X POST https://directory.example.com/api/community/register \
     -H "Content-Type: application/json" \
     -d '{"url": "https://yourname.up.railway.app"}'

Released under the MIT License.