Homelab GitOps apps for Argo CD (Uptime Kuma, migrations to K3s). Source of truth mirrored to Forgejo.
Find a file
Administrator 143bc0b5e9 Initial gitops-apps: Argo app-of-apps and Uptime Kuma.
Scaffold monitoring for VIE K3s and a migrations slot for future compose→k8s moves. Argo repoURL points at Forgejo (mirror next).
2026-08-11 04:28:40 +10:00
applications Initial gitops-apps: Argo app-of-apps and Uptime Kuma. 2026-08-11 04:28:40 +10:00
apps Initial gitops-apps: Argo app-of-apps and Uptime Kuma. 2026-08-11 04:28:40 +10:00
bootstrap Initial gitops-apps: Argo app-of-apps and Uptime Kuma. 2026-08-11 04:28:40 +10:00
.gitignore Initial gitops-apps: Argo app-of-apps and Uptime Kuma. 2026-08-11 04:28:40 +10:00
README.md Initial gitops-apps: Argo app-of-apps and Uptime Kuma. 2026-08-11 04:28:40 +10:00

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 VIE 152.53.95.181)
  • TLS: cert-manager letsencrypt-prod + Traefik
  • Namespace: monitoring

VoiceCounter (Push Monitor)

У бота нет HTTP endpoint — мониторим через Push в Uptime Kuma:

  1. В UI Kuma: Add Monitor → Push → interval (например 60s).
  2. Скопировать Push URL вида https://uptime.yorkin.online/api/push/<token>.
  3. На хосте 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.