mirror of
https://github.com/booklore-app/booklore.git
synced 2026-04-18 02:26:57 -04:00
54 lines
3.1 KiB
YAML
54 lines
3.1 KiB
YAML
services:
|
|
booklore:
|
|
# Official Docker Hub image:
|
|
image: booklore/booklore:latest
|
|
# Or the GHCR image:
|
|
# image: ghcr.io/booklore-app/booklore:latest
|
|
container_name: booklore
|
|
environment:
|
|
- USER_ID=1000 # Modify this if the volume's ownership is not root
|
|
- GROUP_ID=1000 # Modify this if the volume's ownership is not root
|
|
- TZ=Etc/UTC
|
|
- DATABASE_URL=jdbc:mariadb://mariadb:3306/booklore # Only modify this if you're familiar with JDBC and your database setup
|
|
- DATABASE_USERNAME=booklore # Must match MYSQL_USER defined in the mariadb container
|
|
- DATABASE_PASSWORD=your_secure_password # Use a strong password; must match MYSQL_PASSWORD defined in the mariadb container
|
|
- SWAGGER_ENABLED=false # Enable or disable Swagger UI (API docs). Set to 'true' to allow access; 'false' to block access (recommended for production).
|
|
- FORCE_DISABLE_OIDC=false # Set to 'true' to force-disable OIDC and allow internal login, regardless of UI config
|
|
# ALLOWED_ORIGINS= # Comma-separated list of allowed cross-origin URLs for CORS (e.g. https://app.example.com). Defaults to '*' (allow all) if unset. Leave empty to restrict to same-origin.
|
|
# JAVA_TOOL_OPTIONS=-XX:+UseSerialGC -Xmx256m -XX:+UseCompactObjectHeaders -XX:+ExitOnOutOfMemoryError # For very constrained hardware (RPi 3, 512MB RAM). Uncomment and adjust as needed.
|
|
depends_on:
|
|
mariadb:
|
|
condition: service_healthy
|
|
ports:
|
|
- "6060:6060" # HostPort:ContainerPort — container port is 6060 by default (configurable via BOOKLORE_PORT env var)
|
|
volumes:
|
|
- ./data:/app/data # Application data (settings, metadata, cache, etc.). Persist this folder to retain your library state across container restarts.
|
|
- ./books:/books # Primary book library folder. Mount your collection here so BookLore can access and organize your books.
|
|
- ./bookdrop:/bookdrop # BookDrop folder. Files placed here are automatically detected and prepared for import.
|
|
healthcheck:
|
|
test: wget -q -O - http://localhost:6060/api/v1/healthcheck
|
|
interval: 60s
|
|
retries: 5
|
|
start_period: 60s
|
|
timeout: 10s
|
|
restart: unless-stopped
|
|
|
|
mariadb:
|
|
image: lscr.io/linuxserver/mariadb:11.4.8
|
|
container_name: mariadb
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=Etc/UTC
|
|
- MYSQL_ROOT_PASSWORD=super_secure_password # Use a strong password for the database's root user, should be different from MYSQL_PASSWORD
|
|
- MYSQL_DATABASE=booklore
|
|
- MYSQL_USER=booklore # Must match DATABASE_USERNAME defined in the booklore container
|
|
- MYSQL_PASSWORD=your_secure_password # Use a strong password; must match DATABASE_PASSWORD defined in the booklore container
|
|
volumes:
|
|
- ./config:/config
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: [ "CMD", "mariadb-admin", "ping", "-h", "localhost" ]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10 |