summaryrefslogtreecommitdiff
path: root/playbooks/roles/outbound/templates/headscale/config/config.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'playbooks/roles/outbound/templates/headscale/config/config.yaml')
-rw-r--r--playbooks/roles/outbound/templates/headscale/config/config.yaml169
1 files changed, 169 insertions, 0 deletions
diff --git a/playbooks/roles/outbound/templates/headscale/config/config.yaml b/playbooks/roles/outbound/templates/headscale/config/config.yaml
new file mode 100644
index 0000000..660708e
--- /dev/null
+++ b/playbooks/roles/outbound/templates/headscale/config/config.yaml
@@ -0,0 +1,169 @@
+---
+
+server_url: '{{ headscale_url }}'
+listen_addr: '{{ headscale_listen_addr }}'
+
+# Address to listen to /metrics, you may want
+# to keep this endpoint private to your internal
+# network
+#
+metrics_listen_addr: 127.0.0.1:9090
+
+# The Noise section includes specific configuration for the
+# TS2021 Noise protocol
+noise:
+ private_key_path: /var/lib/headscale/noise_private.key
+
+prefixes:
+ v4: 100.64.0.0/10
+ v6: fd7a:115c:a1e0::/48
+ allocation: random
+
+# 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
+
+ # Region ID to use for the embedded DERP server.
+ # The local DERP prevails if the region ID collides with other region ID coming from
+ # the regular DERP config.
+ region_id: 999
+
+ # Region code and name are displayed in the Tailscale UI to identify a DERP region
+ region_code: "headscale"
+ region_name: "Headscale Embedded DERP"
+
+ # Listens over UDP at the configured address for STUN connections - to help with NAT traversal.
+ # When the embedded DERP server is enabled stun_listen_addr MUST be defined.
+ #
+ # For more details on how this works, check this great article: https://tailscale.com/blog/how-tailscale-works/
+ stun_listen_addr: "0.0.0.0:3478"
+
+ # Private key used to encrypt the traffic between headscale DERP
+ # and Tailscale clients.
+ # The private key file will be autogenerated if it's missing.
+ #
+ private_key_path: /var/lib/headscale/derp_server_private.key
+
+ # This flag can be used, so the DERP map entry for the embedded DERP server is not written automatically,
+ # it enables the creation of your very own DERP map entry using a locally available file with the parameter DERP.paths
+ # If you enable the DERP server and set this to false, it is required to add the DERP server to the DERP map using DERP.paths
+ automatically_add_embedded_derp_region: true
+
+ # For better connection stability (especially when using an Exit-Node and DNS is not working),
+ # it is possible to optionally add the public IPv4 and IPv6 address to the Derp-Map using:
+ ipv4: 1.2.3.4
+ ipv6: 2001:db8::1
+
+ # List of externally available DERP maps encoded in JSON
+ urls:
+ - https://controlplane.tailscale.com/derpmap/default
+
+ # Locally available DERP map files encoded in YAML
+ #
+ # This option is mostly interesting for people hosting
+ # their own DERP servers:
+ # https://tailscale.com/kb/1118/custom-derp-servers/
+ #
+ # paths:
+ # - /etc/headscale/derp-example.yaml
+ paths: []
+
+ # If enabled, a worker will be set up to periodically
+ # refresh the given sources and update the derpmap
+ # will be set up.
+ auto_update_enabled: true
+
+ # How often should we check for DERP updates?
+ update_frequency: 24h
+
+# 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
+
+ # Enable debug mode. This setting requires the log.level to be set to "debug" or "trace".
+ debug: false
+
+ gorm:
+ prepare_stmt: true
+ parameterized_queries: true
+ skip_err_record_not_found: true
+ slow_threshold: 1000
+
+ # SQLite config
+ sqlite:
+ path: /var/lib/headscale/db.sqlite
+ write_ahead_log: true
+ wal_autocheckpoint: 1000
+
+
+log:
+ # Output formatting for logs: text or json
+ format: text
+ level: info
+
+policy:
+ mode: file
+ path: "/etc/headscale/acl.json"
+
+dns:
+ magic_dns: true
+ base_domain: "{{ headscale_base_domain }}"
+ nameservers:
+ global:
+ - {{ headscale_dns_for_connected_clients_1 }}
+ - {{ headscale_dns_for_connected_clients_2 }}
+ split:
+ {}
+ # foo.bar.com:
+ # - 1.1.1.1
+ search_domains: []
+
+unix_socket: /var/run/headscale/headscale.sock
+unix_socket_permission: "0770"
+
+oidc:
+ only_start_if_oidc_is_available: false
+ issuer: "https://{{ idm_domain }}"
+ client_id: "headscale"
+ client_secret: "{{ headscale_oidc_secret }}"
+
+ scope: ["openid", "profile", "email"]
+ pkce:
+ # Enable or disable PKCE support (default: false)
+ enabled: true
+ # PKCE method to use:
+ # - plain: Use plain code verifier
+ # - S256: Use SHA256 hashed code verifier (default, recommended)
+ method: S256
+
+ allowed_domains:
+ - {{ domain }}
+ allowed_users: {{ headscale_allowed_users }}
+ strip_email_domain: true
+
+# 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