Go to file
시골약사 ca61a89739 🏥 Add complete FARMQ Admin Flask application
## 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>
2025-09-09 17:44:56 +09:00
config 🎉 Working Headscale Setup with Docker Complete 2025-09-09 14:34:56 +09:00
farmq-admin 🏥 Add complete FARMQ Admin Flask application 2025-09-09 17:44:56 +09:00
headplane-config 🔧 Fix Headplane UI configuration and enable external access 2025-09-09 15:10:56 +09:00
.env.example 🎉 Working Headscale Setup with Docker Complete 2025-09-09 14:34:56 +09:00
.gitignore 📝 Update .gitignore to exclude Python virtual environments and cache files 2025-09-09 15:53:11 +09:00
CLIENT_CONNECTION_TEST.md 📚 Update documentation with Headplane UI access and configuration 2025-09-09 15:12:54 +09:00
docker-compose.yml 🔧 Fix Headplane UI configuration and enable external access 2025-09-09 15:10:56 +09:00
FARMQ_HEADPLANE_CUSTOMIZATION_PLAN.md 🏥 Add FARMQ Headplane customization business plan 2025-09-09 15:34:12 +09:00
HEADPLANE_KOREAN_LOCALIZATION_PLAN.md 📋 Add Headplane Korean localization plan 2025-09-09 15:24:04 +09:00
headscale_models.py 🗃️ Add comprehensive SQLAlchemy models for Headscale database 2025-09-09 15:47:16 +09:00
INSTALLATION_GUIDE.md 📚 Update documentation with Headplane UI access and configuration 2025-09-09 15:12:54 +09:00
README.md 🎉 Working Headscale Setup with Docker Complete 2025-09-09 14:34:56 +09:00
start.sh 📚 Update documentation with Headplane UI access and configuration 2025-09-09 15:12:54 +09:00
test_headscale_models.py 🗃️ Add comprehensive SQLAlchemy models for Headscale database 2025-09-09 15:47:16 +09:00
TROUBLESHOOTING_DATABASE_FOREIGN_KEY.md 🏥 Add complete FARMQ Admin Flask application 2025-09-09 17:44:56 +09:00

🚀 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

📋 접속 정보

👤 사용자 관리

사용자 생성

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