Deploy bookorbit
Self-hosted digital library and reader with Kobo/OPDS sync
Postgres
Just deployed
/var/lib/postgresql/data
Just deployed
/data
Deploy and Host BookOrbit on Railway
About Hosting BookOrbit on Railway
BookOrbit runs on Railway as a Docker-image based self-hosted digital library platform. The template uses the official BookOrbit GHCR image, a pgvector-enabled PostgreSQL service, public HTTPS routing, and persistent storage for app data and database files.
Tech Stack
- BookOrbit web app and API
- Node.js / NestJS backend
- Vue frontend served by the app container
- PostgreSQL with pgvector
- Railway public HTTPS domain and private service networking
- Docker image deployment from GHCR and Docker Hub
Why Deploy BookOrbit on Railway
Railway provides one-click Docker deployments, managed private networking between services, public HTTPS domains, automatic restarts, and persistent volumes. This makes BookOrbit easy to host without managing servers while still keeping your library and reading data under your control.
Common Use Cases
- Host a private ebook, PDF, audiobook, and comic library
- Read books directly in the browser
- Track reading progress and library statistics
- Sync with Kobo, KOReader, and OPDS-compatible readers
- Manage metadata, collections, smart shelves, and multi-user access
- Use Send-to-Kindle and email features after configuring SMTP in the admin UI
Deployment Notes
The app listens on port 3000 and requires PORT=3000 for Railway routing. BookOrbit uses PostgreSQL with the pgvector extension, so the database service uses pgvector/pgvector:pg18 rather than a plain PostgreSQL image. The app persists runtime files, covers, uploads, cache, and Book Dock data at /data; PostgreSQL persists its database files at /var/lib/postgresql/data.
On first launch, open the generated Railway domain and complete setup with SETUP_BOOTSTRAP_TOKEN. The token is generated as a template variable and is also required by BookOrbit's initial /auth/setup endpoint. APP_URL and CLIENT_URL are derived from the app public domain. No custom start command is required; the upstream image entrypoint handles migrations, permission checks, and server startup.
Dependencies for BookOrbit on Railway
BookOrbit depends on a pgvector-enabled PostgreSQL database over Railway private networking. The app service connects to the Postgres service through template variable references and stores app-managed files on its mounted /data volume.
Deployment Dependencies
| Service | Image | Port | Volume |
|---|---|---|---|
| app | ghcr.io/bookorbit/bookorbit:1.8.0 | 3000 | /data |
| Postgres | pgvector/pgvector:pg18 | 5432 | /var/lib/postgresql/data |
Template Content
