services: grimoire: image: hunterreadca/grimoire:latest container_name: grimoire restart: unless-stopped ports: - "9481:9481" # Change the left side to expose on a different host port environment: # Path inside the container — do not change these unless you also change the volume targets below - LIBRARY_PATH=/library - DATA_PATH=/data # Number of uvicorn worker processes. 2–4 is typical; more workers = more memory use. - WORKERS=2 # Required — used to sign JWT tokens. Must be a long random string. # Generate one with: openssl rand -hex 32 - SECRET_KEY=change-me # Optional — public base URL of this instance, used to build absolute links (e.g. OPDS feed URLs). # Set this to the URL you use to access Grimoire, especially when running behind a reverse proxy. # - BASE_URL=https://grimoire.example.com # Optional — enable OPDS catalog access. Each user can generate a personal feed URL in Account Settings. # - OPDS_ENABLED=true volumes: # Left side: absolute path on the host to your TTRPG library folder. # Grimoire mounts it read-only — use Filebrowser Quantum or Calibre to add/manage files. # See docs/file-management.md for companion tool examples. - /path/to/your/library:/library:ro # Left side: absolute path on the host where Grimoire stores its database, thumbnails, and cache - /path/to/grimoire/data:/data