192.168.219.45 → 192.168.0.100 일괄 변경 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
6.4 KiB
6.4 KiB
하드코딩 URL 제거 작업
최초 작성: 2025-09-15
최종 수정: 2025-09-23
작성자: 51123 서버 관리자
정정 사항 (문서 vs 코드 불일치)
- ROBEING_HOST 변수명은 실제 코드에서 사용되지 않음. robeing-gateway는
ROBEING_DEFAULT_HOST/ROBEING_DEFAULT_PORT를 사용함 (2025-09-23 기준). - SLACK_CALLBACK_URL, GMAIL_CALLBACK_URL은 코드에 없음. auth-server는
SLACK_REDIRECT_URI,GOOGLE_REDIRECT_URI,GOOGLE_PASSPORT_REDIRECT_URI를 사용함. - FRONTEND_URL은 코드에서 직접 사용하지 않음. 프론트는
VITE_AUTH_SERVER_URL을 사용하고, CORS 도메인은 코드에 상수로 정의되어 있음.
발견된 하드코딩 현황
auth-server (2025-09-23 현재)
app/providers/slack.py
- Line 79, 187, 189:
http://localhost:3000✅ 여전히 존재 - Line 158, 165, 177:
http://localhost:3000/login?error=✅ 여전히 존재 - Line 94:
https://auth.ro-being.com/auth/slack/login/callback(확인 필요) - Line 203:
https://auth.ro-being.com/auth/slack/login/callback(확인 필요)
app/providers/gmail_passport.py
- Line 54:
postgresql://robeings:robeings@192.168.0.100:5432/main_db - Line 26:
https://auth.ro-being.com/auth/gmail/passport/callback
app/providers/gmail.py
- Line 23:
https://auth.ro-being.com/auth/gmail/callback
app/main.py
- Line 28-32:
http://localhost:3000,5173,5174,8000,10508
frontend-customer (2025-09-23 현재)
src/contexts/auth-context.tsx
- Line 23:
https://auth.ro-being.com(기본값) ✅ 여전히 존재 - Line 80:
https://auth.ro-being.com/auth/verify✅ 여전히 존재
src/components/skills-items-panel.tsx
- Line 361:
https://auth.ro-being.com/auth/gmail/passport - Line 432:
https://auth.ro-being.com/auth/slack/passport/install
rb8001 (2025-09-23 현재)
app/core/config.py
- Line 35-36:
postgresql://postgres:postgres@localhost✅ 기본값으로 존재 - Line 15:
LUNCH_WORLDCUP_CHANNEL_ID✅ 추가됨 (환경변수 지원)
app/commands/skill_commands.py
- 하드코딩:
localhost:8502,localhost:8505URL (확인 필요)
app/skills/email_integration.py
- Line 37:
http://192.168.0.100:9000/api/slack/mapping/{slack_id} - Line 253:
http://localhost:8001/api/llm/extract(콜백 URL) - Line 17-18:
localhost:8501,localhost:9024(기본값)
app/memory/embedding_client.py
- 임베딩 서비스 URL 하드코딩
app/core/emotion/base.py
- Line 13:
http://localhost:8015(SKILL_EMBEDDING_URL 기본값)
app/brain/state_client.py
- Line 17:
http://localhost:8507(STATE_SERVICE_URL 기본값)
robeing-gateway (2025-09-23 현재)
app/main.py
- ❌ root 엔드포인트 제거됨 (보안 개선)
- Line 205: 환경변수 사용 (
robeing_info['host'],robeing_info['port']) - Line 552:
ROBEING_DEFAULT_HOST,ROBEING_DEFAULT_PORT환경변수 사용 ✅ 개선됨 - Line 605:
ROBEING_DEFAULT_HOST,ROBEING_DEFAULT_PORT환경변수 사용 ✅ 개선됨 - 하드코딩된 IP 대부분 제거됨
app/database.py
- Line 20:
postgresql+asyncpg://postgres:postgres@localhost:5432/main_db - Line 24:
192.168.219.52(DEFAULT_ROBEING_HOST로 환경변수화됨)
robeing-monitor
app/core/config.py
- DB 및 서비스 URL 다수 하드코딩
app/api/monitor.py
rb10508_micro등 localhost URL 배열
app/api/items.py
https://auth.ro-being.com포함
docker-compose.yml
- DB 호스트
192.168.0.100
skill-email
main.py
- Monitor 기본값:
http://localhost:9024
services/api_credentials_provider.py
- Monitor URL 하드코딩
skill-slack
app/core/config.py
LLM_GATEWAY_URL,STATE_SERVICE_URL,MEMORY_SERVICE_URLlocalhost
services/slack_data_client_impl.py
rb10408,rb10409,rb10410localhost 매핑
워크플로우/배포문서
redis://localhost:6379
skill-publish
app/config.py
- Squarespace, 뉴스 URL 하드코딩
services/
- 외부 서비스 URL 하드코딩
Dockerfile/docker-compose.yml
- 헬스체크:
http://localhost:8511
frontend-base
backend/main.py, backend/admin_routes.py
- CORS 허용 도메인 및 헬스체크 대상에
http://localhost:*,http://172.17.0.1:*고정
rb10508_micro
app/api/endpoints.py
- DB 접속:
host='192.168.0.100', port=5432, user='robeings'하드코딩
skill-embedding
http_embedding_function.py / 테스트/컴포즈
- 기본 URL 및 헬스체크:
http://localhost:8515하드코딩
nginx-infra
server-nginx-default
- proxy_pass에
http://localhost:*,http://192.168.219.52:*다수 고정
실제 사용되는 환경변수 (2025-09-23 업데이트)
- VITE_AUTH_SERVER_URL (frontend-customer)
- DATABASE_URL (여러 서비스 공통)
- ROBEING_DEFAULT_HOST, ROBEING_DEFAULT_PORT (robeing-gateway) ✅ 변수명 변경됨
- MONITOR_URL (robeing-gateway)
- SLACK_REDIRECT_URI, GOOGLE_REDIRECT_URI, GOOGLE_PASSPORT_REDIRECT_URI (auth-server)
- SKILL_EMAIL_URL, SKILL_NEWS_URL, SKILL_SLACK_URL, SKILL_EMBEDDING_URL, STATE_SERVICE_URL (rb8001 및 관련 스킬)
- LUNCH_WORLDCUP_CHANNEL_ID (rb8001) ✅ 신규 추가
진행 상황 (2025-09-23)
완료된 작업
- ✅ robeing-gateway: Pydantic v2 마이그레이션 완료
- ✅ robeing-gateway: 하드코딩된 IP 대부분 환경변수로 대체
- ✅ robeing-gateway: root 엔드포인트 제거 (보안 개선)
- ✅ rb8001: LUNCH_WORLDCUP_CHANNEL_ID 환경변수 추가
미완료 항목
- ⚠️ auth-server: localhost:3000 하드코딩 여전히 존재
- ⚠️ frontend-customer: auth.ro-being.com 하드코딩 존재 (기본값)
- ⚠️ 각 skill 서비스들의 localhost URL 확인 필요
교체 가이드 (요약)
- 코드 상수에 직접 박힌 URL/IP/포트를 전부 환경변수로 치환한다. 이미 존재하는 키를 우선 사용하고, 미존재 시 새 키를 정의한다.
- robeing-gateway Stats 프록시는
MONITOR_URL만 참조하도록 통일하고(현재 304행), Slack 프록시 대상도 환경변수 또는 DB의robeing_url을 사용한다. - auth-server의 모든 리다이렉트/콜백 URL은
*_REDIRECT_URI계열 변수만 사용한다.http://localhost:3000로의 에러 리다이렉트는 state의redirect_uri또는 별도FRONTEND_ORIGIN변수로 대체한다. - CORS 허용 도메인과 헬스체크 대상은 코드 상수 대신 ENV(.env, compose, workflow)에서 주입하고 코드의 하드코딩을 제거한다.