4ad32aa768
gates / gates (push) Successful in 2s
A new front-door fixture: the web login, then a weight entry through the app's own API, read back
with a no-session and a never-entered-weight control. Both venues ran on the R-738 template (7a4ff48,
migrations at start): bench 9401 proven, its migrations ran, 10-min watch 0 kills (anon peak 49.8 %);
box 9202 done in 46.2 s, the migrations ran, the entry read back. The first box walk WITHOUT the fix
failed (login 500, 12 migrations unapplied) and wrote nothing. Putting 2.6 back after the migration
loses the entries (recorded, as always; the box's undo restores the pre-update copy instead).
Written by upgrade-test.py --write-ladder.
Evidence: felhom.eu/documentation/audits/more-night-apps-2026-09-30/
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
69 lines
2.6 KiB
YAML
69 lines
2.6 KiB
YAML
# wger - Edzésnapló és fitnesz tervező
|
|
# Domain: ${SUBDOMAIN}.${DOMAIN}
|
|
# Database: None (file-based)
|
|
# RAM: ~100M (mem_limit: 384M) | Pi-compatible: Yes
|
|
#
|
|
# Environment variables:
|
|
# DOMAIN - Your domain (e.g., demo-felhom.eu)
|
|
# SECRET_KEY - Titkosítási kulcs (auto-generated)
|
|
|
|
services:
|
|
wger:
|
|
image: wger/server:2.7
|
|
container_name: wger
|
|
restart: unless-stopped
|
|
environment:
|
|
- TZ=Europe/Budapest
|
|
- SECRET_KEY=${SECRET_KEY}
|
|
# A wger 2.4+ a TELJES DJANGO_DB_* halmazt beolvassa, akkor is, ha az
|
|
# engine sqlite -- enélkül indulás nélkül kilép ("Set the DJANGO_DB_USER
|
|
# environment variable"). Az USER/PASSWORD/HOST/PORT értékeket az sqlite
|
|
# backend figyelmen kívül hagyja, de jelen kell lenniük.
|
|
# A DATABASE a wger_data kötetre mutat (/home/wger/db), oda, ahol a wger
|
|
# saját alapértelmezett sqlite fájlja is volt -- így meglévő telepítés
|
|
# adatai nem "tűnnek el" egy másik útvonalra.
|
|
# R-712 (measured 2026-09-29 on 9202): behind traefik wger saw the request as http and refused a browser's
|
|
# https Origin with "CSRF verification failed" — nobody could sign in from a browser.
|
|
- CSRF_TRUSTED_ORIGINS=https://${SUBDOMAIN}.${DOMAIN}
|
|
- X_FORWARDED_PROTO_HEADER_SET=True
|
|
# R-738: the image runs `manage.py migrate` at start ONLY with this switch (entrypoint.sh). Without it an update
|
|
# that brings migrations leaves wger serving its front page over an unmigrated database (login 500).
|
|
- DJANGO_PERFORM_MIGRATIONS=True
|
|
- DJANGO_DB_ENGINE=django.db.backends.sqlite3
|
|
- DJANGO_DB_DATABASE=/home/wger/db/database.sqlite
|
|
- DJANGO_DB_USER=wger
|
|
- DJANGO_DB_PASSWORD=wger
|
|
- DJANGO_DB_HOST=localhost
|
|
- DJANGO_DB_PORT=5432
|
|
- SITE_URL=https://${SUBDOMAIN}.${DOMAIN}
|
|
volumes:
|
|
- wger_data:/home/wger/db
|
|
- wger_media:/home/wger/media
|
|
networks:
|
|
- traefik-public
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 384M
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:8000"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 30s
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.wger.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)"
|
|
- "traefik.http.routers.wger.entrypoints=websecure"
|
|
- "traefik.http.routers.wger.tls=true"
|
|
- "traefik.http.routers.wger.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.wger.loadbalancer.server.port=8000"
|
|
|
|
volumes:
|
|
wger_data:
|
|
wger_media:
|
|
|
|
networks:
|
|
traefik-public:
|
|
external: true
|