---
title: "Deploy grimmory"
description: "Grimmory is a self-hosted digital library for comics and books"
category: "Other"
url: https://railway.com/deploy/grimmory
---

# Deploy grimmory

Grimmory is a self-hosted digital library for comics and books

**[Deploy grimmory on Railway](https://railway.com/template/grimmory)**

- **Creator:** Ken Komatsu's Projects
- **Category:** Other
- **Total deploys:** 5

## Template content

### mariadb

- **Image:** mariadb:11.4

### grimmory

- **Image:** grimmory/grimmory:v2.3.0
- **Health check:** /api/v1/healthcheck
- **Public domain:** Yes

## Documentation

# Deploy and Host Grimmory on Railway

## About Hosting

[Grimmory](https://github.com/grimmory-tools/grimmory) is a self-hosted digital library and book manager for EPUB, PDF, comics, and audiobooks. It is the community successor to BookLore and keeps the same general runtime shape: one web application plus one MariaDB database on private networking.

This Railway template mirrors the working `grimmory` deployment closely, but fixes the database side for Railway portability. The app service runs from the official `grimmory/grimmory:v2.3.0` image on port `6060`, uses `GET /api/v1/healthcheck` for health checks, and stores runtime data on a persistent volume mounted at `/app/data`. The database runs as a private `mariadb:11.4` sidecar with its data volume mounted at `/var/lib/mysql`.

Use `template_env_grimmory.json` for the app service variables and `template_env_mariadb.json` for the database bootstrap variables.

## Why Deploy

- Run a private, self-hosted digital library without depending on third-party SaaS.
- Get smart shelves, metadata lookup, a built-in reader, and multi-user support in one stack.
- Keep database traffic on Railway private networking while exposing only the web app publicly.
- Start from the official Grimmory image with a pinned release tag instead of a moving `latest`.
- Leave room to add extra library storage later with optional `/books` or `/bookdrop` mounts.

## Common Use Cases

- Personal ebook, PDF, and comic library with browser reading and progress sync.
- Family or small-team shared library with separate accounts and reading state.
- Kobo, KOReader, and OPDS-friendly library server hosted on Railway.
- Migration path for existing BookLore users who want the Grimmory fork.

## Dependencies for Deployment

### Deployment Dependencies

| Dependency | Details |
|---|---|
| App Image | `grimmory/grimmory:v2.3.0` |
| Database Image | `mariadb:11.4` |
| App Port | `6060` |
| Database Port | `3306` |
| Health Check | `GET /api/v1/healthcheck` |
| Persistent Volumes | `/app/data` on the app service, `/var/lib/mysql` on the database service |
| Required App Vars | `PORT`, `BOOKLORE_PORT`, `DATABASE_URL`, `DATABASE_USERNAME`, `DATABASE_PASSWORD` |
| Recommended App Vars | `TZ`, `USER_ID`, `GROUP_ID`, `DISK_TYPE`, `SWAGGER_ENABLED`, `FORCE_DISABLE_OIDC` |
| Required Database Vars | `MYSQL_DATABASE`, `MYSQL_USER`, `MYSQL_PASSWORD`, `MYSQL_ROOT_PASSWORD` |
| Public Access | Railway public domain routed to `PORT=6060` |
| Private Networking | `DATABASE_URL` points at `${{mariadb.RAILWAY_PRIVATE_DOMAIN}}:3306` |


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/grimmory
