Self-hosted, context-aware EPUB translation with resumable jobs and human review.
499
Self-hosted, context-aware EPUB translation with resumable jobs, persistent book memory, human review and EPUBCheck validation.
Libris uses your own OpenAI-compatible, OpenAI Responses or optional Codex provider. Your books and translation history stay on your server; selected text is sent only to the provider you configure.
Libris needs PostgreSQL and a background worker, so use the supplied Docker Compose configuration instead of starting this image with docker run alone.
Requirements: a Linux AMD64 machine with Docker Engine 26 or newer, Docker Compose v2, Git, at least 2 GB of free RAM and a language-model endpoint reachable from containers.
git clone https://github.com/HeartBtz/Libris.git
cd Libris
./scripts/install-docker.sh
The installer:
.env with random secrets and an initial password;heartbtz/libris:0.6.0 and PostgreSQL;.env and existing Docker volumes.Open http://localhost:8088. Sign in as admin; display the generated initial credentials locally with:
grep '^BOOTSTRAP_' .env
Do not share that output. After signing in, open Settings / Paramètres, add your model endpoint, model name and API key, test the provider, and import a small EPUB you are allowed to process. Select internal memory unless you already run OpenViking.
docker compose ps
curl --fail http://127.0.0.1:8088/health
docker compose logs --since=10m api worker
The expected health response contains "status":"ok" and the installed version.
The default installation listens only on the Docker host. For private LAN access, set BIND_ADDRESS=0.0.0.0, the correct ALLOWED_ORIGINS, and COOKIE_SECURE=false in .env, then run:
docker compose up -d --no-build --wait
For Internet access, keep Libris bound to 127.0.0.1, use an HTTPS reverse proxy, set the exact public HTTPS origin in ALLOWED_ORIGINS, and set COOKIE_SECURE=true.
Read the changelog, then update the Compose files and pinned image safely:
git pull --ff-only
./scripts/install-docker.sh
curl --fail http://127.0.0.1:8088/health
Never add --volumes to docker compose down during an update. Named volumes contain the PostgreSQL database and book data. Back up .env, PostgreSQL and /data together; losing SECRET_KEY prevents decryption of saved provider credentials.
0.4.1: exact release, recommended for reproducible deployments.0.5: latest patch in the 0.5 series.latest: latest stable release, convenient for evaluation but not recommended for unattended production.Pull the exact application image manually with:
docker pull heartbtz/libris:0.6.0
The same image runs the web API and worker with different Compose commands. It is not a complete standalone deployment without PostgreSQL and persistent volumes.
Source code: https://github.com/HeartBtz/Libris
License: GNU Affero General Public License v3.0
Content type
Image
Digest
sha256:603011a43…
Size
183.8 MB
Last updated
about 4 hours ago
docker pull heartbtz/libris