mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 10:59:59 +00:00
106 lines
7.0 KiB
YAML
106 lines
7.0 KiB
YAML
---
|
|
application_id: "web-app-zammad"
|
|
entity_name: "{{ application_id | get_entity_name }}"
|
|
|
|
ZAMMAD_PRECHECK_SERVICE: "precheck"
|
|
ZAMMAD_INIT_SERVICE: "init"
|
|
ZAMMAD_RAILS_SERVICE: "railsserver"
|
|
ZAMMAD_WEBSOCKET_SERVICE: "websocket"
|
|
ZAMMAD_SCHEDULER_SERVICE: "scheduler"
|
|
ZAMMAD_NGINX_SERVICE: "nginx"
|
|
ZAMMAD_SEARCH_SERVICE: "elasticsearch"
|
|
ZAMMAD_MEMCACHED_SERVICE: "memcached"
|
|
|
|
ZAMMAD_PRECHECK_CONTAINER: "{{ lookup('config', application_id, 'services.' ~ ZAMMAD_PRECHECK_SERVICE ~ '.name') }}"
|
|
ZAMMAD_INIT_CONTAINER: "{{ lookup('config', application_id, 'services.' ~ ZAMMAD_INIT_SERVICE ~ '.name') }}"
|
|
ZAMMAD_RAILS_CONTAINER: "{{ lookup('config', application_id, 'services.' ~ ZAMMAD_RAILS_SERVICE ~ '.name') }}"
|
|
ZAMMAD_RAILS_CONTAINER_ADDRESS: "{{ lookup('container_address', application_id, ZAMMAD_RAILS_SERVICE) }}"
|
|
ZAMMAD_WEBSOCKET_CONTAINER: "{{ lookup('config', application_id, 'services.' ~ ZAMMAD_WEBSOCKET_SERVICE ~ '.name') }}"
|
|
ZAMMAD_SCHEDULER_CONTAINER: "{{ lookup('config', application_id, 'services.' ~ ZAMMAD_SCHEDULER_SERVICE ~ '.name') }}"
|
|
ZAMMAD_NGINX_CONTAINER: "{{ lookup('config', application_id, 'services.' ~ ZAMMAD_NGINX_SERVICE ~ '.name') }}"
|
|
ZAMMAD_SEARCH_CONTAINER: "{{ lookup('config', application_id, 'services.' ~ ZAMMAD_SEARCH_SERVICE ~ '.name') }}"
|
|
ZAMMAD_MEMCACHED_CONTAINER: "{{ lookup('engine', 'memcached', application_id, 'container') }}"
|
|
|
|
ZAMMAD_RAILS_PORT: "{{ lookup('config', application_id, 'services.' ~ ZAMMAD_RAILS_SERVICE ~ '.ports.internal.http') }}"
|
|
ZAMMAD_WEBSOCKET_PORT: "{{ lookup('config', application_id, 'services.' ~ ZAMMAD_WEBSOCKET_SERVICE ~ '.ports.internal.http') }}"
|
|
ZAMMAD_SEARCH_PORT: "{{ lookup('config', application_id, 'services.' ~ ZAMMAD_SEARCH_SERVICE ~ '.ports.internal.http') }}"
|
|
ZAMMAD_SEARCH_HEAP_MB: "{{ lookup('service_memory_mb', application_id, ZAMMAD_SEARCH_SERVICE, 0.25) }}"
|
|
ZAMMAD_SEARCH_WATERMARK: "{{ lookup('config', application_id, 'services.search.watermark') }}"
|
|
ZAMMAD_SEARCH_MAJOR: "{{ (lookup('config', application_id, 'services.search.version') | string).split('.') | first }}"
|
|
ZAMMAD_SEARCH_DATA_DIR: "{{ [lookup('volume', application_id, 'zammad_search').target, ZAMMAD_SEARCH_MAJOR] | path_join }}"
|
|
ZAMMAD_SEARCH_PRECHECK_ABS: "{{ [lookup('container', application_id, 'directories.config'), 'search_allocation_precheck.sh'] | path_join }}"
|
|
ZAMMAD_SEARCH_PRECHECK_TARGET: "{{ (lookup('volume', application_id, 'search_allocation_precheck').mounts | first).target }}"
|
|
ZAMMAD_SEARCH_READY_SECONDS: 600
|
|
ZAMMAD_SEARCH_POLL_SECONDS: 5
|
|
ZAMMAD_SEARCH_ALLOCATION_TIMEOUT_SECONDS: 60
|
|
|
|
# Exception: env.j2 must never set DATABASE_URL. The image's config/pre_initializers/database_url.rb
|
|
# builds it from POSTGRESQL_* only while DATABASE_URL is blank, so presetting it drops
|
|
# POSTGRESQL_OPTIONS and Rails falls back to its default pool of 5, below the thread count
|
|
# BackgroundServices starts in the scheduler.
|
|
ZAMMAD_DB_POOL: 50
|
|
|
|
ZAMMAD_API_BOT_USER: "{{ lookup('users', 'zammad-api-bot') }}"
|
|
ZAMMAD_WIZARD_BYPASS_USER: "{{ lookup('users', 'zammad-wizard-bypass-admin') }}"
|
|
ZAMMAD_API_BOT_PASSWORD: "{{ ZAMMAD_API_BOT_USER.password }}"
|
|
ZAMMAD_WIZARD_BYPASS_PASSWORD: "{{ ZAMMAD_WIZARD_BYPASS_USER.password }}"
|
|
ZAMMAD_INITIAL_ADMIN_PASSWORD: "{{ lookup('config', application_id, 'secrets.credentials.initial_admin_password') }}"
|
|
ZAMMAD_SECRET_KEY_BASE: "{{ lookup('config', application_id, 'secrets.credentials.secret_key_base') }}"
|
|
|
|
ZAMMAD_HOSTNAME: "{{ lookup('domain', application_id) }}"
|
|
ZAMMAD_WEB_PROTOCOL: "{{ lookup('tls', application_id, 'protocols.web') }}"
|
|
ZAMMAD_HTTP_ONLY_ENABLED: "{{ not (lookup('tls', application_id, 'enabled') | bool) }}"
|
|
|
|
ZAMMAD_VOLUMES_DIR: "{{ lookup('container', application_id, 'directories.volumes') }}"
|
|
ZAMMAD_AUTO_WIZARD_HOST_PATH: "{{ ZAMMAD_VOLUMES_DIR }}auto_wizard.json"
|
|
ZAMMAD_OMNIAUTH_INIT_HOST_PATH: "{{ ZAMMAD_VOLUMES_DIR }}zz_omniauth_allow_get.rb"
|
|
|
|
ZAMMAD_TELEGRAM_HELPER_HOST_PATH: "{{ ZAMMAD_VOLUMES_DIR }}telegram_helper.rb"
|
|
|
|
ZAMMAD_OIDC_GROUP_ROLE_MAP_HOST_PATH: "{{ ZAMMAD_VOLUMES_DIR }}zz_oidc_group_role_mapping.rb"
|
|
|
|
ZAMMAD_OIDC_HTTP_DISCOVERY_HOST_PATH: "{{ ZAMMAD_VOLUMES_DIR }}zz_oidc_http_discovery.rb"
|
|
ZAMMAD_OIDC_GROUP_ROLE_MAP:
|
|
"/{{ RBAC.GROUP.NAME | trim('/') }}/{{ application_id }}/administrator": "Admin"
|
|
"/{{ RBAC.GROUP.NAME | trim('/') }}/{{ application_id }}/agent": "Agent"
|
|
"/{{ RBAC.GROUP.NAME | trim('/') }}/{{ application_id }}/customer": "Customer"
|
|
|
|
ZAMMAD_OIDC_ENABLED: "{{ lookup('config', application_id, 'services.sso.enabled') | bool }}"
|
|
ZAMMAD_EMAIL_ENABLED: "{{ lookup('config', application_id, 'services.email.enabled') | bool }}"
|
|
ZAMMAD_LDAP_ENABLED: "{{ lookup('config', application_id, 'services.ldap.enabled') | bool }}"
|
|
|
|
ZAMMAD_MAIL: "{{ lookup('email', application_id) if ZAMMAD_EMAIL_ENABLED else {} }}"
|
|
ZAMMAD_HELPDESK_USER: "{{ lookup('users', 'helpdesk') if ZAMMAD_EMAIL_ENABLED else {} }}"
|
|
ZAMMAD_HELPDESK_EMAIL: "{{ ZAMMAD_HELPDESK_USER.email | default('') }}"
|
|
ZAMMAD_HELPDESK_PASS: "{{ (ZAMMAD_HELPDESK_USER.tokens | default({})).get(MAIL_PROVIDER, '') }}"
|
|
ZAMMAD_MCP_ENABLED: "{{ lookup('config', application_id, 'services.zammadmcp.enabled') | bool }}"
|
|
ZAMMAD_MCP_SERVICE_KEY: "zammadmcp"
|
|
ZAMMAD_MCP_CONTAINER: "{{ lookup('config', application_id, 'services.zammadmcp.name') }}"
|
|
ZAMMAD_MCP_PORT: "{{ lookup('config', application_id, 'services.zammadmcp.ports.internal.http') }}"
|
|
ZAMMAD_MCP_BEARER: "{{ lookup('config', application_id, 'secrets.credentials.mcp_bearer') }}"
|
|
ZAMMAD_MCP_INSTANCE_DIR: "{{ [lookup('container', application_id, 'directories.instance'), 'mcp'] | path_join }}"
|
|
ZAMMAD_MCP_UPSTREAM_HOST: "{{ ZAMMAD_NGINX_SERVICE }}"
|
|
ZAMMAD_MCP_UPSTREAM_PORT: "{{ lookup('config', application_id, 'services.zammad.ports.internal.http') }}"
|
|
ZAMMAD_MCP_UPSTREAM_URL: "http://{{ ZAMMAD_MCP_UPSTREAM_HOST }}:{{ ZAMMAD_MCP_UPSTREAM_PORT }}"
|
|
ZAMMAD_MCP_CONTRACT:
|
|
provider: "{{ application_id }}"
|
|
upstream_url: "{{ ZAMMAD_MCP_UPSTREAM_URL }}"
|
|
auth_subject: "{{ lookup('config', application_id, 'mcp.auth_subject') }}"
|
|
mutating_tools_enabled: "{{ lookup('config', application_id, 'mcp.tools.mutating_tools_enabled') | bool }}"
|
|
tools: "{{ lookup('file', 'mcp/tools.json') | from_json }}"
|
|
limits: "{{ lookup('config', application_id, 'mcp.limits') }}"
|
|
schema_sha256: "{{ lookup('config', application_id, 'mcp.tools.schema_sha256') }}"
|
|
ZAMMAD_MCP_UPSTREAM_KEY: "{{ lookup('config', application_id, 'secrets.credentials.api_token') }}"
|
|
ZAMMAD_MCP_ACCOUNT: "{{ lookup('users', 'mcp-web-app-zammad') }}"
|
|
ZAMMAD_MCP_UPSTREAM_USER: "{{ ZAMMAD_MCP_ACCOUNT.username }}"
|
|
ZAMMAD_MCP_UPSTREAM_EMAIL: "{{ ZAMMAD_MCP_ACCOUNT.email }}"
|
|
ZAMMAD_MCP_UPSTREAM_PASSWORD: "{{ ZAMMAD_MCP_ACCOUNT.password }}"
|
|
ZAMMAD_MCP_UPSTREAM_TOKEN_LABEL: "infinito-mcp"
|
|
ZAMMAD_MCP_UPSTREAM_AUTH_HEADER: "Authorization"
|
|
ZAMMAD_MCP_UPSTREAM_AUTH_FORMAT: "Token token={key}"
|
|
|
|
ZAMMAD_LITELLM_ENABLED: "{{ lookup('config', application_id, 'services.litellm.enabled') | bool }}"
|
|
ZAMMAD_LITELLM_BASE_URL: "{{ LITELLM_OPENAI_BASE_LOCAL_URL }}"
|
|
ZAMMAD_LITELLM_MODEL: "{{ LITELLM_CHAT_MODEL }}"
|
|
ZAMMAD_LITELLM_API_KEY: "{{ lookup('config', application_id, 'secrets.credentials.litellm_api_key') }}"
|