blumeops/argocd/manifests/miniflux/README.md
Erich Blume 181f11265d Add restore from backup instructions to miniflux README
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 15:29:38 -08:00

1.9 KiB

Miniflux Kubernetes Deployment

RSS/Atom feed reader deployed via ArgoCD.

Prerequisites

  • CloudNativePG PostgreSQL cluster running in databases namespace
  • Miniflux database and user created in PostgreSQL (from Phase 3 migration)
  • Tailscale operator installed

Setup

  1. Create the namespace and database secret:
kubectl create namespace miniflux

# The miniflux user password is auto-generated by CNPG in blumeops-pg-app secret
kubectl create secret generic miniflux-db -n miniflux \
  --from-literal=url="$(kubectl -n databases get secret blumeops-pg-app -o jsonpath='{.data.uri}' | base64 -d)"
  1. Apply the ArgoCD application:
kubectl apply -f argocd/apps/miniflux.yaml
argocd app sync miniflux

Access

Configuration

Environment variables in deployment.yaml:

  • POLLING_FREQUENCY: How often to check feeds (minutes)
  • BATCH_SIZE: Number of feeds to refresh per interval
  • CLEANUP_ARCHIVE_UNREAD_DAYS: Days to keep unread entries
  • CLEANUP_ARCHIVE_READ_DAYS: Days to keep read entries

Management

# View logs
kubectl -n miniflux logs -f deployment/miniflux

# Restart deployment
kubectl -n miniflux rollout restart deployment/miniflux

# Check health
curl https://feed.tail8d86e.ts.net/healthcheck

Database Connection

Connects to PostgreSQL via internal k8s DNS: blumeops-pg-rw.databases.svc.cluster.local:5432

The database is also accessible externally via Tailscale at: pg.tail8d86e.ts.net:5432

Restore from Backup

If the database needs to be restored from a borgmatic backup:

  1. List archives: borgmatic list
  2. Extract dump from archive using borg extract to /tmp/restore
  3. Restore with pg_restore --clean --if-exists --no-owner --no-acl
  4. Fix ownership - ensure user miniflux owns all tables, sequences, and types in the public schema (restore runs as eblume)
  5. Restart miniflux deployment