# Testoppsett, ikke drift: # # docker compose -f compose.test.yaml up --build # # http://localhost:8091 sentralen «her»: PIN, JWT og OIDC slått på # http://localhost:9000 dummy-IdP som står for crew-panelet # http://localhost:8093 sone «a» – melder seg hos sentralen med hjerteslag # http://localhost:8094 sone «b» – samme # # Sonene har ingen [zones] og ingen statisk config på sentralen: de dukker # opp fordi de melder seg. Stopp sone-b og se den forsvinne etter 90 s; # start den igjen og se den komme tilbake innen 5 s. # # Alt går på vertens nett (som i drift), bundet til 127.0.0.1, så ingenting # ligger åpent på LAN-et. Sonene har ikke lyd – det er fordelingen som skal # ses. mDNS er av på sonene her, så testen er deterministisk; sentralen # annonserer, så `avahi-browse -rt _announcer._tcp` på verten skal vise den. name: announcer-test x-common: &common build: . network_mode: host user: "${PUID:-1000}:${PGID:-1000}" volumes: - .:/app services: announcer: <<: *common environment: ANNOUNCER_HOST: 127.0.0.1 ANNOUNCER_PORT: 8091 ANNOUNCER_CONFIG: /app/docker/config.test.toml ANNOUNCER_CACHE: /data/cache ANNOUNCER_LOG: /data/logs/announcements.jsonl ANNOUNCER_STATE: /data/instance ANNOUNCER_SCHEDULE: /data/scheduled.json ANNOUNCER_VOICES: /app/voices ANNOUNCER_CHIMES: /data/chimes ANNOUNCER_ROLE: sentral ANNOUNCER_NAME: her ANNOUNCER_MESH_SECRET: mesh-test-nokkel-kun-for-docker ANNOUNCER_JWT_SECRET: test-hemmelighet-kun-for-docker-ikke-bruk-ekte ANNOUNCER_OIDC_CLIENT_SECRET: test-client-secret-kun-for-docker ANNOUNCER_PUBLIC_URL: http://localhost:8091 XDG_RUNTIME_DIR: ${XDG_RUNTIME_DIR:-/run/user/1000} TZ: ${TZ:-Europe/Oslo} volumes: - .:/app - ./data:/data - ${XDG_RUNTIME_DIR:-/run/user/1000}:${XDG_RUNTIME_DIR:-/run/user/1000} depends_on: [idp] idp: <<: *common environment: IDP_HOST: 127.0.0.1 IDP_ISSUER: http://localhost:9000 IDP_CLIENT_ID: announcer IDP_CLIENT_SECRET: test-client-secret-kun-for-docker ANNOUNCER_JWT_SECRET: test-hemmelighet-kun-for-docker-ikke-bruk-ekte ANNOUNCER_PUBLIC_URL: http://localhost:8091 command: ["python", "docker/dummy_idp.py"] sone-a: <<: *common environment: &sone-env ANNOUNCER_HOST: 127.0.0.1 ANNOUNCER_PORT: 8093 ANNOUNCER_CONFIG: /finnes-ikke.toml ANNOUNCER_VOICES: /app/voices ANNOUNCER_ROLE: sone ANNOUNCER_NAME: a ANNOUNCER_TITLE: "Sone A" ANNOUNCER_SENTRAL: http://127.0.0.1:8091 ANNOUNCER_URL: http://127.0.0.1:8093 ANNOUNCER_MDNS: "0" ANNOUNCER_MESH_SECRET: mesh-test-nokkel-kun-for-docker TZ: ${TZ:-Europe/Oslo} tmpfs: - /data:mode=1777 sone-b: <<: *common environment: <<: *sone-env ANNOUNCER_PORT: 8094 ANNOUNCER_NAME: b ANNOUNCER_TITLE: "Sone B" ANNOUNCER_URL: http://127.0.0.1:8094 tmpfs: - /data:mode=1777