From 67ec85b6ccb36e0d5f26caff101f3a58bdabb034 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Ty=C5=84ski?= Date: Sun, 4 Oct 2026 00:57:40 +0200 Subject: [PATCH] docs(readme): document CI/CD, environments and observability --- README.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/README.md b/README.md index 3d6c9b3..91827e3 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,31 @@ kopiuje go do `backend/wwwroot`, buduje backend, buduje obraz Docker i wypycha g do `git.rtynski.pl/rtynski/hy2026` jako `` 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` (`` + `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 ```