[ { "name": "SearXNG", "category": "user", "section": "Web Apps", "description": "AI-free, VPN-routed search engine, fully hosted on Frank's server.", "url": "http://search.franksdank.cloud", "docs": "", "probe": "127.0.0.1:8081", "method": "http", "wip": false, "showLink": true }, { "name": "OpenWebUI", "category": "user", "section": "AI", "description": "AI Chat/Search interface", "url": "http://ai.franksdank.cloud", "docs": "", "probe": "127.0.0.1:3005", "method": "http", "wip": false, "showLink": true }, { "name": "Gitea", "category": "user", "section": "Web Apps", "description": "Git code hosting and review platform.", "url": "http://gitea.franksdank.cloud", "docs": "", "probe": "127.0.0.1:3000", "method": "http", "wip": false, "showLink": true }, { "name": "Calibre-Web", "category": "user", "section": "Media Library Apps", "description": "E-book library.", "url": "http://books.franksdank.cloud", "docs": "", "probe": "192.168.0.235:8083", "method": "http", "wip": false, "showLink": true }, { "name": "RomM", "category": "user", "section": "Media Library Apps", "description": "ROM and emulator library.", "url": "http://romm.franksdank.cloud", "docs": "", "probe": "192.168.0.235:8085", "method": "http", "wip": false, "showLink": true }, { "name": "Copyparty", "category": "user", "section": "Web Apps", "description": "Direct downloads from Frank's server.", "url": "http://files.franksdank.cloud", "docs": "", "probe": "192.168.0.235:3923", "method": "http", "wip": false, "showLink": true }, { "name": "Plex", "category": "user", "section": "Media Library Apps", "description": "Closed source media server with apps for everything.", "url": "http://plex.franksdank.cloud/web/index.html", "docs": "", "probe": "192.168.0.235:32400", "method": "tcp", "wip": false, "showLink": true }, { "name": "Jellyfin", "category": "user", "section": "Media Library Apps", "description": "Open source media server.", "url": "http://jelly.franksdank.cloud", "docs": "", "probe": "192.168.0.235:8096", "method": "http", "wip": false, "showLink": true }, { "name": "Seerr", "category": "user", "section": "Media Library Apps", "description": "Download Requests", "url": "http://seerr.franksdank.cloud", "docs": "", "probe": "127.0.0.1:5055", "method": "http", "wip": false, "showLink": true }, { "name": "Marreta", "category": "user", "section": "Web Apps", "description": "Clean, ad-free article reader. Paste any URL, get just the article.", "url": "http://marreta.franksdank.cloud", "docs": "", "probe": "127.0.0.1:8082", "method": "http", "wip": false, "showLink": true }, { "name": "Sonarr", "category": "admin", "section": "Media Library Apps", "description": "TV series library and automation.", "url": "http://192.168.0.112:8989", "docs": "", "probe": "192.168.0.112:8989", "method": "http", "wip": false, "showLink": true }, { "name": "Hermes", "category": "admin", "section": "AI", "description": "The agent gateway.", "url": "http://hermes.franksdank.cloud", "docs": "", "probe": "127.0.0.1:8787", "method": "http", "wip": false, "showLink": true }, { "name": "Hermes dashboard", "category": "admin", "section": "AI", "description": "Agent management UI (config, API keys, sessions).", "url": "http://hermesadmin.franksdank.cloud", "docs": "", "probe": "192.168.0.143:9119", "method": "http", "wip": false, "showLink": true }, { "name": "Grafana", "category": "admin", "section": "Observability", "description": "Dashboards.", "url": "http://grafana.franksdank.cloud", "docs": "", "probe": "127.0.0.1:3002", "method": "http", "wip": false, "showLink": true }, { "name": "Prometheus", "category": "admin", "section": "Observability", "description": "Metrics collection.", "url": "http://prometheus.franksdank.cloud", "docs": "", "probe": "127.0.0.1:9090", "method": "http", "wip": false, "showLink": true }, { "name": "Loki", "category": "admin", "section": "Observability", "description": "Log storage.", "url": "http://loki.franksdank.cloud", "docs": "", "probe": "127.0.0.1:3100", "method": "http", "wip": false, "showLink": true }, { "name": "node-exporter", "category": "admin", "section": "Observability", "description": "Host metrics.", "url": "", "docs": "", "probe": "127.0.0.1:9100", "method": "http", "wip": false, "showLink": false }, { "name": "alloy", "category": "admin", "section": "Observability", "description": "Log shipping.", "url": "", "docs": "", "probe": "127.0.0.1:12345", "method": "http", "wip": false, "showLink": false }, { "name": "alertmanager", "category": "admin", "section": "Observability", "description": "Alert delivery to Signal.", "url": "", "docs": "", "probe": "127.0.0.1:9093", "method": "http", "wip": false, "showLink": false }, { "name": "Caddy", "category": "admin", "section": "Infrastructure", "description": "The reverse proxy.", "url": "", "docs": "", "probe": "127.0.0.1:80", "method": "http", "wip": false, "showLink": false }, { "name": "Pi-hole", "category": "admin", "section": "Infrastructure", "description": "LAN DNS + ad blocking.", "url": "http://pihole.franksdank.cloud", "docs": "", "probe": "192.168.0.143:8083", "method": "http", "wip": false, "showLink": true }, { "name": "Gluetun", "category": "admin", "section": "Infrastructure", "description": "The outbound VPN tunnel.", "url": "", "docs": "", "probe": "127.0.0.1:51820", "method": "tcp", "wip": "closed", "showLink": false }, { "name": "frank-large", "category": "user", "section": "AI", "description": "Qwen3.8-27B (UD-Q8_K_XL, 31.5 GiB) — 262k-token context, one conversation at a time. The big brain: long, thoughtful text conversations, DFlash2 spec decode. Text only; it cannot see images.", "url": "", "docs": "/docs#models", "probe": "127.0.0.1:7770", "method": "http", "wip": false, "showLink": false }, { "name": "frank-medium", "category": "user", "section": "AI", "description": "Qwen3.8-27B-Uncensored (MXFP4/W4A8, 19.4 GiB) — 262k-token context shared by up to eight conversations. The generalist: chat and reasoning, and it sees images.", "url": "", "docs": "/docs#models", "probe": "192.168.0.235:7770", "method": "http", "wip": false, "showLink": false }, { "name": "frank-small", "category": "user", "section": "AI", "description": "Gemma4-12B QAT (Q4_K_M, 7.4 GiB) — 1M-token pool across four 262k-token conversations. The eyes: screenshots, photos, diagrams; the fastest of the three.", "url": "", "docs": "/docs#models", "probe": "127.0.0.1:7771", "method": "http", "wip": false, "showLink": false }, { "name": "mariadb", "category": "admin", "section": "Infrastructure", "description": "RomM's database (Dankserver). Not probeable from the monitor: 3306 is container-internal, and publishing a database port on the LAN is not a trade this fleet makes. RomM's own card covers the stack.", "url": "", "docs": "", "probe": "192.168.0.235:3306", "method": "tcp", "wip": "closed", "showLink": false }, { "name": "valkey", "category": "admin", "section": "Infrastructure", "description": "SearXNG's cache/limiter (Dankclaw). Not probeable: 6379 is container-internal. SearXNG's own card covers the stack.", "url": "", "docs": "", "probe": "127.0.0.1:6379", "method": "tcp", "wip": "closed", "showLink": false }, { "name": "Prowlarr", "category": "admin", "section": "Media Library Apps", "description": "Indexer manager.", "url": "http://prowlarr.franksdank.cloud", "docs": "", "probe": "192.168.0.112:9696", "method": "http", "wip": false, "showLink": true }, { "name": "Radarr", "category": "admin", "section": "Media Library Apps", "description": "Movie library and automation.", "url": "http://radarr.franksdank.cloud", "docs": "", "probe": "192.168.0.112:7878", "method": "http", "wip": false, "showLink": true }, { "name": "Readarr", "category": "admin", "section": "Media Library Apps", "description": "Book library and automation.", "url": "http://readarr.franksdank.cloud", "docs": "", "probe": "192.168.0.112:8787", "method": "http", "wip": false, "showLink": true }, { "name": "Lidarr", "category": "admin", "section": "Media Library Apps", "description": "Music library and automation.", "url": "http://lidarr.franksdank.cloud", "docs": "", "probe": "192.168.0.112:8686", "method": "http", "wip": false, "showLink": true }, { "name": "qBittorrent", "category": "admin", "section": "Media Library Apps", "description": "Torrent client.", "url": "http://qbittorrent.franksdank.cloud", "docs": "", "probe": "192.168.0.112:8080", "method": "http", "wip": false, "showLink": true }, { "name": "Tautulli", "category": "admin", "section": "Media Library Apps", "description": "Plex statistics and notifications.", "url": "http://192.168.0.235:8181", "docs": "", "probe": "192.168.0.235:8181", "method": "http", "wip": false, "showLink": true }, { "name": "Postgres", "category": "admin", "section": "Infrastructure", "description": "Authentik's and Gitea's databases (Dankclaw). Not probeable: 5432 is container-internal. Their apps' cards cover the stacks.", "url": "", "docs": "", "probe": "127.0.0.1:5432", "method": "tcp", "wip": "closed", "showLink": false }, { "name": "ComfyUI", "category": "admin", "section": "AI", "description": "Node-based image generation.", "url": "http://comfyui.franksdank.cloud:8188", "docs": "", "probe": "127.0.0.1:8188", "method": "http", "wip": false, "showLink": true } ]