Environment Variables
Subscription
SUBSCRIPTION_URL
- CLI:
--subscription-url - Required: Yes
- Default: None
URL, Base64 string or file path for proxy configuration. Supports multiple formats:
- HTTP/HTTPS URL with Base64 encoded content
- Direct Base64 encoded string
- Local file path with prefix
file:// - Local folder path with prefix
folder://
SUBSCRIPTION_UPDATE
- CLI:
--subscription-update - Required: No
- Default:
true
Enables automatic updates of proxy configuration from subscription source. When enabled, Xray Checker will periodically check for changes and update configurations accordingly.
SUBSCRIPTION_UPDATE_INTERVAL
- CLI:
--subscription-update-interval - Required: No
- Default:
300
Time in seconds between subscription update checks. Only used when SUBSCRIPTION_UPDATE is enabled.
Proxy
PROXY_CHECK_INTERVAL
- CLI:
--proxy-check-interval - Required: No
- Default:
300
Time in seconds between proxy availability checks. Each check verifies all configured proxies.
PROXY_CHECK_METHOD
- CLI:
--proxy-check-method - Required: No
- Default:
ip - Values:
ip,status,download
Method used to verify proxy functionality:
ip: Compares IP addresses with and without proxystatus: Checks HTTP status code from a test requestdownload: Downloads a file and verifies minimum size received
PROXY_IP_CHECK_URL
- CLI:
--proxy-ip-check-url - Required: No
- Default:
https://api.ipify.org?format=text
URL used for IP verification when PROXY_CHECK_METHOD=ip. Should return current IP address in plain text format.
PROXY_STATUS_CHECK_URL
- CLI:
--proxy-status-check-url - Required: No
- Default:
http://cp.cloudflare.com/generate_204
URL used for status verification when PROXY_CHECK_METHOD=status. Should return HTTP 204/200 status code.
PROXY_DOWNLOAD_URL
- CLI:
--proxy-download-url - Required: No
- Default:
https://proof.ovh.net/files/1Mb.dat
URL used for download verification when PROXY_CHECK_METHOD=download. Should return a downloadable file.
PROXY_DOWNLOAD_TIMEOUT
- CLI:
--proxy-download-timeout - Required: No
- Default:
60
Maximum time in seconds to wait for download completion when using PROXY_CHECK_METHOD=download.
PROXY_DOWNLOAD_MIN_SIZE
- CLI:
--proxy-download-min-size - Required: No
- Default:
51200(50KB)
Minimum number of bytes that must be downloaded for the check to be considered successful when using PROXY_CHECK_METHOD=download.
PROXY_TIMEOUT
- CLI:
--proxy-timeout - Required: No
- Default:
30
Maximum time in seconds to wait for proxy response during checks.
PROXY_RESOLVE_DOMAINS
CLI: --proxy-resolve-domains
Required: No
Default: false
When enabled, domain-based proxy configurations are expanded into multiple entries — one for each resolved IP address. For example, a proxy with server: mydomain.com will be duplicated for every IP returned by DNS lookup.
This allows Xray Checker to monitor each resolved endpoint individually.
Important notes:
- This feature only works when the domain returns multiple IP addresses. If DNS returns only a single IP, no expansion will occur. Note that not all DNS providers return multiple IPs - for example, Amazon DNS typically returns only a single IP address.
- This feature works only with protocols that don’t verify certificates against the domain name. It will work with Reality protocol, but will not work with standard vless and Trojan protocols, where the connection is established directly to the domain name and certificate validation is performed.
SIMULATE_LATENCY
- CLI:
--simulate-latency - Required: No
- Default:
true
Adds measured latency (TTFB - Time To First Byte) to endpoint responses, useful for monitoring systems that can interpret response delays.
Web UI
WEB_SHOW_DETAILS
- CLI:
--web-show-details - Required: No
- Default:
false
Shows server IP addresses and ports in the web UI. When disabled, only proxy names are displayed for privacy.
WEB_PUBLIC
- CLI:
--web-public - Required: No
- Default:
false
Makes the dashboard publicly accessible without authentication. When enabled, the dashboard displays subscription name as title, hides admin controls and technical details (version, ports, config links).
WEB_CUSTOM_ASSETS_PATH
- CLI:
--web-custom-assets-path - Required: No
- Default: None
Path to a directory containing custom assets for the web interface. When set, files from this directory override the default assets.
Supported files:
index.html— Full template replacement (Go template)logo.svg— Custom logofavicon.ico— Custom faviconcustom.css— Additional styles (auto-injected)- Any other files — Available at
/static/{filename}
See Web Customization for details.
Xray
XRAY_START_PORT
- CLI:
--xray-start-port - Required: No
- Default:
10000
Starting port number for SOCKS5 proxies. Each proxy will use sequential ports starting from this number.
XRAY_LOG_LEVEL
- CLI:
--xray-log-level - Required: No
- Default:
none - Values:
debug,info,warning,error,none
Controls Xray Core logging verbosity.
Metrics
METRICS_HOST
- CLI:
--metrics-host - Required: No
- Default:
0.0.0.0
Host address for metrics and status endpoints.
METRICS_PORT
- CLI:
--metrics-port - Required: No
- Default:
2112
Port number for HTTP server exposing metrics and status endpoints.
METRICS_PROTECTED
- CLI:
--metrics-protected - Required: No
- Default:
false
Enables basic authentication for metrics and status endpoints.
METRICS_USERNAME
- CLI:
--metrics-username - Required: No
- Default:
metricsUser
Username for basic authentication when METRICS_PROTECTED=true.
METRICS_PASSWORD
- CLI:
--metrics-password - Required: No
- Default:
MetricsVeryHardPassword
Password for basic authentication when METRICS_PROTECTED=true.
METRICS_INSTANCE
- CLI:
--metrics-instance - Required: No
- Default: None
Instance label added to all metrics. Useful for distinguishing multiple Xray Checker instances.
METRICS_PUSH_URL
- CLI:
--metrics-push-url - Required: No
- Default: None
Prometheus Pushgateway URL for metric pushing. Format: https://user:pass@host:port
METRICS_BASE_PATH
- CLI:
--metrics-base-path - Required: No
- Default: ""
URL path for host metrics and monitoring. Format: /vpn/metrics. Monitoring page could be available on http://localhost:port/metrics-base-path
Other
LOG_LEVEL
- CLI:
--log-level - Required: No
- Default:
info - Values:
debug,info,warn,error,none
Controls Xray Checker application logging verbosity. Note: This is separate from XRAY_LOG_LEVEL which controls the Xray Core logging.
RUN_ONCE
- CLI:
--run-once - Required: No
- Default:
false
Performs single check cycle and exits. Useful for scheduled execution environments.