Git Integration i Auto-Deploy
Forgejo
Forgejo to self-hosted Git server zastępujący GitLab jako główne repozytorium.
| Parametr | Wartość |
|---|---|
| URL publiczny | https://git.zatto.pl/ |
| URL wewnętrzny (API/runner) | http://192.168.0.107:3000 |
| Host | Genie-Prod (192.168.0.107) |
| Repo infrastruktury | ssh://git.zatto.pl:2233/Home-Lab/Boilerplate.git |
| Lokalny klon roboczy | /tmp/Boilerplate-home-lab |
Publiczny URL przechodzi przez Pangolin auth/proxy. Dla bota i runnera należy używać wewnętrznego URL http://192.168.0.107:3000.
Docelowy flow auto-deploy:
- Renovate otwiera PR z aktualizacją obrazu
- Merge do
main - Forgejo Action wywołuje webhook / Dokploy synchronizuje repo
- Deploy konkretnego stacka na konkretny node
Aktualnie git source nie jest jeszcze podłączony do Dokploy — stacki na Genie i Olaf nie mają sourceType: git.
Renovate
Renovate jest uruchamiane jako self-hosted bot z Forgejo Actions.
Konfiguracja w repo:
renovate.json— konfiguracja repo.forgejo/workflows/renovate.yml— workflow
Runner i kontener:
| Parametr | Wartość |
|---|---|
| Runner | forgejo-runner-git-vm na Genie-Prod |
| Label | self-hosted |
| Runtime runnera | node:22-bookworm |
| Kontener joba | node:24-bookworm |
| Uruchamianie | npx renovate |
| Harmonogram | codziennie o 02:17 UTC |
Ustawienia Renovate w workflow:
| Zmienna | Wartość |
|---|---|
RENOVATE_PLATFORM | forgejo |
RENOVATE_ENDPOINT | http://192.168.0.107:3000 |
RENOVATE_GIT_URL | endpoint |
Wymagane sekrety w Forgejo (Repo -> Settings -> Secrets -> Actions):
| Sekret | Opis |
|---|---|
RENOVATE_TOKEN | PAT dla usera bota (scope: repo, user, issue, organization) |
RENOVATE_GITHUB_COM_TOKEN | Opcjonalny — pomaga unikać rate-limitów przy changelogi z github.com |
Zakres aktualizacji:
- Skanuje tylko pliki Compose
- Ignoruje
.env* - Ignoruje
Gennie-Prod/huly/**
AI Code Review (Rukia + Forgejo Actions)
Automatyczne review kodu na każdym Pull Requeście. Po otwarciu PR model na rukia-ai analizuje diff i dodaje komentarz.
Architektura:
Forgejo PR
-> Forgejo Actions Runner (na rukia-ai VM 113)
-> scripts/rukia_review.py
-> Ollama API (http://host.docker.internal:11434)
-> scripts/post_comment.py
-> Forgejo API (http://192.168.0.107:3000)
-> Komentarz w PR
| Komponent | Lokalizacja | Szczegóły |
|---|---|---|
| Forgejo | git.zatto.pl / 192.168.0.107:3000 | Self-hosted Git |
| Runner | 192.168.0.156 (rukia-ai) | forgejo-runner.service |
| Ollama | 192.168.0.156 (rukia-ai) | VM 113 na olaf |
| Model domyślny | qwen2.5:7b | nadpisywalny przez MODEL_NAME |
Dostępne modele na rukia-ai: qwen2.5:3b, qwen2.5:7b, qwen2.5:14b, deepseek-r1:8b, nomic-embed-text:latest
Pliki wymagane per repo:
.forgejo/
workflows/
ai-review.yml
scripts/
rukia_review.py
post_comment.py
Infrastruktura jest globalna (Forgejo, runner, Ollama), ale workflow trzeba dodać osobno do każdego repo.