Headscale implements a single tailnet

Separate the term "tailnet" from user and be more explicit about
providing a single tailnet.

Also be more explicit about users. Refer to "headscale users" when
mentioning commandline invocations and use the term "local users" when
discussing unix accounts.

Fixes: #2335
This commit is contained in:
Florian Preinstorfer 2025-01-21 15:09:14 +01:00 committed by nblock
parent 8b92c017ec
commit 8c09afe20c
8 changed files with 35 additions and 34 deletions

View file

@ -32,12 +32,12 @@ organisation.
## Design goal ## Design goal
Headscale aims to implement a self-hosted, open source alternative to the Tailscale Headscale aims to implement a self-hosted, open source alternative to the
control server. [Tailscale](https://tailscale.com/) control server. Headscale's goal is to
Headscale's goal is to provide self-hosters and hobbyists with an open-source provide self-hosters and hobbyists with an open-source server they can use for
server they can use for their projects and labs. their projects and labs. It implements a narrow scope, a _single_ Tailscale
It implements a narrow scope, a single Tailnet, suitable for a personal use, or a small network (tailnet), suitable for a personal use, or a small open-source
open-source organisation. organisation.
## Supporting Headscale ## Supporting Headscale

View file

@ -2,12 +2,12 @@
## What is the design goal of headscale? ## What is the design goal of headscale?
Headscale aims to implement a self-hosted, open source alternative to the [Tailscale](https://tailscale.com/) Headscale aims to implement a self-hosted, open source alternative to the
control server. [Tailscale](https://tailscale.com/) control server. Headscale's goal is to
Headscale's goal is to provide self-hosters and hobbyists with an open-source provide self-hosters and hobbyists with an open-source server they can use for
server they can use for their projects and labs. their projects and labs. It implements a narrow scope, a _single_ Tailscale
It implements a narrow scope, a _single_ Tailnet, suitable for a personal use, or a small network (tailnet), suitable for a personal use, or a small open-source
open-source organisation. organisation.
## How can I contribute? ## How can I contribute?

View file

@ -14,12 +14,12 @@ Join our [Discord server](https://discord.gg/c84AZQhmpx) for a chat and communit
## Design goal ## Design goal
Headscale aims to implement a self-hosted, open source alternative to the Tailscale Headscale aims to implement a self-hosted, open source alternative to the
control server. [Tailscale](https://tailscale.com/) control server. Headscale's goal is to
Headscale's goal is to provide self-hosters and hobbyists with an open-source provide self-hosters and hobbyists with an open-source server they can use for
server they can use for their projects and labs. their projects and labs. It implements a narrow scope, a _single_ Tailscale
It implements a narrower scope, a single Tailnet, suitable for a personal use, or a small network (tailnet), suitable for a personal use, or a small open-source
open-source organisation. organisation.
## Supporting headscale ## Supporting headscale

View file

@ -4,7 +4,7 @@ Several Linux distributions and community members provide packages for headscale
the [official releases](./official.md) provided by the headscale maintainers. Such packages offer improved integration the [official releases](./official.md) provided by the headscale maintainers. Such packages offer improved integration
for their targeted operating system and usually: for their targeted operating system and usually:
- setup a dedicated user account to run headscale - setup a dedicated local user account to run headscale
- provide a default configuration - provide a default configuration
- install headscale as system service - install headscale as system service

View file

@ -89,7 +89,7 @@ not work with alternatives like [Podman](https://podman.io). The Docker image ca
curl http://127.0.0.1:9090/metrics curl http://127.0.0.1:9090/metrics
``` ```
1. Create a user ([tailnet](https://tailscale.com/kb/1136/tailnet/)): 1. Create a headscale user:
```shell ```shell
docker exec -it headscale \ docker exec -it headscale \

View file

@ -6,8 +6,8 @@ Both are available on the [GitHub releases page](https://github.com/juanfont/hea
## Using packages for Debian/Ubuntu (recommended) ## Using packages for Debian/Ubuntu (recommended)
It is recommended to use our DEB packages to install headscale on a Debian based system as those packages configure a It is recommended to use our DEB packages to install headscale on a Debian based system as those packages configure a
user to run headscale, provide a default configuration and ship with a systemd service file. Supported distributions are local user to run headscale, provide a default configuration and ship with a systemd service file. Supported
Ubuntu 20.04 or newer, Debian 11 or newer. distributions are Ubuntu 20.04 or newer, Debian 11 or newer.
1. Download the [latest headscale package](https://github.com/juanfont/headscale/releases/latest) for your platform (`.deb` for Ubuntu and Debian). 1. Download the [latest headscale package](https://github.com/juanfont/headscale/releases/latest) for your platform (`.deb` for Ubuntu and Debian).
@ -46,13 +46,13 @@ Ubuntu 20.04 or newer, Debian 11 or newer.
!!! warning "Advanced" !!! warning "Advanced"
This installation method is considered advanced as one needs to take care of the headscale user and the systemd This installation method is considered advanced as one needs to take care of the local user and the systemd
service themselves. If possible, use the [DEB packages](#using-packages-for-debianubuntu-recommended) or a service themselves. If possible, use the [DEB packages](#using-packages-for-debianubuntu-recommended) or a
[community package](./community.md) instead. [community package](./community.md) instead.
This section describes the installation of headscale according to the [Requirements and This section describes the installation of headscale according to the [Requirements and
assumptions](../requirements.md#assumptions). Headscale is run by a dedicated user and the service itself is managed by assumptions](../requirements.md#assumptions). Headscale is run by a dedicated local user and the service itself is
systemd. managed by systemd.
1. Download the latest [`headscale` binary from GitHub's release page](https://github.com/juanfont/headscale/releases): 1. Download the latest [`headscale` binary from GitHub's release page](https://github.com/juanfont/headscale/releases):
@ -67,7 +67,7 @@ systemd.
sudo chmod +x /usr/local/bin/headscale sudo chmod +x /usr/local/bin/headscale
``` ```
1. Add a dedicated user to run headscale: 1. Add a dedicated local user to run headscale:
```shell ```shell
sudo useradd \ sudo useradd \

View file

@ -6,14 +6,14 @@ Headscale should just work as long as the following requirements are met:
recommended. recommended.
- Headscale is served via HTTPS on port 443[^1]. - Headscale is served via HTTPS on port 443[^1].
- A reasonably modern Linux or BSD based operating system. - A reasonably modern Linux or BSD based operating system.
- A dedicated user account to run headscale. - A dedicated local user account to run headscale.
- A little bit of command line knowledge to configure and operate headscale. - A little bit of command line knowledge to configure and operate headscale.
## Assumptions ## Assumptions
The headscale documentation and the provided examples are written with a few assumptions in mind: The headscale documentation and the provided examples are written with a few assumptions in mind:
- Headscale is running as system service via a dedicated user `headscale`. - Headscale is running as system service via a dedicated local user `headscale`.
- The [configuration](../ref/configuration.md) is loaded from `/etc/headscale/config.yaml`. - The [configuration](../ref/configuration.md) is loaded from `/etc/headscale/config.yaml`.
- SQLite is used as database. - SQLite is used as database.
- The data directory for headscale (used for private keys, ACLs, SQLite database, …) is located in `/var/lib/headscale`. - The data directory for headscale (used for private keys, ACLs, SQLite database, …) is located in `/var/lib/headscale`.

View file

@ -41,13 +41,14 @@ options, run:
headscale <COMMAND> --help headscale <COMMAND> --help
``` ```
## Manage users ## Manage headscale users
In headscale, a node (also known as machine or device) is always assigned to a specific user, a In headscale, a node (also known as machine or device) is always assigned to a
[tailnet](https://tailscale.com/kb/1136/tailnet/). Such users can be managed with the `headscale users` command. Invoke headscale user. Such a headscale user may have many nodes assigned to them and
the built-in help for more information: `headscale users --help`. can be managed with the `headscale users` command. Invoke the built-in help for
more information: `headscale users --help`.
### Create a user ### Create a headscale user
=== "Native" === "Native"
@ -62,7 +63,7 @@ the built-in help for more information: `headscale users --help`.
headscale users create <USER> headscale users create <USER>
``` ```
### List existing users ### List existing headscale users
=== "Native" === "Native"