services.ymlΒΆ

---
redis:
  modes:
    compose:
      enabled: true
    swarm:
      enabled: true
  # nocheck: default-placement-manager  central cache engine, node-local on-disk state (ACL file + optional AOF), single-node until redis replication is in scope
  placement: manager
  bond: 1
  enabled: true
  shared: true
  image: redis
  name: redis-central
  version: 8.10.3-alpine
  min_storage: 238MB
  healthcheck:
    test: ["CMD-SHELL", "REDISCLI_AUTH=\"$$REDIS_PASSWORD\" redis-cli ping | grep -q PONG"]
    retries: 30
  backup:
    disabled: true
  cpus: "0.5"
  mem_reservation: "128m"
  mem_limit: "512m"
  pids_limit: 512
  ports:
    local:
      redis: 6379
    internal:
      redis: 6379
    onion:
      # nocheck: onion-flag  the shared cache and queue runs without AUTH inside the stack, so its reachability must stay bounded by the role network
      redis: false
  lifecycle: beta
# 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 - the redis volume is backup-disabled ephemeral cache state, the backup consumer stays permanently off
container_backup:
  enabled: false
  shared: true

# nocheck: variants-coverage the role has a single variant, and the guide edge is not a dimension of it: a second round would differ only by the README replay
docs:
  bond: 0.5
  enabled: "{{ 'web-app-docs' in group_names }}"
  shared: "{{ 'web-app-docs' in group_names }}"