infra/stacks/homepage/INGRESS_WIDGET_MAPPING.md
Viktor Barzin 903fc8377f [cleanup] Remove ollama from dashy + docs + nfs_directories
## Context
Final stage (9) of ollama decommission. After the stack was destroyed in
commit 0386f03f, several residual references remained:
- Vault KV `secret/ollama` (metadata + versions)
- `secrets/nfs_directories.txt` line listing `ollama` as a backup target
- `stacks/dashy/conf.yml` — "Ollama" tile linking to `ollama.viktorbarzin.me`
- `stacks/homepage/INGRESS_WIDGET_MAPPING.md` — 3 rows documenting the
  now-removed ingresses (ollama, ollama-api, ollama-server)

## This change
- `vault kv metadata delete secret/ollama` → all versions + metadata deleted.
- `secrets/nfs_directories.txt`: removed the `ollama` entry (line 71).
- `stacks/dashy/conf.yml`: removed the Ollama tile (`&ref_42`) and its
  reference at the end of the list; applied via Terragrunt so the running
  dashy ConfigMap picks up the change. Dashy apply: 0 added, 4 changed, 0
  destroyed (the ConfigMap diff plus the usual benign Kyverno drift).
- `stacks/homepage/INGRESS_WIDGET_MAPPING.md`: removed the 3 ollama rows.

## What was considered but NOT changed
- `stacks/ytdlp/yt-highlights/app/main.py`: `OLLAMA_URL = os.getenv("OLLAMA_URL", "")`
  already falls back to empty string when unset; the env var is no longer
  injected (stage 3) so this path is dead at runtime. Leaving source alone
  to keep this commit scoped to infra-only cleanup — future app-level
  cleanup can remove the dead fallback code.
- `stacks/k8s-portal/modules/k8s-portal/files/src/routes/agent/+server.ts`:
  only mentions `var.ollama_host` in a documentation string inside a
  system-prompt template — non-functional. Will fix in a separate commit
  alongside the k8s-portal agent docs pass.

## Test plan
### Automated
- `vault kv get secret/ollama` → "No value found" (confirmed after delete).
- `scripts/tg apply` on dashy → "Apply complete! Resources: 0 added, 4 changed, 0 destroyed."
- `grep -n ollama secrets/nfs_directories.txt` → empty.

### Manual Verification
1. Open `https://dashy.viktorbarzin.me/` → Ollama tile is gone.
2. `kubectl get cm -n dashy dashy-config -o yaml | grep -i ollama` → no matches.
3. `vault kv get secret/ollama` → error "No value found at secret/data/ollama".
4. On PVE host: `rm -rf /srv/nfs-ssd/ollama` (optional — I skipped the
   on-host disk cleanup; it's a manual ops step the user can run when
   comfortable).

Closes: code-1gu

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 11:17:59 +00:00

118 lines
9 KiB
Markdown

