Docs  /  Configuration

Configuration

All configurable environment variables live in .env at the project root. Services load it automatically at startup via python-dotenv; Docker Compose reads it the same way.

Quick start

cp .env.example .env
# Edit .env and fill in any required values

Never commit .env. It's in .gitignore. Only commit .env.example with placeholder values.

Precedence

Each service's run.py calls load_dotenv() against the project-root .env before applying its config.yaml defaults. Highest priority first:

  1. Shell environment (already-exported vars)
  2. .env file (loaded by python-dotenv)
  3. config.yaml defaults

n8n automation (port 5679)

VariableRequiredDefaultDescription
WYLDE_N8N_EMAILNoadmin@wylde.localn8n admin login email.
WYLDE_N8N_PASSWORDYesn8n admin password.
WYLDE_N8N_API_KEYNoAPI key (preferred over password auth when set).
WYLDE_N8N_BASIC_AUTH_PASSWORDNoHTTP basic-auth password for the n8n reverse-proxy layer.
WYLDE_N8N_URLNohttp://127.0.0.1:5678URL n8n is reachable on.

Device gate / Fletch web auth (port 7000)

VariableRequiredDefaultDescription
WYLDE_FLETCH_USERNoadminUsername for the Fletch web basic-auth layer.
WYLDE_FLETCH_PASSYesPassword for the Fletch web basic-auth layer.

Graph (wylde-graph, ports 7474 / 7687)

VariableRequiredDefaultDescription
GRAPH_USERNoneo4jDatabase username.
GRAPH_PASSWORDNoDatabase password (required if auth enabled).
GRAPH_BOLT_URLNobolt://127.0.0.1:7687Bolt connection URL.

WireGuard VPN (wylde-vpn — optional)

VariableRequiredDefaultDescription
VPN_ENDPOINTYes if VPN enabledVPN server host:port.
VPN_PEER_PUBKEYYes if VPN enabledWireGuard public key of the VPN server.
VPN_PRIVATE_KEYNoauto-generatedWireGuard private key for this device.
VPN_TUNNEL_ADDRNo10.8.0.2/24Tunnel IP address for this device.
VPN_DNSNo1.1.1.1DNS server inside the VPN tunnel.
VPN_ALLOWED_IPSNo0.0.0.0/0, ::/0IP ranges routed through the VPN.

HashiCorp Vault (security-api, optional)

Only needed when SECRETS_PROVIDER=vault.

VariableRequiredDefaultDescription
SECRETS_PROVIDERNofileBackend: file or vault.
VAULT_ADDRWhen vaultVault server URL.
VAULT_TOKENWhen vaultVault authentication token.
VAULT_MOUNT_PATHNosecretVault KV mount path.
VAULT_SECRET_PATHNoapp/prodPath within the mount for app secrets.
VAULT_TIMEOUTNo30Vault request timeout (seconds).
VAULT_SSL_VERIFYNotrueVerify Vault TLS certificate.

Ollama (shared)

VariableRequiredDefaultDescription
OLLAMA_URLNohttp://127.0.0.1:11434Ollama API base URL.

RAG (wylde-rag, port 8008)

VariableRequiredDefaultDescription
EMBED_MODELNonomic-embed-textOllama model used for embeddings.
EMBED_DIMNo768Embedding vector dimension.
EMBED_BATCH_SIZENo32Documents per embedding batch.

Captioner (wylde-caption, port 8015)

VariableRequiredDefaultDescription
CAPTION_BACKENDNoflorenceCaptioning backend: florence or qwen.
CAPTION_DEVICENocudaInference device (cuda, cpu).
CAPTION_DTYPENofloat16Torch dtype (float16, bfloat16, float32).

Trainer (wylde-trainer, port 8013)

VariableRequiredDefaultDescription
DATASETS_DIRNoservice defaultPath to training dataset storage.
CHECKPOINT_DIRNoservice defaultPath to model checkpoint output.

Discovery

VariableRequiredDefaultDescription
WYLDE_DISCOVERYNomdnsDiscovery backend: mdns, consul, or both.
WYLDE_TRANSPORTNopipeCall transport: pipe (default) or http.
CONSUL_HTTP_ADDRNohttp://127.0.0.1:8500Consul agent HTTP address (only when Consul is in use).
CONSUL_ADVERTISE_ADDRESSNohost.docker.internalAddress advertised from inside Docker.

Logging

VariableRequiredDefaultDescription
LOG_LEVELNoINFOGlobal log level (DEBUG, INFO, WARNING, ERROR).