Headscale-Admin 开源项目教程
项目介绍
Headscale-Admin 是一个为 Headscale 设计的简单现代的 Web 界面。Headscale 是一个开源的、自托管的 Tailscale 控制服务器实现。Headscale-Admin 目前被视为一个 Beta 应用程序,它仍在积极开发中,不应被视为最终产品,但在适当使用的情况下,可以安全地在生产环境中运行。
项目快速启动
环境准备
确保你已经安装了 Docker 和 Docker Compose。
克隆项目
git clone https://github.com/GoodiesHQ/headscale-admin.git
cd headscale-admin
启动服务
创建一个 docker-compose.yml
文件,内容如下:
version: '3.8'
services:
headscale-admin:
image: goodieshq/headscale-admin:latest
container_name: headscale-admin
restart: unless-stopped
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.services.headscale-admin.loadbalancer.server.port=80"
- "traefik.http.services.headscale-admin.loadbalancer.server.scheme=http"
- "traefik.http.routers.headscale-admin.rule=Host(`headscale.example.com`) && PathPrefix(`/admin`)"
- "traefik.http.routers.headscale-admin.entrypoints=websecure"
- "traefik.http.routers.headscale-admin.tls.certresolver=myresolver"
networks:
proxy:
external: true
启动服务:
docker-compose up -d
应用案例和最佳实践
使用 Traefik 进行部署
推荐使用 Traefik 作为反向代理来部署 Headscale-Admin。以下是一个使用 Traefik 的示例配置:
version: '3.8'
services:
headscale-admin:
image: goodieshq/headscale-admin:latest
container_name: headscale-admin
restart: unless-stopped
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.services.headscale-admin.loadbalancer.server.port=80"
- "traefik.http.services.headscale-admin.loadbalancer.server.scheme=http"
- "traefik.http.routers.headscale-admin.rule=Host(`headscale.example.com`) && PathPrefix(`/admin`)"
- "traefik.http.routers.headscale-admin.entrypoints=websecure"
- "traefik.http.routers.headscale-admin.tls.certresolver=myresolver"
networks:
proxy:
external: true
使用 PostgreSQL 进行大规模部署
对于大规模部署,推荐使用 PostgreSQL 作为数据库。可以通过以下步骤进行配置:
- 在
docker-compose.yml
文件中添加一个 PostgreSQL 服务。 - 创建一个非外部网络
backend
。 - 将 PostgreSQL 服务分配到
backend
网络。 - 将 Headscale 服务分配到
backend
网络。
典型生态项目
Headscale
Headscale 是一个开源的、自托管的 Tailscale 控制服务器实现。它允许你在自己的基础设施上运行 Tailscale 服务,从而实现更灵活的网络管理和控制。
Traefik
Traefik 是一个现代的反向代理和负载均衡器,适用于微服务和容器化环境。它与 Docker 和 Kubernetes 等容器编排工具集成良好,可以简化服务的部署和管理。
SvelteKit + TailwindCSS
Headscale-Admin 使用 SvelteKit 和 TailwindCSS 构建。SvelteKit 是一个用于构建高性能 Web 应用程序的框架,而 TailwindCSS 是一个实用程序优先的 CSS 框架,可以快速构建现代界面。
通过这些生态项目的结合,Headscale-