Deploy Kavita

Self-hosted Kavita reader for manga, comics and ebooks, admin set at deploy

Deploy Kavita

Just deployed

/data

Deploy and Host Kavita on Railway

Kavita is an open-source, self-hosted reading server for manga, comics, webtoons, ebooks and PDFs. It scans your folders into a library with series, covers and metadata, and lets you read in the browser or in OPDS apps. Progress, collections, reading lists and multiple users with per-library access are built in.

About Hosting Kavita

Kavita is one .NET service that keeps its settings and SQLite database in a config folder and reads books from library folders on disk. This template runs the official jvmilazz0/kavita image, pinned by version and digest, with one Railway volume at /data: /data/config holds the database, covers and logs, and /data/library holds your books. Upstream, the first person to open a new server registers as admin. This template creates that admin at first start while Kavita still listens on localhost only, so the public URL can't be claimed. Books go onto the volume with railway ssh.

Common Use Cases

  • Read your manga, comics and webtoons from any browser, with progress synced across devices
  • Host an ebook and PDF library for yourself, family or friends, each with their own account and library access
  • Serve your collection to OPDS reader apps (KOReader, Panels, Chunky and others)

Dependencies for Kavita Hosting

  • The official Kavita Docker image (jvmilazz0/kavita, v0.9.1.4)
  • A Railway volume mounted at /data for the database, settings and library

Deployment Dependencies

Implementation Details

First login. Open the service's public URL and sign in as KAVITA_ADMIN_USERNAME (default admin). The password is the generated KAVITA_ADMIN_PASSWORD: open the Kavita service, then Variables. You can change it in your account settings after the first login; the variable is only read on the very first start.

Adding books. Kavita has no book upload in its web UI, so put files on the volume with the Railway CLI. One folder per series works best:

railway link            # pick this project and the Kavita service
railway ssh -- mkdir -p "/data/library/Books/My Book"
cat "My Book.epub" | railway ssh -- dd "of=/data/library/Books/My Book/My Book.epub" status=none
# or download straight onto the volume
railway ssh -- curl -fL --create-dirs -o "/data/library/Manga/One Series/Vol 1.cbz" "https://example.com/vol1.cbz"

Then, in Kavita, go to Settings → Libraries → Add Library, pick a type, add the folder (/data/library/Manga, /data/library/Comics or /data/library/Books are created for you) and scan. Folder watching picks up later additions.

Notes. Kavita listens on Railway's PORT; the start script writes it into Kavita's settings on every boot. Kavita's own Docker image ignores those settings, so the script starts Kavita without its container flag, and the update banner may show the non-Docker update steps. To upgrade, change the image tag to a newer Kavita release; your data stays on the volume.

Why Deploy Kavita on Railway?

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 Kavita 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.


Template Content

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
51
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
52