自建Headscale的UI控制面板


headscale-admin:你的 headscale 专属管理管家!

headscale-admin 是一个开源的 Tailscale 管理面板,它提供了一个直观的用户界面来管理你的 Headscale 网络。可以让我们更加方便地管理 Tailscale 网络,例如添加、删除和查看节点等。

自建Headscale的UI控制面板


1. 部署服务

可以根据自己的需要进行容器的删减和调整即可。

  • 服务启动配置文件

确保访问 https://headscale.escape.cloud/api/api/v1/apikey 不会报错,就表示部署完成了。

services:
  # https://hub.docker.com/r/tailscale/tailscale
  tailscale:
    restart: on-failure
    container_name: tailscale_agent
    image: tailscale/tailscale:v1.80.0
    environment:
      - TS_HOSTNAME=tailscale-docker
      - TS_AUTH_ONCE=true
      - TS_STATE_DIR=/data
    volumes:
      - "tailscale:/var/run/tailscale"
      - "tailscale_data:/data"
    networks:
      - system_network

  # https://hub.docker.com/r/headscale/headscal
  headscale:
    restart: on-failure
    container_name: headscale
    image: headscale/headscale:v0.25.0
    ports:
      - 8080:8080
      - 9090:9090
    command: serve
    volumes:
      - "./headscale_config:/etc/headscale/"
      - "headscale_data:/var/lib/headscale"
    networks:
      - system_network

  # https://github.com/sparanoid/docker-derp
  derp:
    restart: always
    container_name: headscale_derp
    image: sparanoid/derp:latest
    init: true
    ports:
      - 80:80
      - 443:443
      - 3478:3478/udp
    command: sh -c "
      derper \
      -hostname example.com \
      -certdir /app/certs \
      -certmode manual \
      -verify-clients true"
    volumes:
      - ./ssl/fullchain.cer:/app/certs/derp.example.com.crt
      - ./ssl/example.com.key:/app/certs/derp.example.com.key
      - /var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock
    depends_on:
      tailscale:
      condition: service_started
    networks:
      - system_network

  # https://github.com/GoodiesHQ/headscale-admin
  headscale-admin:
    restart: always
    container_name: headscale-admin
    image: goodieshq/headscale-admin:0.25
    ports:
      - "8282:80"
    environment:
      - HEADSCALE_URL=http://headscale:8080
      - HEADSCALE_API_KEY=your_key
    networks:
      - system_network

volumes:
  tailscale:
  tailscale_data:
  headscale_data:

networks:
  system_network:
  • 启动服务并查看状态
# 启动服务
$ docker compose up -d

# 查看日志
$ docker compose logs -f

# 检查配置
docker exec -it headscale headscale configtest

2. 管理界面

可以通过 UI 界面来管理 Headscale 网络。

Headscale 公网域名或 IP 地址后面,跟上路径 /admin 即可打开可视化界面。

自建Headscale的UI控制面板

登录 headscale-admin 需要通过 API Key 来接入 Headscale,所以在使用之前我们需要先创建一个 API key。然后,再登录页面输入 URLAPI Key,点击 Save 即可。

# headscale容器里面执行
$ docker exec -it headscale headscale apikeys create
$ docker exec -it headscale headscale apikeys create --expiration 180d

3. 参考文档

送人玫瑰,手有余香!


文章作者: Escape
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !
  目录