# OpenBoatmobile Deployment Configuration # Usage: obm deploy --config deploy.yaml # # This file defines all configuration for non-interactive CI/CD deployment. # All required fields must be provided. Optional fields have sensible defaults. # Required: Agent framework selection # Options: hermes, openclaw framework: hermes # Cloud provider configuration provider: # Required: Cloud provider name # Options: hetzner, digitalocean name: hetzner # Required: API token (sensitive) # Hetzner: Get from https://console.hetzner.cloud/ → Security → API Tokens # DigitalOcean: Get from https://cloud.digitalocean.com/account/api/tokens token: "your-api-token-here" # SSH key configuration ssh: # For Hetzner: Key name as shown in Hetzner Cloud Console names: - "my-ssh-key" # For DigitalOcean: Key fingerprints # fingerprints: # - "aa:bb:cc:dd:ee:ff" # Server configuration server: # Server hostname (default: agent-gateway) name: "my-agent-gateway" # Agent name for display (default: same as framework) agent_name: "hermes" # Timezone (default: UTC) timezone: "UTC" # === Hetzner-specific === # Location: ash (Ashburn, VA), fsn1 (Falkenstein), nbg1 (Nuremberg), hel1 (Helsinki) location: "ash" # Server type: cpx21 (recommended), cx23, cpx31 (default: cpx21) type: "cpx21" # === DigitalOcean-specific === # region: "nyc3" # size: "s-2vcpu-4gb" # Inference provider configuration inference: # Required: Inference provider # Options: venice, openrouter, openai, anthropic, custom provider: venice # Required: API key (sensitive) # Venice: Get from https://venice.ai → Settings → API Keys api_key: "your-venice-api-key" # Optional: Base URL (required for custom provider) # base_url: "https://api.custom.com/v1" # Optional: Primary model (default depends on provider) primary_model: "zai-org-glm-5" # Optional: Model display name primary_model_name: "GLM 5" # Optional: Fallback models in priority order fallback_models: # - "openai/gpt-4o" # Optional: Fallback providers with their own API keys # fallbacks: # - provider: openai # api_key: "sk-..." # - provider: openrouter # api_key: "sk-or-..." # Optional: Tailscale VPN configuration tailscale: enabled: true # Required if enabled: Auth key from https://login.tailscale.com/admin/settings/keys auth_key: "tskey-auth-..." # Optional: Tailnet domain (default: tailnet) tailnet: "mytailnet" # Optional: Discord integration discord: enabled: false # Required if enabled: Bot token from Discord Developer Portal # bot_token: "" # Required if enabled: Server/guild ID # server_id: "" # Optional: Allowed user IDs # user_ids: # - "123456789" # Hermes-specific: # home_channel: "" # auto_thread: true # Optional: Hermes-specific configuration # hermes: # docker_enabled: true # Optional: OpenClaw-specific configuration # openclaw: # version: "lts" # node_version: "22" # enable_swap: true # swap_size_gb: 2 # enable_fail2ban: true # enable_unattended_upgrades: true # Optional: Hermes gateway configuration # gateway: # token: "" # allowed_users: "" # allow_all: true # Optional: Additional integrations # integrations: # brave_search_api_key: ""