배경

로컬에서 Kiro Crew를 돌리면 머신이 꺼졌을 때 Slack 연동이 끊김. 항상 켜져 있는 VM에 올려두는 게 맞다고 판단해서 Oracle Cloud VM으로 이전함.


1. 설치

1
curl -fsSL https://download.crew.kiro.dev/cli.sh | sh
  • 설치 경로: ~/.kiro/crew-venv/ (Python 3.12 venv)
  • CLI 경로: ~/.local/bin/kirocrew

2. 초기 세팅

1
kirocrew setup
  • agent config 생성: ~/.kiro/agents/kirocrew.json
  • timezone: Asia/Seoul

3. 포트 충돌

기본 포트 5476이 이미 사용 중인 경우가 있음.

1
2
3
kirocrew gateway --port 5477
# 또는
kirocrew gateway  # 자동 처리

kirocrew doctor가 exit 1을 반환하는 경우 &&로 연결하지 말고 따로 실행할 것.


4. Slack 연동

앱 생성

https://api.slack.com/appsFrom a manifest으로 생성. Socket Mode 활성화 — inbound 포트 불필요, outbound WebSocket만 사용.

필요한 토큰 2개

토큰위치
Bot Token (xoxb-...)OAuth & Permissions → Bot User OAuth Token
App Token (xapp-...)Basic Information → App-Level Tokens (connections:write scope)

삽질 포인트

  • ~/.kiro/crew/.envKIROCREW_OWNER_ID가 잘못된 값으로 저장돼 있는 경우 직접 수정 필요
  • config.jsonslack.enabled: true는 실제로 아무 효과 없음 — 토큰 유무로만 동작 판단
  • Slack 앱에 app_mention bot event 등록 안 하면 멘션 무시됨
  • Slash Command /kiro도 앱에 별도 등록 필요

최종 설정

~/.kiro/crew/.env:

SLACK_APP_TOKEN=xapp-...
SLACK_BOT_TOKEN=xoxb-...
KIROCREW_OWNER_ID=U0BB9MXFJVD

~/.kiro/crew/config.json slack 섹션:

1
2
3
4
5
"slack": {
  "enabled": true,
  "command": "kiro",
  "owner_id": "U0BB9MXFJVD"
}

5. Slack 앱 설정 체크리스트

  • Socket Mode 활성화
  • App-Level Token 발급 (connections:write)
  • Bot Token Scopes: chat:write, im:history, im:read, im:write, channels:history, channels:read
  • Event Subscriptions → Bot Events: message.im, message.channels, app_mention
  • Slash Commands: /kiro 등록
  • App Home → Messages Tab 활성화
  • Reinstall to Workspace

6. 대시보드 접속

VM 포트를 직접 열지 않고 SSH 터널로 접근.

1
2
3
4
5
# 로컬 머신에서
ssh -NL 5477:localhost:5476 -i ssh-key-2026-07-13.key ubuntu@100.117.197.104

# VM에서 토큰 발급
kirocrew token

브라우저: http://localhost:5477?token=...


7. 백그라운드 서비스 등록

1
2
kirocrew service install
loginctl enable-linger ubuntu  # 로그아웃해도 서비스 유지

Doctor 경고 (무시해도 되는 것들)

항목내용영향
sandboxOracle Cloud 환경 제약 (user namespaces 불가)없음
Node.js대시보드 프론트엔드용대시보드 일부 기능 제한
ffmpeg / voice음성 기능음성 안 쓰면 무관
swap메모리 압박 시 freeze 위험필요시 swap 추가

정리

  • VM에 올리면 머신 종료와 무관하게 Slack 연동이 유지됨
  • slack.enabled 설정은 의미 없고, .env에 토큰 두 개만 있으면 됨
  • app_mention event와 Slash Command 등록은 빠뜨리기 쉬운 포인트
  • loginctl enable-linger까지 해야 로그아웃 후에도 서비스가 살아있음