Ryan Malloy 09b1bae157 ui: shadcn-ui + React island shells for pages, Redis session store
Rewrite the dashboard, machines, users, dns, and settings pages as thin
Astro shells that mount a matching React island (Dashboard, MachinesPage,
UsersPage, DnsPage, SettingsPage) built on the shadcn-ui component
library. Alpine.js templates in those pages are replaced wholesale;
Alpine still ships as the runtime for the ACL editor's dependencies.

- src/components/ui/*: shadcn primitives (button, card, tabs, select,
  dropdown-menu, avatar, badge, input, switch, separator)
- src/components/{dashboard,dns,machines,settings,users}/*: page-level
  React shells that consume server props from the Astro parent
- src/components/shell/AppShell.tsx: shared chrome (nav, user menu)
- src/lib/utils.ts: shadcn's cn() helper
- src/lib/auth/session-manager.ts: pluggable SessionStore interface with
  Redis (via REDIS_URL) or in-memory backends; both honor absolute
  expiration via TTL. In-memory logs a warning that sessions vanish on
  restart.
- src/lib/auth/oidc-client.ts, oidc-state.ts: shrink OIDC handlers now
  that PKCE + nonce state travels in a signed JWT cookie
- src/pages/api/auth/*: match the simplified handlers
- src/styles/global.css, tailwind.config.mjs, tsconfig.json: shadcn
  design tokens and the '@/*' path alias
- docker-compose.local.yml: local dev tweaks
- package.json, pnpm-lock.yaml: shadcn + Radix + ioredis + zod
2026-08-20 10:25:35 -06:00
2025-06-16 11:45:24 -04:00
2025-08-20 14:07:08 -04:00
2026-06-06 13:05:35 -06:00
2026-06-06 13:05:35 -06:00
2026-06-06 13:05:35 -06:00
2025-06-09 10:30:03 -04:00
2026-06-06 13:05:35 -06:00
2026-06-06 13:05:35 -06:00
2024-03-26 10:10:34 -04:00
2026-06-06 13:05:35 -06:00
2025-01-15 10:17:30 +05:30
2026-06-06 13:05:35 -06:00
2025-06-16 11:45:23 -04:00
2025-08-28 22:55:26 -04:00
2025-06-16 11:45:23 -04:00
2026-06-06 13:05:35 -06:00
2025-08-18 13:09:51 -04:00
2025-08-20 14:07:08 -04:00
2025-08-20 14:07:08 -04:00
2026-06-06 13:05:35 -06:00
2024-03-26 10:24:28 -04:00
2026-06-06 13:05:35 -06:00
2026-06-06 13:05:35 -06:00
2026-06-06 13:05:35 -06:00
2025-08-18 13:37:53 -04:00

🤠 Heady

Strategic VPN management for Headscale that's actually awesome to use!

Preview

Headscale is the de-facto self-hosted version of Tailscale, a popular Wireguard based VPN service. By default, it does not ship with a web UI, which is where Heady comes in.

Heady is strategic VPN management that prioritizes security, thoughtful design, and awesome user experience. Unlike feature-heavy alternatives, Heady focuses on doing the important things incredibly well.

🎯 What Makes Heady Different

Security-First Design: Every feature is evaluated for security impact first Convention Over Configuration: Smart defaults that just work for 90% of setups
Quality Over Quantity: Fewer features, done awesomely well Community-Driven: Built for real users, not corporate feature checklists

Awesome Features

  • Smart Machine Management: Intuitive node administration with clear status and controls
  • Intelligent ACL Configuration: Visual access control with tagging support
  • Revolutionary OIDC Integration: Zero-config role mapping that just works with any identity provider
  • DNS Made Simple: Easy MagicDNS setup and custom record management
  • Thoughtful Configuration: Headscale settings that make sense

🚀 Getting Started

Heady runs as a web application alongside your Headscale server. Quick setup with smart defaults gets you running fast.

# Coming soon - simplified Docker deployment

🔧 Zero-Config OIDC Setup

Heady's revolutionary OIDC system works with any identity provider out of the box:

oidc:
  issuer: "https://your-provider.com"
  client_id: "your-client-id" 
  client_secret: "your-secret"
  # That's it! Role mapping, scopes, and redirect URIs are auto-configured

Want custom roles? Easy:

HEADPLANE_ADMIN_GROUPS="admin,managers"
HEADPLANE_OWNER_GROUPS="ceo,founders"

📖 Documentation & Community

🎯 Deployment Options

Heady v1.0 features a unified architecture with all awesome features available in every deployment:

  • Standard Deployment

    Quick deployment with smart defaults. All features available, with optional integrations configured as needed.

  • Advanced Integration

    Enable Docker, Kubernetes, or native process integration for automatic DNS management and configuration updates.

Versioning

Headplane uses semantic versioning for its releases (since v0.6.0). Pre-release builds are available under the next tag and get updated when a new release PR is opened and actively in testing.

Contributing

Headplane is an open-source project and contributions are welcome! If you have any suggestions, bug reports, or feature requests, please open an issue. Also refer to the contributor guidelines for more info.


ACLs Machine Management

Copyright (c) 2025 Aarnav Tale

Description
Fork of tale/headplane (Heady). Web UI for the supported.systems headscale tailnet.
Readme MIT 5.5 MiB
Languages
Astro 49.8%
TypeScript 29.8%
Python 5.8%
JavaScript 5.7%
Go 5.2%
Other 3.7%