Close 0.3.17 operational follow-ups
This commit is contained in:
@@ -1,40 +1,39 @@
|
||||
# Gitea push-to-deploy (self-hosted, geen handmatige variabelenvulling)
|
||||
# Gitea immutable releasepad
|
||||
|
||||
Push naar `main` of `master` triggert automatisch:
|
||||
Een push naar `main` publiceert geen productiecode. Alleen een expliciete semantische
|
||||
tag `v*.*.*` start `.gitea/workflows/release.yml`. De runner:
|
||||
|
||||
- checkout op de server runner
|
||||
- `bash scripts/deploy_docker.sh`
|
||||
- deploy met `docker compose up -d --build`
|
||||
1. verifieert de volledige repository;
|
||||
2. bouwt de Unraid-image met commit- en versielabels;
|
||||
3. publiceert die image naar de private Gitea-containerregistry;
|
||||
4. genereert een SPDX-SBOM, digestbestand, checksums en release notes.
|
||||
|
||||
Deze workflow gebruikt defaults en hoeft niet te wachten op repo-secrets voor host/ssh/credentials.
|
||||
Productie wordt daarna expliciet op de volledige `versie@sha256:digest` gepind.
|
||||
Hierdoor kan een gewone documentatie- of codepush nooit ongemerkt productie
|
||||
overschrijven en bestaat geen parallel mutable push-to-deploypad meer.
|
||||
|
||||
## Vereiste eenmalige setup op de server
|
||||
## Vereiste runnerconfiguratie
|
||||
|
||||
1. Start en registreer een self-hosted Gitea-runner voor deze repo.
|
||||
2. Zorg dat die runner Docker/Compose kan draaien in de projectmap waar de runner draait.
|
||||
3. Laat éénmaal dit script draaien op de server:
|
||||
- De Gitea-runner accepteert label `ubuntu-latest` en kan jobcontainers starten.
|
||||
- `REGISTRY_USER` en `REGISTRY_TOKEN` zijn repositorysecrets met uitsluitend de
|
||||
noodzakelijke package-schrijfrechten.
|
||||
- Unraid gebruikt een afzonderlijk `read:package`-token om gepubliceerde images te
|
||||
pullen; dat token staat alleen in de root-Dockerconfig op de server.
|
||||
- De runnerhost heeft voldoende vrije Docker-address-pools voor tijdelijke
|
||||
jobnetwerken; volg daarvoor de netwerksectie in
|
||||
[Unraid-deployment](UNRAID_DEPLOYMENT.md#docker-netwerkcapaciteit).
|
||||
|
||||
```bash
|
||||
bash scripts/deploy_docker.sh
|
||||
```
|
||||
## Publiceren en uitrollen
|
||||
|
||||
Daarna is het gedrag volledig push-only:
|
||||
1. Maak en verifieer een database- en configuratieback-up.
|
||||
2. Push de geverifieerde releasecommit naar `main`.
|
||||
3. Maak en push de semantische tag.
|
||||
4. Wacht tot de Gitea-releasejob groen is en verifieer de artifactchecksums.
|
||||
5. Pull op Unraid de gepubliceerde volledige digest.
|
||||
6. Zet `VACATURERADAR_IMAGE` op `versie@sha256:digest` en herstart Compose met
|
||||
`--no-build --force-recreate`.
|
||||
7. Controleer intern en publiek `/health/live/` en `/health/ready/`, runtimeversie,
|
||||
containerhealth en restartteller.
|
||||
|
||||
- `git push` naar `main` of `master` → automatische deploy
|
||||
|
||||
## Defaults
|
||||
|
||||
- `APP_HOST`: hostname van de server (fallback: `hostname`)
|
||||
- `APP_SCHEME`: `http`
|
||||
- `DJANGO_DEBUG`: afgeleid uit `APP_SCHEME`
|
||||
- `0` als `APP_SCHEME=https`
|
||||
- `1` als `APP_SCHEME=http`
|
||||
- `DEPLOY_COMPOSE_FILE`: `docker-compose.yml`
|
||||
- `APP_ORIGINS`, `APP_HOSTS`, `APP_PORT`: optioneel en veilig overnemen als op runner gezet
|
||||
|
||||
## Endpoint na deploy
|
||||
|
||||
- `http://<runner-host>:1226/health/ready/`
|
||||
- `http://<runner-host>:1226/health/live/`
|
||||
|
||||
Voor productie: zet later op de runner de gewenste runtime-omgeving (bijv. reverse proxy + TLS) en herstart push.
|
||||
PostgreSQL, Redis en Ollama blijven niet publiek bereikbaar. Bewaar de vorige
|
||||
digest totdat minstens één volledige schedulercyclus groen is.
|
||||
|
||||
Reference in New Issue
Block a user