forked from forgejo_admin/gitops-apps
Homelab GitOps apps for Argo CD (Uptime Kuma, migrations to K3s). Source of truth mirrored to Forgejo.
Scaffold monitoring for VIE K3s and a migrations slot for future compose→k8s moves. Argo repoURL points at Forgejo (mirror next). |
||
|---|---|---|
| applications | ||
| apps | ||
| bootstrap | ||
| .gitignore | ||
| README.md | ||
gitops-apps
Манифесты приложений для Argo CD на homelab K3s (VIE).
Инфраструктура (K3s, Argo CD, Forgejo, cert-manager) — в репозитории ansible.
Сюда кладём только apps.
Источники Git
| Роль | URL |
|---|---|
| Рабочая копия / CI на ноуте | ssh://git@kurrrwa.ddns.net:8822/dan4eg/gitops-apps.git |
| Always-on source для Argo | https://git.yorkin.online/<org>/gitops-apps.git (mirror из GitLab → Forgejo) |
Argo CD должен смотреть на Forgejo, не на GitLab (ноут часто offline).
Дерево
bootstrap/
root.yaml # App-of-apps (один раз применить в argocd)
applications/
monitoring.yaml # Application → apps/monitoring
apps/
monitoring/uptime-kuma/ # Uptime Kuma (kustomize)
migrations/ # место под перенос docker-compose apps в K3s
Bootstrap Argo CD
После появления репо на Forgejo и добавления credentials в Argo:
# Подставь реальный HTTPS URL Forgejo в bootstrap/root.yaml и applications/*.yaml
kubectl apply -n argocd -f bootstrap/root.yaml
Root Application следит за applications/ и создаёт дочерние apps.
Monitoring: Uptime Kuma
- UI:
https://uptime.yorkin.online(нужен DNS A → IP VIE152.53.95.181) - TLS: cert-manager
letsencrypt-prod+ Traefik - Namespace:
monitoring
VoiceCounter (Push Monitor)
У бота нет HTTP endpoint — мониторим через Push в Uptime Kuma:
- В UI Kuma: Add Monitor → Push → interval (например 60s).
- Скопировать Push URL вида
https://uptime.yorkin.online/api/push/<token>. - На хосте VoiceCounter (FIN) периодически дергать URL (cron / sidecar / в самом боте):
curl -fsS -o /dev/null "https://uptime.yorkin.online/api/push/<token>?status=up&msg=OK&ping="
Секрет push-токена не хранить в этом репо.
Миграции в K3s
Каталог apps/migrations/ — для следующих сервисов (Vikunja, VoiceCounter и т.д.).
Паттерн: манифесты/kustomize под apps/<name>/ + applications/<name>.yaml.