Fix wiki-links to use filename-based resolution

Quartz's "shortest" path mode resolves wiki-links by filename, not
frontmatter title. This fixes the broken links from the previous
title-based approach.

Changes:
- Rename zk duplicate files with -log suffix to avoid conflicts
- Rename reference/storage/postgresql.md to postgresql-storage.md
- Convert all wiki-links from [[Title]] to [[filename|Title]] format
- Rename doc-card-titles task to doc-filenames (checks filename uniqueness)
- Update pre-commit hook for renamed task

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Erich Blume 2026-02-03 15:27:23 -08:00
commit 7983677da2
46 changed files with 349 additions and 340 deletions

View file

@ -23,5 +23,5 @@ Managed via `Brewfile` and `mise.toml` in the blumeops repo.
## Related
- [[Indri]] - Server accessed from gilbert
- [[Kubernetes Cluster|Cluster]] - Remote k8s access
- [[indri|Indri]] - Server accessed from gilbert
- [[cluster|Cluster]] - Remote k8s access

View file

@ -12,14 +12,14 @@ All devices connected via [Tailscale](https://login.tailscale.com/) tailnet `tai
| Host | Description | Card |
|------|-------------|------|
| **Indri** | Mac Mini M1, 2020 - Primary server | [[Indri|Details]] |
| **Gilbert** | MacBook Air M4, 2025 - Workstation | [[Gilbert|Details]] |
| **[[Sifaka NAS|Sifaka]]** | Synology NAS - Storage & backups | [[Sifaka NAS|Details]] |
| **Indri** | Mac Mini M1, 2020 - Primary server | [[indri|Details]] |
| **Gilbert** | MacBook Air M4, 2025 - Workstation | [[gilbert|Details]] |
| **[[sifaka|Sifaka]]** | Synology NAS - Storage & backups | [[sifaka|Details]] |
| **Mouse** | MacBook Air M2 - Allison's laptop | - |
| **UniFi** | UniFi Express 7 - Home WiFi | - |
| **Dwarf** | iPad Air - Employer-provided, off tailnet | - |
## Related
- [[Tailscale]] - Network configuration
- [[Service Routing|Routing]] - Service URLs
- [[tailscale|Tailscale]] - Network configuration
- [[routing|Routing]] - Service URLs

View file

@ -22,17 +22,17 @@ Primary BlumeOps server. Mac Mini M1 (2020).
## Services Hosted
**Native (via Ansible):**
- [[Forgejo]] - Git forge
- [[Zot]] - Container registry
- [[Jellyfin]] - Media server
- [[Borgmatic]] - Backup system
- [[Grafana Alloy|Alloy]] - Metrics/logs collector
- [[forgejo|Forgejo]] - Git forge
- [[zot|Zot]] - Container registry
- [[jellyfin|Jellyfin]] - Media server
- [[borgmatic|Borgmatic]] - Backup system
- [[alloy|Alloy]] - Metrics/logs collector
- Caddy - Reverse proxy for `*.ops.eblu.me`
**Kubernetes (via minikube):**
- [[ArgoCD Applications|All k8s applications]]
- [[apps|All k8s applications]]
## Related
- [[Service Routing|Routing]] - Port mappings
- [[Kubernetes Cluster|Cluster]] - Minikube details
- [[routing|Routing]] - Port mappings
- [[cluster|Cluster]] - Minikube details

View file

@ -25,20 +25,20 @@ DNS points to indri's Tailscale IP (100.98.163.89). TLS via Let's Encrypt (ACME
| Service | URL | Description |
|---------|-----|-------------|
| Homepage | https://go.ops.eblu.me | Service dashboard |
| [[Forgejo]] | https://forge.ops.eblu.me | Git hosting (SSH: 2222) |
| [[Zot]] | https://registry.ops.eblu.me | Container registry |
| [[Grafana]] | https://grafana.ops.eblu.me | Dashboards |
| [[ArgoCD]] | https://argocd.ops.eblu.me | GitOps CD |
| [[Prometheus]] | https://prometheus.ops.eblu.me | Metrics |
| [[Loki]] | https://loki.ops.eblu.me | Logs |
| [[Miniflux]] | https://feed.ops.eblu.me | RSS reader |
| [[Kiwix]] | https://kiwix.ops.eblu.me | Offline Wikipedia |
| [[Transmission]] | https://torrent.ops.eblu.me | BitTorrent |
| [[TeslaMate]] | https://tesla.ops.eblu.me | Tesla logger |
| [[Navidrome]] | https://dj.ops.eblu.me | Music streaming |
| [[Jellyfin]] | https://jellyfin.ops.eblu.me | Media server |
| [[PostgreSQL]] | pg.ops.eblu.me:5432 | Database |
| [[Sifaka NAS|Sifaka]] | https://nas.ops.eblu.me | NAS dashboard |
| [[forgejo|Forgejo]] | https://forge.ops.eblu.me | Git hosting (SSH: 2222) |
| [[zot|Zot]] | https://registry.ops.eblu.me | Container registry |
| [[grafana|Grafana]] | https://grafana.ops.eblu.me | Dashboards |
| [[argocd|ArgoCD]] | https://argocd.ops.eblu.me | GitOps CD |
| [[prometheus|Prometheus]] | https://prometheus.ops.eblu.me | Metrics |
| [[loki|Loki]] | https://loki.ops.eblu.me | Logs |
| [[miniflux|Miniflux]] | https://feed.ops.eblu.me | RSS reader |
| [[kiwix|Kiwix]] | https://kiwix.ops.eblu.me | Offline Wikipedia |
| [[transmission|Transmission]] | https://torrent.ops.eblu.me | BitTorrent |
| [[teslamate|TeslaMate]] | https://tesla.ops.eblu.me | Tesla logger |
| [[navidrome|Navidrome]] | https://dj.ops.eblu.me | Music streaming |
| [[jellyfin|Jellyfin]] | https://jellyfin.ops.eblu.me | Media server |
| [[postgresql|PostgreSQL]] | pg.ops.eblu.me:5432 | Database |
| [[sifaka|Sifaka]] | https://nas.ops.eblu.me | NAS dashboard |
## Tailscale-Only Services
@ -61,5 +61,5 @@ DNS points to indri's Tailscale IP (100.98.163.89). TLS via Let's Encrypt (ACME
## Related
- [[Tailscale]] - ACL configuration
- [[Indri]] - Where services run
- [[tailscale|Tailscale]] - ACL configuration
- [[indri|Indri]] - Where services run

View file

@ -17,7 +17,7 @@ ACLs managed via Pulumi in `pulumi/policy.hujson`.
| Group | Members | Purpose |
|-------|---------|---------|
| `group:allisonflix` | admin, member | [[Jellyfin]] media access |
| `group:allisonflix` | admin, member | [[jellyfin|Jellyfin]] media access |
## Device Tags
@ -58,5 +58,5 @@ Pulumi uses OAuth client from 1Password (blumeops vault):
## Related
- [[Service Routing|Routing]] - Service URLs
- [[Host Inventory|Hosts]] - Device inventory
- [[routing|Routing]] - Service URLs
- [[hosts|Hosts]] - Device inventory