# ============================================================================== # ___ _ _______ __ __ # / | (_) ____/ |/ / / /___ _____ ____ _____ ____ _____ # / /| |/ / / / /|_/ / __ `/ __ \/ __ `/ __ `/ _ \/ ___/ # / ___ / / /___/ / / / /_/ / / / / /_/ / /_/ / __/ / # /_/ |_\_\____/_/ /_/\__,_/_/ /_/\__,_/\__, /\___/_/ # /____/ # ============================================================================== # One manager to rule them all. Local-first, Encrypted, Powerful. # ============================================================================== # ============================================================================== # ESSENTIAL SETUP # ============================================================================== # --- Server Port --- # The port the application listens on inside the container. # If running via Docker Compose, this maps to the host port defined there (default 1610). PORT=1610 # --- Environment Mode --- # 'production' = Fast performance, minimal logging. # 'development' = Verbose logging, hot-reloading (if applicable). # Default: production NODE_ENV=production # ============================================================================== # DATABASE CONFIGURATION # ============================================================================== # --- Database Engine --- # Options: sqlite, postgres # Default: sqlite DB_TYPE=sqlite # --- Database URL (PostgreSQL ONLY) --- # Format: postgres://user:password@host:port/database # DOCKER EXAMPLE: postgres://aio_user:aio_password@aiomanager-db:5432/aio_manager # LOCAL EXAMPLE: postgres://postgres:password@localhost:5432/aio_db # Leave empty if using SQLite DATABASE_URL= # --- Data Directory --- # The absolute path where AIOManager stores its SQLite database (aio.db). # IN DOCKER: This MUST match the volume mount path (e.g., /app/data). DATA_DIR=/app/data # --- Database Filename --- # The name of the SQLite database file. # Default: aio.db DB_FILENAME=aio.db # ============================================================================== # SECURITY & SYNC LIMITS # ============================================================================== # --- Sync API Limit --- # Maximum size of the encrypted state blob allowed for sync (in bytes). # Default: 104857600 (100 MB) allows for extremely large configurations. MAX_SYNC_PAYLOAD_SIZE=104857600 # --- Global Timeout --- # Standardizes all outgoing requests (health checks, metadata fetches) to this threshold. # Value in milliseconds. # Default: 20000 (20 seconds) MAX_TIMEOUT=20000 # --- Server Encryption Key --- # Used to encrypt sensitive data (like Autopilot auth keys) at rest. # ZERO-CONFIG: If left empty, the server automatically generates a secure key # and saves it to DATA_DIR/server_secret.key on first run. # FALLBACK: If you set a manual key later, the server will keep the auto-generated # one as a fallback to ensure existing user data remains readable. ENCRYPTION_KEY= # --- Allowed Origins (CORS) --- # Comma-separated list of allowed origins for the API. # Leave empty to allow all (useful for local networks). # Example: https://myapp.com,https://localhost:1610 CORS_ORIGINS=* # --- Custom HTML Injection --- # Display custom HTML at the top of the login/configuration page (useful for hosted banners). # Example: CUSTOM_HTML="