docs(readme): document CI/CD, environments and observability

This commit is contained in:
Rafał Tyński
2026-10-04 00:57:40 +02:00
parent 70fb592cf7
commit 67ec85b6cc
+25
View File
@@ -84,6 +84,31 @@ kopiuje go do `backend/wwwroot`, buduje backend, buduje obraz Docker i wypycha g
do `git.rtynski.pl/rtynski/hy2026` jako `<wersja>` oraz `latest`. Nadpisanie
sprawdzenia: `-Force`.
## CI/CD
Pipeline działa w **Gitea Actions** (`.gitea/workflows/`):
> **Uwaga:** workflow są zakomentowane w całości — do repozytorium nie jest podpięty runner Gitea. Odkomentuj po zarejestrowaniu runera (Settings → Actions → Runners).
- `ci.yml` — na `push`/PR do `main`: build backendu (.NET 10), `dotnet format --verify-no-changes` oraz build klienta (Node 22, `vue-tsc` + bundle).
- `cd.yml` — na `main`/tag `v*`: build obrazu i push do `git.rtynski.pl/rtynski/hy2026` (`<wersja>` + `latest`); deploy demo opcjonalnie przez sekrety CI.
Sekrety CI: `GITEA_TOKEN` (`write:package`), opcjonalnie `DEPLOY_HOST`/`DEPLOY_USER`/`DEPLOY_SSH_KEY`. Klucz `LLM__ApiKey` przekazujemy wyłącznie na runtime — nigdy do repo ani warstw obrazu.
## Środowiska i konfiguracja
- **dev** — `appsettings.Development.json`, dane w `backend/data`.
- **demo** — obraz z rejestru, `docker-compose.yaml.example`, port `TARNINAHUB_PORT` (8075), wersja `APP_VERSION`.
- **staging** (opcjonalne) — kandydat wydania przed demo.
Konfiguracja przez zmienne środowiskowe (`SurrealDb__*`, `LLM__ApiKey`, `OTEL_*`); szablon: [`.env.example`](.env.example).
## Observability
- Healthcheck: `GET /api/health` (używany też przez Docker healthcheck).
- Logi strukturalne (JSON) do `stdout`/`stderr`, z correlation ID.
- Docelowo: `/metrics` (Prometheus) i OpenTelemetry (traces).
## Struktura
```