Deploy instatic
Self-hosted CMS with visual editing and static publishing
Just deployed
/app/storage
Deploy and Host Instatic on Railway
About Hosting Instatic on Railway
Instatic runs on Railway as a Docker image-backed web service with a persistent volume for the SQLite database, uploads, plugin packages, and published assets. Railway provides HTTPS, public networking, health checks, and simple one-click template deployment.
Tech Stack
- Bun server
- React admin UI
- SQLite database
- GHCR Docker image
- Railway persistent volume
Why Deploy Instatic on Railway
Railway is a good fit for Instatic because the app is a single self-hosted web service. The official Docker image starts the Bun server directly, Railway routes HTTPS traffic to the configured container port, and the attached volume keeps CMS data and media durable across redeploys.
Common Use Cases
- Host a self-contained CMS with a visual editor
- Publish small business, portfolio, documentation, and marketing sites
- Manage media, plugins, and static page output in one service
- Run a simple private CMS without operating a separate database service
Deployment Notes
This template uses the official pinned image ghcr.io/corebunch/instatic:0.0.10. The service listens on PORT=8080 and exposes the admin UI at /admin. DATABASE_URL=sqlite:/app/storage/data/cms.db stores the SQLite database on the mounted Railway volume, and UPLOADS_DIR=/app/storage/uploads stores durable media and generated assets. RAILWAY_RUN_UID=0 is required because Railway mounts volumes as root. INSTATIC_SECRET_KEY is generated at deploy time and must remain stable for encrypted server secrets and MFA data.
Dependencies for Instatic on Railway
Instatic only requires the app container and its attached persistent volume in this single-service SQLite template.
Deployment Dependencies
| Service | Image | Port | Volume |
|---|---|---|---|
| app | ghcr.io/corebunch/instatic:0.0.10 | 8080 | /app/storage |
Template Content