config: move operational defaults to docker-compose.yml

- Add conversion service configuration with sensible defaults
  - BOOKHOARD_CONVERSION_CACHE_DIR: /app/cache/kepub
  - BOOKHOARD_CONVERSION_TOOL: /usr/bin/kepubify
  - BOOKHOARD_CONVERSION_CACHE_TTL: 24h
  - Add named volume for conversion cache
- Add rate limiting configuration with defaults
  - TEST_MODE: false
  - RATE_LIMIT_ENABLED: true
  - REQUESTS_PER_MINUTE: 10
- Simplify .env.example to only required secrets (JWT_SECRET, DBPASS)
- Add section comments to docker-compose.yml for better organization
- Document optional overrides in .env.example comments

This change separates secrets (in .env) from operational configuration
(in docker-compose.yml), following security best practices while
maintaining flexibility for custom deployments.
This commit is contained in:
2026-02-01 17:34:00 -05:00
parent 7135571de8
commit 7d1fc546a8
2 changed files with 28 additions and 19 deletions
+11 -19
View File
@@ -1,5 +1,6 @@
# 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)
JWT_SECRET=your-secure-jwt-secret-key-here
@@ -7,22 +8,13 @@ JWT_SECRET=your-secure-jwt-secret-key-here
# PostgreSQL database password
DBPASS=your-secure-database-password-here
# Test Mode Configuration (WARNING: Only set to true for integration testing)
# When enabled, rate limiting is disabled to allow rapid test execution
# Never enable in production environments
TEST_MODE=false
# Rate Limiting Configuration
# Set to false to disable rate limiting (only for test environments)
RATE_LIMIT_ENABLED=true
# Number of requests allowed per minute per IP (default: 10)
# Increase for integration testing (e.g., 1000)
REQUESTS_PER_MINUTE=10
# Conversion Service Configuration
# Directory for caching converted files (KEPUB, etc.)
BOOKHOARD_CONVERSION_CACHE_DIR=/var/bookhoard/cache/kepub
# Conversion tool to use (kepubify or ebook-convert)
BOOKHOARD_CONVERSION_TOOL=/usr/bin/kepubify
# Cache TTL for converted files (e.g., 24h, 12h, 48h)
BOOKHOARD_CONVERSION_CACHE_TTL=24h
# 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