services.ymlΒΆ

---
# nocheck: dynamic-flag
logout:
  enabled: false
  shared: false
prometheus:
  bond: 1
  enabled: "{{ 'web-app-prometheus' in group_names }}"
  shared: "{{ 'web-app-prometheus' in group_names }}"
  ready_path: admin/
sso:
  bond: 1
  enabled: "{{ 'web-app-keycloak' in group_names }}"
  shared: "{{ 'web-app-keycloak' in group_names }}"
  flavor: oidc
ldap:
  bond: 1
  enabled: "{{ 'svc-db-openldap' in group_names }}"
  shared: "{{ 'svc-db-openldap' in group_names }}"
xmpp:
  healthcheck:
    test: ["CMD", "ejabberdctl", "status"]
    # nocheck: healthcheck-timing-override  ejabberdctl starts an Erlang CLI node, which does not finish inside the 5s default
    timeout: 10s
    retries: 20
  modes:
    compose:
      enabled: true
    swarm:
      enabled: true
  # nocheck: single-replica
  replicas: 1
  image: ejabberd/ecs
  version: "26.09"
  name: ejabberd
  ports:
    local:
      http: 8082
    public:
      c2s: 5222
      s2s: 5269
    onion:
      # nocheck: onion-flag  onion clients reach the same sessions over the BOSH and websocket endpoints the proxy serves on port 80
      c2s: false
      # nocheck: onion-flag  server-to-server dials clearnet peers that resolve this domain in DNS, which an onion address does not answer
      s2s: false
    internal:
      http: 5280
      c2s: 5222
      s2s: 5269
  proxy:
    service_key: ejabberd
  run_after:
    - web-app-keycloak
    - svc-db-openldap
  lifecycle: beta
  min_storage: 241MB
  cpus: "0.5"
  mem_reservation: 256m
  mem_limit: 1g
  pids_limit: 512

# nocheck: playwright-service-flag
# nocheck: variants-coverage β€” sso-variant-tor requires the onion on in every variant, so the false polarity has no variant left to live in
tor:
  bond: 0.5
  enabled: "{{ 'svc-net-tor' in group_names }}"
  shared: true # nocheck: dynamic-flag
# nocheck: dynamic-flag
# nocheck: playwright-service-flag, dynamic-flag infrastructure backup consumer
container_backup: # nocheck: bond-baseline backup host joins outside the variant topology
  bond: 1
  enabled: "{{ 'svc-bkp-volume-2-local' in group_names }}"
  shared: true