# Homepage Ingress Mapping
Total mapped services: **114**\
Widget-capable matches (candidate): **27**
| Namespace | Ingress | URL | Homepage widget candidate |
|---|---|---|---|
| `actualbudget` | `budget-anca` | `https://budget-anca.viktorbarzin.me` | `link-only` |
| `actualbudget` | `budget-emo` | `https://budget-emo.viktorbarzin.me` | `link-only` |
| `actualbudget` | `budget-viktor` | `https://budget-viktor.viktorbarzin.me` | `link-only` |
| `affine` | `affine` | `https://affine.viktorbarzin.me` | `link-only` |
| `aiostreams` | `aiostreams` | `https://aiostreams.viktorbarzin.me` | `link-only` |
| `audiobookshelf` | `audiobookshelf` | `https://audiobookshelf.viktorbarzin.me` | `audiobookshelf` |
| `authentik` | `authentik` | `https://authentik.viktorbarzin.me` | `authentik` |
| `calibre` | `calibre` | `https://calibre.viktorbarzin.me` | `link-only` |
| `calibre` | `stacks` | `https://stacks.viktorbarzin.me` | `link-only` |
| `changedetection` | `changedetection` | `https://changedetection.viktorbarzin.me` | `changedetectionio` |
| `city-guesser` | `city-guesser` | `https://city-guesser.viktorbarzin.me` | `link-only` |
| `crowdsec` | `crowdsec-web` | `https://crowdsec-web.viktorbarzin.me` | `crowdsec` |
| `cyberchef` | `cc` | `https://cc.viktorbarzin.me` | `link-only` |
| `dashy` | `dashy` | `https://dashy.viktorbarzin.me` | `link-only` |
| `dawarich` | `dawarich` | `https://dawarich.viktorbarzin.me` | `link-only` |
| `dbaas` | `pgadmin` | `https://pgadmin.viktorbarzin.me` | `link-only` |
| `dbaas` | `pma` | `https://pma.viktorbarzin.me` | `link-only` |
| `ebook2audiobook` | `audiblez-web` | `https://audiblez.viktorbarzin.me` | `link-only` |
| `ebook2audiobook` | `ebook2audiobook` | `https://ebook2audiobook.viktorbarzin.me` | `link-only` |
| `echo` | `echo` | `https://echo.viktorbarzin.me` | `link-only` |
| `excalidraw` | `draw` | `https://draw.viktorbarzin.me` | `link-only` |
| `f1-stream` | `f1` | `https://f1.viktorbarzin.me` | `link-only` |
| `forgejo` | `forgejo` | `https://forgejo.viktorbarzin.me` | `link-only` |
| `freedify` | `music-emo` | `https://music-emo.viktorbarzin.me` | `link-only` |
| `freedify` | `music-viktor` | `https://music-viktor.viktorbarzin.me` | `link-only` |
| `freshrss` | `rss` | `https://rss.viktorbarzin.me` | `freshrss` |
| `frigate` | `frigate` | `https://frigate.viktorbarzin.me` | `frigate` |
| `frigate` | `frigate-lan` | `https://frigate-lan.viktorbarzin.lan` | `frigate` |
| `grampsweb` | `family` | `https://family.viktorbarzin.me` | `link-only` |
| `hackmd` | `hackmd` | `https://hackmd.viktorbarzin.me` | `link-only` |
| `headscale` | `headscale` | `https://headscale.viktorbarzin.me` | `headscale` |
| `health` | `health` | `https://health.viktorbarzin.me` | `link-only` |
| `homepage` | `homepage` | `https://home.viktorbarzin.me` | `link-only` |
| `immich` | `highlights-immich` | `https://highlights-immich.viktorbarzin.me` | `immich` |
| `immich` | `immich` | `https://immich.viktorbarzin.me` | `immich` |
| `jsoncrack` | `json` | `https://json.viktorbarzin.me` | `link-only` |
| `k8s-portal` | `k8s-portal` | `https://k8s-portal.viktorbarzin.me` | `link-only` |
| `kms` | `kms` | `https://kms.viktorbarzin.me` | `link-only` |
| `linkwarden` | `linkwarden` | `https://linkwarden.viktorbarzin.me` | `linkwarden` |
| `mailserver` | `mail` | `https://mail.viktorbarzin.me` | `link-only` |
| `matrix` | `matrix` | `https://matrix.viktorbarzin.me` | `link-only` |
| `meshcentral` | `meshcentral` | `https://meshcentral.viktorbarzin.me` | `link-only` |
| `monitoring` | `grafana` | `https://grafana.viktorbarzin.me` | `grafana` |
| `monitoring` | `hetrix-redirect-ingress` | `https://status.viktorbarzin.me` | `link-only` |
| `monitoring` | `hetrix-yotovski-redirect-ingress` | `https://yotovski-status.viktorbarzin.me` | `link-only` |
| `monitoring` | `idrac-redfish-exporter` | `https://idrac-redfish-exporter.viktorbarzin.lan` | `link-only` |
| `monitoring` | `prometheus-alertmanager` | `https://alertmanager.viktorbarzin.me` | `link-only` |
| `monitoring` | `prometheus-server` | `https://prometheus.viktorbarzin.me` | `prometheus` |
| `monitoring` | `snmp-exporter` | `https://snmp-exporter.viktorbarzin.lan` | `link-only` |
| `n8n` | `n8n` | `https://n8n.viktorbarzin.me` | `link-only` |
| `navidrome` | `navidrome` | `https://navidrome.viktorbarzin.me` | `navidrome` |
| `netbox` | `netbox` | `https://netbox.viktorbarzin.me` | `link-only` |
| `networking-toolbox` | `networking-toolbox` | `https://networking-toolbox.viktorbarzin.me` | `link-only` |
| `nextcloud` | `nextcloud` | `https://nextcloud.viktorbarzin.me` | `nextcloud` |
| `nextcloud` | `whiteboard` | `https://whiteboard.viktorbarzin.me` | `nextcloud` |
| `ntfy` | `ntfy` | `https://ntfy.viktorbarzin.me` | `link-only` |
| `nvidia` | `nvidia-exporter` | `https://nvidia-exporter.viktorbarzin.lan` | `link-only` |
| `onlyoffice` | `onlyoffice` | `https://onlyoffice.viktorbarzin.me` | `link-only` |
| `openclaw` | `openclaw` | `https://openclaw.viktorbarzin.me` | `link-only` |
| `owntracks` | `owntracks` | `https://owntracks.viktorbarzin.me` | `link-only` |
| `paperless-ngx` | `paperless-ngx` | `https://pdf.viktorbarzin.me` | `paperlessngx` |
| `plotting-book` | `plotting-book` | `https://plotting-book.viktorbarzin.me` | `link-only` |
| `poison-fountain` | `poison-fountain` | `https://poison.viktorbarzin.me` | `link-only` |
| `privatebin` | `privatebin` | `https://pb.viktorbarzin.me` | `link-only` |
| `realestate-crawler` | `wrongmove` | `https://wrongmove.viktorbarzin.me` | `link-only` |
| `resume` | `resume` | `https://resume.viktorbarzin.me` | `link-only` |
| `reverse-proxy` | `files` | `https://files.viktorbarzin.me` | `link-only` |
| `reverse-proxy` | `gw` | `https://gw.viktorbarzin.me` | `link-only` |
| `reverse-proxy` | `ha-london` | `https://ha-london.viktorbarzin.me` | `link-only` |
| `reverse-proxy` | `ha-sofia` | `https://ha-sofia.viktorbarzin.me` | `link-only` |
| `reverse-proxy` | `idrac` | `https://idrac.viktorbarzin.me` | `link-only` |
| `reverse-proxy` | `london` | `https://london.viktorbarzin.me` | `link-only` |
| `reverse-proxy` | `mbp14` | `https://mbp14.viktorbarzin.me` | `link-only` |
| `reverse-proxy` | `mladost3` | `https://mladost3.viktorbarzin.me` | `link-only` |
| `reverse-proxy` | `nas` | `https://nas.viktorbarzin.me` | `link-only` |
| `reverse-proxy` | `pfsense` | `https://pfsense.viktorbarzin.me` | `link-only` |
| `reverse-proxy` | `pi` | `https://pi.viktorbarzin.me` | `link-only` |
| `reverse-proxy` | `proxmox` | `https://proxmox.viktorbarzin.me` | `link-only` |
| `reverse-proxy` | `r730` | `https://r730.viktorbarzin.me` | `link-only` |
| `reverse-proxy` | `registry` | `https://registry.viktorbarzin.me` | `link-only` |
| `reverse-proxy` | `truenas` | `https://truenas.viktorbarzin.me` | `truenas` |
| `reverse-proxy` | `valchedrym` | `https://valchedrym.viktorbarzin.me` | `link-only` |
| `rybbit` | `rybbit` | `https://rybbit.viktorbarzin.me` | `link-only` |
| `send` | `send` | `https://send.viktorbarzin.me` | `link-only` |
| `servarr` | `flaresolverr` | `https://flaresolverr.viktorbarzin.me` | `link-only` |
| `servarr` | `listenarr` | `https://listenarr.viktorbarzin.me` | `link-only` |
| `servarr` | `prowlarr` | `https://prowlarr.viktorbarzin.me` | `prowlarr` |
| `servarr` | `qbittorrent` | `https://qbittorrent.viktorbarzin.me` | `qbittorrent` |
| `speedtest` | `speedtest` | `https://speedtest.viktorbarzin.me` | `speedtest-tracker` |
| `stirling-pdf` | `stirling-pdf` | `https://stirling-pdf.viktorbarzin.me` | `link-only` |
| `tandoor` | `tandoor` | `https://tandoor.viktorbarzin.me` | `tandoor` |
| `technitium` | `technitium` | `https://technitium.viktorbarzin.me` | `technitium` |
| `technitium` | `technitium-doh` | `https://dns.viktorbarzin.me` | `technitium` |
| `trading-bot` | `trading` | `https://trading.viktorbarzin.me` | `link-only` |
| `traefik` | `traefik` | `https://traefik.viktorbarzin.me` | `traefik` |
| `travel-blog` | `travel` | `https://travel.viktorbarzin.me` | `link-only` |
| `tuya-bridge` | `tuya-bridge` | `https://tuya-bridge.viktorbarzin.me` | `link-only` |
| `uptime-kuma` | `uptime` | `https://uptime.viktorbarzin.me` | `uptime-kuma` |
| `url` | `shlink` | `https://shlink.viktorbarzin.me` | `shlink` |
| `url` | `url` | `https://url.viktorbarzin.me` | `link-only` |
| `vaultwarden` | `vaultwarden` | `https://vaultwarden.viktorbarzin.me` | `link-only` |
| `vpa` | `goldilocks` | `https://goldilocks.viktorbarzin.me` | `link-only` |
| `wealthfolio` | `wealthfolio` | `https://wealthfolio.viktorbarzin.me` | `link-only` |
| `webhook-handler` | `webhook-handler` | `https://webhook.viktorbarzin.me` | `link-only` |
| `website` | `blog` | `https://viktorbarzin.me` | `link-only` |
| `woodpecker` | `ci` | `https://ci.viktorbarzin.me` | `link-only` |
| `xray` | `xray-grpc` | `https://xray-grpc.viktorbarzin.me` | `link-only` |
| `xray` | `xray-vless` | `https://xray-vless.viktorbarzin.me` | `link-only` |
| `xray` | `xray-ws` | `https://xray-ws.viktorbarzin.me` | `link-only` |
| `ytdlp` | `yt-highlights` | `https://yt-highlights.viktorbarzin.me` | `link-only` |
| `ytdlp` | `ytdlp` | `https://yt.viktorbarzin.me` | `link-only` |