Skip to content

Configuration

You will learn: which config sources OpenFlare Server, frontend build, Agent, Relay, and OpenFlared support, what config fields and env vars exist, and their defaults and behavior.

This document summarizes all configuration items supported by the current OpenFlare version.


Config Sources

1. Server Config Sources

  • Config file: reads config.yaml in the same directory at startup by default (overridable via the CONFIG_PATH env var).
  • Env vars: every field in the config file can be overridden by an UPPER_SNAKE_CASE env var (env vars take precedence over config.yaml).
  • System runtime config: stored in the w_system_configs table in the relational DB. These can be hot-updated and take effect dynamically via the admin UI or system API.

2. Agent / Relay / OpenFlared Config Sources

  • CLI args: -config specifies the config file (JSON format).
  • Config file: e.g. agent.json, relay.json, flared.json.
  • Override env vars: specific env vars can override connection addresses and Token credentials in the config file.

Config File Locations

ComponentDefault LocationNotes
Server config file./config.yamloverridable via CONFIG_PATH
Server SQLite DBopenflare.dboverridable via database.sqlite_path / SQLITE_PATH
Agent config file./agent.jsonoverridable via -config
One-click install Agent config/opt/openflare-agent/agent.jsondefault path generated by the install script
Agent data dirdata next to the config fileoverridable via data_dir
Relay config file./relay.jsonoverridable via -config
One-click install Relay config/opt/openflare-relay/relay.jsondefault path generated by the install script
Client config file./flared.jsonoverridable via -config
One-click install Client config/opt/openflared/flared.jsondefault path generated by the install script

Server CLI Args

bash
# specify a config file when starting the Server
CONFIG_PATH=/path/to/custom-config.yaml ./openflare-server all

Supported sub-service commands (fused/single-process mode):

  • all: starts all services in one process (API + Worker + Scheduler, default).
  • api: starts only the API service for the admin panel and node communication.
  • worker: starts only the background-task Worker service.
  • scheduler: starts only the scheduled-task Scheduler service.

Server Env Vars vs Config File

All Server core base config is defined in config.yaml, and every field supports env-var overrides (env vars take precedence over the YAML file).

1. App Basic Config (app:)

YAML pathOverride env varDescriptionDefault
app.app_nameAPP_NAMEapplication identifier nameopenflare
app.envAPP_ENVruntime env (development / testing / production)production
app.addrAPP_ADDRservice listen address and port:3000
app.node_idAPP_NODE_IDSnowflake node ID (0-1023); must be unique in multi-instance deploys1
app.api_prefixAPP_API_PREFIXroute prefix for admin panel and API/api
app.graceful_shutdown_timeoutAPP_GRACEFUL_SHUTDOWN_TIMEOUTgraceful shutdown wait timeout (seconds)30
app.session_cookie_nameAPP_SESSION_COOKIE_NAMEsession cookie nameopenflare_session_id
app.session_secretAPP_SESSION_SECRETsession signature secret; must be a random long string in productionnone (random)
app.session_domainAPP_SESSION_DOMAINshared-session cookie scope domainempty
app.session_ageAPP_SESSION_AGEbrowser session lifetime (seconds)86400 (24h)
app.session_http_onlyAPP_SESSION_HTTP_ONLYenable the cookie's HttpOnly attributefalse
app.session_secureAPP_SESSION_SECUREenable the cookie's Secure attribute (HTTPS)false

2. Relational DB Config (database:)

YAML pathOverride env varDescriptionDefault
database.enabledDB_ENABLEDenable PostgreSQL; false falls back to SQLitetrue
database.sqlite_pathSQLITE_PATHSQLite DB file path when PostgreSQL disabledopenflare.db
database.hostDB_HOSTPostgreSQL host127.0.0.1
database.portDB_PORTPostgreSQL port5432
database.usernameDB_USERNAMEPostgreSQL usernameopenflare
database.passwordDB_PASSWORDPostgreSQL passwordreplace-with-strong-password
database.databaseDB_NAMEPostgreSQL database nameopenflare
database.ssl_modeDB_SSL_MODEPostgreSQL SSL modedisable
database.time_zoneDB_TIMEZONEDB session timezoneUTC
database.log_levelDB_LOG_LEVELGORM SQL log level (info / warn / error / silent)info
database.max_idle_connDB_MAX_IDLE_CONNconnection pool max idle16
database.max_open_connDB_MAX_OPEN_CONNconnection pool max open128

