Configuration Reference

All options can be set in config/relayly.yaml or overridden via environment variables using the RELAYLY_ prefix (e.g. RELAYLY_PORT=9090).

Full Config Reference

KeyDefaultDescription
host0.0.0.0Listen address for the relay WebSocket server
port8080Relay WebSocket port
db.path./data/relayly.dbPath to the SQLite database file
noise.key_path./data/server.noise.keyPath to the server Noise Protocol keypair
admin.enabledtrueEnable the admin UI server
admin.host127.0.0.1Admin server bind address
admin.port8081Admin server port
log.levelinfoLog verbosity: debug, info, warn, error
log.formatjsonLog format: json or console
tls.enabledfalseEnable TLS (or use a reverse proxy instead)

Example Config File

# config/relayly.yaml
host: 0.0.0.0
port: 8080

db:
  path: ./data/relayly.db

noise:
  key_path: ./data/server.noise.key

admin:
  enabled: true
  host: 127.0.0.1
  port: 8081

log:
  level: info
  format: json

tls:
  enabled: false

Environment Variables

Every config key maps to RELAYLY_<UPPER_KEY>:

RELAYLY_PORT=9090
RELAYLY_LOG_LEVEL=debug
RELAYLY_ADMIN_ENABLED=false
RELAYLY_DB_PATH=/data/custom.db

Security Checklist

Before going to production, verify:

  • Run behind TLS (Caddy / nginx)
  • Bind admin UI to 127.0.0.1 (the default, do not change to 0.0.0.0)
  • Mount /data as a persistent Docker volume
  • Back up /data/relayly.db and /data/server.noise.key
  • Rotate the server Noise keypair if the host is compromised

Warning: The admin UI has no authentication by default. Never expose it to the public internet.