feat: documentation website using Vitepress
Adds documentation website using https://vitepress.dev. Some decisions are questionable, for example creation of a symbolic link for the README in the `docs/`. I wanted to preserve the ability to read docs using Github. Maybe not needed. Another issue, is the page outline for the `NixOS` chapter is too narrow. But should serve as a scaffold/basis for doing it properly.
@@ -0,0 +1,47 @@
|
|||||||
|
name: Deploy VitePress site to Pages
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: ["main", "next", "next-nix-generate-docs"]
|
||||||
|
workflow_dispatch:
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pages: write
|
||||||
|
id-token: write
|
||||||
|
concurrency:
|
||||||
|
group: pages
|
||||||
|
cancel-in-progress: false
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 1
|
||||||
|
- uses: pnpm/action-setup@v3
|
||||||
|
- name: Setup Node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 22
|
||||||
|
cache: pnpm
|
||||||
|
- name: Setup Pages
|
||||||
|
uses: actions/configure-pages@v4
|
||||||
|
- name: Install dependencies
|
||||||
|
run: pnpm install
|
||||||
|
- name: Build with VitePress
|
||||||
|
run: pnpm run docs:build
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-pages-artifact@v3
|
||||||
|
with:
|
||||||
|
path: docs/.vitepress/dist
|
||||||
|
deploy:
|
||||||
|
environment:
|
||||||
|
name: github-pages
|
||||||
|
url: ${{ steps.deployment.outputs.page_url }}
|
||||||
|
needs: build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
name: Deploy
|
||||||
|
steps:
|
||||||
|
- name: Deploy to GitHub Pages
|
||||||
|
id: deployment
|
||||||
|
uses: actions/deploy-pages@v4
|
||||||
@@ -6,5 +6,7 @@ node_modules
|
|||||||
.env
|
.env
|
||||||
app/hp_ssh.wasm
|
app/hp_ssh.wasm
|
||||||
app/wasm_exec.js
|
app/wasm_exec.js
|
||||||
|
/docs/.vitepress/dist/
|
||||||
|
/docs/.vitepress/cache/
|
||||||
|
|
||||||
/.direnv
|
/.direnv
|
||||||
|
|||||||
@@ -4,15 +4,15 @@
|
|||||||
<picture>
|
<picture>
|
||||||
<source
|
<source
|
||||||
media="(prefers-color-scheme: dark)"
|
media="(prefers-color-scheme: dark)"
|
||||||
srcset="./assets/preview-dark.png"
|
srcset="./docs/assets/preview-dark.png"
|
||||||
>
|
>
|
||||||
<source
|
<source
|
||||||
media="(prefers-color-scheme: light)"
|
media="(prefers-color-scheme: light)"
|
||||||
srcset="./assets/preview-light.png"
|
srcset="./docs/assets/preview-light.png"
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
alt="Preview"
|
alt="Preview"
|
||||||
src="./assets/preview-dark.png"
|
src="./docs/assets/preview-dark.png"
|
||||||
>
|
>
|
||||||
</picture>
|
</picture>
|
||||||
|
|
||||||
@@ -44,12 +44,12 @@ There are 2 ways to deploy Headplane:
|
|||||||
Simple mode does not include the automatic management of DNS and Headplane
|
Simple mode does not include the automatic management of DNS and Headplane
|
||||||
settings, requiring manual editing and reloading when making changes.
|
settings, requiring manual editing and reloading when making changes.
|
||||||
|
|
||||||
### Versioning
|
## Versioning
|
||||||
Headplane uses [semantic versioning](https://semver.org/) for its releases (since v0.6.0).
|
Headplane uses [semantic versioning](https://semver.org/) for its releases (since v0.6.0).
|
||||||
Pre-release builds are available under the `next` tag and get updated when a new release
|
Pre-release builds are available under the `next` tag and get updated when a new release
|
||||||
PR is opened and actively in testing.
|
PR is opened and actively in testing.
|
||||||
|
|
||||||
### Contributing
|
## Contributing
|
||||||
Headplane is an open-source project and contributions are welcome! If you have
|
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
|
any suggestions, bug reports, or feature requests, please open an issue. Also
|
||||||
refer to the [contributor guidelines](./docs/CONTRIBUTING.md) for more info.
|
refer to the [contributor guidelines](./docs/CONTRIBUTING.md) for more info.
|
||||||
@@ -59,30 +59,30 @@ refer to the [contributor guidelines](./docs/CONTRIBUTING.md) for more info.
|
|||||||
<picture>
|
<picture>
|
||||||
<source
|
<source
|
||||||
media="(prefers-color-scheme: dark)"
|
media="(prefers-color-scheme: dark)"
|
||||||
srcset="./assets/acls-dark.png"
|
srcset="./docs/assets/acls-dark.png"
|
||||||
>
|
>
|
||||||
<source
|
<source
|
||||||
media="(prefers-color-scheme: light)"
|
media="(prefers-color-scheme: light)"
|
||||||
srcset="./assets/acls-light.png"
|
srcset="./docs/assets/acls-light.png"
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
alt="ACLs"
|
alt="ACLs"
|
||||||
src="./assets/acls-dark.png"
|
src="./docs/assets/acls-dark.png"
|
||||||
>
|
>
|
||||||
</picture>
|
</picture>
|
||||||
|
|
||||||
<picture>
|
<picture>
|
||||||
<source
|
<source
|
||||||
media="(prefers-color-scheme: dark)"
|
media="(prefers-color-scheme: dark)"
|
||||||
srcset="./assets/machine-dark.png"
|
srcset="./docs/assets/machine-dark.png"
|
||||||
>
|
>
|
||||||
<source
|
<source
|
||||||
media="(prefers-color-scheme: light)"
|
media="(prefers-color-scheme: light)"
|
||||||
srcset="./assets/machine-light.png"
|
srcset="./docs/assets/machine-light.png"
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
alt="Machine Management"
|
alt="Machine Management"
|
||||||
src="./assets/machine-dark.png"
|
src="./docs/assets/machine-dark.png"
|
||||||
>
|
>
|
||||||
</picture>
|
</picture>
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
import { defineConfig } from "vitepress";
|
||||||
|
|
||||||
|
// https://vitepress.dev/reference/site-config
|
||||||
|
export default defineConfig({
|
||||||
|
title: "Headplane",
|
||||||
|
description: "Documentation",
|
||||||
|
// base: "https://headplane.net",
|
||||||
|
ignoreDeadLinks: ["/docs/Integrated-Mode", "/docs/Simple-Mode"],
|
||||||
|
themeConfig: {
|
||||||
|
// https://vitepress.dev/reference/default-theme-config
|
||||||
|
nav: [{ text: "Home", link: "/" }],
|
||||||
|
|
||||||
|
sidebar: [
|
||||||
|
{
|
||||||
|
text: "Chapters",
|
||||||
|
items: [
|
||||||
|
{ text: "Getting Started", link: "/README" },
|
||||||
|
{ text: "Configuration", link: "/Configuration" },
|
||||||
|
{ 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" },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
socialLinks: [
|
||||||
|
{ icon: "github", link: "https://github.com/tale/headplane" },
|
||||||
|
],
|
||||||
|
|
||||||
|
lastUpdated: {
|
||||||
|
text: "Updated at",
|
||||||
|
formatOptions: {
|
||||||
|
dateStyle: "full",
|
||||||
|
timeStyle: "medium",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
@@ -42,7 +42,7 @@ The structure of this folder is very important and should not be tampered with.
|
|||||||
|
|
||||||
### Integrated Mode
|
### Integrated Mode
|
||||||
Since you are running Headplane in Bare-Metal, you most likely also are running
|
Since you are running Headplane in Bare-Metal, you most likely also are running
|
||||||
Headscale in Bare-Metal. Refer to the [**Integrated Mode**](/docs/Integrated-Mode.md)
|
Headscale in Bare-Metal. Refer to the [**Integrated Mode**](./Integrated-Mode.md)
|
||||||
guide for instructions on setting up the integrated mode in Native Linux (/proc).
|
guide for instructions on setting up the integrated mode in Native Linux (/proc).
|
||||||
|
|
||||||
### Changing the Admin Path
|
### Changing the Admin Path
|
||||||
@@ -58,7 +58,7 @@ Just keep in mind that the admin path is not configurable at runtime, so you
|
|||||||
will need to rebuild the project if you want to change it. Also, anything aside
|
will need to rebuild the project if you want to change it. Also, anything aside
|
||||||
from `/admin` is not officially supported and could break in future versions.
|
from `/admin` is not officially supported and could break in future versions.
|
||||||
|
|
||||||
> Refer to the [**Configuration**](/docs/Configuration.md) guide for help with
|
> Refer to the [**Configuration**](./Configuration.md) guide for help with
|
||||||
> setting up your `config.yaml` file to the appropriate values.
|
> setting up your `config.yaml` file to the appropriate values.
|
||||||
|
|
||||||
### Systemd Unit
|
### Systemd Unit
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
./../CHANGELOG.md
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
> Since 0.5, you will need to manually migrate your configuration to the new format.
|
> Since 0.5, you will need to manually migrate your configuration to the new format.
|
||||||
|
|
||||||
Headplane uses a configuration file to manage its settings
|
Headplane uses a configuration file to manage its settings
|
||||||
([**config.example.yaml**](../config.example.yaml)). By default, Headplane looks
|
([**config.example.yaml**](https://github.com/tale/headplane/blob/main/config.example.yaml)). By default, Headplane looks
|
||||||
for a the file at `/etc/headplane/config.yaml`. This can be changed using the
|
for a the file at `/etc/headplane/config.yaml`. This can be changed using the
|
||||||
**`HEADPLANE_CONFIG_PATH`** environment variable to point to a different location.
|
**`HEADPLANE_CONFIG_PATH`** environment variable to point to a different location.
|
||||||
|
|
||||||
|
|||||||
@@ -3,15 +3,15 @@
|
|||||||
<picture>
|
<picture>
|
||||||
<source
|
<source
|
||||||
media="(prefers-color-scheme: dark)"
|
media="(prefers-color-scheme: dark)"
|
||||||
srcset="../assets/dns-dark.png"
|
srcset="./assets/dns-dark.png"
|
||||||
>
|
>
|
||||||
<source
|
<source
|
||||||
media="(prefers-color-scheme: light)"
|
media="(prefers-color-scheme: light)"
|
||||||
srcset="../assets/dns-light.png"
|
srcset="./assets/dns-light.png"
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
alt="Integration Preview"
|
alt="Integration Preview"
|
||||||
src="../assets/dns-dark.png"
|
src="./assets/dns-dark.png"
|
||||||
>
|
>
|
||||||
</picture>
|
</picture>
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ deployment method for most users, as it provides a more feature-complete
|
|||||||
experience.
|
experience.
|
||||||
|
|
||||||
## Deployment
|
## Deployment
|
||||||
> If you are not looking to deploy with Docker, follow the [**Bare-Metal**](/docs/Bare-Metal.md) deployment guide.
|
> If you are not looking to deploy with Docker, follow the [**Bare-Metal**](./Bare-Metal.md) deployment guide.
|
||||||
> Refer to the `Integrated Mode` section at the bottom for caveats.
|
> Refer to the `Integrated Mode` section at the bottom for caveats.
|
||||||
|
|
||||||
Requirements:
|
Requirements:
|
||||||
@@ -73,7 +73,7 @@ This will result in the Headplane UI being available at the `/admin` path of the
|
|||||||
server you deployed it on. The `/admin` path is currently not configurable unless
|
server you deployed it on. The `/admin` path is currently not configurable unless
|
||||||
you build the container yourself or run Headplane in Bare-Metal mode.
|
you build the container yourself or run Headplane in Bare-Metal mode.
|
||||||
|
|
||||||
> Refer to the [**Configuration**](/docs/Configuration.md) guide for help with
|
> Refer to the [**Configuration**](./Configuration.md) guide for help with
|
||||||
> setting up your `config.yaml` file to the appropriate values.
|
> setting up your `config.yaml` file to the appropriate values.
|
||||||
|
|
||||||
## Docker Integration
|
## Docker Integration
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Nix
|
# Nix
|
||||||
|
|
||||||
[flake.nix](../flake.nix) provided:
|
[flake.nix](https://github.com/tale/headplane/blob/main/flake.nix) provided:
|
||||||
```
|
```sh
|
||||||
$ nix flake show github:tale/headplane --all-systems
|
$ nix flake show github:tale/headplane --all-systems
|
||||||
github:tale/headplane/ec6d455461955242393b60d9ce60c5123fa9784f?narHash=sha256-CM/vXzUiOed7i1Pp15KyV4FuIvumRlXnpF33dSWZZH4%3D
|
github:tale/headplane/ec6d455461955242393b60d9ce60c5123fa9784f?narHash=sha256-CM/vXzUiOed7i1Pp15KyV4FuIvumRlXnpF33dSWZZH4%3D
|
||||||
├───checks
|
├───checks
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ boolean
|
|||||||
` true `
|
` true `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ package
|
|||||||
` pkgs.headplane `
|
` pkgs.headplane `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ boolean
|
|||||||
` false `
|
` false `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -82,7 +82,7 @@ submodule
|
|||||||
` { } `
|
` { } `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -103,7 +103,7 @@ submodule
|
|||||||
` { } `
|
` { } `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -132,7 +132,7 @@ null or absolute path
|
|||||||
` "/etc/headscale/config.yaml" `
|
` "/etc/headscale/config.yaml" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -155,7 +155,7 @@ boolean
|
|||||||
` true `
|
` true `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -183,7 +183,7 @@ null or absolute path
|
|||||||
` "/var/lib/headplane/extra_records.json" `
|
` "/var/lib/headplane/extra_records.json" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -209,7 +209,7 @@ null or string
|
|||||||
` "https://headscale.example.com" `
|
` "https://headscale.example.com" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -235,7 +235,7 @@ null or absolute path
|
|||||||
` "config.sops.secrets.tls_cert.path" `
|
` "config.sops.secrets.tls_cert.path" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -264,7 +264,7 @@ string
|
|||||||
` "https://headscale.example.com" `
|
` "https://headscale.example.com" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -285,7 +285,7 @@ submodule
|
|||||||
` { } `
|
` { } `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -306,7 +306,7 @@ submodule
|
|||||||
` { } `
|
` { } `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -329,7 +329,7 @@ boolean
|
|||||||
` false `
|
` false `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -350,7 +350,7 @@ package
|
|||||||
` pkgs.headplane-agent `
|
` pkgs.headplane-agent `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -371,7 +371,7 @@ absolute path
|
|||||||
` "/var/lib/headplane/agent_cache.json" `
|
` "/var/lib/headplane/agent_cache.json" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -393,7 +393,7 @@ signed integer
|
|||||||
` 180000 `
|
` 180000 `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -414,7 +414,7 @@ string
|
|||||||
` "headplane-agent" `
|
` "headplane-agent" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -442,7 +442,7 @@ null or absolute path
|
|||||||
` "config.sops.secrets.agent_pre_authkey.path" `
|
` "config.sops.secrets.agent_pre_authkey.path" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -465,7 +465,7 @@ absolute path
|
|||||||
` "/var/lib/headplane/agent" `
|
` "/var/lib/headplane/agent" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -486,7 +486,7 @@ submodule
|
|||||||
` { } `
|
` { } `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -510,7 +510,7 @@ boolean
|
|||||||
` true `
|
` true `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -531,7 +531,7 @@ submodule
|
|||||||
` { } `
|
` { } `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -557,7 +557,7 @@ string
|
|||||||
` "your-client-id" `
|
` "your-client-id" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -583,7 +583,7 @@ null or absolute path
|
|||||||
` "config.sops.secrets.oidc_client_secret.path" `
|
` "config.sops.secrets.oidc_client_secret.path" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -604,7 +604,7 @@ boolean
|
|||||||
` false `
|
` false `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -630,7 +630,7 @@ null or absolute path
|
|||||||
` "config.sops.secrets.headscale_api_key.path" `
|
` "config.sops.secrets.headscale_api_key.path" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -656,7 +656,7 @@ string
|
|||||||
` "https://provider.example.com/issuer-url" `
|
` "https://provider.example.com/issuer-url" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -683,7 +683,7 @@ string
|
|||||||
` "https://headscale.example.com/admin/oidc/callback" `
|
` "https://headscale.example.com/admin/oidc/callback" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -704,7 +704,7 @@ one of “client_secret_post”, “client_secret_basic”, “client_secret_jwt
|
|||||||
` "client_secret_post" `
|
` "client_secret_post" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -730,7 +730,7 @@ absolute path
|
|||||||
` "/var/lib/headplane/users.json" `
|
` "/var/lib/headplane/users.json" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -751,7 +751,7 @@ submodule
|
|||||||
` { } `
|
` { } `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -778,7 +778,7 @@ null or absolute path
|
|||||||
` "config.sops.secrets.headplane_cookie.path" `
|
` "config.sops.secrets.headplane_cookie.path" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -801,7 +801,7 @@ boolean
|
|||||||
` true `
|
` true `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -829,7 +829,7 @@ absolute path
|
|||||||
` "/var/lib/headplane" `
|
` "/var/lib/headplane" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -855,7 +855,7 @@ string
|
|||||||
` "0.0.0.0" `
|
` "0.0.0.0" `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -876,6 +876,6 @@ The port to listen on\.
|
|||||||
` 3000 `
|
` 3000 `
|
||||||
|
|
||||||
*Declared by:*
|
*Declared by:*
|
||||||
- [/nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options\.nix](file:///nix/store/k8cbmm2xy0s8gk2kggksxy6zffzry4jg-source/nix/options.nix)
|
- [nix/options.nix](https://github.com/tale/headplane/blob/main/nix/options.nix)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
./../README.md
|
||||||
@@ -4,10 +4,10 @@ Simple mode enables you to quickly deploy Headplane and is recommended for any
|
|||||||
testing or simple environments. It does not include the automatic management of
|
testing or simple environments. It does not include the automatic management of
|
||||||
DNS and Headplane settings, requiring manual editing and reloading when making
|
DNS and Headplane settings, requiring manual editing and reloading when making
|
||||||
changes. If you're looking for a more feature-complete deployment method, check
|
changes. If you're looking for a more feature-complete deployment method, check
|
||||||
out [**Integrated Mode**](/docs/Integrated-Mode.md).
|
out [**Integrated Mode**](./Integrated-Mode.md).
|
||||||
|
|
||||||
## Deployment
|
## Deployment
|
||||||
> If you are not looking to deploy with Docker, follow the [**Bare-Metal**](/docs/Bare-Metal.md) deployment guide.
|
> If you are not looking to deploy with Docker, follow the [**Bare-Metal**](./Bare-Metal.md) deployment guide.
|
||||||
|
|
||||||
Requirements:
|
Requirements:
|
||||||
- Docker and Docker Compose
|
- Docker and Docker Compose
|
||||||
@@ -33,5 +33,5 @@ This will result in the Headplane UI being available at the `/admin` path of the
|
|||||||
server you deployed it on. The `/admin` path is currently not configurable unless
|
server you deployed it on. The `/admin` path is currently not configurable unless
|
||||||
you build the container yourself or run Headplane in Bare-Metal mode.
|
you build the container yourself or run Headplane in Bare-Metal mode.
|
||||||
|
|
||||||
> Refer to the [**Configuration**](/docs/Configuration.md) guide for help with
|
> Refer to the [**Configuration**](./Configuration.md) guide for help with
|
||||||
> setting up your `config.yaml` file to the appropriate values.
|
> setting up your `config.yaml` file to the appropriate values.
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 118 KiB |
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 118 KiB |
|
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 111 KiB |
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 127 KiB |
|
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 108 KiB |
|
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 107 KiB |
@@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
# https://vitepress.dev/reference/default-theme-home-page
|
||||||
|
layout: home
|
||||||
|
|
||||||
|
hero:
|
||||||
|
name: "A feature-complete Web UI for Headscale"
|
||||||
|
text: "Documentation"
|
||||||
|
tagline: "A feature-complete Web UI for Headscale"
|
||||||
|
actions:
|
||||||
|
- theme: brand
|
||||||
|
text: Getting Started
|
||||||
|
link: /README
|
||||||
|
|
||||||
|
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.
|
||||||
|
---
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ in
|
|||||||
pnpmDeps = pnpm_10.fetchDeps {
|
pnpmDeps = pnpm_10.fetchDeps {
|
||||||
inherit pname version src;
|
inherit pname version src;
|
||||||
fetcherVersion = 2;
|
fetcherVersion = 2;
|
||||||
hash = "sha256-GNSpFqPobX6MDPUXxz2XwdZ2Wt7boN8aok52pGgpGoM=";
|
hash = "sha256-0r228fDAMcEmVDE4jrMBRzZyQPp3aE4SyxGp7Oap9dI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
|
|||||||
@@ -10,7 +10,10 @@
|
|||||||
"dev": "HEADPLANE_LOAD_ENV_OVERRIDES=true HEADPLANE_CONFIG_PATH=./config.example.yaml react-router dev",
|
"dev": "HEADPLANE_LOAD_ENV_OVERRIDES=true HEADPLANE_CONFIG_PATH=./config.example.yaml react-router dev",
|
||||||
"start": "node build/server/index.js",
|
"start": "node build/server/index.js",
|
||||||
"typecheck": "tsc",
|
"typecheck": "tsc",
|
||||||
"test": "vitest run"
|
"test": "vitest run",
|
||||||
|
"docs:dev": "vitepress dev docs",
|
||||||
|
"docs:build": "vitepress build docs",
|
||||||
|
"docs:preview": "vitepress preview docs"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@dnd-kit/core": "^6.3.1",
|
"@dnd-kit/core": "^6.3.1",
|
||||||
@@ -67,6 +70,7 @@
|
|||||||
"@types/node": "^22.15.17",
|
"@types/node": "^22.15.17",
|
||||||
"@types/websocket": "^1.0.10",
|
"@types/websocket": "^1.0.10",
|
||||||
"drizzle-kit": "^0.31.1",
|
"drizzle-kit": "^0.31.1",
|
||||||
|
"js-yaml": "^4.1.0",
|
||||||
"lefthook": "^1.11.13",
|
"lefthook": "^1.11.13",
|
||||||
"postcss": "^8.5.4",
|
"postcss": "^8.5.4",
|
||||||
"react-router-dom": "^7.6.1",
|
"react-router-dom": "^7.6.1",
|
||||||
@@ -77,7 +81,7 @@
|
|||||||
"typescript": "^5.8.3",
|
"typescript": "^5.8.3",
|
||||||
"vite": "^6.3.5",
|
"vite": "^6.3.5",
|
||||||
"vite-tsconfig-paths": "^5.1.4",
|
"vite-tsconfig-paths": "^5.1.4",
|
||||||
"js-yaml": "^4.1.0",
|
"vitepress": "^1.6.4",
|
||||||
"vitest": "^3.1.3"
|
"vitest": "^3.1.3"
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@10.4.0",
|
"packageManager": "pnpm@10.4.0",
|
||||||
@@ -90,8 +94,14 @@
|
|||||||
"react-router-hono-server": "patches/react-router-hono-server.patch"
|
"react-router-hono-server": "patches/react-router-hono-server.patch"
|
||||||
},
|
},
|
||||||
"supportedArchitectures": {
|
"supportedArchitectures": {
|
||||||
"os": ["current", "linux"],
|
"os": [
|
||||||
"cpu": ["x64", "arm64"]
|
"current",
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"cpu": [
|
||||||
|
"x64",
|
||||||
|
"arm64"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"onlyBuiltDependencies": [
|
"onlyBuiltDependencies": [
|
||||||
"@biomejs/biome",
|
"@biomejs/biome",
|
||||||
|
|||||||