3. Redis Config (redis:)

YAML pathOverride env varDescriptionDefault
redis.enabledREDIS_ENABLEDenable Redis. The async queue and sync depend on it; must be ontrue
redis.addrsREDIS_ADDRRedis single/cluster address array (env var sets a single address)["127.0.0.1:6379"]
redis.usernameREDIS_USERNAMERedis username (if any)empty
redis.passwordREDIS_PASSWORDRedis passwordempty
redis.dbREDIS_DBRedis logical DB number0
redis.key_prefixREDIS_KEY_PREFIXsystem key prefix in Redisopenflare:
redis.pool_sizeREDIS_POOL_SIZERedis connection pool size100
redis.maint_notificationsREDIS_MAINT_NOTIFICATIONSenable Redis maintenance-notifications negotiation at startup; keep off when compatibility is unclear; restart needed after changefalse

4. ClickHouse Config (clickhouse:)

Note: these are OpenFlare client connection params. For ClickHouse server small-host tuning: curl performance.xml to ./config/clickhouse/, then mount it as a single file at the container's config.d/performance.xml — see Start the Server.

YAML pathOverride env varDescriptionDefault
clickhouse.enabledCLICKHOUSE_ENABLEDenable ClickHouse. Node metrics and access logs are written here at scale. Off by default: missing config or false disables it and the primary DB handles logs/metrics; explicit true or setting CLICKHOUSE_HOST enables itfalse
clickhouse.hostsCLICKHOUSE_HOSTClickHouse cluster address array (env var sets a single address)["127.0.0.1:9000"]
clickhouse.usernameCLICKHOUSE_USERNAMEClickHouse usernamedefault
clickhouse.passwordCLICKHOUSE_PASSWORDClickHouse passwordreplace-with-clickhouse-password
clickhouse.databaseCLICKHOUSE_NAMEClickHouse database nameopenflare
clickhouse.max_idle_conn-client idle connections (low by default for small hosts)8
clickhouse.max_open_conn-client max open connections16
clickhouse.conn_max_lifetime-connection max lifetime (seconds)3600
clickhouse.dial_timeout-dial timeout (seconds)5
clickhouse.block_buffer_size-native-protocol block buffer rows32

5. System Log Config (log:)

YAML pathOverride env varDescriptionDefault
log.levelLOG_LEVELglobal log level (debug / info / warn / error / fatal)info
log.formatLOG_FORMATlog format (console readable / json structured)console
log.outputLOG_OUTPUTlog output (stdout / file)stdout
log.file_path-log file path when output is file./logs/app.log
log.max_size-max single log file size (MB); auto-rotates beyond100
log.max_age-max days to keep rotated log files30

6. Async Task Worker Queue Config (worker:)

YAML pathOverride env varDescriptionDefault
worker.concurrencyWORKER_CONCURRENCYmax concurrent tasks consumed by the background Worker20
worker.strict_priorityWORKER_STRICT_PRIORITYstrictly assign consumer threads by queue priority (else weighted round-robin)false

7. Tracing OpenTelemetry Config (otel:)

YAML pathOverride env varDescriptionDefault
otel.sampling_rateOTEL_SAMPLING_RATEglobal OTel sampling rate. 0.0 no sampling, 1.0 full tracing0.0
otel.tracer_nameOTEL_TRACER_NAMEglobal OTel tracer instance namegithub.com/Rain-kl/OpenFlare

Runtime System Config (SystemConfig)

These items are stored in the w_system_configs table. Changes actively notify Redis cache invalidation for dynamic hot-update; admins manage them via the admin UI.

1. Base & Business Runtime Config

