Railway Installation
Railway runs Docker images with a generated HTTPS domain, persistent volumes and managed Postgres. SolidPing runs there as one service from the published image, with SQLite on a volume.
What you get
One service, SQLite storage, a volume at /data for the database and uploaded files (org
logos, status-page assets, incident screenshots). See Switch to Postgres
to use Railway's managed Postgres instead.
Deploy from the dashboard
-
Create a new project, then Deploy a Docker Image with
ghcr.io/fclairamb/solidping:0.38. -
Right-click the service, Attach volume, and mount it at
/data. -
In Variables, add:
Variable Value RAILWAY_RUN_UID0SP_BASE_URLhttps://${{RAILWAY_PUBLIC_DOMAIN}} -
In Settings > Networking, click Generate Domain (or add your own).
-
In Settings > Deploy, set the healthcheck path to
/api/mgmt/health. -
Deploy.
RAILWAY_RUN_UID=0 is required. Railway mounts volumes as root, and the image runs as an
unprivileged user that cannot write the SQLite file otherwise.
There is no port to configure. Railway sets PORT and SolidPing listens on it.
Deploy from the CLI
The same setup is kept as Railway Infrastructure as Code in
deploy/railway/.railway/railway.ts.
It needs the Railway CLI 5.42.1 or newer and Node.js 22.
git clone https://github.com/fclairamb/solidping.git
cd solidping/deploy/railway
npm install railway
railway login
railway config plan
railway config apply
railway domain
railway config plan asks which project and environment to target and shows what it will
create. railway domain generates the public domain, which the file cannot declare.
First login
Sign in with the seeded admin account:
| Password | Org | |
|---|---|---|
admin@solidping.io | solidpass | default |
The first login forces a password change before anything else in the dashboard is reachable.
Switch to Postgres
Add a Postgres database to the project, then set these variables on the solidping service:
| Variable | Value |
|---|---|
SP_DB_TYPE | postgres |
SP_DB_URL | ${{Postgres.DATABASE_URL}} |
Keep the /data volume: uploaded files are still stored there. In
deploy/railway/.railway/railway.ts, the same change is a postgres("postgres") resource
and SP_DB_URL: db.env.DATABASE_URL in the service env.
Upgrading
Change the image tag (0.38 follows patch releases of 0.38) and redeploy. Database
migrations run on startup.
Next Steps
- Configuration Guide - All configuration options
- File Storage - Local volume vs. S3 for uploaded blobs