Headscale

Self-hostable fork of Tailscale, cross-platform clients, simple to use, built-in (currently experimental) monitoring tools.

Directory Structure

    • .env
    • docker-compose.yml

docker-compose.yml

version: "3.7"
 
services:
  headscale:
    image: headscale/headscale:0.22.3
    restart: unless-stopped
    container_name: headscale
    ports:
      - "127.0.0.1:8080:8080"
      - "127.0.0.1:9090:9090"
    volumes:
      # pls change [config_path] to the fullpath of the config folder just created
      - [config_path]:/etc/headscale
    command: headscale serve

config.yaml

# Change to your hostname or host IP
server_url: http://your-host-name:8080
# Listen to 0.0.0.0 so it's accessible outside the container
metrics_listen_addr: 0.0.0.0:9090
# The default /var/lib/headscale path is not writable in the container
noise:
  private_key_path: /etc/headscale/noise_private.key
# The default /var/lib/headscale path is not writable in the container
derp:
  private_key_path: /etc/headscale/private.key
# The default /var/run/headscale path is not writable  in the container
unix_socket: /etc/headscale/headscale.sock
# The default /var/lib/headscale path is not writable  in the container
database.type: sqlite3
database.sqlite.path: /etc/headscale/db.sqlite

Resources

Website: https://headscale.net/

GitHub: https://github.com/juanfont/headscale

Docker Hub: https://hub.docker.com/r/headscale/headscale

Configuration: https://headscale.net/running-headscale-container/