# This file serves a dual purpose:
# 1. Developer Bootstrap: The active (uncommented) variables directly below 
#    configure a safe, unprivileged local environment for 'go run .'. 
#    This allows 'cp .env.example .env' to work out-of-the-box without root.
# 2. Production Reference: All available XUI_* configuration options are 
#    documented and commented out in the reference section further below.
#
# 3x-ui reads its runtime configuration from XUI_* environment variables. 
# On a script install, the installer writes them to the service environment file 
# (/etc/default/x-ui, /etc/conf.d/x-ui, or /etc/sysconfig/x-ui depending on the distro).
# For Docker, you set them in docker-compose.yml or via 'docker run -e'.
#
# Defaults are sensible — set only what you need to change, then restart:
# systemctl restart x-ui

# ------------------------------------------------------------------------------
# LOCAL DEVELOPMENT OVERRIDES (ACTIVE BY DEFAULT)
# ------------------------------------------------------------------------------
XUI_DEBUG=true
XUI_DB_FOLDER=x-ui
XUI_LOG_FOLDER=x-ui
XUI_BIN_FOLDER=x-ui
XUI_INIT_WEB_BASE_PATH=/

# ==============================================================================
# REFERENCE CONFIGURATION (ALL OPTIONS)
# ==============================================================================

# ------------------------------------------------------------------------------
# Database
# ------------------------------------------------------------------------------
# Backend database type: sqlite, or postgres (also accepts postgresql / pg)
# Default: sqlite
#XUI_DB_TYPE=sqlite

# Folder for the SQLite database file (x-ui.db)
# Default: /etc/x-ui (Overridden to 'x-ui' in the development block above)
#XUI_DB_FOLDER=/etc/x-ui

# PostgreSQL connection string (used when XUI_DB_TYPE=postgres)
# Example: postgres://user:password@localhost:5432/dbname?sslmode=disable
#XUI_DB_DSN=

# Max open connections in the PostgreSQL pool
#XUI_DB_MAX_OPEN_CONNS=

# Max idle connections in the PostgreSQL pool
#XUI_DB_MAX_IDLE_CONNS=

# PostgreSQL Docker Container Settings
# Default credentials used if you are running PostgreSQL via docker-compose
#POSTGRES_USER=xui
#POSTGRES_PASSWORD=xui
#POSTGRES_DB=xui


# ------------------------------------------------------------------------------
# Panel
# ------------------------------------------------------------------------------
# Override the panel port (1–65535). Takes precedence over the stored setting.
#XUI_PORT=

# Initial web base path on FIRST launch (e.g., /panel)
# Default: /
#XUI_INIT_WEB_BASE_PATH=/

# Enable Fail2ban-based IP-limit enforcement
# Default: true
#XUI_ENABLE_FAIL2BAN=true

# Skip the HSTS header — set true when TLS is terminated by a reverse proxy
# Default: false
#XUI_SKIP_HSTS=false


# ------------------------------------------------------------------------------
# Logging & binaries
# ------------------------------------------------------------------------------
# Logging level: debug, info, notice, warning, or error
# Default: info
#XUI_LOG_LEVEL=info

# Debug mode. Forces log level to debug, enables Gin debug mode, 
# and ensures frontend assets are served directly from disk (see CLAUDE.md).
# Default: false (Overridden to 'true' in the development block at the top)
#XUI_DEBUG=false

# Log output directory
# Default: /var/log/x-ui (Overridden to 'x-ui' in the development block above)
#XUI_LOG_FOLDER=/var/log/x-ui

# Folder for the Xray-core binary and geosite/geoip files
# Default: bin (Overridden to 'x-ui' in the development block above)
#XUI_BIN_FOLDER=bin

# Legacy Path Settings
# Main installation folder (Default: /usr/local/x-ui for Linux, /app for Docker)
#XUI_MAIN_FOLDER=/usr/local/x-ui
# Path to the systemd service file (Default: /etc/systemd/system)
#XUI_SERVICE=/etc/systemd/system


# ------------------------------------------------------------------------------
# Memory & profiling
# ------------------------------------------------------------------------------
# Go GC target percentage; lower = less RAM, slightly more CPU.
# Default: 75
#XUI_GOGC=

# Minutes between FreeOSMemory calls; 0 disables.
# Default: 10
#XUI_MEMORY_RELEASE_INTERVAL=

# Go soft memory limit in MiB
#XUI_MEMORY_LIMIT=

# Go-syntax soft limit (e.g., 400MiB); takes precedence over XUI_MEMORY_LIMIT
#GOMEMLIMIT=

# Expose pprof profiling on 127.0.0.1:6060
# Default: false
#XUI_PPROF=false

# Automatically set to 'true' inside the official Docker image.
# Consumed by internal scripts (x-ui.sh) to detect the environment.
# There is normally no need to set or toggle this variable manually.
# Default: false (automatically 'true' in Docker environments)
#XUI_IN_DOCKER=false


# ------------------------------------------------------------------------------
# Xray
# ------------------------------------------------------------------------------
# Force VMess AEAD
# Default: false
#XRAY_VMESS_AEAD_FORCED=false


# ------------------------------------------------------------------------------
# Tunnel health monitor
# ------------------------------------------------------------------------------
# Optional watchdog: probes a URL (optionally through a local Xray inbound)
# and restarts Xray after repeated failures. A restart drops all connected clients.
# Default: false
#XUI_TUNNEL_HEALTH_MONITOR=false

# Proxy to send the probe through, e.g., socks5://127.0.0.1:1080
# Empty = only checks host connectivity
#XUI_TUNNEL_HEALTH_PROXY=

# URL to probe
# Default: https://www.cloudflare.com/cdn-cgi/trace
#XUI_TUNNEL_HEALTH_URL=https://www.cloudflare.com/cdn-cgi/trace

# Interval between probes
# Default: 30s
#XUI_TUNNEL_HEALTH_INTERVAL=30s

# Per-probe timeout
# Default: 10s
#XUI_TUNNEL_HEALTH_TIMEOUT=10s

# Consecutive failures before a restart
# Default: 3
#XUI_TUNNEL_HEALTH_FAILURES=3

# Minimum delay between restarts
# Default: 5m
#XUI_TUNNEL_HEALTH_COOLDOWN=5m


# ------------------------------------------------------------------------------
# Unattended install
# ------------------------------------------------------------------------------
# Set to 1 (or run with no TTY) to install with zero prompts.
# Generated credentials will be written to /etc/x-ui/install-result.env
#XUI_NONINTERACTIVE=1
