3.3 KiB
3.3 KiB
skill-slack 배포 지침서
문제
skill-slack의 역할을 로빙 철학(스킬=도구, 판단 금지)에 맞게 재정의하고 51124 서버에 배포
배포 정보
- 포트: 8502
- 서버: 51124 (192.168.219.52)
- 경로: /home/admin/ivada_project/skill-slack
배포 전제조건
현재 상태
- heejae 컨테이너: 실행 중 (포트 8502 사용)
- admin 디렉토리: 코드만 클론됨
- 포트 충돌: 동시 실행 불가
필수 확인
- thread_ts 버그 수정 (chat_postMessage에 thread_ts 파라미터 추가)
- SERVICE_API_KEY 설정 (51124 서버 .env 확인)
- SLACK_BOT_TOKEN 설정 (환경변수)
- heejae 컨테이너 중단 후 admin 시작
로빙 철학 적용
원칙
- 스킬 = 순수 도구: 판단 금지, DB 접근 금지
- 무상태: 어떤 정보도 기억/조회하지 않음
- 교체 가능: 언제든 제거/교체 가능해야 함
올바른 아키텍처
1. rb8001이 DB에서 토큰/채널 조회
2. rb8001이 skill-slack 호출 시 필요 정보 전달
3. skill-slack은 받은 정보로만 작업
API 변경
| 엔드포인트 | 상태 | 이유 |
|---|---|---|
/health |
유지 | 헬스체크 |
/api/v1/send |
유지 | 메시지 전송 (토큰 받아서) |
/api/v1/update |
유지 | 메시지 업데이트 |
/api/v1/summarize |
삭제 | LLM 호출 (로빙 역할) |
/api/v1/digest |
삭제 | 자체 처리 (로빙 역할) |
환경변수 설정
기본 토큰 (임시)
- SLACK_BOT_TOKEN: 환경변수로 설정
- SERVICE_API_KEY: API 인증용
올바른 방식
- rb8001이 요청 시마다 토큰 전달:
{
"channel": "C1234567",
"text": "메시지",
"token": "xoxb-...", // rb8001이 DB에서 조회한 토큰
"thread_ts": "1234567890.123456"
}
배포 절차
계정 전환 (heejae → admin)
# 51124 서버에서
docker stop skill-slack # heejae 컨테이너 중단
cd /home/admin/ivada_project/skill-slack
git pull
docker compose up -d --build
docker logs skill-slack --tail=50
네트워크 모드 변경
현재: network_mode: host (docker-compose.yml 32행)
권장: bridge 모드로 변경
주요 이슈
긴급
- thread_ts 미작동: chat_postMessage 호출 시 thread_ts 미전달
- DB 접근 문제: skill-slack이 DB 접근하면 철학 위반
수정 필요
- 토큰 전달 방식: 환경변수 → API 요청 시 전달
- 네트워크: host → bridge
테스트
테스트 명령 (현재)
# 헬스체크
curl -f http://localhost:8502/health
# 메시지 전송
curl -X POST http://localhost:8502/api/v1/send \
-H "X-API-Key: {API_KEY}" \
-H "Content-Type: application/json" \
-d '{"channel": "C1234567", "text": "테스트"}'
테스트 명령 (개선 후)
# rb8001이 토큰과 함께 요청
curl -X POST http://localhost:8502/api/v1/send \
-H "X-API-Key: {API_KEY}" \
-H "Content-Type: application/json" \
-d '{"channel": "C1234567", "text": "테스트", "token": "xoxb-..."}'
체크리스트
배포 전
- heejae 컨테이너 중단
- thread_ts 버그 수정
- 임시 SLACK_BOT_TOKEN 설정
배포 후
- 헬스체크 200
- 스레드 응답 테스트
- API에 token 파라미터 추가 (향후)