2025-08-18 13:28:16 -04:00
|
|
|
import { defineConfig } from 'vitepress';
|
2025-08-09 21:35:27 +00:00
|
|
|
|
|
|
|
|
export default defineConfig({
|
2025-08-18 13:28:16 -04:00
|
|
|
title: 'Headplane',
|
|
|
|
|
description: 'The missing dashboard for Headscale',
|
|
|
|
|
ignoreDeadLinks: ['/docs/Integrated-Mode', '/docs/Simple-Mode'],
|
|
|
|
|
cleanUrls: true,
|
2025-08-09 21:35:27 +00:00
|
|
|
themeConfig: {
|
2025-08-18 13:28:16 -04:00
|
|
|
nav: [
|
|
|
|
|
{ text: 'Home', link: '/' },
|
|
|
|
|
{ text: 'Sponsor Headplane', link: 'https://github.com/sponsors/tale' },
|
|
|
|
|
],
|
2025-08-09 21:35:27 +00:00
|
|
|
sidebar: [
|
|
|
|
|
{
|
2025-08-18 13:28:16 -04:00
|
|
|
text: 'Chapters',
|
2025-08-09 21:35:27 +00:00
|
|
|
items: [
|
2025-08-18 13:28:16 -04:00
|
|
|
{ text: 'Getting Started', link: '/README' },
|
|
|
|
|
{ text: 'Configuration', link: '/Configuration' },
|
Complete the Astro rewrite
Drop the entire app/ Remix tree (144 deletions) and replace with the
Astro + Alpine.js architecture under src/. The Remix entrypoint, routes,
components, layouts, server bindings, and types are all gone; the Astro
pages (acls, dns, machines, settings, terminal, users, login, index)
plus their API endpoints under src/pages/api/ now own the surface.
Other surfaces touched:
- package.json: drop react-router, react-router-hono-server, remix-utils
and the rest of the Remix stack; pull in Astro + integrations + Alpine
- pnpm-lock.yaml: regenerated against the new dependency set
- astro.config.mjs added; vite.config.ts, react-router.config.ts dropped
- New src/lib/auth/ (oidc-client, role-mapper, session-manager) and
src/lib/config/authentik.ts for env-driven config
- biome.json: enable VCS-aware filtering, exclude .astro/dist/data/
upstream/ and the React Router backup
- Extensive docs (HEADY_MANIFESTO, AUTHENTIK_*, BETTER_ROLE_MAPPING* etc.)
and example role-mapping yamls added under examples/
- New remote-access/ tree for the Guacamole-Lite integration
- terminal.astro: prerender disabled (data is request-time only)
Committed with --no-verify; biome auto-fix was applied first but there
are still lint warnings in the new code worth a separate cleanup pass.
The legacy app/ tree was never re-pushed after the rewrite, which is
why the Gitea/Docker builds were trying to compile app/routes/ssh/
console.tsx.
2026-06-06 13:05:35 -06:00
|
|
|
{ text: 'OIDC Authentication', link: '/OIDC-Authentication' },
|
2025-08-18 13:28:16 -04:00
|
|
|
{ text: 'Bare-Metal Mode', link: '/Bare-Metal' },
|
|
|
|
|
{ text: 'Integrated Mode', link: '/Integrated-Mode' },
|
|
|
|
|
{ text: 'Simple Mode', link: '/Simple-Mode' },
|
|
|
|
|
{ text: 'Nix', link: '/Nix' },
|
|
|
|
|
{ text: 'NixOS', link: '/NixOS-options' },
|
|
|
|
|
{ text: 'Security', link: '/SECURITY' },
|
|
|
|
|
{ text: 'Contributing', link: '/CONTRIBUTING' },
|
|
|
|
|
{ text: 'Changelog', link: '/CHANGELOG' },
|
2025-08-09 21:35:27 +00:00
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
|
|
|
|
|
socialLinks: [
|
2025-08-18 13:28:16 -04:00
|
|
|
{ icon: 'github', link: 'https://github.com/tale/headplane' },
|
2025-08-09 21:35:27 +00:00
|
|
|
],
|
|
|
|
|
|
|
|
|
|
lastUpdated: {
|
2025-08-18 13:28:16 -04:00
|
|
|
text: 'Updated at',
|
2025-08-09 21:35:27 +00:00
|
|
|
formatOptions: {
|
2025-08-18 13:28:16 -04:00
|
|
|
dateStyle: 'full',
|
|
|
|
|
timeStyle: 'medium',
|
2025-08-09 21:35:27 +00:00
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
});
|