Created
May 14, 2024 16:50
-
-
Save agracey/2f03f8cd140ba5657d70ac675856e6d5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
server_url: http://rancher.gracey.dev:8080 | |
listen_addr: 0.0.0.0:8080 | |
metrics_listen_addr: 0.0.0.0:9090 | |
grpc_listen_addr: 0.0.0.0:50443 | |
grpc_allow_insecure: true | |
noise: | |
# The Noise private key is used to encrypt the | |
# traffic between headscale and Tailscale clients when | |
# using the new Noise-based protocol. | |
private_key_path: /etc/headscale/noise_private.key | |
# List of IP prefixes to allocate tailaddresses from. | |
# Each prefix consists of either an IPv4 or IPv6 address, | |
# and the associated prefix length, delimited by a slash. | |
# It must be within IP ranges supported by the Tailscale | |
# client - i.e., subnets of 100.64.0.0/10 and fd7a:115c:a1e0::/48. | |
# See below: | |
# IPv6: https://github.com/tailscale/tailscale/blob/22ebb25e833264f58d7c3f534a8b166894a89536/net/tsaddr/tsaddr.go#LL81C52-L81C71 | |
# IPv4: https://github.com/tailscale/tailscale/blob/22ebb25e833264f58d7c3f534a8b166894a89536/net/tsaddr/tsaddr.go#L33 | |
# Any other range is NOT supported, and it will cause unexpected issues. | |
prefixes: | |
v6: fd7a:115c:a1e0::/48 | |
v4: 100.64.0.0/10 | |
# Strategy used for allocation of IPs to nodes, available options: | |
# - sequential (default): assigns the next free IP from the previous given IP. | |
# - random: assigns the next free IP from a pseudo-random IP generator (crypto/rand). | |
allocation: sequential | |
# DERP is a relay system that Tailscale uses when a direct | |
# connection cannot be established. | |
# https://tailscale.com/blog/how-tailscale-works/#encrypted-tcp-relays-derp | |
# | |
# headscale needs a list of DERP servers that can be presented | |
# to the clients. | |
derp: | |
server: | |
# If enabled, runs the embedded DERP server and merges it into the rest of the DERP config | |
# The Headscale server_url defined above MUST be using https, DERP requires TLS to be in place | |
enabled: false | |
# Disables the automatic check for headscale updates on startup | |
disable_check_updates: false | |
# Time before an inactive ephemeral node is deleted? | |
ephemeral_node_inactivity_timeout: 30m | |
database: | |
type: sqlite | |
sqlite: | |
path: /etc/headscale/db.sqlite | |
### TLS configuration | |
# | |
## Let's encrypt / ACME | |
# | |
# headscale supports automatically requesting and setting up | |
# TLS for a domain with Let's Encrypt. | |
# | |
# URL to ACME directory | |
acme_url: https://acme-v02.api.letsencrypt.org/directory | |
# Email to register with ACME provider | |
acme_email: "[email protected]" | |
# Domain name to request a TLS certificate for: | |
tls_letsencrypt_hostname: "rancher.gracey.dev" | |
# Path to store certificates and metadata needed by | |
# letsencrypt | |
# For production: | |
tls_letsencrypt_cache_dir: /etc/headscale/cache | |
# Type of ACME challenge to use, currently supported types: | |
# HTTP-01 or TLS-ALPN-01 | |
# See [docs/tls.md](docs/tls.md) for more information | |
tls_letsencrypt_challenge_type: HTTP-01 | |
# When HTTP-01 challenge is chosen, letsencrypt must set up a | |
# verification endpoint, and it will be listening on: | |
# :http = port 80 | |
tls_letsencrypt_listen: ":http" | |
## Use already defined certificates: | |
#tls_cert_path: "" | |
#tls_key_path: "" | |
log: | |
# Output formatting for logs: text or json | |
format: text | |
level: info | |
# Path to a file containg ACL policies. | |
# ACLs can be defined as YAML or HUJSON. | |
# https://tailscale.com/kb/1018/acls/ | |
acl_policy_path: "" | |
## DNS | |
# | |
# headscale supports Tailscale's DNS configuration and MagicDNS. | |
# Please have a look to their KB to better understand the concepts: | |
# | |
# - https://tailscale.com/kb/1054/dns/ | |
# - https://tailscale.com/kb/1081/magicdns/ | |
# - https://tailscale.com/blog/2021-09-private-dns-with-magicdns/ | |
# | |
dns_config: | |
# Whether to prefer using Headscale provided DNS or use local. | |
override_local_dns: true | |
# List of DNS servers to expose to clients. | |
nameservers: | |
- 1.1.1.1 | |
# NextDNS (see https://tailscale.com/kb/1218/nextdns/). | |
# "abc123" is example NextDNS ID, replace with yours. | |
# | |
# With metadata sharing: | |
# nameservers: | |
# - https://dns.nextdns.io/abc123 | |
# | |
# Without metadata sharing: | |
# nameservers: | |
# - 2a07:a8c0::ab:c123 | |
# - 2a07:a8c1::ab:c123 | |
# Split DNS (see https://tailscale.com/kb/1054/dns/), | |
# list of search domains and the DNS to query for each one. | |
# | |
# restricted_nameservers: | |
# foo.bar.com: | |
# - 1.1.1.1 | |
# darp.headscale.net: | |
# - 1.1.1.1 | |
# - 8.8.8.8 | |
# Search domains to inject. | |
domains: [] | |
# Extra DNS records | |
# so far only A-records are supported (on the tailscale side) | |
# See https://github.com/juanfont/headscale/blob/main/docs/dns-records.md#Limitations | |
# extra_records: | |
# - name: "grafana.myvpn.example.com" | |
# type: "A" | |
# value: "100.64.0.3" | |
# | |
# # you can also put it in one line | |
# - { name: "prometheus.myvpn.example.com", type: "A", value: "100.64.0.3" } | |
# Whether to use [MagicDNS](https://tailscale.com/kb/1081/magicdns/). | |
# Only works if there is at least a nameserver defined. | |
magic_dns: true | |
# 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.user.base_domain` (e.g., _myhost.myuser.example.com_). | |
base_domain: example.com | |
# Unix socket used for the CLI to connect without authentication | |
# Note: for production you will want to set this to something like: | |
unix_socket: /etc/headscale/headscale.sock | |
unix_socket_permission: "0770" | |
# Logtail configuration | |
# Logtail is Tailscales logging and auditing infrastructure, it allows the control panel | |
# to instruct tailscale nodes to log their activity to a remote server. | |
logtail: | |
# Enable logtail for this headscales clients. | |
# As there is currently no support for overriding the log server in headscale, this is | |
# disabled by default. Enabling this will make your clients send logs to Tailscale Inc. | |
enabled: false | |
# Enabling this option makes devices prefer a random port for WireGuard traffic over the | |
# default static port 41641. This option is intended as a workaround for some buggy | |
# firewall devices. See https://tailscale.com/kb/1181/firewalls/ for more information. | |
randomize_client_port: false |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment