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
-
In a Railway project, click Create and then Docker Image. Enter:
ghcr.io/OWNER/sblurp-server:stableThe tag picks a track:
stable,beta,nightlyor a pinned version. -
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 -
Right-click the service and add a volume. Set the mount path to
/data. -
In Settings, set the healthcheck path to
/healthz. Make sure Serverless is off. -
In Settings, under Networking, add your custom domain, such as
chat.example.com, with target port 8080. Add theCNAMErecord that Railway shows. Railway gets the certificate. -
Deploy the changes.
-
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.
View this page as Markdown · Glossary · API schema.json · openapi.json