Skip to content

balub/patch-panel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Patch Panel

Patch Panel demo

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.

Why

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.

Repository layout

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.

Getting started

Requires pnpm (v10+).

pnpm install

Extension

pnpm dev            # vite dev build for the extension
pnpm build          # typecheck + build all workspaces

Load the extension in Chrome:

  1. Run pnpm build (output lands in apps/extension/dist).
  2. Go to chrome://extensions, enable Developer mode.
  3. Click Load unpacked and select apps/extension/dist.
  4. Open the extension's Options page to paste or upload your YAML config.

See apps/extension/examples/homelab.yaml for a reference config.

Landing page

pnpm --filter landing dev   # serves on http://localhost:4321

Config format

title: 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/web

Top-level items is a mix of service entries and group entries. Groups render as a hover dropdown on the bar.

About

A YAML-driven bookmarks-bar-style Chrome extension for launching your homelab services from any tab.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors