# πŸš€ Headscale + Headplane Docker Setup Tailscale을 μ™„μ „νžˆ λŒ€μ²΄ν•˜λŠ” 자체 ν˜ΈμŠ€νŒ… μ†”λ£¨μ…˜ ## πŸ“ 파일 ꡬ쑰 ``` /srv/ β”œβ”€β”€ docker-compose.yml # Docker Compose μ„€μ • β”œβ”€β”€ .env # ν™˜κ²½λ³€μˆ˜ β”œβ”€β”€ start.sh # μžλ™ μ„€μΉ˜ 슀크립트 β”œβ”€β”€ config/ β”‚ └── config.yaml # Headscale μ„€μ • β”œβ”€β”€ data/ # λ°μ΄ν„°λ² μ΄μŠ€ 및 ν‚€ 파일 └── run/ # λŸ°νƒ€μž„ 파일 ``` ## πŸš€ λΉ λ₯Έ μ‹œμž‘ ### 1. μžλ™ μ„€μΉ˜ (ꢌμž₯) ```bash chmod +x /srv/start.sh /srv/start.sh ``` ### 2. μˆ˜λ™ μ„€μΉ˜ ```bash # 1. Headscale μ‹œμž‘ docker-compose up -d headscale # 2. API ν‚€ 생성 docker-compose exec headscale headscale apikeys create # 3. .env νŒŒμΌμ— API ν‚€ μž…λ ₯ vi .env # 4. Headplane μ‹œμž‘ docker-compose up -d headplane ``` ## πŸ“‹ 접속 정보 - **Headscale API**: http://localhost:8080 - **Headplane UI**: http://localhost:3000 ## πŸ‘€ μ‚¬μš©μž 관리 ### μ‚¬μš©μž 생성 ```bash docker-compose exec headscale headscale users create myuser ``` ### Pre-auth ν‚€ 생성 ```bash docker-compose exec headscale headscale preauthkeys create --user myuser --reusable --expiration 24h ``` ## πŸ“± ν΄λΌμ΄μ–ΈνŠΈ μ—°κ²° ### Linux/macOS ```bash # Tailscale ν΄λΌμ΄μ–ΈνŠΈ μ„€μΉ˜ ν›„ tailscale up --login-server=http://localhost:8080 ``` ### Windows ```cmd tailscale up --login-server=http://localhost:8080 ``` ## πŸ”§ μœ μš©ν•œ λͺ…λ Ήμ–΄ ### μƒνƒœ 확인 ```bash docker-compose ps docker-compose logs -f ``` ### λ…Έλ“œ λͺ©λ‘ 확인 ```bash docker-compose exec headscale headscale nodes list ``` ### μ‚¬μš©μž λͺ©λ‘ 확인 ```bash docker-compose exec headscale headscale users list ``` ## πŸ› οΈ νŠΈλŸ¬λΈ”μŠˆνŒ… ### μ»¨ν…Œμ΄λ„ˆ μž¬μ‹œμž‘ ```bash docker-compose restart ``` ### 둜그 확인 ```bash docker-compose logs headscale docker-compose logs headplane ``` ### μ™„μ „ μ΄ˆκΈ°ν™” ```bash docker-compose down sudo rm -rf data/* docker-compose up -d ```