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_PUBLIC_BASE_URL: ${TEECUP_PUBLIC_BASE_URL} 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} TEECUP_VAPID_SUBJECT: ${TEECUP_VAPID_SUBJECT} TEECUP_MAPBOX_SECRET_TOKEN: ${TEECUP_MAPBOX_SECRET_TOKEN} networks: - teeoff_default restart: unless-stopped depends_on: - teecup-minio teecup_frontend: build: context: ./frontend args: TEECUP_API_ORIGIN: http://teecup_api:8000 NEXT_PUBLIC_MAPBOX_TOKEN: ${NEXT_PUBLIC_MAPBOX_TOKEN} container_name: teecup_frontend networks: - teeoff_default restart: unless-stopped depends_on: - teecup_api # Selvhostet Forgejo Actions-runner (ADR-059, 2026-08-10) -- kjører # backend-testsuiten (.forgejo/workflows/backend-tests.yml) automatisk # ved push. Docker-utenfor-Docker (docker_host: automount i # .forgejo-runner/config.yaml): jobb-containeren får docker.sock # bind-mountet inn, slik at scripts/run_backend_tests.sh kan opprette # SINE EGNE scratch-db-/testcontainere via HOST-ens docker-daemon -- # ikke en nøstet docker-daemon inni runneren. `.runner`-fila i # .forgejo-runner/ er en ekte, langlevd registreringshemmelighet # (gitignored, ALDRI committet). # # group_add: 112 er docker-gruppens GID på DENNE verten (`stat -c %g # /var/run/docker.sock`) -- uten den kan ikke runner-prosessen (som # kjører som en ikke-root-bruker i imaget) lese sokkelen, selv når den # er mountet inn. Sjekk/juster GID-en om dette flyttes til en annen vert. teecup-forgejo-runner: image: code.forgejo.org/forgejo/runner:6 container_name: teecup-forgejo-runner command: forgejo-runner daemon --config config.yaml working_dir: /data group_add: - "112" volumes: - ./.forgejo-runner:/data - /var/run/docker.sock:/var/run/docker.sock restart: unless-stopped volumes: teecup_minio_data: networks: teeoff_default: external: true