# Environment Variables # Copy this file to .env and update the values # Only secrets are required - all other settings have defaults in docker-compose.yml # JWT Secret for authentication (generate a secure random string) # Generate with: openssl rand -hex 32 JWT_SECRET=your-secure-jwt-secret-key-here # PostgreSQL database password # Generate with: openssl rand -hex 16 DBPASS=your-secure-database-password-here # Networking: change a port if it conflicts on your host # Postgres port, host + container (e.g. another local DB already uses 5432) # DB_PORT=15432 # App web port, host + container # SERVER_PORT=8765 # Deployment # External URL for device sync (must include protocol; defaults to http://localhost:8765) # Examples: https://bookhoard.example.com | http://192.168.1.10:8765 # BASE_URL=https://bookhoard.example.com # Mark session cookies Secure — set true behind a TLS-terminating reverse proxy (Caddy/nginx/traefik) # COOKIE_SECURE=true # Pin or rollback a specific published image version (defaults to "latest") # IMAGE_TAG=1.0.0 # Optional: Override Defaults (defaults are set in docker-compose.yml) # Test Mode: WARNING - Only set to true for integration testing # TEST_MODE=true # Rate Limiting: Disable or increase limits for testing # RATE_LIMIT_ENABLED=false # REQUESTS_PER_MINUTE=1000 # Conversion Tool: Switch from kepubify to ebook-convert # BOOKHOARD_CONVERSION_TOOL=/usr/bin/ebook-convert # Conversion Cache TTL: Override default 24h # BOOKHOARD_CONVERSION_CACHE_TTL=48h # System timezone (fallback for server-side time operations, defaults to UTC) # TZ=America/New_York