// the find
mescon/Muximux
A self-hosted homelab dashboard with an optional built-in reverse proxy that makes stubborn apps work in iframes
Muximux is a homelab dashboard for people who actually want to work inside their self-hosted apps in iframes, not just link to them. The key differentiator is a built-in reverse proxy that strips X-Frame-Options headers and injects runtime JS to patch fetch() and XHR so SPAs work correctly when embedded at a different path. Ships as a single Go binary with YAML config and an embedded Svelte frontend — no database, no runtime dependencies.
1. The SPA iframe interception is the technically interesting piece: most dashboards give up when an app sets X-Frame-Options DENY, but patching fetch() and XMLHttpRequest at the document level is the correct fix for apps that break on proxied paths, not just header stripping.
2. Single binary with embedded frontend is the right deployment model for homelab tooling — one file, no Node runtime, no separate web server, nothing to upgrade separately.
3. Unusually rigorous CI for a solo homelab project: 85%+ coverage enforced by a pre-push hook, CodeQL, Snyk, SonarCloud, govulncheck, and an explicit OWASP ASVS Level 2 target.
4. YAML-only state means your entire dashboard configuration is one file. Backup is a cp. Migration is scp.
1. The reverse proxy sits between you and every app in your homelab — auth flows, admin panels, router UI, all of it. The project is explicitly heavily AI-assisted. For a tool with this kind of trust position, you should read the proxy rewrite logic in internal/proxy/ yourself before deploying it in front of anything sensitive.
2. No live service widgets is a real gap. If you want download speeds, episode queues, or container stats visible without clicking into each app, you'll need a second dashboard alongside this one.
3. Young project at 1187 stars with 84 forks — the comparison table in the README argues against Homepage and Homarr, but those have much larger communities and battle-tested integrations. The iframe-first approach is a genuine niche, but the switching cost from established alternatives is real.
4. Embedded Caddy for TLS and gateway adds a non-trivial abstraction — Caddy has its own config model, and when a certificate renewal fails or routing breaks, the error surfaces through Muximux's layer, which can make debugging slower than running Caddy directly.