Skip to main content

Quick path: golain scaffold (dev and SQLite sync)

For Golain SQLite replication, the fastest path is golain omega scaffold or the TUI Deploy Omega wizard. Both download Omega + SQLite deps from CDN, issue MQTT certificates, and write ready-to-run config.
Use --transport=tls when QUIC fails against your broker. The TUI wizard offers the same transport choice.
The TUI wizard additionally generates systemd, launchd, OpenRC, or init.d unit files. → Omega deploy guide

Production: client-specific binary

Production deployments often use client-specific binaries — connection and modules are embedded at build time. Only secrets and device identity come from environment variables.
Copy the binary to the device. No YAML file required on disk when config is embedded.

Linux (systemd)

Create /etc/systemd/system/omega.service:
Enable:
When using scaffold output, the TUI wizard writes a unit file under your --out directory with install commands.

macOS (launchd)

Install binary to /usr/local/bin/omega, create ~/Library/LaunchAgents/io.golain.omega.plist with EnvironmentVariables for OMEGA_* vars, then:
See Omega repo docs/deployment.md for full plist template.

Windows Service

Use sc create or NSSM to register omega.exe as a service. Set OMEGA_* environment variables in the service configuration.

Docker (single container)

Prefer host networking or explicit MQTT DNS when bridging to on-prem brokers.

Production checklist

  • signed_control.enabled: true in embedded client config
  • TLS/mTLS configured with valid CA trust
  • security.capabilities lists only required modules
  • rpc.allowed_commands minimized
  • expose_sensitive_telemetry: false unless required
  • Secrets in env vars or secret manager — not in unit files committed to git
  • Device registered in Golain console before first connect (or JITR bootstrap cert ready)
  • SQLite deps installed when using replication (install-sqlite-deps.sh or scaffold)
Remote control · Omega setup for SQLite sync