# πŸš€ Headscale + Headplane Docker Setup Tailscale을 μ™„μ „νžˆ λŒ€μ²΄ν•˜λŠ” 자체 ν˜ΈμŠ€νŒ… μ†”λ£¨μ…˜ ## πŸ“ 파일 ꡬ쑰 ``` headscale-setup/ β”œβ”€β”€ docker-compose.yml # Docker Compose μ„€μ • β”œβ”€β”€ .env # ν™˜κ²½λ³€μˆ˜ (볡사 ν•„μš”) β”œβ”€β”€ .env.example # ν™˜κ²½λ³€μˆ˜ ν…œν”Œλ¦Ώ β”œβ”€β”€ start.sh # μžλ™ μ„€μΉ˜ 슀크립트 β”œβ”€β”€ README.md # 이 λ¬Έμ„œ β”œβ”€β”€ .gitignore # Git μ œμ™Έ 파일 β”œβ”€β”€ config/ β”‚ └── config.yaml # Headscale μ„€μ • β”œβ”€β”€ data/ # λ°μ΄ν„°λ² μ΄μŠ€ 및 ν‚€ 파일 (μžλ™ 생성) └── run/ # λŸ°νƒ€μž„ 파일 (μžλ™ 생성) ``` ## πŸš€ Git Repository - **μ €μž₯μ†Œ**: https://git.0bin.in/thug0bin/headscale-tailscale-replacement - **κ΄€λ¦¬μž**: μ‹œκ³¨μ•½μ‚¬ (thug0bin@gmail.com) ## πŸš€ λΉ λ₯Έ μ‹œμž‘ ### 1. ν™˜κ²½λ³€μˆ˜ μ„€μ • ```bash # .env.example을 .env둜 볡사 cp .env.example .env ``` ### 2. μžλ™ μ„€μΉ˜ (ꢌμž₯) ```bash # μ‹€ν–‰ κΆŒν•œ λΆ€μ—¬ 및 μ‹€ν–‰ chmod +x ./start.sh ./start.sh ``` ### 3. μˆ˜λ™ μ„€μΉ˜ ```bash # 1. Headscale μ‹œμž‘ docker-compose up -d headscale # 2. API ν‚€ 생성 docker-compose exec headscale headscale apikeys create # 3. .env νŒŒμΌμ— API ν‚€ μž…λ ₯ (HEADSCALE_API_KEY κ°’ μˆ˜μ •) vi .env # 4. Headplane μ‹œμž‘ docker-compose up -d headplane ``` ## πŸ“‹ 접속 정보 - **Headscale API**: http://localhost:8070 - **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 ``` ## πŸ”„ Git 관리 ν•„μš”μ‹œ μˆ˜λ™μœΌλ‘œ Git 컀밋을 μ§„ν–‰ν•˜μ„Έμš”: ```bash # ν˜„μž¬ μƒνƒœ 확인 git status # 변경사항 컀밋 git add . git commit -m "Update: μ„€λͺ…" git push origin main ``` ## ⚑ μƒˆ μ„œλ²„ 원클릭 등둝 μƒˆλ‘œμš΄ λ¦¬λˆ…μŠ€ μ„œλ²„λ₯Ό 팜큐 λ„€νŠΈμ›Œν¬μ— **ν•œ 번의 λͺ…λ Ή**으둜 등둝: ### λΉ λ₯Έ μ„€μΉ˜ (ꢌμž₯) ```bash # 일반 μ‚¬μš©μž 계정 curl -fsSL https://git.0bin.in/thug0bin/headscale-tailscale-replacement/raw/branch/feature/working-headscale-setup/quick-install.sh | sudo bash # root 계정 (Proxmox λ“±) curl -fsSL https://git.0bin.in/thug0bin/headscale-tailscale-replacement/raw/branch/feature/working-headscale-setup/quick-install.sh | bash ``` ### κΈ°μ‘΄ Tailscale 연결이 μžˆλŠ” 경우 (κ°•μ œ μž¬λ“±λ‘) ```bash # 일반 μ‚¬μš©μž curl -fsSL https://git.0bin.in/thug0bin/headscale-tailscale-replacement/raw/branch/feature/working-headscale-setup/quick-install.sh | sudo bash -s -- --force # root 계정 curl -fsSL https://git.0bin.in/thug0bin/headscale-tailscale-replacement/raw/branch/feature/working-headscale-setup/quick-install.sh | bash -s -- --force ``` ### 지원 OS - Ubuntu, Debian, CentOS, RHEL, Rocky Linux, Fedora, Arch Linux - μžλ™ Tailscale μ„€μΉ˜ + Headscale 등둝 - λ°©ν™”λ²½ μžλ™ μ„€μ • + μ—°κ²° 검증 **30초 λ§Œμ— 팜큐 λ„€νŠΈμ›Œν¬ μ—°κ²° μ™„λ£Œ!** πŸŽ‰ ## πŸͺŸ Windows 원클릭 등둝 Windows PCμ—μ„œ **ν•œ 번의 볡사 λΆ™μ—¬λ„£κΈ°**둜 팜큐 λ„€νŠΈμ›Œν¬ μ—°κ²°: ### κΈ°λ³Έ μ„€μΉ˜ (ꢌμž₯) - 인코딩 문제 해결됨 ```powershell # κ΄€λ¦¬μž PowerShellμ—μ„œ 볡사 λΆ™μ—¬λ„£κΈ° (English version - ν•œκΈ€ 깨짐 ν•΄κ²°) iex ((New-Object System.Net.WebClient).DownloadString('https://git.0bin.in/thug0bin/headscale-tailscale-replacement/raw/branch/feature/working-headscale-setup/farmq-install-en.ps1')) ``` ### κΈ°μ‘΄ Tailscale μžˆλŠ” 경우 (κ°•μ œ μž¬λ“±λ‘) ```powershell # κΈ°μ‘΄ 연결을 μžλ™μœΌλ‘œ ν•΄μ œν•˜κ³  μž¬λ“±λ‘ (English version) $Force = $true; iex ((New-Object System.Net.WebClient).DownloadString('https://git.0bin.in/thug0bin/headscale-tailscale-replacement/raw/branch/feature/working-headscale-setup/farmq-install-en.ps1')) ``` ### ν•œκΈ€ 버전 (인코딩 문제 λ°œμƒ κ°€λŠ₯) ```powershell # ν•œκΈ€μ΄ κΉ¨μ Έ 보일 수 있음 - μœ„ English 버전 ꢌμž₯ iex ((New-Object System.Net.WebClient).DownloadString('https://git.0bin.in/thug0bin/headscale-tailscale-replacement/raw/branch/feature/working-headscale-setup/farmq-install.ps1')) ``` ### μ‹€ν–‰ 방법 1. **Windows ν‚€ + X** β†’ **"Windows PowerShell(κ΄€λ¦¬μž)"** 클릭 2. μœ„ λͺ…λ Ήμ–΄ **볡사 β†’ λΆ™μ—¬λ„£κΈ° β†’ Enter** 3. μžλ™ μ„€μΉ˜ μ§„ν–‰ (2-3λΆ„) 4. 팜큐 λ„€νŠΈμ›Œν¬ μ—°κ²° μ™„λ£Œ! πŸŽ‰ ### Windows μžλ™ 처리 κΈ°λŠ₯ - βœ… **Tailscale μžλ™ λ‹€μš΄λ‘œλ“œ** 및 μ„€μΉ˜ - βœ… **κ΄€λ¦¬μž κΆŒν•œ** μžλ™ 확인 - βœ… **κΈ°μ‘΄ μ—°κ²° 슀마트 처리** (Linux와 동일) - βœ… **Windows Defender λ°©ν™”λ²½** μžλ™ μ„€μ • - βœ… **λ„€νŠΈμ›Œν¬ μ—°κ²° ν…ŒμŠ€νŠΈ** 및 확인