diff --git a/docs/Bare-Metal.md b/docs/Bare-Metal.md index 4ec4033..ccd36e4 100644 --- a/docs/Bare-Metal.md +++ b/docs/Bare-Metal.md @@ -16,6 +16,16 @@ Requirements: - [PNPM](https://pnpm.io/installation) 10.x - A finished configuration file (config.yaml) +Before installing Headplane, ensure that `/var/lib/headplane` exists and is +writable by the user that will run the Headplane service. You can create this +directory with the following command: + +```sh +sudo mkdir -p /var/lib/headplane +# Replace headplane:headplane with the appropriate user and group if not root. +sudo chown -R headplane:headplane /var/lib/headplane +``` + Clone the Headplane repository, install dependencies, and build the project: ```sh git clone https://github.com/tale/headplane diff --git a/docs/Configuration.md b/docs/Configuration.md index 373542d..0c3770b 100644 --- a/docs/Configuration.md +++ b/docs/Configuration.md @@ -7,6 +7,10 @@ Headplane uses a configuration file to manage its settings 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 also stores stuff in the `/var/lib/headplane` directory by default. +This can be configured on a per-section basis in the configuration file, but +it is very important this directory is persistent and writable by Headplane. + ## Environment Variables It is also possible to override the configuration file using environment variables. These changes get merged *after* the configuration file is loaded, so they will take precedence. diff --git a/docs/Integrated-Mode.md b/docs/Integrated-Mode.md index 73b761a..17d8962 100644 --- a/docs/Integrated-Mode.md +++ b/docs/Integrated-Mode.md @@ -34,7 +34,7 @@ Here is what a sample Docker Compose deployment would look like: services: headplane: # I recommend you pin the version to a specific release - image: ghcr.io/tale/headplane:0.5.1 + image: ghcr.io/tale/headplane:0.5.7 container_name: headplane restart: unless-stopped ports: @@ -44,10 +44,13 @@ services: # This should match headscale.config_path in your config.yaml - './headscale-config/config.yaml:/etc/headscale/config.yaml' + # Headplane stores its data in this directory + - './headplane-data:/var/lib/headplane' + # If you are using the Docker integration, mount the Docker socket - '/var/run/docker.sock:/var/run/docker.sock:ro' headscale: - image: headscale/headscale:0.25.0 + image: headscale/headscale:0.25.1 container_name: headscale restart: unless-stopped command: serve @@ -148,7 +151,7 @@ spec: serviceAccountName: default containers: - name: headplane - image: ghcr.io/tale/headplane:0.5.1 + image: ghcr.io/tale/headplane:0.5.7 env: # Set these if the pod name for Headscale is not static # We will use the downward API to get the pod name instead @@ -161,9 +164,11 @@ spec: volumeMounts: - name: headscale-config mountPath: /etc/headscale + - name: headplane-data + mountPath: /var/lib/headplane - name: headscale - image: headscale/headscale:0.25.0 + image: headscale/headscale:0.25.1 command: ['serve'] volumeMounts: - name: headscale-data @@ -175,6 +180,9 @@ spec: - name: headscale-data persistentVolumeClaim: claimName: headscale-data + - name: headplane-data + persistentVolumeClaim: + claimName: headplane-data - name: headscale-config persistentVolumeClaim: claimName: headscale-config diff --git a/docs/Simple-Mode.md b/docs/Simple-Mode.md index 278a2b9..8280099 100644 --- a/docs/Simple-Mode.md +++ b/docs/Simple-Mode.md @@ -19,13 +19,14 @@ Here is what a sample Docker Compose deployment would look like: services: headplane: # I recommend you pin the version to a specific release - image: ghcr.io/tale/headplane:0.5.1 + image: ghcr.io/tale/headplane:0.5.7 container_name: headplane restart: unless-stopped ports: - '3000:3000' volumes: - './config.yaml:/etc/headplane/config.yaml' + - './headplane-data:/var/lib/headplane' ``` This will result in the Headplane UI being available at the `/admin` path of the