KeyTypeDescriptionDefault
site_namestringadmin platform display nameOpenFlare
server_addressstringpublic access address of the admin console, used to assemble OAuth callbacks and download linksempty
password_login_enabledboolallow admin login with normal username/passwordtrue
registration_enabledboolallow self-service new-user registration (off by default; root invites or distributes)false
password_register_enabledboolallow direct email/password registration on the frontendfalse
oidc_login_enabledboolenable OIDC (SSO) third-party passwordless logintrue
max_api_keys_per_userintmax API keys (API Tokens) per admin user5
login_session_ttl_hoursintuser session lifetime in the browser cookie (hours). 0 = clear on browser close0
upload_allowed_extensionsstringallowed upload file extensions (comma-separated; empty = unlimited)jpg,png,webp
file_access_whitelistjsonfile business types allowed for public download/access without login (JSON array)["avatar"]
disk_cache_max_size_mbintplatform local disk cache max storage (MB)100
disk_cache_ttl_minutesintlocal disk cache object default TTL (minutes)60
disk_cache_lru_enabledbooluse LRU eviction when local disk cache space is lowtrue
update_upstream_repositorystringGitHub repo for self-update detectionRain-kl/OpenFlare
storage_configjsonobject-storage structured config (JSON): local disk and AWS S3-compatible storagelocal-storage mode
relay_frps_web_ui_enabledboolenable the embedded frps traffic-monitoring Web UI on relay nodesfalse
relay_frps_web_ui_portinthost port the relay frps monitoring panel listens on17500
search_engine_indexing_enabledboolallow search engines to crawl/index the sitefalse
menu_display_configstringmenu display structured config (JSON string, format {url: enabled}){}
pages_max_package_size_mbintPages deployment package upload size cap (MiB, range 1–2048)100
pages_max_history_countintmax historical deployments kept per Pages project (0 = unlimited)20

2. Human Verification (PoW Captcha)

KeyTypeDescriptionDefault
cap_login_enabledboolrequire local PoW anti-brute-force human verification on the login pagefalse
cap_auto_solveboolauto-start background PoW computation on page load (no manual click)true
cap_challenge_countintnumber of PoW challenges required. More = longer compute (recommended 1–5)1
cap_challenge_difficultyintPoW hash prefix-match difficulty per challenge. Recommended 3-54
cap_challenge_sizeintchallenge salt length32
cap_challenge_ttl_secondsintmax valid time to submit the computed challenge (seconds); auto-invalidates on timeout600
cap_token_ttl_secondsintvalidity of the login credential after solving (seconds); must log in within the window1200

3. SMTP Email Config

KeyTypeDescriptionDefault
smtp_hoststringSMTP server addressempty
smtp_portintSMTP port (usually 465 SSL or 587 STARTTLS)465
smtp_usernamestringSMTP account emailempty
smtp_passwordstringSMTP account auth password/cert key (encrypted on save, never echoed)empty
email_login_verification_enabledboolsend a one-time 6-digit code for second-factor auth on email loginfalse
email_register_verification_enabledboolforce email verification with a registration code for self-service registrationfalse

4. Node & Agent Ops Runtime

KeyTypeDescriptionDefault
agent_discovery_tokenstringglobal discovery Token for one-click first-time node registrationnone (auto-generated on first visit)
agent_heartbeat_intervalintstandard heartbeat interval dispatched to all Agents (ms)3000 (3s)
agent_websocket_upgrade_enabledboolallow Agents to upgrade to a persistent WebSocket connection after HTTP heartbeat handshaketrue
node_offline_thresholdintno-response threshold (ms) after which a node is marked offline in the admin panel60000 (60s)
agent_update_repostringRelease repo source for Agent self-binary updatesRain-kl/OpenFlare
geoip_providerstringGeoIP provider, e.g. maxmind, for WAF geo analysisipinfo

5. Uptime Kuma Monitoring Sync

KeyTypeDescriptionDefault
uptime_kuma_enabledboolauto-sync generated Uptime Kuma HTTP monitors after config release/activationfalse
uptime_kuma_urlstringUptime Kuma instance access URL (with port and path)empty
uptime_kuma_usernamestringUptime Kuma admin username for sync API authempty
uptime_kuma_passwordstringUptime Kuma login password (encrypted on save, never echoed)empty
uptime_kuma_monitor_scopestringroute scope for auto-generated monitors (all sites or selected)all
uptime_kuma_selected_sitesstringselected proxied-site Site Name list to monitor (comma-separated)empty
uptime_kuma_sync_intervalintdifferential scan/calibration sync frequency to the Uptime Kuma instance (minutes)5
uptime_kuma_intervalintHTTP GET probe period of generated monitors (seconds)60
uptime_kuma_retryintmax reconnect retries after probe connection failures0
uptime_kuma_retry_intervalintpause between failed reconnect retries (seconds)60
uptime_kuma_timeoutinttimeout for an HTTP GET monitor request (seconds)48

6. OpenResty Core Main Config & Rendering Options

KeyTypeDescriptionDefault
openresty_default_server_return_statusintstatus code returned for requests hitting no matching route by default421
openresty_worker_processesstringnginx worker_processes; fixed integer or autoauto
openresty_worker_connectionsintnginx worker_connections per-process max connections4096
openresty_worker_rlimit_nofileintnginx worker_rlimit_nofile max open file descriptors65535
openresty_events_usestringevent polling engine (e.g. epoll preferred on Linux)epoll
openresty_events_multi_accept_enabledboolaccept all pending connection handshakes in one batchtrue
openresty_keepalive_timeoutintnginx keepalive_timeout (seconds)20
openresty_keepalive_requestsintmax requests per reused TCP connection1000
openresty_client_header_timeoutintread timeout for the client Request Header (seconds)15
openresty_client_body_timeoutintread timeout for the client Request Body (seconds)15
openresty_client_max_body_sizestringmax client request Body size, with a unit like 10m/50m64m
openresty_large_client_header_buffersstringbuffers for oversized request headers (e.g. 4 16k)4 16k
openresty_send_timeoutintmax interval for sending Response data to the client (seconds)30
openresty_resolversstringDNS resolver addresses/params for dynamic name resolution on nodesempty
openresty_proxy_connect_timeoutintTCP handshake timeout to the origin (seconds)3
openresty_proxy_send_timeoutintmax interval for writing request data to the origin (seconds)60
openresty_proxy_read_timeoutintmax wait for origin response data (seconds)60
openresty_websocket_enabledboolauto-load WebSocket-supporting globals and headers in the HTTP sectiontrue
openresty_http3_enabledboolrender HTTP/3 QUIC dual-stack listen capability in generated nginx listenstrue
openresty_proxy_request_buffering_enabledboolfully buffer the client Request Body before forwarding to the originfalse
openresty_proxy_buffering_enabledboolbuffer large origin Response data before forwarding to the usertrue
openresty_proxy_buffersstringnginx proxy response buffer count/size (e.g. 16 16k)16 16k
openresty_proxy_buffer_sizestringbuffer for origin Response Header8k
openresty_proxy_busy_buffers_sizestringBusy-state buffer cap when response stream is oversized64k
openresty_gzip_enabledboolenable gzip real-time compression on eligible contenttrue
openresty_gzip_min_lengthintfile size threshold for gzip; below it, skip to save CPU1024 (1KB)
openresty_gzip_comp_levelintgzip level 1-9; higher = more compression, more CPU5
openresty_cache_enabledboolinitialize the proxy cache region (Proxy Cache Path) in global configfalse
openresty_cache_pathstringproxy cache temp physical dir on the node__OPENFLARE_PROXY_CACHE_PATH__
openresty_cache_levelsstringproxy cache directory tree level layout1:2
openresty_cache_inactivestringtime after which an unaccessed cache file is invalidated from disk30m
openresty_cache_max_sizestringmax disk quota for the proxy cache region on a node1g
openresty_cache_key_templatestringdefault proxy cache key template$scheme$host$request_uri
openresty_cache_lock_enabledboolqueue/lock origin connections on high-concurrency cache misses for the same expired resourcetrue
openresty_cache_lock_timeoutstringmax queue wait for the proxy cache lock5s
openresty_cache_use_stalestringserve stale cache on specific origin errors (500/502/504 etc.)error timeout updating http_500 http_502 http_503 http_504
openresty_default_limit_conn_per_serverintdefault concurrent-connection cap per server when a site has no config; 0 = off0
openresty_default_limit_conn_per_ipintdefault per-IP concurrent cap when a site has no config; 0 = off0
openresty_default_limit_ratestringdefault per-request bandwidth when a site has no config (e.g. 512k); empty = offempty
openresty_default_limit_req_per_ipstringdefault per-IP request rate limit when a site has no config (e.g. 10r/s, 100r/m); empty = offempty
openresty_main_config_templatestringfully rewrite the OpenResty nginx.conf skeleton templateempty (built-in default skeleton)

7. Origin Error Page

Global origin error page config; written into the config version snapshot and distributed to edge Agents on release/rollback. Only affects reverse proxy routes; Pages static routes are unaffected. Admin entry:「Website Management → Error Page」. Design: Origin Error Page Design.

