blumeops/docs/reference/services/borgmatic.md
Erich Blume 11330ebea0
All checks were successful
Build Container (Nix) / detect (push) Successful in 2s
Build Container / detect (push) Successful in 2s
Build Container (Nix) / build (mealie) (push) Successful in 2s
Build Container / build (mealie) (push) Successful in 8s
Deploy Mealie recipe manager (#299)
## Summary

- Deploy Mealie (self-hosted recipe manager) on minikube-indri via ArgoCD
- Build container from source via forge mirror (`mirrors/mealie`) — multi-stage Dockerfile with Node.js frontend + Python/uv backend
- Add Caddy proxy entry for `meals.ops.eblu.me`
- Part of a larger meal planning pipeline: Mealie stores categorized recipes, a planner script selects balanced meals, and Ollama generates unified cooking timelines

## Status

- [x] Mirror mealie repo on forge
- [x] Dockerfile (from-source build)
- [x] ArgoCD app + k8s manifests
- [x] Caddy proxy entry
- [x] Service docs, routing table, app registry
- [ ] Local Dagger build test
- [ ] Container build + push to registry
- [ ] Update kustomization.yaml with real image tag
- [ ] Deploy and verify
- [ ] Provision Caddy

## Test plan

- Build container locally via `dagger call build --src=. --container-name=mealie`
- Trigger CI build via `mise run container-build-and-release mealie`
- Deploy from branch: `argocd app set mealie --revision deploy-mealie && argocd app sync mealie`
- Verify Mealie UI at `https://meals.ops.eblu.me`
- Verify API docs at `https://meals.ops.eblu.me/docs`

Reviewed-on: #299
2026-03-16 21:59:10 -07:00

1.5 KiB

title modified tags
Borgmatic 2026-03-16
service
backup

Borgmatic

Daily backup system using Borg backup, running on indri.

Quick Reference

Property Value
Install mise (pipx)
Config ~/.config/borgmatic/config.yaml
Schedule Daily at 2:00 AM
Repository /Volumes/backups/borg/ on [[sifaka

What Gets Backed Up

Directories:

  • ~/code/personal/zk - Zettelkasten
  • /opt/homebrew/var/forgejo - Git forge data
  • ~/.config/borgmatic - Borgmatic config
  • ~/Documents - Personal documents
  • ~/.local/share/borgmatic/k8s-dumps/ - SQLite dumps from k8s pods

PostgreSQL databases:

K8s SQLite databases (pre-backup dump via kubectl exec):

  • mealie - Recipe manager (/app/data/mealie.db)

Not backed up (by design):

  • ZIM archives (re-downloadable)
  • Prometheus metrics (ephemeral)
  • Loki logs (ephemeral)

Retention Policy

Period Count
Daily 7
Monthly 12
Yearly 1000

Monitoring

Metrics exposed via textfile collector to prometheus:

  • borgmatic_up - Repository accessibility
  • borgmatic_last_archive_timestamp - Last backup time
  • borgmatic_repo_deduplicated_size_bytes - Disk usage

Dashboard: "Borgmatic Backups" in grafana