← ClaudeAtlas

mini-applisted

Use when adding, removing, password-protecting, or troubleshooting a mini-app served by the hermes-config mini-app router (Caddy + PM2 + auth sidecar + Tailscale Serve/Funnel) on a fleet machine. Covers install, the Caddy route pattern, the auth sidecar conventions, exposing apps publicly via Funnel, Hermes dashboards behind a password, and the recurring pitfalls (Tailscale "serve reset" wars, the PM2 $HOME trap, funnel-eligible ports, strip-prefix requirements).
TechNickAI/hermes-skills · ★ 0 · AI & Automation · score 76
Install: claude install-skill TechNickAI/hermes-skills
# Mini-App **Mission:** Operate the hermes-config mini-app router on this machine — the lightweight stack that exposes one or more named "mini-apps" at clean URL paths on a single Tailscale HTTPS host, with optional per-app password gating. One front door, many apps, no cloud. A mini-app is any process that binds to a localhost port and serves HTTP — a Node service, a Python FastAPI app, a Hermes dashboard, a webhook receiver. The app-router fronts them all with Caddy and gives each one: - A clean path (`https://<host>/<slug>/`) - Optional password protection via an Express auth sidecar - HTTPS for free via Tailscale Serve (and optional public exposure via Funnel) - PM2 supervision so it survives crashes and reboots The router stack lives upstream in [hermes-config](https://github.com/TechNickAI/hermes-config) under `devops/app-router/`. This skill is the operator playbook — what to do once it's installed. ## When to use Load this skill when you (a Hermes fleet agent) are asked to: - Add a new mini-app to this host's router (Hermes dashboard, webhook receiver, status page, anything that binds to localhost) - Remove or rename an existing mini-app - Add or change a password on a gated mini-app - Expose a mini-app publicly via Tailscale Funnel - Diagnose a 502 / 404 / auth-loop on a mini-app - Reload Caddy after editing the Caddyfile - Restore Tailscale Serve after another tool wiped it - Verify the front door is up after a reboot or upgrade **Don't use for:** writing