KeyTypeDescriptionDefault
origin_error_page_enabledboolenable the global origin error page. When on, matching status codes from origin/gateway are replaced by custom/default HTML with the HTTP status kept; when off, no directives are generated and pass-through resumes. Requires a config release to take effecttrue
origin_error_page_get_onlyboolonly apply to GET requests. When on, only matching GET error statuses return the custom error page; POST/PUT and other methods pass through the origin response (original status and body unchanged)false
origin_error_page_status_codesjsonstatus code tag JSON array triggering the error page. Supports single codes (e.g. 522) and closed ranges (e.g. 500-599); single codes and range endpoints must be in 400–599, with lo ≤ hi. The expanded result must not be empty when enabled["500-599"]
origin_error_page_htmlstringcustom error page HTML. Empty uses the built-in OpenFlare default template (minimal white); supports (matches the HTTP status) and (request Host). Max 256 KiB (bytes). Don't embed untrusted third-party scriptsempty

8. Log Database

Runtime config after log-store decoupling: the log primary DB is managed by the「Switch Log Database」task (internal/protected keys, forbidden for manual admin edits); access-log retention days are set per storage DB in business config; performance metrics (CPU/memory/disk/network) decay fast and use a shared short retention independent of the access-log retention config.

KeyTypeDescriptionDefault
log_databasestringcurrent log primary DB (postgres / sqlite / clickhouse). Internal protected key: only written by the「Switch Log Database」migration task; admins can't create/modify manuallyfollows the primary DB (postgres when PostgreSQL enabled, else sqlite; clickhouse preferred when ClickHouse enabled)
log_db_migrationstringlog migration freeze marker (migrating or empty). Internal protected key: only the migration task writes it; while set, log writes return 503「log DB migrating, not writable」empty
log_retention_days_postgresintaccess-log retention days in the PostgreSQL log DB (expired logs deleted by the daily garbage-collection task)30
log_retention_days_sqliteintaccess-log retention days in the SQLite log DB30
log_retention_days_clickhouseintaccess-log retention days in the ClickHouse log DB30
metric_retention_daysintperformance metric (CPU/memory/disk/network) retention days; shared short retention across the three DBs (independent of access-log retention)3

Frontend Build Env Vars

Env varPurposeDefault
WAVELET_BACKEND_URLbackend address for server-side rendering and dev proxyhttp://localhost:3000
NEXT_PUBLIC_WAVELET_BACKEND_URLbackend address for browser API requests; empty = same-originempty
NEXT_PUBLIC_APP_VERSIONdisplayed frontend versiondev

Agent Env Vars

Env varPurposeDefault
LOG_LEVELAgent log levelinfo
OPENFLARE_SERVER_URLcontrol-plane address, overrides agent.jsonempty
OPENFLARE_AGENT_TOKENnode-specific auth Token, overrides agent.jsonempty
OPENFLARE_DISCOVERY_TOKENfirst-time auto-registration Token, overrides agent.jsonempty
OPENFLARE_NODE_NAMEnode name, overrides agent.jsonempty
OPENFLARE_NODE_IPnode IP, overrides agent.jsonempty
OPENFLARE_DATA_DIRAgent data dir, overrides agent.jsonempty
OPENFLARE_OPENRESTY_PATHOpenResty binary path, overrides agent.jsonempty
OPENFLARE_PAGES_DIRPages static deployment dir, overrides agent.jsonempty
OPENFLARE_HEARTBEAT_INTERVALheartbeat interval, overrides agent.jsonempty
OPENFLARE_REQUEST_TIMEOUTrequest timeout, overrides agent.jsonempty
OPENFLARE_OPENRESTY_OBSERVABILITY_PORTlocal observability port, overrides agent.jsonempty
OPENFLARE_MMDB_PATHWAF GeoIP mmdb path, overrides agent.jsonempty
OPENFLARE_MMDB_UPDATE_INTERVALWAF GeoIP mmdb update interval, overrides agent.jsonempty
OPENFLARE_MMDB_DOWNLOAD_URLWAF GeoIP mmdb download URL, overrides agent.jsonempty
OPENFLARE_CITY_MMDB_PATHWAF City MMDB path, overrides agent.jsonempty
OPENFLARE_CITY_MMDB_DOWNLOAD_URLWAF City MMDB download URL, overrides agent.jsonempty

Agent CLI Args and Config Fields

CLI Args

  • -config: Agent config file path, default ./agent.json.

Config File Fields (agent.json)

