mirror of
https://github.com/bookorbit/bookorbit.git
synced 2026-11-03 00:11:37 -06:00
04a0f21c8b
Allow native and host-network deployments to select an IPv4 or IPv6 bind address through HOST while preserving the existing wildcard default. Keep Docker health checks aligned with the configured listener and document how to restrict host port publishing independently of the container address. Cover validation, real bootstrap sockets, and health-check commands with tests. Closes #1315
79 lines
3.1 KiB
Bash
79 lines
3.1 KiB
Bash
# Docker image to run. Pin a sha-* tag or @sha256 digest for stricter deploys.
|
|
APP_IMAGE=ghcr.io/bookorbit/bookorbit:latest
|
|
|
|
# App publish port on host
|
|
# For access only from this host (such as a host reverse proxy), use 127.0.0.1:3000.
|
|
APP_PORT=3000
|
|
|
|
# Optional listen address inside the container (IPv4 or IPv6, without brackets).
|
|
# Keep the default for bridge networking; use APP_PORT above to restrict host exposure.
|
|
# HOST=0.0.0.0
|
|
|
|
# Host folder that appears as /books in the container.
|
|
# Point this at your library root; use an absolute path on NAS/Portainer installs.
|
|
BOOKS_HOST_PATH=./books
|
|
|
|
# Container runtime UID/GID for files written to app-managed data folders.
|
|
# Most users can leave these defaults.
|
|
PUID=1000
|
|
PGID=1000
|
|
|
|
# Database credentials
|
|
POSTGRES_USER=bookorbit
|
|
POSTGRES_PASSWORD=change-this-password
|
|
POSTGRES_DB=bookorbit
|
|
|
|
# App secrets
|
|
JWT_SECRET=change-this-to-a-long-random-secret
|
|
# Required for the initial /auth/setup endpoint (x-setup-token header)
|
|
SETUP_BOOTSTRAP_TOKEN=change-this-to-a-long-random-secret
|
|
|
|
# External/public URL used by emails and Kobo endpoints
|
|
APP_URL=https://bookorbit.example.com
|
|
|
|
# Node.js JavaScript heap limit in MB. Raise this for very large libraries, 250K+ books.
|
|
NODE_MAX_OLD_SPACE_SIZE=2048
|
|
|
|
# --- Optional overrides (uncomment to set) ---
|
|
|
|
# If you already run your own PostgreSQL, set DATABASE_URL and remove the
|
|
# postgres service from docker-compose.yml. Your instance must have the
|
|
# uuid-ossp, pg_trgm, and vector (pgvector) extensions available.
|
|
# DATABASE_URL=postgres://user:password@yourhost:5432/bookorbit
|
|
# Or set individual parts (POSTGRES_HOST, POSTGRES_PORT, POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB)
|
|
|
|
# CORS origin for the frontend when served from a different domain than APP_URL
|
|
# CLIENT_URL=https://app.example.com
|
|
|
|
# Container folder used as the top of the library creation folder picker.
|
|
# Defaults to / when unset. Set to /books to hide other container root folders.
|
|
# LIBRARY_BROWSE_ROOT=/books
|
|
|
|
# Set to false only if your platform manages bind mount ownership externally.
|
|
# BOOKORBIT_FIX_PERMISSIONS=true
|
|
|
|
# Recommended if you store SMTP provider credentials (generate: openssl rand -hex 32)
|
|
# EMAIL_ENCRYPTION_KEY=
|
|
|
|
# Recommended if you store migration source credentials (generate: openssl rand -hex 32)
|
|
# MIGRATION_ENCRYPTION_KEY=
|
|
|
|
# Absolute container path that authorizes local migration backup files.
|
|
# Mount a dedicated host directory at this path as read-only before enabling backup mode.
|
|
# MIGRATION_IMPORT_ROOT=/imports
|
|
|
|
# Log level (default: info). Set to debug for verbose output.
|
|
# LOG_LEVEL=info
|
|
|
|
# Allow OIDC issuer/discovery URLs that resolve to private/local addresses.
|
|
# Default false. Enable only in trusted self-hosted networks.
|
|
# OIDC_ALLOW_LOCAL_ISSUERS=false
|
|
|
|
# Disable username/password sign-in after at least one active administrator has linked an enabled
|
|
# OIDC provider. Set false and restart to recover access if the identity provider is unavailable.
|
|
# DISABLE_LOCAL_AUTH=false
|
|
|
|
# Optional: allow Cloudflare Web Analytics beacon when using automatic setup.
|
|
# Keep unset/false to preserve strict CSP (`script-src 'self'`).
|
|
# CSP_ALLOW_CLOUDFLARE_INSIGHTS=false
|