#!/bin/bash # nxCode AI Gateway - Claude Code CLI 설치 스크립트 # 사용법: curl -fsSL https://gate.nexol.co.kr/install-claude-code.sh | NXCODE_USER=username bash set -e # 색상 정의 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' echo -e "${BLUE}=== Claude Code CLI 설치 ===${NC}" echo "" # 사용자 정보 확인 if [ -z "$NXCODE_USER" ]; then read -p "GitLab 사용자명을 입력하세요: " NXCODE_USER fi if [ -z "$NXCODE_USER" ]; then echo -e "${RED}오류: NXCODE_USER가 필요합니다.${NC}" exit 1 fi NXCODE_HOST=${NXCODE_HOST:-$(hostname)} echo -e "${GREEN}사용자: ${NXCODE_USER}${NC}" echo -e "${GREEN}호스트: ${NXCODE_HOST}${NC}" echo "" # OS 감지 OS="unknown" if [[ "$OSTYPE" == "linux-gnu"* ]]; then OS="linux" elif [[ "$OSTYPE" == "darwin"* ]]; then OS="macos" elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "cygwin" ]] || [[ "$OSTYPE" == "win32" ]]; then OS="windows" fi echo -e "${BLUE}OS 감지: ${OS}${NC}" # Claude Code CLI 설치 여부 확인 if command -v claude &> /dev/null; then echo -e "${GREEN}Claude Code CLI가 이미 설치되어 있습니다.${NC}" claude --version else echo -e "${YELLOW}Claude Code CLI가 설치되어 있지 않습니다.${NC}" echo "" echo "설치 방법:" echo " npm install -g @anthropic-ai/claude-code" echo "" read -p "지금 설치하시겠습니까? [y/N]: " INSTALL_NOW if [[ "$INSTALL_NOW" =~ ^[Yy]$ ]]; then if command -v npm &> /dev/null; then npm install -g @anthropic-ai/claude-code else echo -e "${RED}npm이 설치되어 있지 않습니다. Node.js를 먼저 설치하세요.${NC}" exit 1 fi else echo -e "${YELLOW}Claude Code CLI를 먼저 설치한 후 다시 실행하세요.${NC}" exit 0 fi fi # 설정 디렉토리 결정 if [ "$OS" == "windows" ]; then CONFIG_DIR="$APPDATA/claude-code" else CONFIG_DIR="$HOME/.claude" fi echo "" echo -e "${BLUE}설정 디렉토리: ${CONFIG_DIR}${NC}" mkdir -p "$CONFIG_DIR" # settings.json 파일 생성/수정 SETTINGS_FILE="$CONFIG_DIR/settings.json" echo -e "${BLUE}설정 파일 생성: ${SETTINGS_FILE}${NC}" # API 키 입력 요청 echo "" echo -e "${YELLOW}API 키가 필요합니다.${NC}" echo "관리자(roycho@nexol.co.kr)에게 API 키를 요청하세요." echo "또는 https://gate.nexol.co.kr/ui 에서 키를 생성하세요." echo "" read -p "API 키를 입력하세요 (sk-로 시작): " API_KEY if [ -z "$API_KEY" ]; then echo -e "${RED}API 키가 필요합니다.${NC}" exit 1 fi # settings.json 생성 cat > "$SETTINGS_FILE" << EOF { "apiKeyHelper": { "command": "echo '$API_KEY'" }, "env": { "ANTHROPIC_BASE_URL": "https://gate.nexol.co.kr/anthropic", "NXCODE_USER": "$NXCODE_USER", "NXCODE_HOST": "$NXCODE_HOST" }, "permissions": { "allow": [], "deny": [] } } EOF echo -e "${GREEN}설정 파일이 생성되었습니다.${NC}" # 환경 변수 설정 안내 echo "" echo -e "${BLUE}=== 환경 변수 설정 ===${NC}" SHELL_RC="" if [ -f "$HOME/.zshrc" ]; then SHELL_RC="$HOME/.zshrc" elif [ -f "$HOME/.bashrc" ]; then SHELL_RC="$HOME/.bashrc" fi if [ -n "$SHELL_RC" ]; then echo "" echo "다음 내용을 $SHELL_RC 에 추가하시겠습니까?" echo "" echo " # nxCode AI Gateway" echo " export ANTHROPIC_BASE_URL=\"https://gate.nexol.co.kr/anthropic\"" echo " export NXCODE_USER=\"$NXCODE_USER\"" echo " export NXCODE_HOST=\"$NXCODE_HOST\"" echo "" read -p "추가하시겠습니까? [y/N]: " ADD_ENV if [[ "$ADD_ENV" =~ ^[Yy]$ ]]; then echo "" >> "$SHELL_RC" echo "# nxCode AI Gateway" >> "$SHELL_RC" echo "export ANTHROPIC_BASE_URL=\"https://gate.nexol.co.kr/anthropic\"" >> "$SHELL_RC" echo "export NXCODE_USER=\"$NXCODE_USER\"" >> "$SHELL_RC" echo "export NXCODE_HOST=\"$NXCODE_HOST\"" >> "$SHELL_RC" echo -e "${GREEN}환경 변수가 추가되었습니다.${NC}" echo "변경사항을 적용하려면: source $SHELL_RC" fi fi # 연결 테스트 echo "" echo -e "${BLUE}=== 연결 테스트 ===${NC}" echo "" # 테스트 수행 export ANTHROPIC_BASE_URL="https://gate.nexol.co.kr/anthropic" echo "Gateway 연결 테스트 중..." if curl -sf "https://gate.nexol.co.kr/health" > /dev/null 2>&1; then echo -e "${GREEN}Gateway 연결: 성공${NC}" else echo -e "${YELLOW}Gateway 연결: 실패 (서버가 응답하지 않습니다)${NC}" fi echo "" echo -e "${GREEN}=== Claude Code CLI 설정 완료 ===${NC}" echo "" echo "사용 방법:" echo " cd your-project" echo " claude" echo "" echo "문제가 있으면 관리자에게 문의하세요: roycho@nexol.co.kr"