FieldPurposeRequiredDefault/Behavior
server_urlcontrol-plane addressyesnone
agent_tokennode-specific auth Tokenone of two with discovery_tokenempty
discovery_tokenglobal Token for first-time auto-registrationone of two with agent_tokenempty
node_namenode namenohostname automatically
node_ipnode IPnoauto-detected, prefers the public egress IP; falls back to local NIC detection on failure
openresty_pathOpenResty binary pathnoopenresty
openresty_observability_portlocal observability & OpenResty health-check portno18081
data_dirAgent data dirnodata next to the config file
main_config_pathOpenResty main config write pathnodata_dir/etc/nginx/nginx.conf
route_config_pathroute config write pathnodata_dir/etc/nginx/conf.d/openflare_routes.conf
access_log_pathOpenResty access log pathnodata_dir/var/log/openflare/access.log
cert_dircertificate write dirnodata_dir/etc/nginx/certs
openresty_cert_dircertificate dir read by the OpenResty confignosame as cert_dir
lua_dirLua scripts & static assets write dirnodata_dir/etc/nginx/lua
openresty_lua_dirLua dir read by the OpenResty confignosame as lua_dir
runtime_config_dirAgent runtime config write dir, e.g. pow_config.jsonnodata_dir/etc/openflare
pages_dirPages deployment package extraction & current deploy dirnodata_dir/var/lib/openflare/pages
mmdb_pathWAF GeoIP mmdb file pathnodata_dir/etc/openflare/GeoLite2-Country.mmdb
city_mmdb_pathWAF City MMDB file pathnodata_dir/etc/openflare/GeoLite2-City.mmdb
mmdb_update_intervalWAF GeoIP mmdb update intervalno86400000 ms (24h)
mmdb_download_urlWAF GeoIP mmdb periodic update URLnoGeoLite2 Country update URL; first download when the disk file is missing (Docker images COPY default-path files)
city_mmdb_download_urlWAF City MMDB periodic update URLnoGeoLite2 City update URL; first download when the disk file is missing (Docker images COPY default-path files)
observability_buffer_pathobservability backfill buffer file pathnodata_dir/var/lib/openflare/observability-buffer.json
observability_replay_minutesauto-backfill recent observability window (minutes)no60
state_pathAgent local state file pathnodata_dir/var/lib/openflare/agent-state.json
heartbeat_intervalheartbeat intervalno3000 ms
request_timeoutHTTP request timeoutno10000 ms

Relay Env Vars and Config Fields

Env Vars

  • LOG_LEVEL: Relay log level, default info.
  • Supports OPENFLARE_SERVER_URL, OPENFLARE_AGENT_TOKEN, OPENFLARE_DISCOVERY_TOKEN, OPENFLARE_NODE_NAME, OPENFLARE_NODE_IP, OPENFLARE_DATA_DIR, OPENFLARE_FRPS_PATH overrides.

CLI Args

  • -config: Relay config file path, default ./relay.json.

Config File Fields (relay.json)

FieldPurposeRequiredDefault/Behavior
server_urlcontrol-plane addressyesnone
agent_tokenrelay node-specific auth Tokenone of two with discovery_tokenempty
discovery_tokenglobal Token for first-time auto-registrationone of two with agent_tokenempty
node_namenode namenohostname automatically
node_iprelay node IP for receiving tunnel trafficnoauto-detected, prefers the public egress IP; falls back to NIC detection on failure
frps_pathfrps binary pathnofrps (found on system PATH)
data_dirRelay runtime data dirnodata next to the config file
state_pathRelay local state file pathnodata_dir/relay-state.json
heartbeat_intervalheartbeat intervalno10000 ms
request_timeoutHTTP request timeoutno10000 ms

OpenFlared (Client) Env Vars and Config Fields

Env Vars

  • LOG_LEVEL: Client log level, default info.
  • Supports OPENFLARE_SERVER_URL, OPENFLARE_TUNNEL_TOKEN, OPENFLARE_DATA_DIR, OPENFLARE_FRPC_PATH overrides.

CLI Args

  • -config: Client config file path, default ./flared.json.

Config File Fields (flared.json)

FieldPurposeRequiredDefault/Behavior
server_urlcontrol-plane addressyesnone
tunnel_tokentunnel-specific auth Tokenyesnone
frpc_pathfrpc binary pathnofrpc (found on system PATH)
data_dirClient runtime data dirnodata next to the config file
state_pathClient local state file pathnodata_dir/flared-state.json
heartbeat_intervalheartbeat intervalno10000 ms
sync_intervalconfig pull/sync intervalno30000 ms
request_timeoutHTTP request timeoutno10000 ms

Released under the Apache License 2.0