
Ollama를 위한 셀프 호스팅 인증 게이트웨이를 구축했습니다: 클라이언트별 API 키, 할당량, 멀티 서버 라우팅 및 사용량 모니터링 (소스
요약
Ollama의 보안 및 관리 부재를 해결하기 위해 구축된 셀프 호스팅 인증 게이트웨이 프로젝트를 소개합니다. API 키 관리, 할당량 제한, 멀티 서버 라우팅 및 상세 사용량 모니터링 기능을 제공합니다.
핵심 포인트
- 클라이언트별 API 키 및 IP 기반 접근 제어 지원
- 토큰 및 속도 제한을 통한 할당량(Quota) 관리 기능
- 다중 업스트림 서버 라우팅 및 자동 폴백 지원
- 사용량 로깅, 시계열 차트 및 모델별 상세 모니터링
- Python/FastAPI 기반의 도커화된 경량 게이트웨이
Ollama는 인증 기능 없이 배포되므로, 접근 가능한 사람이라면 누구나 귀하의 GPU를 소모할 수 있습니다. 저는 Ollama 앞에 nginx를 붙이는 작업에 지쳐서 ollama-gateway를 구축했습니다. 이는 하나 이상의 Ollama 서버 앞에 위치하여 실제 액세스 제어 기능을 추가하는 작은 셀프 호스팅 (self-hosted) 게이트웨이입니다.
주요 기능:
- 클라이언트별 API 키 (해시 처리, 1회 노출, 취소 가능), 키별 오리진 제한 (IP/CIDR) 포함
- 할당량 (Quotas): 월간 토큰 제한 및 속도 제한 (rate limits), 비용 제한이 있는 "평생" 체험판 제공
- 다중 업스트림 (local 및 remote): 각 키를 하나의 서버에 매핑하며, 실패 시 자동 폴백 (fallback) 지원
- 키별 모델 및 API 허용 목록 (allowlists): 네이티브 Ollama, OpenAI 호환 및 Anthropic 엔드포인트 전반에서 작동
- 카탈로그 관리 호출 (pull/delete): 클라이언트로부터는 차단된 상태 유지
- 사용량 로깅 및 모니터링: 요청별 로그, 시계열 차트 (24시간~3개월), 모델별 상세 내역, grep 기능이 포함된 요청 콘텐츠 뷰어
- LAN 전용 관리 패널 (서버 렌더링 방식, 프론트엔드 빌드 없음), EU 24개 공식 언어로 완전 번역됨
- Caddy를 통한 TLS (ACME DNS-01, 인바운드 포트 불필요), 완전한 도커화 (dockerized)
- 클라이언트 키는 업스트림으로 전달되기 전에 제거되며, 원격 토큰은 저장 시 암호화됨
기술 스택: Python/FastAPI 및 SQLite, Jinja 관리 패널, Playwright E2E
이 프로젝트는 삽화가 포함된 내장 매뉴얼과 배포 스크립트에 연결된 사전 배포 보안 점검 (비밀값, CVE, SAST, 테스트)을 함께 제공합니다.
라이선스 관련: 이 프로젝트는 소스 공개 (source-available) 방식이며, OSI 오픈 소스는 아닙니다. 모든 인스턴스를 합쳐 월간 10억 토큰 이하를 사용하는 한 자유롭게 사용, 수정 및 셀프 호스팅(상업적 이용 포함)할 수 있습니다. 그 이상의 경우에는 상업용 라이선스가 적용됩니다 (설치당 1회 29유로). 텔레메트리 (telemetry)나 외부 통신 (phone-home) 기능이 없으므로, 이 임계값은 순수하게 신뢰 시스템 (honor system)에 기반합니다. 저는 지속 가능성을 위한 경로를 유지하면서도, 진정으로 만져볼 수 있는 오픈된 프로젝트를 만들고 싶었으며, 이를 숨기기보다는 솔직하게 밝히는 편을 택했습니다.
Repo: https://github.com/martinobettucci/ollama-gateway (README에 데모 영상과 스크린샷이 포함되어 있습니다) 피드백은 언제나 환영하며, 특히 인증/할당량 (auth/quota) 모델이나 이와 같은 게이트웨이에서 필요하다고 생각하는 기능에 대한 의견을 부탁드립니다. /u/Regular-Forever5876에 의해 제출됨 [link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기