playbooks/roles/vhosts/xworkmate_bridge/defaults/main.yml

129 lines
7.2 KiB
YAML

---
xworkmate_bridge_service_name: xworkmate-bridge
xworkmate_bridge_service_user: "{{ ansible_env.USER | default('ubuntu') }}"
xworkmate_bridge_service_group: "{{ 'staff' if ansible_os_family == 'Darwin' else (ansible_env.USER | default('ubuntu')) }}"
xworkmate_bridge_service_home: "{{ ansible_env.HOME | default('/home/' + xworkmate_bridge_service_user) }}"
ai_workspace_auth_token: "{{ lookup('ansible.builtin.env', 'AI_WORKSPACE_AUTH_TOKEN') | default('', true) }}"
xworkmate_bridge_auth_token: "{{ lookup('ansible.builtin.env', 'BRIDGE_AUTH_TOKEN') | default(lookup('ansible.builtin.env', 'XWORKMATE_BRIDGE_AUTH_TOKEN') | default(ai_workspace_auth_token, true), true) }}"
xworkmate_bridge_review_auth_token: "{{ lookup('ansible.builtin.env', 'BRIDGE_REVIEW_AUTH_TOKEN') | default('', true) }}"
xworkmate_bridge_listen_host: 127.0.0.1
xworkmate_bridge_listen_port: 8787
xworkmate_bridge_listen_addr: "{{ xworkmate_bridge_listen_host }}:{{ xworkmate_bridge_listen_port }}"
xworkmate_bridge_base_dir: "{{ (ansible_env.HOME ~ '/Library/Application Support/cloud-neutral/xworkmate-bridge') if ansible_os_family == 'Darwin' else '/opt/cloud-neutral/xworkmate-bridge' }}"
xworkmate_bridge_config_file: "{{ xworkmate_bridge_base_dir }}/config.yaml"
xworkmate_bridge_binary_path: /usr/local/bin/xworkmate-go-core
xworkmate_bridge_systemd_unit_path: "/etc/systemd/system/{{ xworkmate_bridge_service_name }}.service"
xworkmate_bridge_user_systemd_unit_path: "{{ xworkmate_bridge_service_home }}/.config/systemd/user/{{ xworkmate_bridge_service_name }}.service"
xworkmate_bridge_deprecated_container_name: xworkmate-bridge-managed
xworkmate_bridge_deprecated_compose_file: "{{ xworkmate_bridge_base_dir }}/docker-compose.yml"
xworkmate_bridge_obsolete_systemd_dropin_paths:
- "/etc/systemd/system/{{ xworkmate_bridge_service_name }}.service.d/20-distributed-forward.conf"
xworkmate_bridge_service_environment:
AI_WORKSPACE_AUTH_TOKEN: "{{ ai_workspace_auth_token }}"
BRIDGE_AUTH_TOKEN: "{{ xworkmate_bridge_effective_auth_token | default(xworkmate_bridge_auth_token) }}"
BRIDGE_REVIEW_AUTH_TOKEN: "{{ xworkmate_bridge_effective_review_auth_token | default(xworkmate_bridge_review_auth_token) }}"
BRIDGE_CONFIG_PATH: "{{ xworkmate_bridge_config_file }}"
XWORKMATE_BRIDGE_OPENCLAW_GATEWAY_MAX_ACTIVE: "{{ xworkmate_bridge_openclaw_gateway_max_active }}"
XWORKMATE_BRIDGE_OPENCLAW_GATEWAY_MAX_QUEUED: "{{ xworkmate_bridge_openclaw_gateway_max_queued }}"
XWORKMATE_BRIDGE_OPENCLAW_GATEWAY_QUEUE_TIMEOUT: "{{ xworkmate_bridge_openclaw_gateway_queue_timeout }}"
xworkmate_bridge_openclaw_gateway_max_active: 2
xworkmate_bridge_openclaw_gateway_max_queued: 20
xworkmate_bridge_openclaw_gateway_queue_timeout: 10m
xworkmate_bridge_distributed_topology: ""
xworkmate_bridge_distributed_local_node_id: ""
xworkmate_bridge_distributed_task_forward_peer_id: ""
xworkmate_bridge_distributed_task_forward_endpoint: ""
xworkmate_bridge_distributed_task_forward_token: ""
xworkmate_bridge_distributed_nodes: []
xworkmate_bridge_required_services:
- acp-codex.service
- acp-opencode.service
- acp-gemini.service
- acp-hermes.service
# ACP Deployment Flags
deploy_acp_codex: true
deploy_acp_opencode: true
deploy_acp_gemini: true
deploy_acp_hermes: true
# Unified domain settings
ai_workspace_public_domain: "{{ lookup('ansible.builtin.env', 'SERVER_DOMAIN') | default(lookup('ansible.builtin.env', 'ACP_BRIDGE_DOMAIN') | default(lookup('ansible.builtin.env', 'BRIDGE_DOMAIN') | default('xworkmate-bridge.svc.plus', true), true), true) }}"
xworkmate_bridge_domain: "{{ lookup('ansible.builtin.env', 'XWORKMATE_BRIDGE_DOMAIN') | default(ai_workspace_public_domain, true) }}"
# When false, disables public Caddy access to XWorkmate Bridge.
xworkmate_bridge_public_access: true
xworkmate_bridge_public_base_url: "https://{{ xworkmate_bridge_domain }}"
xworkmate_bridge_service_domain: "{{ xworkmate_bridge_domain }}"
xworkmate_bridge_service_public_base_url: "https://{{ xworkmate_bridge_domain }}"
xworkmate_bridge_validation_base_url: "{{ xworkmate_bridge_service_public_base_url }}"
xworkmate_bridge_validation_validate_certs: true
xworkmate_bridge_validation_origin: https://xworkmate.svc.plus
# Caddy configuration paths
xworkmate_bridge_caddyfile_path: "{{ caddy_config_dir }}/Caddyfile"
xworkmate_bridge_caddy_conf_dir: "{{ caddy_config_dir }}/conf.d"
xworkmate_bridge_service_caddy_fragment_path: "{{ caddy_config_dir }}/conf.d/xworkmate-bridge.caddy"
# Upstream host/port settings for summary and validation
xworkmate_bridge_codex_upstream_host: 127.0.0.1
xworkmate_bridge_codex_upstream_port: 9001
xworkmate_bridge_opencode_upstream_host: 127.0.0.1
xworkmate_bridge_opencode_upstream_port: 38992
xworkmate_bridge_gemini_upstream_host: 127.0.0.1
xworkmate_bridge_gemini_upstream_port: 8791
xworkmate_bridge_hermes_upstream_host: 127.0.0.1
xworkmate_bridge_hermes_upstream_port: 3920
xworkmate_bridge_openclaw_upstream_host: 127.0.0.1
xworkmate_bridge_openclaw_upstream_port: 18789
xworkmate_bridge_required_listeners:
- host: "{{ xworkmate_bridge_listen_host }}"
port: "{{ xworkmate_bridge_listen_port }}"
name: bridge
- host: "{{ xworkmate_bridge_codex_upstream_host }}"
port: "{{ xworkmate_bridge_codex_upstream_port }}"
name: codex
- host: "{{ xworkmate_bridge_opencode_upstream_host }}"
port: "{{ xworkmate_bridge_opencode_upstream_port }}"
name: opencode
- host: "{{ xworkmate_bridge_gemini_upstream_host }}"
port: "{{ xworkmate_bridge_gemini_upstream_port }}"
name: gemini
- host: "{{ xworkmate_bridge_hermes_upstream_host }}"
port: "{{ xworkmate_bridge_hermes_upstream_port }}"
name: hermes
- host: "{{ xworkmate_bridge_openclaw_upstream_host }}"
port: "{{ xworkmate_bridge_openclaw_upstream_port }}"
name: openclaw
# Internal RPC URLs (Source of Truth for the bridge service)
xworkmate_bridge_openclaw_url: "ws://{{ xworkmate_bridge_openclaw_upstream_host }}:{{ xworkmate_bridge_openclaw_upstream_port }}/"
xworkmate_bridge_codex_rpc_url: "ws://{{ xworkmate_bridge_codex_upstream_host }}:{{ xworkmate_bridge_codex_upstream_port }}/acp"
xworkmate_bridge_opencode_rpc_url: "http://{{ xworkmate_bridge_opencode_upstream_host }}:{{ xworkmate_bridge_opencode_upstream_port }}"
xworkmate_bridge_gemini_rpc_url: "http://{{ xworkmate_bridge_gemini_upstream_host }}:{{ xworkmate_bridge_gemini_upstream_port }}"
xworkmate_bridge_hermes_rpc_url: "http://{{ xworkmate_bridge_hermes_upstream_host }}:{{ xworkmate_bridge_hermes_upstream_port }}"
# Obsolete paths to clean up
xworkmate_bridge_obsolete_caddy_fragment_paths:
- "{{ xworkmate_bridge_caddy_base_dir }}/conf.d/acp-server.caddy"
- "{{ xworkmate_bridge_caddy_base_dir }}/conf.d/acp-server-codex.caddy"
- "{{ xworkmate_bridge_caddy_base_dir }}/conf.d/acp-server-opencode.caddy"
- "{{ xworkmate_bridge_caddy_base_dir }}/conf.d/acp-server-gemini.caddy"
- "{{ xworkmate_bridge_caddy_base_dir }}/conf.d/acp-server-bridge.caddy"
- "{{ xworkmate_bridge_caddy_base_dir }}/conf.d/acp-server-bridge-server.caddy"
xworkmate_bridge_packages:
- caddy
- gstreamer1.0-tools
- gstreamer1.0-plugins-base
- gstreamer1.0-plugins-good
- gstreamer1.0-plugins-bad
- gstreamer1.0-plugins-ugly
- gstreamer1.0-libav
- libgstreamer1.0-dev
- libgstreamer-plugins-base1.0-dev
- xdotool
- ffmpeg