## Summary - Add `doc-card-titles` mise task to enumerate all doc cards by title/id and detect duplicates - Remove redundant aliases from zk cards where alias matched the id - Rename `reference/storage/postgresql.md` title to "PostgreSQL Storage" to avoid duplicate with `reference/services/postgresql.md` - Convert all 175 path-based wiki-links `[[reference/path|Title]]` to title-based `[[Title]]` format - Add pre-commit hook to check for duplicate card titles on doc changes ## Deployment and Testing - [x] Pre-commit hooks pass - [x] `mise run doc-card-titles` shows no duplicates - [ ] Verify wiki-links work correctly in Quartz build 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/89
2.2 KiB
2.2 KiB
| id | aliases | tags | |||
|---|---|---|---|---|---|
| miniflux |
|
|
Miniflux Management Log
Miniflux is a minimalist RSS/Atom feed reader running in Kubernetes (minikube on indri).
Service Details
- URL: https://feed.tail8d86e.ts.net
- Namespace: miniflux
- Image: ghcr.io/miniflux/miniflux:latest
- Database: postgresql (CloudNativePG cluster at pg.tail8d86e.ts.net)
- ArgoCD app: miniflux
Useful Commands
# 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
# Sync from ArgoCD
argocd app sync miniflux
ArgoCD Management
Miniflux is deployed via ArgoCD from argocd/manifests/miniflux/:
deployment.yaml- Deployment with environment configurationservice.yaml- ClusterIP serviceingress-tailscale.yaml- Tailscale Ingress for external access
Credentials
The miniflux database user password is auto-generated by CloudNativePG and stored in the blumeops-pg-app secret in the databases namespace.
To recreate the miniflux-db 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)"
Features
- Keyboard shortcuts for efficient reading
- Fever and Google Reader API compatible
- Mobile-friendly web interface
- OPML import/export
- Content scraping for full articles
Backup
Feed subscriptions and read state stored in postgresql, backed up via borgmatic's postgresql_databases hook.
Log
Sun Jan 19 2026
- Migrated to Kubernetes (Phase 4 of k8s migration)
- Deployed via ArgoCD in
minifluxnamespace - Database connection via internal k8s DNS to CloudNativePG cluster
- Exposed via Tailscale Ingress at feed.tail8d86e.ts.net
- Removed brew miniflux service and ansible role from indri
- Fixed table ownership issue after P3 restore (tables were owned by eblume, needed to be owned by miniflux)
Thu Jan 16 2026
- Initial setup with Miniflux 2.x on brew
- Connected to PostgreSQL 18 on localhost
- Exposed via Tailscale at feed.tail8d86e.ts.net