# Langfuse 자체 호스팅 — -12 에 올리기 LLM 호출 관측(누가·언제·어떤 모델·프롬프트·답·토큰·시간). 백엔드가 `LANGFUSE_HOST` 있으면 자동으로 쏨(`apps/gateway/langfuse.py`). 공식 `docker-compose.yml` 그대로(2026-09-22 main). 컨테이너 6개, 밖으로 여는 건 웹 3000 하나. ## 1. 이미지 반입 (인터넷 되는 PC) ```bash cd 5_django_backend/deploy/langfuse docker compose pull docker save $(grep -oE 'image: \S+' docker-compose.yml | cut -d' ' -f2 | sed 's/\${POSTGRES_VERSION:-17}/17/') | gzip > langfuse-images.tar.gz ls -la langfuse-images.tar.gz # 3~4GB. 메일 안 됨 — 인프라팀 반입 통로로 ``` ## 2. -12 에서 띄우기 -12 는 systemd 도 iptables 권한도 없는 컨테이너라 도커 데몬을 손으로, NAT 끄고 띄움(부팅 때마다): ```bash nohup dockerd --iptables=false --ip6tables=false --bridge=none > /var/log/dockerd.log 2>&1 & ``` 도커 설치 자체는 `.deb` 반입 → `dpkg -i` (docker-deb.zip + libseccomp2·netbase·iptables/nftables 묶음 netdeb.zip). ```bash docker load < langfuse-images.tar.gz cd /www/abap-ito/code-assistant/5_django_backend/deploy/langfuse cp .env.example .env && vi .env # CHANGEME 전부 교체. NEXTAUTH_URL=http://10.196.81.34:8915 docker compose -f docker-compose.yml -f docker-compose.customer.yml up -d # host 네트워크 + 웹 8915 (customer 파일 머리말 참고) docker compose ps # 6개 healthy 까지 1~2분 curl -s http://127.0.0.1:3000/api/public/health ``` ## 3. 백엔드 연결 `5_django_backend/.env` 에 (`.env` 의 INIT 키와 같은 값): ``` LANGFUSE_HOST=http://127.0.0.1:3000 LANGFUSE_PUBLIC_KEY=pk-lf-… LANGFUSE_SECRET_KEY=sk-lf-… ``` `bash deploy.sh` 로 재기동 → 채팅 하나 보내고 Langfuse 웹(Traces)에 `chat`·`fabrix` trace 뜨면 끝. ## ABAP_OPENCODE(-13) 도 같은 Langfuse 로 `abap-specgen/web/deploy/bare/.env` 에 같은 세 줄(LANGFUSE_HOST/PUBLIC_KEY/SECRET_KEY) 넣고 `run.sh restart`. 워처(`watch_file_events`)가 턴마다 보냄 — 태그 `abap-specgen` 으로 구분. 단 **-13 → -12(:3000) 통신이 막혀 있으면 안 감** — 인프라에 그 한 줄 허용 요청하거나 Langfuse 를 둘이 다 닿는 곳에 둬야 함. ## 운영 - 웹 UI: 고객사 PC 에서 `http://10.196.81.34:8915` (8915 는 -12 에 이미 열려 있던 빈 포트라 인프라 요청 불필요) - -13(ABAP_OPENCODE) 의 LANGFUSE_HOST 도 `http://10.196.81.34:8915` - 중지 `docker compose down` (데이터 볼륨 남음) / 완전 삭제 `docker compose down -v` - 로그 `docker compose logs -f langfuse-web` - 백엔드는 Langfuse 죽어 있어도 멀쩡(전송 실패는 warning 로그만)