No description
  • Jinja 51.5%
  • Shell 48.5%
Find a file
root 4473eaf562
All checks were successful
/ publish (push) Successful in 1m4s
/ image (push) Successful in 32m47s
/ lint (push) Successful in 9m23s
Add Grimmory app
Grimmory from the GitHub release asset grimmory.jar, verified against
the SHA256 digest GitHub records for it, run with OpenJDK 25 from
Debian and MariaDB as module. One sandboxed unit on port 6060.

Grimmory creates its first user only through its setup API, so the
unit's ExecStartPost (root, outside the sandbox) posts the admin with
grimmory_admin_password while no user exists – no open browser wizard.

Tested: iac-core/tools/check-app.sh green (lint, template files, dev
container twice, second run changed=1); login with the access hint
from outside the container, setup API answers 403 afterwards; update
path 3.4.1 -> 3.5.0 in the dev container with smoke test green.
VM image and boot test not run yet (CI after push).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MeUbWo51e9wkypK1ygruJ9
2026-10-17 01:09:04 +02:00
.forgejo/workflows Add Grimmory app 2026-10-17 01:09:04 +02:00
.vibe Add Grimmory app 2026-10-17 01:09:04 +02:00
files Add Grimmory app 2026-10-17 01:09:04 +02:00
handlers Add Grimmory app 2026-10-17 01:09:04 +02:00
tasks Add Grimmory app 2026-10-17 01:09:04 +02:00
templates Add Grimmory app 2026-10-17 01:09:04 +02:00
tests Add Grimmory app 2026-10-17 01:09:04 +02:00
.clinerules Add Grimmory app 2026-10-17 01:09:04 +02:00
.cursorrules Add Grimmory app 2026-10-17 01:09:04 +02:00
.windsurfrules Add Grimmory app 2026-10-17 01:09:04 +02:00
AGENTS.md Add Grimmory app 2026-10-17 01:09:04 +02:00
CHANGELOG.md Add Grimmory app 2026-10-17 01:09:04 +02:00
CLAUDE.md Add Grimmory app 2026-10-17 01:09:04 +02:00
GEMINI.md Add Grimmory app 2026-10-17 01:09:04 +02:00
iac.json Add Grimmory app 2026-10-17 01:09:04 +02:00
README.md Add Grimmory app 2026-10-17 01:09:04 +02:00

iac-grimmory

Grimmory ist eine selbst gehostete Bibliothek für E-Books, Comics und Hörbücher: Metadaten-Abruf, Lesen im Browser, OPDS, Kobo- und KOReader-Sync und BookDrop-Import. Installiert nativ auf Debian 13 als LXC oder VM auf Proxmox VE. Teil von iac.

Installation (auf der Proxmox-Node)

bash -c "$(curl -fsSL https://iac.heyer.systems/grimmory/ct.sh)"   # LXC
bash -c "$(curl -fsSL https://iac.heyer.systems/grimmory/vm.sh)"   # VM

Ohne Dialog: IAC_NONINTERACTIVE=1 und var_*-Variablen – am einfachsten mit dem Generator auf https://iac.heyer.systems/apps/grimmory/.

Anmeldung

Web-Oberfläche: http://<IP>:6060/ – Benutzer admin, Passwort im Gast:

grep grimmory_admin_password /etc/iac/settings.env

Den Admin legt iac beim ersten Start über die Setup-API von Grimmory an, solange es noch keinen Benutzer gibt; der Einrichtungsassistent im Browser ist damit sofort geschlossen. Ein später geändertes Passwort fasst iac nicht mehr an.

Was installiert wird

  • grimmory.jar aus dem GitHub-Release (Web-Oberfläche inklusive), geprüft gegen den SHA256-Digest, den GitHub für das Asset speichert. Liegt in /opt/grimmory/, gehört root.
  • OpenJDK 25 aus Debian, libarchive für Comic-Archive.
  • MariaDB aus Debian als Modul mariadb (nur localhost), Datenbank und Benutzer grimmory.
  • Dienst grimmory (systemd, als Benutzer grimmory, Sandbox), Port 6060 – Web-Oberfläche, OPDS, Kobo-Sync, aus dem Netz erreichbar. Kein TLS: dafür einen Reverse Proxy davorsetzen.

Nicht enthalten: kepubify (Kobo-KEPUB-Konvertierung) und ffprobe (Kapitel von Hörbüchern). Wer sie braucht, legt die Programme nach /var/lib/grimmory/data/tools/ oder installiert ffmpeg mit apt.

Daten und Konfiguration

Pfad Inhalt
/var/lib/grimmory/books/ Vorschlag für die Bibliothek (in Grimmory als Bibliotheksordner anlegen)
/var/lib/grimmory/bookdrop/ BookDrop – hier abgelegte Dateien werden importiert
/var/lib/grimmory/data/ Cover, Thumbnails, Einstellungen
MariaDB grimmory Bücher, Benutzer, Lesefortschritt
/etc/grimmory/grimmory.env von iac verwaltet (Port, Datenbank, Pfade)
/etc/grimmory/grimmory.local.env eigene Einstellungen, z. B. ALLOWED_ORIGINS, JDK_JAVA_OPTIONS

Der Dienst darf nur unter /var/lib/grimmory schreiben. Bücher an anderer Stelle (z. B. ein NFS-Mount unter /mnt/books) sind lesbar; soll Grimmory dort auch schreiben, mit systemctl edit grimmory ergänzen:

[Service]
ReadWritePaths=/mnt/books

Update (im Gast)

update

Lädt ein neueres Release, stellt /opt/grimmory/grimmory.jar um und startet den Dienst neu; Grimmory migriert die Datenbank beim Start selbst (Flyway). Alte JAR-Dateien werden entfernt.

Selbsttest (im Gast)

bash /var/lib/iac/src/core/bin/iac-smoke