Skip to main content

Environment Variables

All edgeProxy settings are configured via environment variables.

Core Settings

VariableDefaultDescription
EDGEPROXY_LISTEN_ADDR0.0.0.0:8080TCP address to listen on
EDGEPROXY_DB_PATHrouting.dbPath to SQLite routing database
EDGEPROXY_REGIONsaLocal POP region identifier

Database Sync

VariableDefaultDescription
EDGEPROXY_DB_RELOAD_SECS5Interval to reload routing.db (seconds)

Client Affinity

VariableDefaultDescription
EDGEPROXY_BINDING_TTL_SECS600Client binding TTL (10 minutes)
EDGEPROXY_BINDING_GC_INTERVAL_SECS60Garbage collection interval

Debugging

VariableDefaultDescription
DEBUG(unset)Enable debug logging when set

TLS Settings

VariableDefaultDescription
EDGEPROXY_TLS_ENABLEDfalseEnable TLS server
EDGEPROXY_TLS_LISTEN_ADDR0.0.0.0:8443TLS listen address
EDGEPROXY_TLS_CERT(none)Path to TLS certificate (PEM)
EDGEPROXY_TLS_KEY(none)Path to TLS private key (PEM)

Internal DNS Settings

VariableDefaultDescription
EDGEPROXY_DNS_ENABLEDfalseEnable DNS server
EDGEPROXY_DNS_LISTEN_ADDR0.0.0.0:5353DNS listen address
EDGEPROXY_DNS_DOMAINinternalDNS domain suffix

Auto-Discovery API Settings

VariableDefaultDescription
EDGEPROXY_API_ENABLEDfalseEnable Auto-Discovery API
EDGEPROXY_API_LISTEN_ADDR0.0.0.0:8081API listen address
EDGEPROXY_HEARTBEAT_TTL_SECS60Backend heartbeat TTL

Built-in Replication Settings

VariableDefaultDescription
EDGEPROXY_REPLICATION_ENABLEDfalseEnable built-in replication
EDGEPROXY_REPLICATION_NODE_ID(hostname)Unique node identifier
EDGEPROXY_REPLICATION_GOSSIP_ADDR0.0.0.0:4001UDP address for gossip protocol
EDGEPROXY_REPLICATION_TRANSPORT_ADDR0.0.0.0:4002QUIC address for data sync
EDGEPROXY_REPLICATION_BOOTSTRAP_PEERS(none)Comma-separated list of peer addresses
EDGEPROXY_REPLICATION_GOSSIP_INTERVAL_MS1000Gossip ping interval
EDGEPROXY_REPLICATION_SYNC_INTERVAL_MS5000Sync flush interval
EDGEPROXY_REPLICATION_CLUSTER_NAMEedgeproxyCluster name for isolation
EDGEPROXY_REPLICATION_MODEprimaryNode mode: primary or replica
EDGEPROXY_REPLICATION_MDNS_ENABLEDtrueEnable mDNS auto-discovery
EDGEPROXY_REPLICATION_MDNS_SERVICE_TYPE_edgeproxy._udp.local.mDNS service type

See Built-in Replication for detailed documentation.

GeoIP

The MaxMind GeoLite2 database is embedded in the binary - no external download or configuration required.

Country to Region Mapping

Default mapping in state.rs:

match iso_code {
// South America
"BR" | "AR" | "CL" | "PE" | "CO" | "UY" | "PY" | "BO" | "EC" => "sa",

// North America
"US" | "CA" | "MX" => "us",

// Europe
"PT" | "ES" | "FR" | "DE" | "NL" | "IT" | "GB" | "IE" | "BE" | "CH" => "eu",

// Default fallback
_ => "us",
}

Hot Reload

The routing database is automatically reloaded every EDGEPROXY_DB_RELOAD_SECS seconds. To update configuration:

  1. Modify the SQLite database:

    sqlite3 routing.db "UPDATE backends SET healthy=0 WHERE id='sa-node-1'"
  2. Wait for reload (check logs):

    INFO edge_proxy::db: routing reload ok, version=5 backends=9

No restart required.

Logging

Log Levels

  • INFO (default): Startup messages, routing reloads
  • DEBUG (when DEBUG=1): Connection details, backend selection

Sample Output

INFO edge_proxy: starting edgeProxy region=sa listen=0.0.0.0:8080
INFO edge_proxy::proxy: edgeProxy listening on 0.0.0.0:8080
INFO edge_proxy::db: routing reload ok, version=1 backends=9
DEBUG edge_proxy::proxy: proxying 10.10.0.100 -> sa-node-1 (10.10.1.1:8080)