📚 Update documentation with Headplane UI access and configuration

- Update INSTALLATION_GUIDE.md:
  * Add Headplane configuration section with proper config.yaml
  * Update docker-compose.yml example with simplified environment variables
  * Add Headplane login instructions and API key information
  * Update troubleshooting section for cookie_secret validation errors
- Update CLIENT_CONNECTION_TEST.md:
  * Add Headplane web UI access information
  * Include external access URL (192.168.0.151:3000/admin/)
  * Add login credentials and API key details
- Update start.sh:
  * Include Headplane UI URLs in installation summary
  * Add external access information for network environments

All documentation now reflects the working Headplane UI configuration
and provides complete setup instructions for both local and external access.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
시골약사 2025-09-09 15:12:54 +09:00
parent 3c6723bcde
commit 6e8a7b81fb
3 changed files with 53 additions and 16 deletions

View File

@ -291,5 +291,11 @@ Headscale 서버와 Tailscale 클라이언트 간의 연결이 완벽하게 성
- ✅ IP 주소 자동 할당 성공 - ✅ IP 주소 자동 할당 성공
- ✅ 실시간 통신 확인 - ✅ 실시간 통신 확인
- ✅ Headscale 관리 인터페이스 정상 동작 - ✅ Headscale 관리 인터페이스 정상 동작
- ✅ Headplane 웹 UI 외부 접속 성공
### 🌐 완전한 관리 환경 구축
- **Headscale API**: http://localhost:8070 (명령줄 관리)
- **Headplane UI**: http://192.168.0.151:3000/admin/ (웹 관리)
- **로그인 API Key**: `8qRr1IB.tV95CmA0fLaCiGGIgBfeoN9daHceFkzI`
이제 **Tailscale을 완전히 대체**할 수 있는 자체 호스팅 VPN 솔루션이 구축되었습니다! 이제 **Tailscale을 완전히 대체**할 수 있는 자체 호스팅 VPN 솔루션이 구축되었습니다!

View File

@ -73,15 +73,8 @@ services:
restart: unless-stopped restart: unless-stopped
environment: environment:
- TZ=Asia/Seoul - TZ=Asia/Seoul
- HOST=0.0.0.0
- PORT=3000
- HEADSCALE_URL=http://headscale:8080 - HEADSCALE_URL=http://headscale:8080
- ROOT_API_KEY=${HEADSCALE_API_KEY} - HEADSCALE_API_KEY=${HEADSCALE_API_KEY}
- HEADSCALE_INTEGRATION=docker
- HEADSCALE_CONTAINER=headscale
- COOKIE_SECRET=headscale-ui-secret-key-change-me
- COOKIE_SECURE=false
- DISABLE_API_KEY_LOGIN=false
volumes: volumes:
- ./headplane-config:/etc/headplane - ./headplane-config:/etc/headplane
ports: ports:
@ -167,7 +160,34 @@ oidc:
allowed_users: [] allowed_users: []
``` ```
### 4단계: 환경변수 설정 ### 4단계: Headplane 설정 파일
#### headplane-config/config.yaml
```yaml
headscale:
url: http://headscale:8080
api_key: YOUR_API_KEY_HERE # 자동 생성됨
config_strict: false
server:
host: 0.0.0.0
port: 3000
cookie_secret: headscale-ui-secret-32-chars-key # 정확히 32자
cookie_secure: false
settings:
title: "Headscale 관리 패널"
favicon_url: ""
custom_css: ""
```
**중요 설정사항:**
- `cookie_secret`: 정확히 32자여야 함 (설정 검증 오류 방지)
- `config_strict: false`: 설정 검증 완화
- `api_key`: 설치 시 자동 생성되어 교체됨
- 설정 파일은 환경변수보다 우선순위가 높음
### 5단계: 환경변수 설정
#### .env.example #### .env.example
```bash ```bash
@ -285,10 +305,14 @@ lsof -i :8080
### Headplane 설정 파일 문제 ### Headplane 설정 파일 문제
```bash ```bash
# 빈 설정 파일 생성 # cookie_secret 길이 오류 시 (정확히 32자 필요)
echo "# Minimal config file for Headplane" > headplane-config/config.yaml echo "headscale-ui-secret-32-chars-key" | wc -c # 32자 확인
# 환경변수 우선 사용 설정 # 설정 파일 재검증
docker-compose logs headplane --tail 10
# 컨테이너 재시작으로 설정 재로드
docker-compose restart headplane
``` ```
### 헬스체크 실패 ### 헬스체크 실패
@ -301,13 +325,19 @@ echo "# Minimal config file for Headplane" > headplane-config/config.yaml
### 접속 정보 ### 접속 정보
- **Headscale API**: http://localhost:8070 - **Headscale API**: http://localhost:8070
- **Headplane UI**: http://localhost:3000 (설정 중) - **Headplane UI**: http://localhost:3000/admin/ (로그인 페이지)
- **외부 접속**: http://192.168.0.151:3000/admin/ (네트워크 설정에 따라)
- **메트릭스**: http://localhost:9090 - **메트릭스**: http://localhost:9090
### 생성된 정보 ### 생성된 정보
- **사용자**: myuser (ID: 1) - **사용자**: myuser (ID: 1)
- **API 키**: 자동 생성됨 - **API 키**: 8qRr1IB.tV95CmA0fLaCiGGIgBfeoN9daHceFkzI (자동 생성됨)
- **Pre-auth 키**: 24시간 유효, 재사용 가능 - **Pre-auth 키**: fc4f2dc55ee00c5352823d156129b9ce2df4db02f1d76a21 (24시간 유효, 재사용 가능)
### 🔑 Headplane 로그인
1. 브라우저에서 http://localhost:3000/admin/ 또는 http://192.168.0.151:3000/admin/ 접속
2. **API Key** 필드에 입력: `8qRr1IB.tV95CmA0fLaCiGGIgBfeoN9daHceFkzI`
3. **Sign In** 버튼 클릭
### 네트워크 설정 ### 네트워크 설정
- **IPv4**: 100.64.0.0/10 - **IPv4**: 100.64.0.0/10

View File

@ -68,7 +68,8 @@ echo "🎉 설치 완료!"
echo "" echo ""
echo "📋 접속 정보:" echo "📋 접속 정보:"
echo " - Headscale API: http://localhost:8070" echo " - Headscale API: http://localhost:8070"
echo " - Headplane UI: http://localhost:3000" echo " - Headplane UI: http://localhost:3000/admin/"
echo " - 외부 접속: http://192.168.0.151:3000/admin/"
echo " - API 키: $API_KEY" echo " - API 키: $API_KEY"
echo "" echo ""
echo "📖 다음 단계:" echo "📖 다음 단계:"