diff --git a/app/main.py b/app/main.py index cad2429..72ed2f4 100644 --- a/app/main.py +++ b/app/main.py @@ -30,6 +30,15 @@ async def lifespan(app: FastAPI): # 시작: DB 연결 확인 await init_db() + # NAS 마운트 확인 (NFS 미마운트 시 로컬 빈 디렉토리에 쓰는 것 방지) + from pathlib import Path + nas_check = Path(settings.nas_mount_path) / "PKM" + if not nas_check.is_dir(): + raise RuntimeError( + f"NAS 마운트 확인 실패: {nas_check} 디렉토리 없음. " + f"NFS 마운트 상태를 확인하세요." + ) + # APScheduler: 백그라운드 작업 scheduler = AsyncIOScheduler(timezone="Asia/Seoul") # 상시 실행 diff --git a/docker-compose.yml b/docker-compose.yml index 6700ccd..41dca5c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -42,13 +42,13 @@ services: count: 1 capabilities: [gpu] ports: - - "11434:11434" + - "127.0.0.1:11434:11434" restart: unless-stopped ai-gateway: build: ./gpu-server/services/ai-gateway ports: - - "8081:8080" + - "127.0.0.1:8081:8080" environment: - PRIMARY_ENDPOINT=http://100.76.254.116:8800/v1/chat/completions - FALLBACK_ENDPOINT=http://ollama:11434/v1/chat/completions diff --git a/docs/deploy.md b/docs/deploy.md index 809d5ff..d5bc1ca 100644 --- a/docs/deploy.md +++ b/docs/deploy.md @@ -64,11 +64,11 @@ curl http://localhost:3100/health ### 2-6. 외부 접근 (Caddy) -Caddy가 자동으로 HTTPS 인증서를 발급한다. -- `document.hyungi.net` → FastAPI (:8000) +HTTPS는 앞단 프록시(Mac mini nginx)에서 처리하고, Caddy는 HTTP only로 동작한다. +- `document.hyungi.net` → Mac mini nginx (HTTPS 종료) → GPU 서버 Caddy (:8080) → FastAPI/Frontend - `office.hyungi.net` → Synology Office (NAS 프록시) -DNS 레코드가 Mac mini의 공인 IP를 가리켜야 한다. +DNS 레코드가 Mac mini의 공인 IP를 가리켜야 한다. Caddy는 `auto_https off` 설정. ## 3. GPU 서버 배포