services: javinizer: # Option 1: Pull pre-built image (recommended for end users) # Use 'latest' for most recent release, or pin to specific version (e.g., 'v0.1.1-alpha') # Available tags: https://github.com/javinizer/javinizer-go/pkgs/container/javinizer-go image: ghcr.io/javinizer/javinizer-go:latest # Option 2: Build locally (for developers) # Uncomment the 'build' section below and comment out 'image' above to build from source # build: # context: . # dockerfile: Dockerfile # args: # - USER_ID=${PUID:-${USER_ID:-1000}} # - GROUP_ID=${PGID:-${GROUP_ID:-1000}} container_name: javinizer hostname: javinizer restart: unless-stopped env_file: - .env ports: # Container-side port: defaults to 8765. Set CONTAINER_PORT=8080 in .env # if upgrading from a release that persisted server.port=8080 in config.yaml. - "${HOST_PORT:-8765}:${CONTAINER_PORT:-8765}" volumes: # Application state (config, database, logs, cache) - ./data:/javinizer # JAV files for sorting (read-write for organize operations) - ${MEDIA_PATH:-/path/to/your/jav-library}:/media # UPDATED environment variables environment: # Application home directory - JAVINIZER_HOME=/javinizer # Configuration file location - JAVINIZER_CONFIG=/javinizer/config.yaml # Database location - JAVINIZER_DB=/javinizer/javinizer.db # Log directory (applies only when logging.output includes a file target) - JAVINIZER_LOG_DIR=/javinizer/logs # Temp directory for file processing - JAVINIZER_TEMP_DIR=/javinizer/temp # Log level (optional: debug, info, warn, error) # Uncomment to override config.yaml # - LOG_LEVEL=${LOG_LEVEL:-info} # File creation mask (optional: 002, 022, etc.) # 002 = rwxrwxr-x (group can write) # 022 = rwxr-xr-x (only owner can write) # Uncomment to override config.yaml # - UMASK=${UMASK:-002} # Timezone - TZ=${TZ:-UTC} # Trusted CIDRs for /auth/setup access (Docker bridge gateway) # Without this, setup is only available from localhost inside the container - JAVINIZER_SETUP_TRUSTED_CIDRS=${JAVINIZER_SETUP_TRUSTED_CIDRS:-172.16.0.0/12} healthcheck: test: ["CMD", "wget", "--method=GET", "-O", "/dev/null", "-q", "http://localhost:${CONTAINER_PORT:-8765}/health"] interval: 30s timeout: 3s retries: 3 start_period: 10s # Optional: Development profile javinizer-dev: build: context: . dockerfile: Dockerfile args: - USER_ID=${PUID:-${USER_ID:-1000}} - GROUP_ID=${PGID:-${GROUP_ID:-1000}} profiles: ["dev"] hostname: javinizer-dev env_file: - .env ports: # Container-side port: defaults to 8765. Set CONTAINER_PORT=8080 in .env # if upgrading from a release that persisted server.port=8080 in config.yaml. - "${HOST_PORT:-8765}:${CONTAINER_PORT:-8765}" volumes: - ./data:/javinizer - ${MEDIA_PATH:-/path/to/your/jav-library}:/media # Mount frontend source for live development - ./web/frontend:/app/web/frontend environment: - JAVINIZER_DEV_MODE=${JAVINIZER_DEV_MODE:-true} - VITE_API_URL=${VITE_API_URL:-http://localhost:${HOST_PORT:-8765}} - JAVINIZER_HOME=/javinizer - JAVINIZER_CONFIG=/javinizer/config.yaml - JAVINIZER_DB=/javinizer/javinizer.db - JAVINIZER_LOG_DIR=/javinizer/logs - JAVINIZER_TEMP_DIR=/javinizer/temp - LOG_LEVEL=${LOG_LEVEL:-debug} - UMASK=${UMASK:-002} - TZ=${TZ:-UTC} # Optional: FlareSolverr for Cloudflare-protected sources (e.g., JavDB/JavLibrary) flaresolverr: image: ghcr.io/flaresolverr/flaresolverr:latest container_name: flaresolverr restart: unless-stopped ports: - "${FLARESOLVERR_HOST_PORT:-8191}:8191" environment: - LOG_LEVEL=${FLARESOLVERR_LOG_LEVEL:-info} - LOG_HTML=${FLARESOLVERR_LOG_HTML:-false} - CAPTCHA_SOLVER=${FLARESOLVERR_CAPTCHA_SOLVER:-none} - TZ=${TZ:-UTC}