Deploy booklore
BookLore is a self-hosted, multi-user digital library for books and comics
booklore
Just deployed
/app/data
mariadb
Just deployed
/var/lib/mysql
Deploy and Host BookLore on Railway
About Hosting
BookLore is an open-source, self-hosted digital library for books and comics. It combines a modern web UI with a Spring Boot backend, supports EPUB/PDF/comic reading, metadata enrichment, OPDS feeds, BookDrop ingestion, and multi-user access.
This Railway template deploys BookLore from the official Docker image and wires it to a dedicated MariaDB sidecar service (lscr.io/linuxserver/mariadb). The app runs as one web service on port 6060, with persistent application data mounted at /app/data.
Why Deploy
- Own your library stack — keep your books, metadata, and reading history on your own infra.
- Official image, minimal drift — deploy directly from upstream
booklore/bookloreimage. - Production-compatible database — deploy with MariaDB, matching BookLore's default JDBC driver and migration expectations.
- Reader-friendly features — built-in reader, OPDS support, BookDrop import flow, and metadata automation.
- Multi-user ready — separate user accounts, shelves, and reading state in one deployment.
Common Use Cases
- Build a personal cloud library for EPUB/PDF/comics.
- Host a family reading server with separate user accounts.
- Replace third-party ebook servers with a private, self-hosted stack.
- Run a BookLore + MariaDB stack on Railway with internal private networking between services.
Dependencies for Deployment
Deployment Dependencies
| Dependency | Details |
|---|---|
| App Image | booklore/booklore:latest (official Docker Hub image) |
| App Port | 6060 (BookLore HTTP server) |
| Database Service | Sidecar mariadb service using lscr.io/linuxserver/mariadb:11.4.8 |
| Persistent Volume | Mount /app/data for BookLore app data persistence |
| Required Env Vars | PORT, BOOKLORE_PORT, DATABASE_HOST, DATABASE_PORT, DATABASE_NAME, DATABASE_USERNAME, DATABASE_PASSWORD, MYSQL_DATABASE, MYSQL_USER, MYSQL_PASSWORD, MYSQL_ROOT_PASSWORD |
| Recommended Env Vars | TZ, DISK_TYPE, USER_ID, GROUP_ID, SWAGGER_ENABLED, FORCE_DISABLE_OIDC |
| Health Endpoint | GET /api/v1/healthcheck |
| Public Access | Railway domain routed to PORT=6060 |
Template Content
booklore
booklore/booklore:latestmariadb
mariadb:latest