## Summary - Move all existing zettelkasten cards from `docs/` to `docs/zk/` as a temporary holding area - Update `zk-docs` mise task to look in the new location - Add `docs/README.md` explaining the Diataxis-based restructuring plan and target audiences ## Context This is phase 1 of a multi-phase documentation restructuring effort. The goal is to reorganize docs to follow the Diataxis framework while serving multiple audiences: 1. Erich (owner) - knowledge graph/zk 2. Claude/AI agents - memory and context enrichment 3. New external readers - high-level overview 4. Potential operators/contributors - onboarding 5. Replicators - people wanting to duplicate the approach ## Testing - [x] Verified `mise run zk-docs` still works with the new path - [x] Updated obsidian.nvim config (in ~/.config/nvim) to point to new path ## Note The obsidian.nvim config change is outside this repo but was made as part of this work. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/84
2.3 KiB
2.3 KiB
| id | aliases | tags | ||
|---|---|---|---|---|
| 1768506761-XGYX |
|
|
Loki Management Log
Loki is a log aggregation system running in Kubernetes (minikube on indri), providing log storage and querying for the 1767747119-YCPO infrastructure.
Service Details
- URL: https://loki.tail8d86e.ts.net
- Namespace:
monitoring - Image:
grafana/loki:3.4.2 - ArgoCD app:
loki - Storage: 50Gi PVC
- Retention: 31 days
Architecture
- Single-node deployment with filesystem storage
- TSDB index with 24h period
- Logs collected by alloy and pushed via Loki API
- Queried via Grafana using the Loki datasource
Useful Commands
# View logs
kubectl --context=minikube-indri -n monitoring logs -f loki-0
# Check if Loki is ready
curl -s https://loki.tail8d86e.ts.net/ready
# Sync from ArgoCD
argocd app sync loki
Grafana Integration
Loki is configured as a datasource in Grafana. To explore logs:
- Go to https://grafana.tail8d86e.ts.net/explore
- Select "Loki" datasource
- Use LogQL queries:
{service="forgejo"}- all forgejo logs{service="borgmatic", stream="stderr"}- borgmatic errors{host="indri"} |= "error"- all logs containing "error"
ArgoCD Management
Loki is deployed via ArgoCD from argocd/manifests/loki/:
statefulset.yaml- StatefulSet with 50Gi PVCconfigmap.yaml- Loki configurationservice.yaml- ClusterIP serviceingress-tailscale.yaml- Tailscale Ingress
Log
Thu Jan 23 2026
- Suppressed noisy
v1 Endpoints is deprecatedwarning from minikube storage-provisioner (upstream issue) - Added JSON field extraction for zot compatibility (
messagevsmsg) - Removed logfmt parsing stage -
stage.matchselectors don't prevent Alloy from logging internal decode errors, and most structured logs use JSON anyway - Fixed devpi dashboard JSON escaping
Wed Jan 22 2026
- Migrated to Kubernetes - moved from Homebrew on indri to k8s StatefulSet
- Exposed via Tailscale Ingress at
loki.tail8d86e.ts.net - Alloy updated to push logs to k8s endpoint
- Retired ansible loki role from indri
Wed Jan 15 2026
- Initial setup with single-node filesystem storage
- Configured 31-day retention with compactor
- Integrated with Grafana as datasource
- Logs collected via Alloy from all services