# --- Slack --- # Bot User OAuth Token (xoxb-...). Scopes 필요: chat:write, users:read.email, im:write SLACK_BOT_TOKEN=xoxb-your-token # 기본 Slack 채널(채널 ID C... 또는 #채널명). 두 가지 용도: # 1) 수신한 모든 이벤트(push 포함)를 이 채널에 요약 브로드캐스트 # 2) 담당자 이메일을 Slack에서 못 찾았을 때 fallback # 비우면 채널 출력/ fallback 모두 안 함(담당자 DM만). DEFAULT_SLACK_CHANNEL= # 에러(slog.Error) 발생 시 알림을 보낼 모니터링 채널(선택, 예: monitor-dev). # 채널 ID(C...) 권장. 봇을 해당 채널에 초대해야 함. 비우면 에러 알림 안 보냄(로그만). MONITOR_SLACK_CHANNEL= # --- Gitea --- # Gitea webhook 설정 시 입력한 Secret. HMAC-SHA256 서명 검증에 사용. GITEA_WEBHOOK_SECRET= # 모든 Gitea 이벤트를 DEFAULT_SLACK_CHANNEL로 브로드캐스트할지 on/off (기본 off). # off면 담당자 개인 DM만 발송. on이면 DM + 채널 브로드캐스트 둘 다. GITEA_BROADCAST=off # --- Notion --- # Notion webhook subscription 검증 토큰 (서명 검증용) NOTION_VERIFICATION_TOKEN= # Notion Internal Integration Token (ntn_... / secret_...). 페이지/유저 조회에 사용. NOTION_API_TOKEN= # 담당자가 들어있는 Notion People 속성 이름 NOTION_ASSIGNEE_PROPERTY=담당자 # --- App --- # 수동 유저 매핑 저장 파일 (관리 페이지에서 편집) MAPPING_FILE=data/mappings.json # 리슨 주소 ADDR=:8000 # --- 로깅 (환경별) --- # 환경은 실행 명령어 -env 플래그로 분기: `go run . -env dev` | `-env prod` # dev → text 포맷 + debug 레벨, 콘솔(IDE)만 출력 # prod → json 포맷 + info 레벨, logs/app.log 파일로 추출 (+ stdout) # (APP_ENV는 -env 미지정 시의 fallback일 뿐. 보통 안 써도 됨) # APP_ENV=dev # 아래 셋은 비우면 환경에 따라 자동 결정됨. 명시하면 오버라이드. # LOG_LEVEL=debug # debug | info | warn | error # LOG_FORMAT=text # text | json # LOG_FILE=logs/app.log # 경로 지정 시 stdout + 날짜별 파일 동시 기록. dev에서 비우면 콘솔만, # # prod에서 비우면 자동으로 logs/app.log 사용 # # 실제 파일은 날짜별로 회전됨: logs/app-YYYY-MM-DD.log # LOG_RETENTION_DAYS=7 # 날짜별 로그 파일 보존 일수(오늘 포함). 기본 7일, 초과분 자동 삭제 # (선택) 저사양 환경에서 메모리 상한 가이드 — Go 런타임이 이 아래로 유지하려 함 # GOMEMLIMIT=200MiB