---
# nocheck: seaweedfs-playwright β the console stores no objects of its own; this flag exists to join
# the engine's shared_net (meta/networks.yml consumer key), and files/playwright/test-storage-buckets.js
# already asserts every consumer bucket through the filer it serves.
# nocheck: playwright-service-flag β engine provider, covered by the web-svc-seaweedfs CLI test
# nocheck: dynamic-flag the flag's only job is joining the engine's shared_net, and its false branch yields a console container that cannot start
seaweedfs:
bond: 1
enabled: true
shared: true
# nocheck: variants-coverage the onion gate is a hard invariant; no variant may force this consumer on a tor node.
# nocheck: bond-baseline same reason: variant 0 must not pin this consumer on.
sso:
bond: 1
enabled: "{{ lookup('network_served', 'clearnet', 'web-app-keycloak') }}"
shared: "{{ lookup('network_served', 'clearnet', 'web-app-keycloak') }}"
flavor: oauth2
oauth2:
origin:
host: seaweedfs-console
port: "80"
allowed_groups:
- "{{ lookup('rbac_group_path', application_id='web-app-seaweedfs', role='administrator') }}"
# nocheck: dynamic-flag β LDAP is disabled for this role; the literal false is intentional, not group-gated.
ldap:
enabled: false
shared: false
# nocheck: variants-coverage β the onion gate is a hard invariant; no variant may force this consumer on a tor node.
# nocheck: bond-baseline β same reason: variant 0 must not pin this consumer on.
logout:
bond: 1
enabled: "{{ lookup('network_served', 'clearnet', 'web-svc-logout') }}"
shared: "{{ lookup('network_served', 'clearnet', 'web-svc-logout') }}"
# nocheck: variants-coverage β the onion gate is a hard invariant; no variant may force this consumer on a tor node.
# nocheck: bond-baseline β same reason: variant 0 must not pin this consumer on.
dashboard:
bond: 1
enabled: "{{ lookup('network_served', 'clearnet', 'web-app-dashboard') }}"
shared: "{{ lookup('network_served', 'clearnet', 'web-app-dashboard') }}"
# nocheck: variants-coverage β the onion gate is a hard invariant; no variant may force this consumer on a tor node.
# nocheck: bond-baseline β same reason: variant 0 must not pin this consumer on.
prometheus:
bond: 1
enabled: "{{ lookup('network_served', 'clearnet', 'web-app-prometheus') }}"
shared: "{{ lookup('network_served', 'clearnet', 'web-app-prometheus') }}"
# nocheck: playwright-service-flag β design consumer, no Playwright surface (provider: web-svc-design)
# nocheck: variants-coverage the onion gate of the sso flag above reaches here: without that gate the vhost answers 403 and carries no design surface, so no variant may force it on a tor node.
# nocheck: bond-baseline same reason: variant 0 must not pin this surface on.
design:
bond: 1
enabled: "{{ lookup('network_served', 'clearnet', 'web-svc-design') }}"
shared: "{{ lookup('network_served', 'clearnet', 'web-svc-design') }}"
slots:
logo:
width: 50
height: 50
# 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: image-healthcheck no internal port declared, so no probe can address it
# nocheck: dynamic-flag β the role's own console container, not a partner integration.
# nocheck: playwright-service-flag β self-provider
# nocheck: variants-coverage β the onion gate is a hard invariant; no variant may force the console on a tor node.
# nocheck: bond-baseline β same reason: variant 0 must not pin the console on.
seaweedfs-console:
name: seaweedfs-console
image: nginx
version: 1.31-alpine
enabled: "{{ lookup('network_served', 'clearnet') }}"
shared: false
domains:
- filer
- master
modes:
compose:
enabled: true
swarm:
enabled: true
ports:
local:
sso: 16507
sso_onion: 16549
internal:
http: 80
healthcheck:
flavor: http
path: healthz
min_storage: 128MB
cpus: "0.2"
mem_reservation: 64m
mem_limit: 128m
pids_limit: 128
run_after:
- web-svc-seaweedfs
- web-app-keycloak
lifecycle: beta
docs:
bond: 0.5
enabled: "{{ 'web-app-docs' in group_names }}"
shared: "{{ 'web-app-docs' in group_names }}"