headscale-tailscale-replace.../farmq-admin/config.py
PharmQ Admin 36a4dca165 🚀 Pharmq.kr Live Production Setup Complete
 Headscale + farmq-admin 라이브 서버 구축 완료
- Docker Headscale 서버 설정 (포트 8070)
- farmq-admin 웹 GUI 연동 완료 (포트 5001)
- head.pharmq.kr 도메인 연결
- 1년 유효 재사용 가능 preauth key 생성
- 클라이언트 자동 등록 스크립트 완성

🔧 farmq-admin 설정:
- Headscale CLI API 래퍼 구현
- 실시간 노드/사용자 관리 GUI
- 데이터베이스 경로 수정 (/srv/headscale-tailscale-replacement/data/)
- 안전한 JSON 파싱 및 에러 처리 개선

📋 클라이언트 등록:
- register-client-pharmq-live.sh 스크립트
- head.pharmq.kr 도메인 사용
- 자동 Tailscale 설치 및 등록
- 테스트 완료 (100.64.0.1 IP 할당됨)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-22 11:17:10 +00:00

56 lines
1.7 KiB
Python

"""
Flask 애플리케이션 설정
"""
import os
from pathlib import Path
class Config:
"""기본 설정"""
# Flask 기본 설정
SECRET_KEY = os.environ.get('SECRET_KEY') or 'farmq-secret-key-change-in-production'
# 데이터베이스 설정 (기존 Headscale SQLite DB 사용)
DATABASE_PATH = '/srv/headscale-tailscale-replacement/data/db.sqlite'
SQLALCHEMY_DATABASE_URI = f'sqlite:///{DATABASE_PATH}'
SQLALCHEMY_TRACK_MODIFICATIONS = False
# 기존 Headplane 연동 설정
HEADPLANE_URL = os.environ.get('HEADPLANE_URL') or 'http://localhost:3000'
HEADSCALE_URL = os.environ.get('HEADSCALE_URL') or 'http://localhost:8070'
HEADSCALE_API_KEY = os.environ.get('HEADSCALE_API_KEY') or '0HHiZBM.lULHUaFbCQPQqU7-3tUCqFuB9JeueS9r'
# 모니터링 설정
MONITORING_INTERVAL = 30 # 30초마다 데이터 수집
MAX_MONITORING_RECORDS = 1000 # 최대 저장 레코드 수
# UI 설정
APP_TITLE = '팜큐 약국 관리 시스템'
ITEMS_PER_PAGE = 20 # 페이지당 아이템 수
# Proxmox 설정 (추후 확장)
PROXMOX_DEFAULT_PORT = 8006
PROXMOX_VERIFY_SSL = False
class DevelopmentConfig(Config):
"""개발 환경 설정"""
DEBUG = True
TESTING = False
class ProductionConfig(Config):
"""프로덕션 환경 설정"""
DEBUG = False
TESTING = False
class TestingConfig(Config):
"""테스트 환경 설정"""
DEBUG = True
TESTING = True
SQLALCHEMY_DATABASE_URI = 'sqlite:///:memory:'
# 환경별 설정 매핑
config = {
'development': DevelopmentConfig,
'production': ProductionConfig,
'testing': TestingConfig,
'default': DevelopmentConfig
}