docs: better explain the native integration
This commit is contained in:
parent
2bc85085f5
commit
1d6472765a
@ -15,6 +15,7 @@ You can configure Headplane using environment variables.
|
|||||||
- **`CONFIG_FILE`**: The path to the Headscale `config.yaml` (default: `/etc/headscale/config.yaml`).
|
- **`CONFIG_FILE`**: The path to the Headscale `config.yaml` (default: `/etc/headscale/config.yaml`).
|
||||||
- **`HEADSCALE_CONFIG_UNSTRICT`**: This will disable the strict configuration loader (default: `false`).
|
- **`HEADSCALE_CONFIG_UNSTRICT`**: This will disable the strict configuration loader (default: `false`).
|
||||||
- **`COOKIE_SECURE`**: This option enables the `Secure` flag for cookies, ensuring they are sent only over HTTPS, which helps prevent interception and enhances data security. It should be disabled when using HTTP instead of HTTPS (default: `true`).
|
- **`COOKIE_SECURE`**: This option enables the `Secure` flag for cookies, ensuring they are sent only over HTTPS, which helps prevent interception and enhances data security. It should be disabled when using HTTP instead of HTTPS (default: `true`).
|
||||||
|
- **`LOAD_ENV_FILE`**: Tell Headplane to read the `.env` file and load it into the environment (default: `false`).
|
||||||
|
|
||||||
#### Docker Integration
|
#### Docker Integration
|
||||||
The Docker integration allows Headplane to manage the Headscale docker container.
|
The Docker integration allows Headplane to manage the Headscale docker container.
|
||||||
|
|||||||
@ -10,19 +10,60 @@ to undefined behavior or the service not restarting.
|
|||||||
|
|
||||||
### Deployment
|
### Deployment
|
||||||
|
|
||||||
Follow the instructions to install Headscale from the
|
1. Follow the instructions to install Headscale from the
|
||||||
[Linux Installation Guide](https://headscale.net/running-headscale-linux/). As
|
[Linux Installation Guide](https://headscale.net/setup/install/official).
|
||||||
of now, Headplane requires Node.js 20 to be installed on the system. Once you
|
|
||||||
are ready, clone the repository (`git clone https://github.com/tale/headplane`),
|
2. Install [Node.js](https://nodejs.org/en/download/package-manager)
|
||||||
install dependencies (`npm install`), build the project (`npm run build`), and
|
version 20 or higher (your package manager most likely already has this).
|
||||||
start the server (`npm start`).
|
|
||||||
|
3. Install [PNPM](https://pnpm.io/installation). This is required
|
||||||
|
as Headplane has issues running correctly when installed and built via NPM or Yarn.
|
||||||
|
|
||||||
|
4. Clone the Headplane repository, install dependencies, and build the project:
|
||||||
|
```sh
|
||||||
|
git clone https://github.com/tale/headplane # (or clone via SSH)
|
||||||
|
cd headplane
|
||||||
|
pnpm install
|
||||||
|
pnpm build
|
||||||
|
```
|
||||||
|
|
||||||
|
### Running Headplane
|
||||||
|
Start Headplane with `node build/headplane/server.js`.
|
||||||
|
|
||||||
|
Headplane does need various environment variables to run correctly. The required
|
||||||
|
variables can be found in the [Configuration](/docs/Configuration.md) guide.
|
||||||
|
If you choose to do this with a `.env` file, you can use the `LOAD_ENV_FILE`
|
||||||
|
variable to tell Headplane to load the file.
|
||||||
|
|
||||||
|
Finally, make sure to set `HEADSCALE_INTEGRATION=proc` to take advantage
|
||||||
|
of controlling Headscale natively on Linux.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
LOAD_ENV_FILE=true node ./build/headplane/server.js
|
||||||
|
```
|
||||||
|
|
||||||
> If you'd like, you can turn this into a `systemd` unit to manage the service.
|
> If you'd like, you can turn this into a `systemd` unit to manage the service.
|
||||||
> I plan to provide packages and unit files to make this easier in the future.
|
> I plan to provide packages and unit files to make this easier in the future.
|
||||||
|
|
||||||
When running Headplane, you'll need to set environment variables to configure
|
### Cannot find ./build directory?
|
||||||
the application. The `HEADSCALE_INTEGRATION` variable should be set to `proc`.
|
Headplane expects the `build` directory to be present when running the server.
|
||||||
|
The structure of this folder is very important and should not be tampered with.
|
||||||
|
If you would like to keep the build directory in a different location, you can
|
||||||
|
set the `BUILD_PATH` environment variable to the path of the build directory
|
||||||
|
at runtime.
|
||||||
|
|
||||||
> For a breakdown of each configuration variable, please refer to the
|
```sh
|
||||||
[Configuration](/docs/Configuration.md) guide.
|
LOAD_ENV_FILE=true BUILD_PATH=/path/to/build node ./build/headplane/server.js
|
||||||
> It explains what each variable does, how to configure them, and what the default values are.
|
```
|
||||||
|
|
||||||
|
### Changing Headplane's Path from `/admin`
|
||||||
|
Additionally, because you are building Headplane from source, you're able to
|
||||||
|
change the default path that Headplane is served from. This can be done by
|
||||||
|
specifying the `__INTERNAL_PREFIX` environment variable, when building.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
__INTERNAL_PREFIX=/my-admin-path pnpm build
|
||||||
|
```
|
||||||
|
|
||||||
|
> Keep in mind that this is very much an experimental feature. Things can easily
|
||||||
|
> break and until it's more stable, it's not recommended to use in production.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user