Bygg PWA-installasjonsoppfordring (Android beforeinstallprompt + iOS instruksjonsbanner) Design og bygg flere flighter i én frittstående runde (løs gruppering, retning 1) Design og bygg scramble/greensome-statistikk (valgt utslag per spiller) Bygg push-varsler til telefonens OS (VAPID, push_subscription, service worker) Scratch-verifiser backend for alle fire (27/27 sjekker gjort) Browserverifiser alle fire i nettleser mot scratch-backend Rull ut mot ekte systemer (migrasjoner + containere), med bekreftelse Oppdater CLAUDE.md/FEATURE_BACKLOG.md/ARCHITECTURE_DECISIONS.md Alle fire er ferdigstilt, verifisert og live. Kort oppsummert: PWA-installasjonsoppfordring — ekte beforeinstallprompt-fanging, Android-knapp + iOS-instruksjonsbanner, vist på dashbordet. Bekreftet at Chrome faktisk fyrte eventet i testøkten. Flere flighter i én frittstående runde — løs gruppering av separate runder (delt UUID), "+ Legg til en flight til" gjenbruker hele opprett-flyten forhåndsutfylt, nytt kombinert leaderboard på tvers av flighter. Testet fra knappetrykk til ferdig runde, bekreftet i database. Scramble/greensome: valgt utslag per spiller — nytt felt i hull-registreringen (helt valgfritt), "Utslag brukt"-oppsummering på statistikksiden. Bygget for frittstående runder; org-turneringer bevisst utenfor omfang denne runden (notert i backloggen). Push-varsler til telefonens OS — Web Push/VAPID, ny av/på-bryter i kontoinnstillinger, dekker alle fire varseltyper automatisk. VAPID-nøkler generert og lagt i .env uten å vises i chatten. Én ærlig begrensning: ekte OS-varsel-levering med innvilget tillatelse kunne ikke testes i denne automatiserte nettleserøkten (tillatelsen var forhåndsblokkert av miljøet) — verdt å teste selv på en ekte enhet. 27/27 scratch-sjekker, full nettleser-gjennomgang uten konsollfeil, migrasjoner 035–037 kjørt mot ekte teecup_db, begge containere redeployet og verifisert, teeoff.no upåvirket. Alle tre .md-filene er oppdatert med full detalj.
61 lines
1.8 KiB
YAML
61 lines
1.8 KiB
YAML
services:
|
|
# Bindestrek, IKKE understrek: MinIO validerer Host-headeren strengt og
|
|
# avviser understrek som ugyldig vertsnavn (funnet under scratch-
|
|
# verifisering -- se CLAUDE.md-status).
|
|
teecup-minio:
|
|
image: minio/minio:latest
|
|
container_name: teecup-minio
|
|
environment:
|
|
MINIO_ROOT_USER: ${TEECUP_MINIO_ROOT_USER}
|
|
MINIO_ROOT_PASSWORD: ${TEECUP_MINIO_ROOT_PASSWORD}
|
|
command: server /data --console-address ":9001"
|
|
volumes:
|
|
- teecup_minio_data:/data
|
|
networks:
|
|
- teeoff_default
|
|
restart: unless-stopped
|
|
|
|
teecup_api:
|
|
build: .
|
|
container_name: teecup_api
|
|
environment:
|
|
TEECUP_DB_HOST: ${TEECUP_DB_HOST}
|
|
TEECUP_DB_PORT: ${TEECUP_DB_PORT}
|
|
TEECUP_DB_NAME: ${TEECUP_DB_NAME}
|
|
TEECUP_DB_USER: ${TEECUP_DB_USER}
|
|
TEECUP_DB_PASS: ${TEECUP_DB_PASS}
|
|
TEECUP_SESSION_SECRET: ${TEECUP_SESSION_SECRET}
|
|
TEECUP_SMTP_SERVER: ${TEECUP_SMTP_SERVER}
|
|
TEECUP_SMTP_PORT: ${TEECUP_SMTP_PORT}
|
|
TEECUP_SMTP_USER: ${TEECUP_SMTP_USER}
|
|
TEECUP_SMTP_PASS: ${TEECUP_SMTP_PASS}
|
|
TEECUP_FROM_EMAIL: ${TEECUP_FROM_EMAIL}
|
|
TEECUP_MINIO_ROOT_USER: ${TEECUP_MINIO_ROOT_USER}
|
|
TEECUP_MINIO_ROOT_PASSWORD: ${TEECUP_MINIO_ROOT_PASSWORD}
|
|
TEECUP_MINIO_BUCKET: ${TEECUP_MINIO_BUCKET}
|
|
TEECUP_VAPID_PRIVATE_KEY: ${TEECUP_VAPID_PRIVATE_KEY}
|
|
TEECUP_VAPID_PUBLIC_KEY: ${TEECUP_VAPID_PUBLIC_KEY}
|
|
networks:
|
|
- teeoff_default
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- teecup-minio
|
|
|
|
teecup_frontend:
|
|
build:
|
|
context: ./frontend
|
|
args:
|
|
TEECUP_API_ORIGIN: http://teecup_api:8000
|
|
container_name: teecup_frontend
|
|
networks:
|
|
- teeoff_default
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- teecup_api
|
|
|
|
volumes:
|
|
teecup_minio_data:
|
|
|
|
networks:
|
|
teeoff_default:
|
|
external: true
|