A YAML-driven, bookmarks-bar-style launcher for homelab services.
Patch Panel is a Chrome extension that injects a thin bar across the top of every page, giving you one-click access to your self-hosted services. You describe your homelab in a single YAML file — services, groups, icons — and the bar renders from it.
I wanted a lightweight alternative to the usual homelab dashboards like Homer and Dashy. They're great, but they take over an entire tab. I wanted the configurability of a YAML-driven dashboard without having to dedicate a whole tab to it. Patch Panel lives as a thin bar on top of whatever page you're already on, so your self-hosted services are always one click away.
This is a pnpm monorepo.
apps/
extension/ Chrome MV3 extension (Vite + TypeScript)
landing/ Static landing page
apps/extension— the extension itself. Content script renders the bar, options page edits the YAML, background service worker handles storage.apps/landing— a static HTML/CSS landing page.
Requires pnpm (v10+).
pnpm installpnpm dev # vite dev build for the extension
pnpm build # typecheck + build all workspacesLoad the extension in Chrome:
- Run
pnpm build(output lands inapps/extension/dist). - Go to
chrome://extensions, enable Developer mode. - Click Load unpacked and select
apps/extension/dist. - Open the extension's Options page to paste or upload your YAML config.
See apps/extension/examples/homelab.yaml for a reference config.
pnpm --filter landing dev # serves on http://localhost:4321title: My Homelab
displayMode: icon_text # icon | text | icon_text
items:
- type: service
name: Grafana
url: https://grafana.local
icon: https://www.google.com/s2/favicons?domain=grafana.com&sz=64
- type: group
name: Media
items:
- type: service
name: Plex
url: http://plex.local:32400/webTop-level items is a mix of service entries and group entries. Groups render as a hover dropdown on the bar.
