Add Grimmory evaluation stack for media-core

This commit is contained in:
Codex
2026-10-07 06:53:43 -07:00
parent fbc3067d0c
commit f691817d64
3 changed files with 111 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
GRIMMORY_DB_PASSWORD=replace-with-a-random-password
GRIMMORY_DB_ROOT_PASSWORD=replace-with-a-different-random-password
+21
View File
@@ -0,0 +1,21 @@
# Grimmory on media-core
- LAN URL: `http://192.168.50.46:6060`
- Existing library: `/mnt/truenas/multimedia/books` -> `/books` (read-only)
- BookDrop: `/mnt/truenas/multimedia/curator/staging/grimmory` -> `/bookdrop`
- Application data: `/opt/media-core/appdata/grimmory/data`
- MariaDB data: `/opt/media-core/appdata/grimmory/mariadb`
- Storage mode: `NETWORK`
This is a parallel evaluation deployment. BookOrbit remains online and both
applications may index the same final library, but only Grimmory's dedicated
BookDrop is writable. Do not enable file rename, move, delete, or metadata
write-back against `/books` during the evaluation.
Create the first library at container path `/books`. Set
`GRIMMORY_DB_PASSWORD` and `GRIMMORY_DB_ROOT_PASSWORD` only in the Arcane
project environment; do not commit their values.
Before an upgrade, dump the `grimmory` MariaDB database and back up
`/opt/media-core/appdata/grimmory/data`. Image tags describe the release and
the pinned OCI index digests are authoritative.
+88
View File
@@ -0,0 +1,88 @@
x-arcane:
icon: book-open
urls:
- http://192.168.50.46:6060
services:
grimmory:
image: ghcr.io/grimmory-tools/grimmory:v3.5.0@sha256:bf6fe21c6e247597f7869664a440b5a34242e2d2940575cae39c17bfaa66dc0b
container_name: grimmory
restart: unless-stopped
init: true
depends_on:
mariadb:
condition: service_healthy
ports:
- "6060:6060"
environment:
USER_ID: "1000"
GROUP_ID: "1000"
TZ: Asia/Shanghai
DATABASE_URL: jdbc:mariadb://mariadb:3306/grimmory
DATABASE_USERNAME: grimmory
DATABASE_PASSWORD: ${GRIMMORY_DB_PASSWORD:?set GRIMMORY_DB_PASSWORD in the Arcane project environment}
SWAGGER_ENABLED: "false"
FORCE_DISABLE_OIDC: "false"
DISK_TYPE: NETWORK
volumes:
- type: bind
source: /opt/media-core/appdata/grimmory/data
target: /app/data
bind:
create_host_path: false
- type: bind
source: /mnt/truenas/multimedia/books
target: /books
read_only: true
bind:
create_host_path: false
- type: bind
source: /mnt/truenas/multimedia/curator/staging/grimmory
target: /bookdrop
bind:
create_host_path: false
healthcheck:
test: ["CMD-SHELL", "wget -q --spider http://127.0.0.1:6060/api/v1/healthcheck"]
interval: 30s
timeout: 10s
retries: 5
start_period: 90s
labels:
com.getarcaneapp.arcane.icon: book-open
logging:
driver: json-file
options:
max-size: 10m
max-file: "3"
mariadb:
image: lscr.io/linuxserver/mariadb:11.4.8@sha256:91de7f701bc7fc3a424b81beafca7a7c6c4c5b7c8be6afd2ae148698695c0b0c
container_name: grimmory-db
restart: unless-stopped
environment:
PUID: "1000"
PGID: "1000"
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: ${GRIMMORY_DB_ROOT_PASSWORD:?set GRIMMORY_DB_ROOT_PASSWORD in the Arcane project environment}
MYSQL_DATABASE: grimmory
MYSQL_USER: grimmory
MYSQL_PASSWORD: ${GRIMMORY_DB_PASSWORD:?set GRIMMORY_DB_PASSWORD in the Arcane project environment}
volumes:
- type: bind
source: /opt/media-core/appdata/grimmory/mariadb
target: /config
bind:
create_host_path: false
healthcheck:
test: ["CMD", "mariadb-admin", "ping", "-h", "localhost"]
interval: 5s
timeout: 5s
retries: 12
start_period: 30s
labels:
com.getarcaneapp.arcane.icon: mariadb
logging:
driver: json-file
options:
max-size: 10m
max-file: "3"