mirror of
https://github.com/juanfont/headscale.git
synced 2024-11-26 08:53:05 +00:00
Prettier
This commit is contained in:
parent
b93aa723cb
commit
561c15bbe8
5 changed files with 17 additions and 22 deletions
|
@ -40,6 +40,7 @@ ephemeral_node_inactivity_timeout": "30m"
|
||||||
`ephemeral_node_inactivity_timeout` is the timeout after which inactive ephemeral node records will be deleted from the database. The default is 30 minutes. This value must be higher than 65 seconds (the keepalive timeout for the HTTP long poll is 60 seconds, plus a few seconds to avoid race conditions).
|
`ephemeral_node_inactivity_timeout` is the timeout after which inactive ephemeral node records will be deleted from the database. The default is 30 minutes. This value must be higher than 65 seconds (the keepalive timeout for the HTTP long poll is 60 seconds, plus a few seconds to avoid race conditions).
|
||||||
|
|
||||||
PostgresSQL
|
PostgresSQL
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
db_host: localhost
|
db_host: localhost
|
||||||
db_port: 5432
|
db_port: 5432
|
||||||
|
@ -49,6 +50,7 @@ db_pass: bar
|
||||||
```
|
```
|
||||||
|
|
||||||
SQLite
|
SQLite
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
db_type: sqlite3
|
db_type: sqlite3
|
||||||
db_path: db.sqlite
|
db_path: db.sqlite
|
||||||
|
@ -60,12 +62,10 @@ The fields starting with `db_` are used for the DB connection information.
|
||||||
|
|
||||||
Please check [`TLS.md`](TLS.md).
|
Please check [`TLS.md`](TLS.md).
|
||||||
|
|
||||||
|
|
||||||
### DNS configuration
|
### DNS configuration
|
||||||
|
|
||||||
Please refer to [`DNS.md`](DNS.md).
|
Please refer to [`DNS.md`](DNS.md).
|
||||||
|
|
||||||
|
|
||||||
### Policy ACLs
|
### Policy ACLs
|
||||||
|
|
||||||
Headscale implements the same policy ACLs as Tailscale.com, adapted to the self-hosted environment.
|
Headscale implements the same policy ACLs as Tailscale.com, adapted to the self-hosted environment.
|
||||||
|
|
19
docs/DNS.md
19
docs/DNS.md
|
@ -8,10 +8,9 @@ headscale supports Tailscale's DNS configuration and MagicDNS. Please have a loo
|
||||||
|
|
||||||
Long story short, you can define the DNS servers you want to use in your tailnets, activate MagicDNS (so you don't have to remember the IP addresses of your nodes), define search domains, as well as predefined hosts. headscale will inject that settings into your nodes.
|
Long story short, you can define the DNS servers you want to use in your tailnets, activate MagicDNS (so you don't have to remember the IP addresses of your nodes), define search domains, as well as predefined hosts. headscale will inject that settings into your nodes.
|
||||||
|
|
||||||
|
|
||||||
## Configuration reference
|
## Configuration reference
|
||||||
|
|
||||||
The setup is done via the `config.yaml` file, under the `dns_config` key.
|
The setup is done via the `config.yaml` file, under the `dns_config` key.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
server_url: http://127.0.0.1:8001
|
server_url: http://127.0.0.1:8001
|
||||||
|
@ -19,21 +18,21 @@ listen_addr: 0.0.0.0:8001
|
||||||
private_key_path: private.key
|
private_key_path: private.key
|
||||||
dns_config:
|
dns_config:
|
||||||
nameservers:
|
nameservers:
|
||||||
- 1.1.1.1
|
|
||||||
- 8.8.8.8
|
|
||||||
restricted_nameservers:
|
|
||||||
foo.bar.com:
|
|
||||||
- 1.1.1.1
|
|
||||||
darp.headscale.net:
|
|
||||||
- 1.1.1.1
|
- 1.1.1.1
|
||||||
- 8.8.8.8
|
- 8.8.8.8
|
||||||
|
restricted_nameservers:
|
||||||
|
foo.bar.com:
|
||||||
|
- 1.1.1.1
|
||||||
|
darp.headscale.net:
|
||||||
|
- 1.1.1.1
|
||||||
|
- 8.8.8.8
|
||||||
domains: []
|
domains: []
|
||||||
magic_dns: true
|
magic_dns: true
|
||||||
base_domain: example.com
|
base_domain: example.com
|
||||||
```
|
```
|
||||||
|
|
||||||
- `nameservers`: The list of DNS servers to use.
|
- `nameservers`: The list of DNS servers to use.
|
||||||
- `domains`: Search domains to inject.
|
- `domains`: Search domains to inject.
|
||||||
- `magic_dns`: Whether to use [MagicDNS](https://tailscale.com/kb/1081/magicdns/). Only works if there is at least a nameserver defined.
|
- `magic_dns`: Whether to use [MagicDNS](https://tailscale.com/kb/1081/magicdns/). Only works if there is at least a nameserver defined.
|
||||||
- `base_domain`: Defines the base domain to create the hostnames for MagicDNS. `base_domain` must be a FQDNs, without the trailing dot. The FQDN of the hosts will be `hostname.namespace.base_domain` (e.g., _myhost.mynamespace.example.com_).
|
- `base_domain`: Defines the base domain to create the hostnames for MagicDNS. `base_domain` must be a FQDNs, without the trailing dot. The FQDN of the hosts will be `hostname.namespace.base_domain` (e.g., _myhost.mynamespace.example.com_).
|
||||||
- `restricted_nameservers`: Split DNS (see https://tailscale.com/kb/1054/dns/), list of search domains and the DNS to query for each one.
|
- `restricted_nameservers`: Split DNS (see https://tailscale.com/kb/1054/dns/), list of search domains and the DNS to query for each one.
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Glossary
|
# Glossary
|
||||||
|
|
||||||
- Namespace: Collection of Taiscale nodes that can see each other. In Tailscale.com is called Tailnet.
|
- Namespace: Collection of Taiscale nodes that can see each other. In Tailscale.com is called Tailnet.
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker run --name headscale \
|
docker run --name headscale \
|
||||||
-e POSTGRES_DB=headscale
|
-e POSTGRES_DB=headscale
|
||||||
-e POSTGRES_USER=foo \
|
-e POSTGRES_USER=foo \
|
||||||
-e POSTGRES_PASSWORD=bar \
|
-e POSTGRES_PASSWORD=bar \
|
||||||
-p 5432:5432 \
|
-p 5432:5432 \
|
||||||
|
@ -146,4 +146,4 @@ Alternatively, you can use Auth Keys to register your machines:
|
||||||
|
|
||||||
If you create an authkey with the `--ephemeral` flag, that key will create ephemeral nodes. This implies that `--reusable` is true.
|
If you create an authkey with the `--ephemeral` flag, that key will create ephemeral nodes. This implies that `--reusable` is true.
|
||||||
|
|
||||||
Please bear in mind that all headscale commands support adding `-o json` or `-o json-line` to get nicely JSON-formatted output.
|
Please bear in mind that all headscale commands support adding `-o json` or `-o json-line` to get nicely JSON-formatted output.
|
||||||
|
|
10
docs/TLS.md
10
docs/TLS.md
|
@ -1,8 +1,7 @@
|
||||||
|
|
||||||
# Running the service via TLS (optional)
|
# Running the service via TLS (optional)
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
tls_letsencrypt_hostname: ''
|
tls_letsencrypt_hostname: ""
|
||||||
tls_letsencrypt_listen: ":http"
|
tls_letsencrypt_listen: ":http"
|
||||||
tls_letsencrypt_cache_dir: ".cache"
|
tls_letsencrypt_cache_dir: ".cache"
|
||||||
tls_letsencrypt_challenge_type: HTTP-01
|
tls_letsencrypt_challenge_type: HTTP-01
|
||||||
|
@ -10,15 +9,13 @@ tls_letsencrypt_challenge_type: HTTP-01
|
||||||
|
|
||||||
To get a certificate automatically via [Let's Encrypt](https://letsencrypt.org/), set `tls_letsencrypt_hostname` to the desired certificate hostname. This name must resolve to the IP address(es) headscale is reachable on (i.e., it must correspond to the `server_url` configuration parameter). The certificate and Let's Encrypt account credentials will be stored in the directory configured in `tls_letsencrypt_cache_dir`. If the path is relative, it will be interpreted as relative to the directory the configuration file was read from. The certificate will automatically be renewed as needed.
|
To get a certificate automatically via [Let's Encrypt](https://letsencrypt.org/), set `tls_letsencrypt_hostname` to the desired certificate hostname. This name must resolve to the IP address(es) headscale is reachable on (i.e., it must correspond to the `server_url` configuration parameter). The certificate and Let's Encrypt account credentials will be stored in the directory configured in `tls_letsencrypt_cache_dir`. If the path is relative, it will be interpreted as relative to the directory the configuration file was read from. The certificate will automatically be renewed as needed.
|
||||||
|
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
tls_cert_path: ''
|
tls_cert_path: ""
|
||||||
tls_key_path: ''
|
tls_key_path: ""
|
||||||
```
|
```
|
||||||
|
|
||||||
headscale can also be configured to expose its web service via TLS. To configure the certificate and key file manually, set the `tls_cert_path` and `tls_cert_path` configuration parameters. If the path is relative, it will be interpreted as relative to the directory the configuration file was read from.
|
headscale can also be configured to expose its web service via TLS. To configure the certificate and key file manually, set the `tls_cert_path` and `tls_cert_path` configuration parameters. If the path is relative, it will be interpreted as relative to the directory the configuration file was read from.
|
||||||
|
|
||||||
|
|
||||||
## Challenge type HTTP-01
|
## Challenge type HTTP-01
|
||||||
|
|
||||||
The default challenge type `HTTP-01` requires that headscale is reachable on port 80 for the Let's Encrypt automated validation, in addition to whatever port is configured in `listen_addr`. By default, headscale listens on port 80 on all local IPs for Let's Encrypt automated validation.
|
The default challenge type `HTTP-01` requires that headscale is reachable on port 80 for the Let's Encrypt automated validation, in addition to whatever port is configured in `listen_addr`. By default, headscale listens on port 80 on all local IPs for Let's Encrypt automated validation.
|
||||||
|
@ -28,4 +25,3 @@ If you need to change the ip and/or port used by headscale for the Let's Encrypt
|
||||||
## Challenge type TLS-ALPN-01
|
## Challenge type TLS-ALPN-01
|
||||||
|
|
||||||
Alternatively, `tls_letsencrypt_challenge_type` can be set to `TLS-ALPN-01`. In this configuration, headscale listens on the ip:port combination defined in `listen_addr`. Let's Encrypt will _only_ connect to port 443 for the validation callback, so if `listen_addr` is not set to port 443, something else (e.g. a firewall rule) will be required to forward the traffic from port 443 to the ip:port combination specified in `listen_addr`.
|
Alternatively, `tls_letsencrypt_challenge_type` can be set to `TLS-ALPN-01`. In this configuration, headscale listens on the ip:port combination defined in `listen_addr`. Let's Encrypt will _only_ connect to port 443 for the validation callback, so if `listen_addr` is not set to port 443, something else (e.g. a firewall rule) will be required to forward the traffic from port 443 to the ip:port combination specified in `listen_addr`.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue