From bb0d24b7082d59e35582e1ea3a7cb7d37786300b Mon Sep 17 00:00:00 2001 From: Aarnav Tale Date: Sun, 12 Oct 2025 14:22:29 -0400 Subject: [PATCH 1/5] chore: update changelog date --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 024ebc0..dffe39d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -### 0.6.1 (Next) +### 0.6.1 (October 12, 2025) - **Headplane now supports connecting to machines via SSH in the web browser.** - This is an experimental feature and requires the `integration.agent` section to be set up in the config file. - This is built on top of a Go binary that runs in WebAssembly, using Xterm.js for the terminal interface. From cb9d0d53174e06a957a579420662718438eea15c Mon Sep 17 00:00:00 2001 From: Aarnav Tale Date: Sun, 12 Oct 2025 14:23:58 -0400 Subject: [PATCH 2/5] chore: remove tool-versions to make cloudflare happy --- .tool-versions | 4 ---- mise.toml | 1 - 2 files changed, 5 deletions(-) delete mode 100644 .tool-versions diff --git a/.tool-versions b/.tool-versions deleted file mode 100644 index a1e8ca8..0000000 --- a/.tool-versions +++ /dev/null @@ -1,4 +0,0 @@ -# REMEMBER TO UPDATE mise.toml TOO -pnpm 10.4.0 -node 22.16 -go 1.25.1 diff --git a/mise.toml b/mise.toml index 5462207..68ed043 100644 --- a/mise.toml +++ b/mise.toml @@ -1,5 +1,4 @@ [tools] -# REMEMBER TO UPDATE .tool-versions TOO go = "1.25.1" pnpm = "10.4.0" node = "22.16" From 7a222c47ee4a593acd1f0f4093b99a825111e463 Mon Sep 17 00:00:00 2001 From: Aarnav Tale Date: Sun, 12 Oct 2025 14:47:53 -0400 Subject: [PATCH 3/5] chore: remove .tool-versions from dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8bcfa66..1e6fd59 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ FROM --platform=$BUILDPLATFORM jdxcode/mise:latest AS mise-context -COPY mise.toml .tool-versions ./ +COPY mise.toml ./ RUN --mount=type=secret,id=gh_token,env=MISE_GITHUB_TOKEN mise install FROM --platform=$BUILDPLATFORM mise-context AS go-build From 4ccc73d7e4c9cca68db88fa609e7794cd1d644ce Mon Sep 17 00:00:00 2001 From: Aarnav Tale Date: Sun, 12 Oct 2025 15:50:20 -0400 Subject: [PATCH 4/5] chore: cleanup docs a bit --- docs/.vitepress/config.ts | 9 +++++---- docs/.vitepress/theme/custom.css | 7 +++++++ docs/.vitepress/theme/index.ts | 4 ++++ docs/index.md | 34 +++++++++++++++++++++----------- docs/public | 1 + 5 files changed, 39 insertions(+), 16 deletions(-) create mode 100644 docs/.vitepress/theme/custom.css create mode 100644 docs/.vitepress/theme/index.ts create mode 120000 docs/public diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 15c7bbe..d975f84 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -5,11 +5,10 @@ export default defineConfig({ description: 'The missing dashboard for Headscale', ignoreDeadLinks: ['/docs/Integrated-Mode', '/docs/Simple-Mode'], cleanUrls: true, + head: [['link', { rel: 'icon', href: '/favicon.ico' }]], themeConfig: { - nav: [ - { text: 'Home', link: '/' }, - { text: 'Sponsor Headplane', link: 'https://github.com/sponsors/tale' }, - ], + logo: '/logo-dark-bg.svg', + nav: [{ text: 'Home', link: '/' }], sidebar: [ { text: 'Chapters', @@ -30,6 +29,8 @@ export default defineConfig({ socialLinks: [ { icon: 'github', link: 'https://github.com/tale/headplane' }, + { icon: 'githubsponsors', link: 'https://github.com/sponsors/tale' }, + { icon: 'kofi', link: 'https://ko-fi.com/atale' }, ], lastUpdated: { diff --git a/docs/.vitepress/theme/custom.css b/docs/.vitepress/theme/custom.css new file mode 100644 index 0000000..dc66c52 --- /dev/null +++ b/docs/.vitepress/theme/custom.css @@ -0,0 +1,7 @@ +html.dark .light-only { + display: none !important; +} + +html:not(.dark) .dark-only { + display: none !important; +} diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts new file mode 100644 index 0000000..149273e --- /dev/null +++ b/docs/.vitepress/theme/index.ts @@ -0,0 +1,4 @@ +import DefaultTheme from 'vitepress/theme'; +import './custom.css'; + +export default DefaultTheme; diff --git a/docs/index.md b/docs/index.md index 98e8701..bc7dad0 100644 --- a/docs/index.md +++ b/docs/index.md @@ -3,20 +3,30 @@ layout: home hero: - name: "A feature-complete Web UI for Headscale" - text: "Documentation" - tagline: "A feature-complete Web UI for Headscale" + name: "Headplane" + tagline: "A full-featured admin interface for Headscale" + image: + src: "/logo-dark-bg.svg" + alt: "Headplane" actions: - - theme: brand - text: Getting Started - link: /README + - text: "Getting Started" + link: "/README" + - text: "GitHub" + link: "https://github.com/tale/headplane" + theme: "alt" features: - - title: Web SSH - details: Connect to machines directly from your browser - - title: OIDC - details: Login through your favourite SSO provider - - title: And many more - details: Setup ACLs, DNS, pre-auth keys, etc. + - title: "Remote web-based SSH" + details: "Connect to and manage machines via SSH directly through your web browser" + icon: "🌐" + - title: "Single-sign-on" + details: "Bring your own auth via OpenID Connect, including popular solutions such as Google Workspace, Azure/Entra, Okta, etc." + icon: "👥" + - title: "Detailed Tailnet Overview" + details: "Get access to detailed host and network information from each device residing within your Tailnet" + icon: "🔎" + - title: "Configure Headscale Settings" + details: "Manage settings hidden behind Headscale configuration such as DNS, networking, auth controls, etc." + icon: "📝" --- diff --git a/docs/public b/docs/public new file mode 120000 index 0000000..27f8dec --- /dev/null +++ b/docs/public @@ -0,0 +1 @@ +../public \ No newline at end of file From eaffcd7b62f33fb2ffe45699faa41e69d9cebf02 Mon Sep 17 00:00:00 2001 From: Aarnav Tale Date: Sun, 12 Oct 2025 22:03:13 -0400 Subject: [PATCH 5/5] chore: refactor vitepress docs location --- .gitignore | 8 ++++---- {docs/.vitepress => .vitepress}/config.ts | 1 + {docs/.vitepress => .vitepress}/theme/custom.css | 0 {docs/.vitepress => .vitepress}/theme/index.ts | 0 docs/public | 1 - 5 files changed, 5 insertions(+), 5 deletions(-) rename {docs/.vitepress => .vitepress}/config.ts (98%) rename {docs/.vitepress => .vitepress}/theme/custom.css (100%) rename {docs/.vitepress => .vitepress}/theme/index.ts (100%) delete mode 120000 docs/public diff --git a/.gitignore b/.gitignore index f32916b..dae8ca5 100644 --- a/.gitignore +++ b/.gitignore @@ -4,9 +4,9 @@ node_modules /build /test .env -app/hp_ssh.wasm -app/wasm_exec.js -/docs/.vitepress/dist/ -/docs/.vitepress/cache/ +/app/hp_ssh.wasm +/app/wasm_exec.js +/.vitepress/dist/ +/.vitepress/cache/ /.direnv diff --git a/docs/.vitepress/config.ts b/.vitepress/config.ts similarity index 98% rename from docs/.vitepress/config.ts rename to .vitepress/config.ts index d975f84..5af405b 100644 --- a/docs/.vitepress/config.ts +++ b/.vitepress/config.ts @@ -6,6 +6,7 @@ export default defineConfig({ ignoreDeadLinks: ['/docs/Integrated-Mode', '/docs/Simple-Mode'], cleanUrls: true, head: [['link', { rel: 'icon', href: '/favicon.ico' }]], + srcDir: 'docs', themeConfig: { logo: '/logo-dark-bg.svg', nav: [{ text: 'Home', link: '/' }], diff --git a/docs/.vitepress/theme/custom.css b/.vitepress/theme/custom.css similarity index 100% rename from docs/.vitepress/theme/custom.css rename to .vitepress/theme/custom.css diff --git a/docs/.vitepress/theme/index.ts b/.vitepress/theme/index.ts similarity index 100% rename from docs/.vitepress/theme/index.ts rename to .vitepress/theme/index.ts diff --git a/docs/public b/docs/public deleted file mode 120000 index 27f8dec..0000000 --- a/docs/public +++ /dev/null @@ -1 +0,0 @@ -../public \ No newline at end of file