# Announcer i drift på klienten ved anlegget. # # ./install.sh setter opp alt, inkludert .env # docker compose up -d senere, for hånd # # Testoppsettet med dummy-IdP ligger i compose.test.yaml, ikke her. name: announcer services: announcer: build: . image: announcer:local restart: unless-stopped # BIND_IP er sikkerhetsmekanismen her, ikke ufw. Dockers publiserte # porter går forbi ufw, så en ufw-regel ville ikke stengt noen ute. # install.sh setter den til NetBird-adressen når wt0 finnes. ports: - "${BIND_IP:-0.0.0.0}:${ANNOUNCER_PORT:-8090}:8090" # Må være brukeren som eier lydsocketen på verten, ellers kommer det # ingen lyd. install.sh fyller inn id -u / id -g. user: "${PUID:-1000}:${PGID:-1000}" environment: ANNOUNCER_SINK: ${ANNOUNCER_SINK:-} ANNOUNCER_TITLE: ${ANNOUNCER_TITLE:-} ANNOUNCER_PUBLIC_URL: ${ANNOUNCER_PUBLIC_URL:-} # Hemmeligheter: hører i .env, ikke i config.toml. ANNOUNCER_PIN: ${ANNOUNCER_PIN:-} ANNOUNCER_JWT_SECRET: ${ANNOUNCER_JWT_SECRET:-} ANNOUNCER_OIDC_CLIENT_SECRET: ${ANNOUNCER_OIDC_CLIENT_SECRET:-} ANNOUNCER_SECRET_KEY: ${ANNOUNCER_SECRET_KEY:-} XDG_RUNTIME_DIR: ${XDG_RUNTIME_DIR:-/run/user/1000} # Planlagte sendinger lagres som absolutt tid, så TZ påvirker dem ikke. # Men uten den står loggen i UTC mens du står i CEST, og da blir det # vanskelig å se om noe gikk som det skulle. TZ: ${TZ:-Europe/Oslo} volumes: # Stemmer, buffer, logg, sesjonsnøkkel, egne jingler og config.toml. - ./data:/data # Lyden. Hele XDG_RUNTIME_DIR, ikke bare én socket, så både # PipeWire (pipewire-0) og PulseAudio (pulse/native + cookie) virker. - ${XDG_RUNTIME_DIR:-/run/user/1000}:${XDG_RUNTIME_DIR:-/run/user/1000} # Containeren starter ved boot, altså før noen er logget inn grafisk. # Da finnes ikke lydsocketen ennå, og avspilling feiler. Det retter seg # selv: player_cmd() slås opp per melding, så første utrop etter # innlogging virker uten at noe må startes om. healthcheck: test: ["CMD", "python", "-c", "import urllib.request;urllib.request.urlopen('http://127.0.0.1:8090/api/config',timeout=5)"] interval: 30s timeout: 10s start_period: 180s # første oppstart laster ned ~670 MB stemmer retries: 3