Portalen blev udrullet ved at kopiere filer ind i drift, og drift og git gled fra hinanden. Nu er appmappen i drift en git-checkout, og et v*-tag udruller via Gitea Actions: CD logger ind som deploy-brugeren og kører deploy/deploy.sh fra tagget. Scriptet afbryder hvis drift afviger fra git, installerer requirements kun når de er ændret, og ruller tilbage hvis /healthz ikke svarer efter genstart. Værtsadressen ligger i en repo-variabel. CI kompilerer Python, parser alle templates og tjekker deploy.sh. Claude-Session: https://claude.ai/code/session_012LCTmU2ewo8tnM1dByYAoG
1.5 KiB
1.5 KiB
weircon-front
Forside og admin-portal for weircon.dk — et selv-hostet homelab.
FastAPI-app der:
- Logger ind via Authentik (OIDC) og viser de tjenester brugeren har adgang til (hentet fra Authentiks app-liste pr. bruger), grupperet efter app-gruppe.
- Favoritter + visnings-toggle (grupperet/alfabetisk), gemt server-side pr. bruger.
- ⌘K kommandopalette til hurtig søgning/navigation.
- Lys/mørkt tema (ført videre fra asger.weirsoe.dk).
- Admin (kun for medlemmer af
ADMIN_GROUP), udvidbare moduler:- IP -> label & land (skrives til NPMplus ip_labels.json)
- Cookie-tekster
- Matomo-statistik
- App-beskrivelser & grupper (skriver tilbage til Authentik)
Kør
python3 -m venv /opt/portal/venv
/opt/portal/venv/bin/pip install -r requirements.txt
cp deploy/portal.env.example /etc/portal.env # udfyld secrets
cp deploy/portal.service /etc/systemd/system/
systemctl enable --now portal
Udrulning
Et v*-tag udruller: .gitea/workflows/cd.yml logger ind som deploy-brugeren
(repo-variablerne DEPLOY_HOST/DEPLOY_USER, secrets DEPLOY_SSH_KEY/DEPLOY_KNOWN_HOSTS)
og kører deploy/deploy.sh fra tagget. Appmappen i drift er en git-checkout;
afviger den fra git, afbrydes udrulningen, og svarer /healthz ikke efter
genstart, rulles der tilbage. Ret aldrig filer direkte i drift.
git tag v1.2.3 && git push origin v1.2.3
Appen kører bag NPMplus (TLS + proxy) paa weircon.dk. Tilfoej nye admin-moduler i ADMIN_MODULES + en route + en template der extender base.html.