- Update docker-compose.yml: simplify environment variables - Fix headplane-config/config.yaml with proper configuration: * Add required server section with correct cookie_secret (32 chars) * Configure headscale connection with API key * Enable external access via 192.168.0.151:3000/admin/ - Resolve configuration validation errors - Headplane UI now fully accessible and functional 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
51 lines
1.1 KiB
YAML
51 lines
1.1 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
headscale:
|
|
image: headscale/headscale:latest
|
|
container_name: headscale
|
|
restart: unless-stopped
|
|
command: serve
|
|
environment:
|
|
- TZ=Asia/Seoul
|
|
volumes:
|
|
- ./config:/etc/headscale
|
|
- ./data:/var/lib/headscale
|
|
- ./run:/var/run/headscale
|
|
ports:
|
|
- "8070:8080" # Headscale HTTP API (외부:내부)
|
|
- "9090:9090" # Metrics (optional)
|
|
networks:
|
|
- headscale-net
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "nc -z localhost 8080 || exit 1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
|
|
headplane:
|
|
image: ghcr.io/tale/headplane:latest
|
|
container_name: headplane
|
|
restart: unless-stopped
|
|
environment:
|
|
- TZ=Asia/Seoul
|
|
- HEADSCALE_URL=http://headscale:8080
|
|
- HEADSCALE_API_KEY=${HEADSCALE_API_KEY}
|
|
volumes:
|
|
- ./headplane-config:/etc/headplane
|
|
ports:
|
|
- "3000:3000" # Headplane Web UI
|
|
depends_on:
|
|
- headscale
|
|
networks:
|
|
- headscale-net
|
|
|
|
networks:
|
|
headscale-net:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
headscale_config:
|
|
headscale_data:
|
|
headscale_run: |