---
title: "Deploy instatic"
description: "Self-hosted CMS with visual editing and static publishing"
category: "CMS"
url: https://railway.com/deploy/instatic-1
---

# Deploy instatic

Self-hosted CMS with visual editing and static publishing

**[Deploy instatic on Railway](https://railway.com/template/instatic-1)**

- **Creator:** kmaki's Projects
- **Category:** CMS
- **Total deploys:** 3

## Template content

### app

- **Image:** ghcr.io/corebunch/instatic:0.0.10
- **Health check:** /health
- **Public domain:** Yes

## Documentation

# 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 |

## Similar templates

- [Libredesk - Complete Setup](https://railway.com/deploy/libredesk-complete-setup) — Complete self-hosted omnichannel customer support desk.
- [Paperless-ngx](https://railway.com/deploy/paperless-ngx-3) — Paperless-ngx — document management with OCR and full-text search
- [Instatic CMS - Postgres](https://railway.com/deploy/instatic-cms-postgres) — Design, build and manage powerful static sites from state-of-the-art CMS

Open this page in a browser: https://railway.com/deploy/instatic-1
