Sblurp

Railway

Railway runs the server image for you. There is no operating system to patch. One community costs about $5 to $7 a month on the Hobby plan.

Caveats

  • Use the Hobby plan or higher. The Free plan gives $1 of usage a month and a 0.5 GB volume. That is not enough for a server that is always on.
  • Do not turn on Serverless. Serverless stops a service that sends no traffic for 10 minutes. The server must stay on, because it holds every open Subscribe stream.
  • One replica only. Railway does not allow replicas on a service with a volume. This is correct for SQLite, which allows one writer.
  • Short downtime on each deploy. With a volume, Railway stops the old deployment before the new one starts.
  • Streams end after 15 minutes. Railway closes any HTTP request after 15 minutes, and after 5 minutes with no data. The server sends a heartbeat every 25 seconds, so only the 15-minute limit applies. Clients open a new Subscribe stream and resume from where they stopped.
  • HTTP/1.1 to the server. Railway's edge speaks HTTP/2 to clients, but it forwards HTTP/1.1 to your service. The Sblurp apps use Connect, which streams over HTTP/1.1, so they work. A native gRPC client does not.

Steps

  1. In a Railway project, click Create and then Docker Image. Enter:

    ghcr.io/OWNER/sblurp-server:stable
    

    The tag picks a track: stable, beta, nightly or a pinned version.

  2. Open the service. In Variables, add these. Change the name and the URL:

    PORT=8080
    SBLURP_NAME=My Community
    SBLURP_BASE_URL=https://chat.example.com
    SBLURP_TRUSTED_ISSUERS=https://sblurp.chat
    
  3. Right-click the service and add a volume. Set the mount path to /data.

  4. In Settings, set the healthcheck path to /healthz. Make sure Serverless is off.

  5. In Settings, under Networking, add your custom domain, such as chat.example.com, with target port 8080. Add the CNAME record that Railway shows. Railway gets the certificate.

  6. Deploy the changes.

  7. Join your community first. The first person to join becomes the owner.

Every setting is listed in Configuration.

Backups on Railway

Railway can take volume backups on paid plans. To also copy the data off Railway, add the R2 values as variables before the first deploy:

AWS_ACCESS_KEY_ID=<R2 access key ID>
AWS_SECRET_ACCESS_KEY=<R2 secret access key>
R2_ENDPOINT=https://<ACCOUNT_ID>.r2.cloudflarestorage.com
R2_BUCKET=sblurp-backups
BACKUP_PASSWORD=<backup password>
BACKUP_NAME=my-community

See Backups for what gets copied and how to restore.

Updates

To get a new image on the same tag, open the deployment menu and click Redeploy.

Cost

Railway charges for what the service uses. Checked on 2026-10-17:

  • Hobby plan: $5 a month, which includes $5 of usage.
  • Memory: $10 per GB a month. The server at about 512 MB uses about $5.
  • CPU: $20 per vCPU a month, for the CPU time you use. An idle community uses little.
  • Volume: $0.15 per GB a month.

That is about $5 to $7 a month for one small community. Check railway.com/pricing for current prices.