Files
computer-playbook/roles/web-app-bluesky/meta/services.yml

164 lines
4.0 KiB
YAML

---
# nocheck: dockerfile-custom
logout:
bond: 1
enabled: "{{ 'web-svc-logout' in group_names }}"
shared: "{{ 'web-svc-logout' in group_names }}"
dashboard:
bond: 1
enabled: "{{ 'web-app-dashboard' in group_names }}"
shared: "{{ 'web-app-dashboard' in group_names }}"
matomo:
bond: 1
enabled: "{{ 'web-app-matomo' in group_names }}"
shared: "{{ 'web-app-matomo' in group_names }}"
email:
bond: 1
enabled: "{{ MAIL_PROVIDER in group_names }}"
shared: "{{ MAIL_PROVIDER in group_names }}"
# nocheck: dynamic-flag - LDAP is disabled for this role; the literal false is intentional, not group-gated.
ldap:
enabled: false
shared: false
sso:
bond: 1
enabled: "{{ 'web-app-keycloak' in group_names }}"
shared: "{{ 'web-app-keycloak' in group_names }}"
flavor: oauth2
oauth2:
origin:
host: broker
port: 8080
allowed_groups:
- "{{ lookup('rbac_group_path', application_id='web-app-bluesky', role='administrator') }}"
# nocheck: shared
# nocheck: dynamic-flag
# nocheck: playwright-service-flag - internal sub-component (multi-entity role)
acl:
whitelist:
- /xrpc/
- /.well-known/
- /robots.txt
# nocheck: shared
# nocheck: dynamic-flag
# nocheck: playwright-service-flag - internal sub-component (multi-entity role)
web:
enabled: true
healthcheck:
flavor: tcp
ports:
local:
http: 8031
sso: 16496
internal:
http: 8100
min_storage: 5GB
cpus: "0.5"
mem_reservation: 256m
mem_limit: 1g
pids_limit: 512
# nocheck: dynamic-flag
# nocheck: playwright-service-flag - internal sub-component (multi-entity role)
view:
enabled: false
repository: https://github.com/bluesky-social/social-app.git
ref: "1.137.0"
ports:
local:
http: 8051
internal:
http: 8100
min_storage: 1GB
cpus: "0.2"
mem_reservation: 128m
mem_limit: 256m
pids_limit: 256
pds:
image: ghcr.io/bluesky-social/pds
version: 0.4.66
min_storage: 290MB
cpus: "1.0"
mem_reservation: 1g
mem_limit: 2g
pids_limit: 1024
broker:
name: bluesky-broker
image: node
version: 26-alpine
ports:
local:
http: 8076
internal:
http: 8080
min_storage: 263MB
cpus: "0.2"
mem_reservation: 128m
mem_limit: 256m
pids_limit: 256
sso-proxy:
name: bluesky-sso-proxy
cpus: "0.25"
mem_reservation: 64m
mem_limit: 256m
pids_limit: 512
# nocheck: playwright-service-flag - css consumer, no Playwright surface (provider: web-svc-css)
css:
bond: 1
enabled: "{{ 'web-svc-css' in group_names }}"
shared: "{{ 'web-svc-css' in group_names }}"
prometheus:
bond: 1
enabled: "{{ 'web-app-prometheus' in group_names }}"
shared: "{{ 'web-app-prometheus' in group_names }}"
api:
healthcheck:
flavor: wget
path: xrpc/_health
ports:
local:
http: 8030
internal:
http: 3000
min_storage: 5GB
cpus: "0.5"
mem_reservation: 256m
mem_limit: 1g
pids_limit: 512
bluesky:
modes:
compose:
enabled: true
swarm:
enabled: true
# nocheck: default-placement-manager PDS is sqlite-only (WAL forced on all four DBs; pds 0.4 has no external-DB backend) and WAL is unsupported over NFS, so pds_data must stay node-local
placement: manager
proxy:
service_key: pds
ports:
local:
sso: 16497
run_after:
- web-app-matomo
- web-app-keycloak
- web-app-stalwart
- web-app-mailu
lifecycle: beta
min_storage: 1GB
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