services.ymlΒΆ

---
# nocheck: dockerfile-custom
# nocheck: playwright-service-flag β€” SMTP egress daemon, no browser surface
tor-smtp: # nocheck: category-modes
  primary: true
  bond: 1
  enabled: true
  shared: true
  custom: true
  modes:
    compose:
      enabled: true
    swarm:
      enabled: true
  # nocheck: default-placement-manager  dials svc-net-tor's host-loopback SOCKS listener, which is manager-pinned; the gateway must share that node
  placement: manager
  image: python
  version: 3.15-slim
  name: tor-smtp
  ports:
    internal:
      smtp: 1525
  healthcheck:
    test: ["CMD", "python", "-c", "import os,socket; socket.create_connection(('127.0.0.1', int(os.environ['TOR_SMTP_LISTEN_PORT'])), 3).close()"]
  min_storage: 100MB
  cpus: "0.25"
  mem_reservation: 64m
  mem_limit: 128m
  pids_limit: 64
  lifecycle: alpha

# 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 }}"