Skip to content

Configuration Reference

Both server and agent are configured via HCL files passed with --config. Sensitive values can be supplied as environment variables using $VAR_NAME syntax anywhere in the config.


Server

hcl
server {
  listen_grpc  = ":7070"
  listen_http  = ":7071"
  agent_tokens = ["$FLUKE_TOKEN"]

  git { ... }
  tls { ... }
  drift { ... }
  event_store { ... }
  log { ... }
}

server

FieldDefaultDescription
listen_grpc":7070"Address for the gRPC server
listen_http":7071"Address for the web UI and HTTP API
agent_tokensRequired. List of accepted agent tokens

server.git

FieldDefaultDescription
urlRequired. Repository URL
branch"main"Branch to track
poll_interval"60s"How often to poll for changes
manifest_glob"**/*.fluke.hcl"Glob to find manifest files
ssh_key_fileSSH private key for private repos
basic_auth_userUsername for HTTPS basic auth
basic_auth_passwordPassword for HTTPS basic auth

server.tls

FieldDefaultDescription
enabledtrueSet false for local development only
cert_filePath to TLS certificate
key_filePath to TLS private key

server.drift

FieldDefaultDescription
policy"remediate"Default drift policy: remediate, remediate_and_alert, or alert_only
alert_webhookWebhook URL; required for alert policies

server.event_store

FieldDefaultDescription
backend"memory"memory or redis

memory sub-block:

FieldDefaultDescription
max_events_per_agent100Ring buffer size per agent

redis sub-block:

FieldDefaultDescription
urlRequired. Redis connection URL
prefix"fluke"Key namespace prefix
ttl"168h"Event expiry duration

server.log

FieldDefaultDescription
level"info"debug, info, warn, or error
format"text"text or json

Agent

hcl
agent {
  server_url = "grpcs://fluke.internal:7070"
  token      = "$FLUKE_TOKEN"
  name       = "web-01"

  labels = {
    role = "web"
    env  = "production"
  }

  tls { ... }
  execution { ... }
  log { ... }
}

agent

FieldDefaultDescription
server_urlRequired. grpcs:// for TLS, grpc:// for plaintext
tokenRequired. Pre-shared token matching a server agent_tokens entry
namesystem hostnameDisplay name in UI and CLI
labels{}Key/value labels used to match this host against task selectors

agent.tls

FieldDefaultDescription
ca_fileCA certificate for verifying the server; required for self-signed certs
insecure_skip_verifyfalseDisable cert verification. Development only.

agent.execution

FieldDefaultDescription
default_shell"/bin/bash"Shell used for shell executor commands and checks
command_timeout"5m"Maximum duration for a single command before it is killed

agent.log

Same fields as server.log.