
Deploy BookOrbit
Self-hosted ebook library and reader with Kobo, KOReader and OPDS sync
Just deployed
/var/lib/postgresql/data
BookOrbit
Just deployed
/data
Deploy and Host self hosted BookOrbit (Ebook Library) on Railway
BookOrbit is an open-source, self-hosted library for ebooks, PDFs, comics and audiobooks, with Kobo, KOReader and OPDS sync. It suits readers who want their own library.
About Hosting BookOrbit open-source software on Railway (self hosted BookOrbit template)
BookOrbit is an open-source, AGPL-3.0 licensed library and reading platform for ebooks, PDFs, comics and audiobooks, and this template runs the upstream 3.6.0 release on Railway with a pgvector Postgres 18 database next to it.
Why Deploy BookOrbit, the open-source ebook library on Railway (Railway Free Trial)
Railway runs the same self-hosted library you would otherwise build on a VPS, so you skip OS patching and Postgres backups.
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying BookOrbit on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Railway vs Other Hosting Providers and VPS for BookOrbit self hosting
Choosing where BookOrbit and its Postgres database run changes how much you manage yourself. This compares Railway with other hosts.
| Provider | What You Get with Railway | What You Get with the Other Provider |
|---|---|---|
| DigitalOcean | Both services deploy from one template with generated secrets and a volume for /data. | A full Droplet with root access, so you handle Docker, updates and firewall rules. |
| AWS | One template connects BookOrbit to pgvector Postgres 18 with private networking. | Broad networking and storage control, spread across several services to maintain. |
| Hetzner | One-click deployment with no server sizing or Docker setup before the first run. | Low-cost dedicated capacity, but you manage the OS, Docker and upgrades yourself. |
Pick Railway for the fastest path to a working library, and a VPS for full control of the machine.
Common Use Cases for hosted BookOrbit
- Personal ebook and audiobook library: Keep your EPUB, PDF, comic and M4B collection in one place and read or listen from the built-in web reader, without installing extra plugins.
- Three-way progress sync: Pick up a book on a Kobo, continue on KOReader, and finish in the BookOrbit web reader, with your position and highlights following you across all three.
- OPDS and Send-to-Kindle delivery: Connect OPDS-compatible apps to browse your library, or push a book to your Kindle directly from the server.
- Shared family library: Give each household member their own account with per-user permissions and separate reading data, so everyone shares one collection without mixing up progress.
- Highlights exported to Readwise or Markdown: Gather highlights from the web reader, KOReader and Kobo into one searchable hub, then export them as Markdown or send new notes to Readwise as you make them.
Dependencies for BookOrbit Docker hosted on Railway
The template deploys two services: the BookOrbit app and a Postgres database. No inputs are needed at deploy time.
Deployment Dependencies for Managed BookOrbit Service (BookOrbit app service plus pgvector Postgres 18)
The app waits for the database host to resolve before starting. The table lists the variables the template sets.
| Variable | Service | Default in template | Purpose |
|---|---|---|---|
| DATABASE_URL | BookOrbit | Built from Postgres variables over the private network | Connects the app to the database |
| JWT_SECRET | BookOrbit | Generated 64 character secret | Signs login tokens |
| SETUP_BOOTSTRAP_TOKEN | BookOrbit | Generated 32 character secret | Creates the owner account on the setup page |
| APP_URL | BookOrbit | https://your-domain from the public domain | Base URL for links and redirects |
| POSTGRES_PASSWORD | Postgres | Generated 32 character secret | Password for the postgres user |
| PGDATA | Postgres | Path inside the volume | Keeps database files on the persistent volume |
Implementation Details for BookOrbit (Using the onepush-dev image built on the upstream 3.6.0 image)
The image builds on ghcr.io/bookorbit/bookorbit:3.6.0 and is pinned by digest.
How does BookOrbit compare against other tools
BookOrbit vs Calibre-Web (Calibre-Web Alternative)
- Sync scope: BookOrbit keeps progress and highlights flowing between the web reader, KOReader and Kobo, which is the main reason to choose it over a plain library front end.
- Reading surfaces: BookOrbit ships a built-in web reader for ebooks, PDFs, comics and audiobooks, plus a native iPhone app that connects to your own server.
- Where Calibre-Web wins: it is a long-established option that sits on top of an existing Calibre library, so it suits people already invested in that workflow.
BookOrbit vs Kavita (Kavita Alternative)
- Ebook sync: BookOrbit's three-way progress and annotation sync with Kobo and KOReader is the feature to check first if you read on e-ink devices.
- Audio support: BookOrbit handles audiobooks alongside ebooks in one library, with text to speech available as a later add-on.
- Where Kavita wins: it is a mature self-hosted reading server with a long track record, so it may be the safer pick if you mostly want comics and simple browsing.
BookOrbit vs Audiobookshelf (Audiobookshelf Alternative)
- Ebook focus: BookOrbit is built around ebooks, PDFs and comics first, with audiobooks as one format among them rather than the core product.
- Shared progress: BookOrbit syncs reading progress across devices and the web, while Audiobookshelf is the stronger choice for a dedicated audiobook server.
- Where Audiobookshelf wins: it is purpose-built for listening, so it is the better fit if audiobooks are the main thing you need.
BookOrbit with Docker Compose at home vs BookOrbit on Railway (Self Hosting Alternative)
- Setup effort: Railway deploys the BookOrbit app and pgvector Postgres 18 from one template with no inputs, while Docker Compose at home means writing the environment file yourself.
- Setup token: on Railway the SETUP_BOOTSTRAP_TOKEN is generated for you, so the setup page is never open to strangers.
- Where home Docker wins: a machine on your own network keeps books local and avoids usage-based hosting costs, which matters if you already run a server.
How to use BookOrbit on Railway?
-
Wait for both services to go green. Postgres starts first, and BookOrbit waits for its database host before running migrations, so allow a couple of minutes on the first deploy.
-
Open the public domain Railway assigned to the BookOrbit service. The first visit shows the setup page.
-
Copy SETUP_BOOTSTRAP_TOKEN from the BookOrbit Variables tab, paste it on the setup page, and create the owner account. Keep that token private.
-
Under Libraries, create a new library pointing at /data/books. That folder sits on the BookOrbit volume, so files survive redeploys.
-
Upload books through the web interface or drop them into the book dock.
-
Connect a Kobo or KOReader device so progress and highlights sync.
Check that the server is up:
curl https://your-domain/api/v1/health
How to self host BookOrbit on other VPS Services (BookOrbit self hosting guide)
Clone the Repository
Clone the upstream project onto your server, then move into the folder it creates. The upstream repository is github.com/bookorbit/bookorbit and is licensed AGPL-3.0.
git clone https://github.com/bookorbit/bookorbit.git
cd bookorbit
Install Dependencies
Install Docker and the Docker Compose plugin on your VPS.
Configure Environment Variables
Create a .env file next to the compose file.
APP_URL=http://your-domain:3000
SETUP_BOOTSTRAP_TOKEN=replace-with-a-long-random-string
Start the BookOrbit Application
Start the stack in the background, then open port 3000 in your browser.
docker compose up -d
Railway handles the containers, volumes, and public domain for you on the hosted template, so none of these steps are needed there.
Official Pricing of BookOrbit (BookOrbit pricing)
BookOrbit is open-source software licensed under AGPL-3.0, and it is free to self-host.
BookOrbit hosted vs self hosted comparison (Pricing, features, costs, and more)
BookOrbit has no paid hosted plan. Both cost infrastructure, not a subscription.
Monthly cost of self hosting BookOrbit on Railway
Railway bills by usage, so your total depends on the RAM and CPU the BookOrbit and Postgres services use, plus the size of your book volume and any extra services.
System Requirements for Hosting BookOrbit on a VPS
A VPS needs Docker and a Postgres database with pgvector, plus enough CPU, memory and disk for the software. Raise memory if scans or large uploads feel slow.
Frequently Asked Questions (FAQs)
Where is the setup token?
Open the BookOrbit service on Railway, go to the Variables tab, and copy SETUP_BOOTSTRAP_TOKEN. Paste it on the first-run setup page to create the owner account.
Where do my books live?
Libraries are created under /data/books, which sits on the BookOrbit volume so uploads survive redeploys.
Can I add text to speech?
Not in this template today.
Does it work with Kobo and KOReader?
Yes. BookOrbit syncs reading progress and highlights with Kobo devices and the KOReader plugin, and it serves OPDS catalogs for other compatible apps.
Why Postgres with pgvector?
BookOrbit uses Postgres for its data, and the pgvector extension supports vector search features.
Can several users share it?
Yes. After the owner account is created, you can add other users with their own permissions, and each user keeps isolated reading data.
Template Content
