Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.ilyama.golain.io/llms.txt

Use this file to discover all available pages before exploring further.

Omega is configured with a client YAML file under clients/. Production builds embed this file; development loads it via -client path/to.yaml.

Quick start

cp clients/_template.yaml clients/my-device.yaml
export OMEGA_AUTH_TOKEN=my-secret
make validate-client CLIENT=my-device

Top-level fields

FieldRequiredDescription
nameYesDeployment identifier
descriptionNoHuman-readable label
platformYeslinux, darwin, or windows
modulesYesRequired and optional module lists
securityYesAuth, signing, capabilities, quotas
connectionYes (prod)MQTT/HTTP settings — see Connect

Example minimal config

name: my-device
platform: linux

modules:
  required:
    - shadow
    - heartbeat
    - registration
    - rpc
  optional:
    - ota

security:
  auth_token_env: OMEGA_AUTH_TOKEN
  max_payload_bytes: 4096
  signed_control:
    enabled: true
    allow_legacy_token: false
  capabilities:
    shadow: true
    heartbeat: true
    rpc: true
    ota: true
  rpc:
    allowed_commands:
      - pwd
      - hostname
      - uptime

Modules

Required modules must load or the runtime exits. Optional modules are skipped if unavailable. Common modules:
ModulePurpose
shadowDevice state sync
heartbeatHealth telemetry
registrationCloud registration
otaFirmware updates
rpcRemote commands
ssh-bridgeShell access (used with golain-cli)
rtcReal-time streaming (LiveKit)
SQLite replicationEdge table sync — see Data sync
Run make codegen CLIENT=name to validate module names and dependencies.

Security

security:
  auth_token_env: OMEGA_AUTH_TOKEN    # env var name, not the secret value
  signed_control:
    enabled: true
  capabilities:                        # explicit allow per module
    shadow: true
    rpc: true
  rpc:
    allowed_commands:                    # shared by rpc + ssh-bridge
      - uptime
  max_payload_bytes: 4096
  max_storage_bytes: 131072
  expose_sensitive_telemetry: false
Never commit secrets into YAML. Reference environment variable names only.

Environment variables

VariablePurpose
OMEGA_AUTH_TOKENShared secret for control message auth
OMEGA_DEVICE_IDDevice identity for MQTT topics
OMEGA_MQTT_USERNAME / OMEGA_MQTT_PASSWORDBroker credentials
OMEGA_SIGNING_KEYOptional separate HMAC key
Module-specific vars (LiveKit, D-Bus, ROS) are documented in the Omega repo per module block.

Development vs production

ModeCommandConfig source
Devmake run CLIENT=canebotFile on disk
Prodmake build-client CLIENT=canebotEmbedded in binary
Connect to Golain · JITR