Deploy openship
Self-hosted deployment dashboard with CI/CD, Postgres, and Redis
postgres
Just deployed
/var/lib/postgresql
Just deployed
redis
Just deployed
/data
Just deployed
Deploy and Host OpenShip on Railway
About Hosting OpenShip on Railway
OpenShip runs on Railway as a Docker-only, multi-service deployment with a public dashboard, private API, Postgres storage, and Redis-backed queues/cache. Railway provides managed HTTPS, private service networking, image-based deploys, and persistent volumes for stateful data.
Tech Stack
- OpenShip API built with Bun, Hono, Drizzle, and Better Auth
- OpenShip Dashboard built with Next.js
- PostgreSQL 16 for persistent application data
- Redis 7 for queues, cache, and rate limiting
- Docker images deployed on Railway private networking
Why Deploy OpenShip on Railway
Railway is a good fit for OpenShip because it supports one-click templates with Docker images, built-in private networking between services, automatic HTTPS domains for the dashboard, and persistent volumes for Postgres and Redis. The dashboard is exposed publicly while the API remains private and is reached through the dashboard's same-origin proxy.
Common Use Cases
- Self-hosting the OpenShip deployment dashboard
- Managing projects, servers, domains, jobs, and deployments from a browser
- Testing OpenShip before installing it on dedicated infrastructure
- Running a small team control plane with Postgres-backed state and Redis jobs
Deployment Notes
The dashboard is the only public HTTP service and listens on port 3001. The API listens on port 4000 and should remain private; dashboard requests are proxied to it through /api/proxy/*. Set OPENSHIP_PUBLIC_URL to https://${{dashboard.RAILWAY_PUBLIC_DOMAIN}} so auth redirects and public callback URLs resolve correctly. Postgres uses PGDATA=/var/lib/postgresql/data/pgdata because Railway volumes include lost+found at the mount root. Redis uses redis-server --appendonly yes for persistence.
Users create their first account through the OpenShip registration/login flow after deployment. OAuth and SMTP variables are optional and can be added later for GitHub/Google login and email features.
Dependencies for OpenShip on Railway
OpenShip depends on Postgres for durable state and Redis for queues, cache, rate limiting, and background jobs. The dashboard depends on the private API service, and the API depends on both Postgres and Redis.
Deployment Dependencies
| Service | Image | Port | Volume |
|---|---|---|---|
| dashboard | xiaosong233/openship-dashboard-railway:latest | 3001 | - |
| api | xiaosong233/openship-api-railway:latest | 4000 | - |
| postgres | postgres:16-alpine | 5432 | /var/lib/postgresql |
| redis | redis:7-alpine | 6379 | /data |
Template Content