main.ymlΒΆ

---
application_id: "web-app-openclaw"
entity_name: "{{ application_id | entity_name }}"
domain: "{{ lookup('domain', application_id) }}"
http_port: "{{ lookup('config', application_id, 'services.openclaw.ports.local.http') }}"

OPENCLAW_CONTAINER: "{{ lookup('config', application_id, 'services.openclaw.name') }}"
OPENCLAW_PORT_INTERNAL: "{{ lookup('config', application_id, 'services.openclaw.ports.internal.http') }}"
OPENCLAW_URL: "{{ lookup('tls', application_id, 'url.origin') }}"
OPENCLAW_CONTROL_UI_ORIGINS: "{{ lookup('network_urls', OPENCLAW_URL) }}"
OPENCLAW_CONFIG_PATH_HOST: "{{ [ lookup('container', application_id, 'directories.config'), 'openclaw.json' ] | path_join }}"
OPENCLAW_MCP_SERVERS: "{{ MCP_DISCOVERED_SERVERS if (lookup('config', application_id, 'mcp.enabled') | bool) else [] }}"

OPENCLAW_LITELLM_ENABLED: "{{ lookup('config', application_id, 'services.litellm.enabled') }}"
OPENCLAW_LITELLM_BASE_URL: "{{ LITELLM_OPENAI_BASE_LOCAL_URL }}"
OPENCLAW_LITELLM_API_KEY: "{{ lookup('config', application_id, 'secrets.credentials.litellm_api_key') }}"
OPENCLAW_LITELLM_PROVIDER: litellm
OPENCLAW_LITELLM_MODEL: "{{ LITELLM_CHAT_MODEL }}"

OPENCLAW_DESIGN_ENABLED: "{{ lookup('config', application_id, 'services.design.enabled') | bool }}"
OPENCLAW_DESIGN_DIR: "{{ [ lookup('container', application_id, 'directories.config'), 'design' ] | path_join }}"
OPENCLAW_DESIGN_THEME_ID: "infinito-corporate"
OPENCLAW_DESIGN_THEME_FONT: "{{ lookup('config', 'web-svc-design', 'services.design.font').type }}"
OPENCLAW_DESIGN_THEME_TOKENS:
  bg: "var(--design-surface-1)"
  bg-accent: "var(--design-surface-1)"
  bg-elevated: "var(--design-surface-2)"
  bg-hover: "var(--design-surface-hover)"
  bg-muted: "var(--design-surface-3)"
  bg-content: "var(--design-surface-1)"
  card: "var(--design-surface-2)"
  card-foreground: "var(--design-text)"
  card-highlight: "color-mix(in srgb, var(--design-text) 4%, transparent)"
  popover: "var(--design-surface-2)"
  popover-foreground: "var(--design-text)"
  panel: "var(--design-surface-1)"
  panel-strong: "var(--design-surface-3)"
  panel-hover: "var(--design-surface-hover)"
  chrome: "color-mix(in srgb, var(--design-surface-1) 96%, transparent)"
  chrome-strong: "color-mix(in srgb, var(--design-surface-1) 98%, transparent)"
  text: "var(--design-text)"
  text-strong: "var(--design-text)"
  chat-text: "var(--design-text)"
  muted: "var(--design-text-muted)"
  muted-strong: "var(--design-text-muted)"
  muted-foreground: "var(--design-text-muted)"
  border: "var(--design-border)"
  border-strong: "var(--design-border-strong)"
  border-hover: "var(--design-border-strong)"
  input: "var(--design-border-strong)"
  ring: "var(--design-link)"
  accent: "var(--design-link)"
  accent-hover: "color-mix(in srgb, var(--design-link) 85%, var(--design-text))"
  accent-muted: "var(--design-link)"
  accent-subtle: "var(--design-surface-2)"
  accent-foreground: "var(--design-surface-2)"
  accent-glow: "color-mix(in srgb, var(--design-link) 20%, transparent)"
  primary: "var(--design-link)"
  primary-foreground: "var(--design-surface-2)"
  secondary: "var(--design-surface-1)"
  secondary-foreground: "var(--design-text)"
  accent-2: "var(--design-info)"
  accent-2-muted: "color-mix(in srgb, var(--design-info) 72%, transparent)"
  accent-2-subtle: "var(--design-info-subtle)"
  destructive: "var(--design-danger)"
  destructive-foreground: "var(--design-on-danger)"
  danger: "var(--design-danger)"
  danger-muted: "color-mix(in srgb, var(--design-danger) 75%, transparent)"
  danger-subtle: "var(--design-danger-subtle)"
  focus: "color-mix(in srgb, var(--design-link) 20%, transparent)"
  focus-ring: "var(--design-focus-ring)"
  focus-glow: "var(--design-focus-ring)"
  font-body: "{{ OPENCLAW_DESIGN_THEME_FONT }}"
  font-display: "{{ OPENCLAW_DESIGN_THEME_FONT }}"
  mono: '"JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace'
  grid-line: "color-mix(in srgb, var(--design-text) 4%, transparent)"
OPENCLAW_DESIGN_THEME:
  sourceUrl: "{{ [ lookup('cdn', 'web-svc-cdn').urls.shared.css, 'default.css' ] | url_join }}"
  themeId: "{{ OPENCLAW_DESIGN_THEME_ID }}"
  label: "{{ SOFTWARE_NAME }}"
  importedAt: ""
  light: "{{ OPENCLAW_DESIGN_THEME_TOKENS | combine({'panel': 'var(--design-surface-2)'}) }}"
  dark: "{{ OPENCLAW_DESIGN_THEME_TOKENS }}"