## Features - 한국어 Flask 관리 인터페이스 with Bootstrap 5 - Headscale과 분리된 독립 데이터베이스 구조 - 약국 관리 시스템 (pharmacy management) - 머신 모니터링 및 상태 관리 - 실시간 대시보드 with 통계 및 알림 - Headscale 사용자명과 약국명 분리 관리 ## Database Architecture - 별도 FARMQ SQLite DB (farmq.sqlite) - Headscale DB와 외래키 충돌 방지 - 느슨한 결합 설계 (ID 참조만 사용) ## UI Components - 반응형 대시보드 with 실시간 통계 - 약국별 머신 상태 모니터링 - 한국어 지역화 및 사용자 친화적 인터페이스 - 머신 온라인/오프라인 상태 표시 (24시간 타임아웃) ## API Endpoints - `/api/sync/machines` - Headscale 머신 동기화 - `/api/sync/users` - Headscale 사용자 동기화 - `/api/pharmacy/<id>/update` - 약국 정보 업데이트 - 대시보드 통계 및 알림 API ## Problem Resolution - Fixed foreign key conflicts preventing Windows client connections - Resolved machine online status detection with proper timeout handling - Separated technical Headscale usernames from business pharmacy names 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| config | ||
| farmq-admin | ||
| headplane-config | ||
| .env.example | ||
| .gitignore | ||
| CLIENT_CONNECTION_TEST.md | ||
| docker-compose.yml | ||
| FARMQ_HEADPLANE_CUSTOMIZATION_PLAN.md | ||
| HEADPLANE_KOREAN_LOCALIZATION_PLAN.md | ||
| headscale_models.py | ||
| INSTALLATION_GUIDE.md | ||
| README.md | ||
| start.sh | ||
| test_headscale_models.py | ||
| TROUBLESHOOTING_DATABASE_FOREIGN_KEY.md | ||
🚀 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
🚀 빠른 시작
1. 환경변수 설정
# .env.example을 .env로 복사
cp .env.example .env
2. 자동 설치 (권장)
# 실행 권한 부여 및 실행
chmod +x ./start.sh
./start.sh
3. 수동 설치
# 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
👤 사용자 관리
사용자 생성
docker-compose exec headscale headscale users create myuser
Pre-auth 키 생성
docker-compose exec headscale headscale preauthkeys create --user myuser --reusable --expiration 24h
📱 클라이언트 연결
Linux/macOS
# Tailscale 클라이언트 설치 후
tailscale up --login-server=http://localhost:8080
Windows
tailscale up --login-server=http://localhost:8080
🔧 유용한 명령어
상태 확인
docker-compose ps
docker-compose logs -f
노드 목록 확인
docker-compose exec headscale headscale nodes list
사용자 목록 확인
docker-compose exec headscale headscale users list
🛠️ 트러블슈팅
컨테이너 재시작
docker-compose restart
로그 확인
docker-compose logs headscale
docker-compose logs headplane
완전 초기화
docker-compose down
sudo rm -rf data/*
docker-compose up -d
🔄 Git 관리
필요시 수동으로 Git 커밋을 진행하세요:
# 현재 상태 확인
git status
# 변경사항 커밋
git add .
git commit -m "Update: 설명"
git push origin main