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
40 lines
1.5 KiB
Markdown
40 lines
1.5 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
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.
|
|
|
|
```bash
|
|
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`.
|