수정본
This commit is contained in:
134
deploy/setup-nas.sh
Normal file
134
deploy/setup-nas.sh
Normal file
@@ -0,0 +1,134 @@
|
||||
#!/bin/bash
|
||||
# ============================================================
|
||||
# Synology DS1517 초기 설정 스크립트
|
||||
# 사용법: ssh admin@nas-ip 에서 실행
|
||||
# chmod +x setup-nas.sh && ./setup-nas.sh
|
||||
# ============================================================
|
||||
|
||||
set -e
|
||||
|
||||
DEPLOY_DIR="/volume1/docker/autostock"
|
||||
INFRA_DIR="/volume1/docker/cicd"
|
||||
BACKUP_DIR="/volume1/docker/autostock/backups"
|
||||
|
||||
echo "============================================"
|
||||
echo " Auto-Stock NAS 배포 환경 초기 설정"
|
||||
echo " NAS: Synology DS1517 (16GB)"
|
||||
echo "============================================"
|
||||
|
||||
# 1. 디렉토리 생성
|
||||
echo "[1/6] 디렉토리 생성..."
|
||||
sudo mkdir -p ${DEPLOY_DIR}
|
||||
sudo mkdir -p ${INFRA_DIR}
|
||||
sudo mkdir -p ${BACKUP_DIR}
|
||||
sudo mkdir -p ${DEPLOY_DIR}/logs
|
||||
|
||||
# 2. CI/CD 인프라 시작 (Gitea + Jenkins)
|
||||
echo "[2/6] CI/CD 인프라 시작..."
|
||||
if [ -f "${INFRA_DIR}/docker-compose.infra.yml" ]; then
|
||||
cd ${INFRA_DIR}
|
||||
docker compose -f docker-compose.infra.yml up -d
|
||||
else
|
||||
echo " >> docker-compose.infra.yml을 ${INFRA_DIR}에 복사하세요"
|
||||
echo " >> 그 후 다시 실행하거나: cd ${INFRA_DIR} && docker compose -f docker-compose.infra.yml up -d"
|
||||
fi
|
||||
|
||||
# 3. Jenkins Docker 소켓 권한
|
||||
echo "[3/6] Docker 소켓 권한 설정..."
|
||||
sudo chmod 666 /var/run/docker.sock 2>/dev/null || true
|
||||
|
||||
# 4. .env 템플릿 생성
|
||||
echo "[4/6] .env 템플릿 생성..."
|
||||
if [ ! -f "${DEPLOY_DIR}/.env" ]; then
|
||||
cat > ${DEPLOY_DIR}/.env << 'ENVEOF'
|
||||
# ============================================================
|
||||
# Auto-Stock 프로덕션 환경변수 (NAS)
|
||||
# 이 파일은 Git에 커밋하지 마세요!
|
||||
# ============================================================
|
||||
|
||||
# === Database ===
|
||||
POSTGRES_USER=autostock
|
||||
POSTGRES_PASSWORD=CHANGE_ME_STRONG_PASSWORD
|
||||
POSTGRES_DB=autostock
|
||||
DATABASE_URL=postgresql+asyncpg://autostock:CHANGE_ME_STRONG_PASSWORD@postgres:5432/autostock
|
||||
|
||||
# === Redis ===
|
||||
REDIS_PASSWORD=CHANGE_ME_REDIS_PASSWORD
|
||||
REDIS_URL=redis://:CHANGE_ME_REDIS_PASSWORD@redis:6379/0
|
||||
|
||||
# === RabbitMQ ===
|
||||
RABBITMQ_DEFAULT_USER=autostock
|
||||
RABBITMQ_DEFAULT_PASS=CHANGE_ME_RABBITMQ_PASSWORD
|
||||
RABBITMQ_URL=amqp://autostock:CHANGE_ME_RABBITMQ_PASSWORD@rabbitmq:5672/
|
||||
|
||||
# === AI Provider (claude + hybrid haiku/sonnet) ===
|
||||
AI_PROVIDER=claude
|
||||
HYBRID_AI_ENABLED=true
|
||||
ANTHROPIC_API_KEY=sk-ant-xxx
|
||||
CLAUDE_MODEL=claude-sonnet-4-6-20250514
|
||||
CLAUDE_HAIKU_MODEL=claude-haiku-4-5-20251001
|
||||
GEMINI_API_KEY=
|
||||
GEMINI_MODEL=gemini-2.0-flash
|
||||
|
||||
# === KIS API (virtual/real 전환: KIS_MODE만 변경) ===
|
||||
KIS_MODE=virtual
|
||||
KIS_VIRTUAL_APP_KEY=
|
||||
KIS_VIRTUAL_APP_SECRET=
|
||||
KIS_VIRTUAL_ACCOUNT_NO=
|
||||
KIS_VIRTUAL_URL=https://openapivts.koreainvestment.com:29443
|
||||
KIS_REAL_APP_KEY=
|
||||
KIS_REAL_APP_SECRET=
|
||||
KIS_REAL_ACCOUNT_NO=
|
||||
KIS_REAL_URL=https://openapi.koreainvestment.com:9443
|
||||
|
||||
# === Server ===
|
||||
BACKEND_HOST=0.0.0.0
|
||||
BACKEND_PORT=8000
|
||||
MCP_SERVER_HOST=0.0.0.0
|
||||
MCP_SERVER_PORT=8001
|
||||
SECRET_KEY=CHANGE_ME_64_CHARS_RANDOM_STRING
|
||||
API_KEY=CHANGE_ME_API_KEY
|
||||
MCP_API_KEY=CHANGE_ME_MCP_API_KEY
|
||||
|
||||
# === Frontend ===
|
||||
VITE_API_URL=https://your-domain.com/api
|
||||
VITE_WS_URL=wss://your-domain.com/ws
|
||||
|
||||
# === Features ===
|
||||
AUTO_TRADE_ENABLED=true
|
||||
DAY_TRADE_ENABLED=true
|
||||
US_TRADING_ENABLED=false
|
||||
KIS_WS_ENABLED=true
|
||||
TOKEN_SAVE_MODE=true
|
||||
LOG_LEVEL=INFO
|
||||
DEBUG=false
|
||||
|
||||
# === Telegram ===
|
||||
TELEGRAM_BOT_TOKEN=
|
||||
TELEGRAM_CHAT_ID=
|
||||
ENVEOF
|
||||
echo " >> ${DEPLOY_DIR}/.env 생성 완료 — 반드시 비밀번호를 변경하세요!"
|
||||
else
|
||||
echo " >> .env 이미 존재 — 스킵"
|
||||
fi
|
||||
|
||||
# 5. Synology 방화벽 포트 안내
|
||||
echo "[5/6] 필요한 포트 (Synology 제어판 → 방화벽):"
|
||||
echo " - 3001: Gitea (Git 웹 UI)"
|
||||
echo " - 8080: Jenkins (CI/CD 웹 UI)"
|
||||
echo " - 3000: Frontend (Nginx → 역방향 프록시 권장)"
|
||||
echo " - 8000: Backend API (내부 전용)"
|
||||
echo " - 8001: MCP Server (내부 전용)"
|
||||
|
||||
# 6. 완료
|
||||
echo "[6/6] 설정 완료!"
|
||||
echo ""
|
||||
echo "다음 단계:"
|
||||
echo " 1. ${DEPLOY_DIR}/.env 비밀번호 변경"
|
||||
echo " 2. Gitea 접속: http://nas-ip:3001 → 저장소 생성"
|
||||
echo " 3. Jenkins 접속: http://nas-ip:8080 → 파이프라인 설정"
|
||||
echo " 4. Gitea에 push → Jenkins 자동 빌드/배포"
|
||||
echo ""
|
||||
echo "첫 수동 배포:"
|
||||
echo " cd ${DEPLOY_DIR}"
|
||||
echo " docker compose --env-file .env up -d"
|
||||
Reference in New Issue
Block a user