Configuration

Configuration

Nvelox uses a single YAML configuration file. By default it looks for nvelox.yaml in the current directory, or pass a path with --config.

Top-Level Sections

  • server — Process settings (pid_file, user, group, workers)
  • listeners — Incoming connection endpoints
  • backends — Upstream server pools
  • logging — Access and error logging
  • metrics — Prometheus metrics endpoint
  • admin — Admin API server
  • include — Glob path for additional config files

Hot Reload

Send SIGHUP to the nvelox process to reload config without dropping connections. The new config is validated before swap — if it fails validation, the old config stays active.

Tip: You can also trigger a reload via the Admin API at POST /api/v1/reload.
nvelox.yaml — Full Example
# nvelox.yaml — Complete configuration example
version: "2"

server:
  pid_file: /var/run/nvelox/nvelox.pid

logging:
  level: info
  access_log: /var/log/nvelox/access.log
  error_log: /var/log/nvelox/error.log

metrics:
  enabled: true
  bind: ":9090"
  path: /metrics

admin:
  enabled: true
  bind: "127.0.0.1:9091"

listeners:
  - name: http_public
    protocol: http
    bind: ":8080"

  - name: https_public
    protocol: https
    bind: ":8443"
    tls:
      cert: /etc/nvelox/tls/server.crt
      key: /etc/nvelox/tls/server.key

backends:
  - name: app_servers
    balance: roundrobin
    servers:
      - "10.0.1.10:8080"
      - "10.0.1.11:8080"
    health_check:
      active:
        type: http
        interval: 10s
        timeout: 5s
        path: /healthz

include: /etc/nvelox/conf.d/*.yaml
Hot reload
# Reload via signal
kill -HUP $(pidof nvelox)

# Or via admin API
curl -X POST http://127.0.0.1:9091/api/v1/reload
Iris