agwandClaude Opus 5.5 ab7ab1e8f1 Tegn og Gæt: rum, WebSocket og valg af spil
TegnRoom ved siden af Fup og Fakta-rummet; værten vælger spil på
/host/new (Fup og Fakta er standard). Storskærmen får tegningerne i
én besked pr. afsløring. WebSocket-test af et helt spil.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 17:05:22 +02:00
2026-10-18 13:17:26 +02:00

Weirsøe Party Protocol

Dansk party-spil i stil med Jackbox. Spillet vises på en storskærm, og spillerne er med fra deres telefoner. Første spil er Fup og Fakta: alle finder på en troværdig løgn til et kuriøst faktum, og så skal man finde sandheden blandt løgnene.

  • Spillere: https://party.weircon.dk og indtast koden fra skærmen (eller scan QR-koden).
  • Vært: https://party.weircon.dk/host/ (Authentik, grupperne Familie og authentik Admins).
  • Spørgsmål: https://party.weircon.dk/admin/ (Authentik-admins logges ind automatisk).

Sådan virker det

Serveren er autoritativ. Hver skærm har én WebSocket, sender handlinger og får hele spiltilstanden tilbage efter hver ændring (se docs/PROTOCOL.md). Spilmotoren (fupogfakta/engine.py) er ren Python uden I/O og ejer alle regler og timere. Rummene (party/rooms.py) ligger i hukommelsen i én proces, så serveren skal køre med én worker. Et genstart afbryder igangværende spil.

Mappe Indhold
fupogfakta/ Spilmotor, modeller for kategorier og spørgsmål, spørgsmålsbank i data/*.json
party/ Rum, WebSocket-consumers, sider, Authentik-header-login, templates og JS/CSS
partyhub/ Django-projekt (settings, ASGI)
deploy/ systemd-unit, miljøfil-skabelon og deploy.sh

Udvikling

python3 -m venv .venv && .venv/bin/pip install -r requirements-dev.txt
export DJANGO_DEBUG=true DEV_HOST_USER=dev
.venv/bin/python manage.py migrate && .venv/bin/python manage.py load_questions
.venv/bin/uvicorn partyhub.asgi:application --reload
.venv/bin/python manage.py test

DEV_HOST_USER lader dig åbne /host/ uden Authentik (kun med DJANGO_DEBUG=true).

Drift

Én uvicorn-proces (--workers 1) bag en reverse proxy med TLS. Proxyen beskytter /host/, /ws/host/ og /admin/ med Authentik forward-auth og sender X-authentik-username og X-authentik-groups videre; på alle andre stier skal den blanke de headere. Appen stoler kun på dem fra adresserne i TRUSTED_PROXIES, så appens port bør kun kunne nås fra proxyen. Se deploy/wpp.env.example for miljøvariabler.

deploy/bots.py spiller et helt spil mod en kørende server og kan også fylde et spil op med bots (--code).

Spørgsmål

fupogfakta/data/*.json indlæses med manage.py load_questions (ved hver deploy; matcher på spørgsmålsteksten, så rettelser i admin bevares, medmindre samme spørgsmål ændres i filen). Skriv _____ hvor svaret står, og giv 3 husets løgne.

Den tidligere version (Angular-SPA, REST) ligger på branchen legacy.

S
Description
Weirsøe Party Protocol
Readme
42 MiB
Languages
Python 60.3%
JavaScript 28.2%
CSS 9.8%
HTML 1.7%