feat(documentation): Added readme content and adjusted config

This commit is contained in:
Fishandchips321 2026-04-15 15:03:01 +01:00
parent 15ce4b1e30
commit 934a68303a
4 changed files with 25 additions and 15 deletions

View file

@ -0,0 +1,5 @@
# Headscale
Headscale is a self-hosted TailScale server. As far as I can tell, there isn't really a web frontend provided with the container image and all management actions are done on the command line
## Using this kubernetes config
Set the headscale domain name in `ingress.yml`. This config assumes you have cert-manager installed on your cluster, so if you want to provide HTTPS another way, feel free to comment out the `spec.tls` section (the annotation shouldn't affect anything, but you can comment it out as well if you want). Then look through the `config.yml` file and configure Headscale to fit your needs.

View file

@ -15,14 +15,13 @@ data:
# #
# https://myheadscale.example.com:443 # https://myheadscale.example.com:443
# #
# server_url: http://127.0.0.1:8080 server_url: http://127.0.0.1:8080
server_url: https://headscale.foxhawk.co.uk
# Address to listen to / bind to on the server # Address to listen to / bind to on the server
# #
# For production: # For production:
listen_addr: 0.0.0.0:8080 # listen_addr: 0.0.0.0:8080
# listen_addr: 127.0.0.1:8080 listen_addr: 127.0.0.1:8080
# Address to listen to /metrics and /debug, you may want # Address to listen to /metrics and /debug, you may want
# to keep this endpoint private to your internal network # to keep this endpoint private to your internal network
@ -207,31 +206,31 @@ data:
# TLS for a domain with Let's Encrypt. # TLS for a domain with Let's Encrypt.
# #
# URL to ACME directory # URL to ACME directory
#acme_url: https://acme-v02.api.letsencrypt.org/directory acme_url: https://acme-v02.api.letsencrypt.org/directory
# Email to register with ACME provider # Email to register with ACME provider
#acme_email: "" acme_email: ""
# Domain name to request a TLS certificate for: # Domain name to request a TLS certificate for:
#tls_letsencrypt_hostname: "" tls_letsencrypt_hostname: ""
# Path to store certificates and metadata needed by # Path to store certificates and metadata needed by
# letsencrypt # letsencrypt
# For production: # For production:
#tls_letsencrypt_cache_dir: /var/lib/headscale/cache tls_letsencrypt_cache_dir: /var/lib/headscale/cache
# Type of ACME challenge to use, currently supported types: # Type of ACME challenge to use, currently supported types:
# HTTP-01 or TLS-ALPN-01 # HTTP-01 or TLS-ALPN-01
# See: docs/ref/tls.md for more information # See: docs/ref/tls.md for more information
#tls_letsencrypt_challenge_type: HTTP-01 tls_letsencrypt_challenge_type: HTTP-01
# When HTTP-01 challenge is chosen, letsencrypt must set up a # When HTTP-01 challenge is chosen, letsencrypt must set up a
# verification endpoint, and it will be listening on: # verification endpoint, and it will be listening on:
# :http = port 80 # :http = port 80
#tls_letsencrypt_listen: ":http" tls_letsencrypt_listen: ":http"
## Use already defined certificates: ## Use already defined certificates:
#tls_cert_path: "" tls_cert_path: ""
#tls_key_path: "" tls_key_path: ""
log: log:
# Valid log levels: panic, fatal, error, warn, info, debug, trace # Valid log levels: panic, fatal, error, warn, info, debug, trace
@ -282,7 +281,7 @@ data:
# `base_domain` must be a FQDN, without the trailing dot. # `base_domain` must be a FQDN, without the trailing dot.
# The FQDN of the hosts will be # The FQDN of the hosts will be
# `hostname.base_domain` (e.g., _myhost.example.com_). # `hostname.base_domain` (e.g., _myhost.example.com_).
base_domain: foxhawk.vpn base_domain: example.com
# Whether to use the local DNS settings of a node or override the local DNS # Whether to use the local DNS settings of a node or override the local DNS
# settings (default) and force the use of Headscale's DNS configuration. # settings (default) and force the use of Headscale's DNS configuration.

View file

@ -19,7 +19,7 @@ spec:
- serve - serve
resources: resources:
limits: limits:
memory: "128Mi" memory: "512Mi"
cpu: "500m" cpu: "500m"
ports: ports:
- containerPort: 8080 - containerPort: 8080

View file

@ -2,9 +2,15 @@ apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress
metadata: metadata:
name: headscale name: headscale
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-production"
spec: spec:
tls:
- hosts:
- <headscale url>
secret-name: headscale-tls
rules: rules:
- host: headscale.foxhawk.co.uk - host: <headscale url>
http: http:
paths: paths:
- pathType: Prefix - pathType: Prefix