AssetPilot OrangePi 5 Pluse Server-First Commit
This commit is contained in:
117
asset_pilot_docker/start.sh
Executable file
117
asset_pilot_docker/start.sh
Executable file
@@ -0,0 +1,117 @@
|
||||
#!/bin/bash
|
||||
# Asset Pilot Docker 빠른 시작 스크립트
|
||||
|
||||
set -e
|
||||
|
||||
echo "🐳 Asset Pilot Docker 설치를 시작합니다..."
|
||||
echo ""
|
||||
|
||||
# 색상 정의
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
# Docker 설치 확인
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo -e "${YELLOW}⚠️ Docker가 설치되어 있지 않습니다.${NC}"
|
||||
echo ""
|
||||
echo "Docker를 설치하시겠습니까? (y/n)"
|
||||
read -r INSTALL_DOCKER
|
||||
|
||||
if [ "$INSTALL_DOCKER" = "y" ] || [ "$INSTALL_DOCKER" = "Y" ]; then
|
||||
echo -e "${BLUE}🐳 Docker 설치 중...${NC}"
|
||||
curl -fsSL https://get.docker.com -o get-docker.sh
|
||||
sudo sh get-docker.sh
|
||||
sudo usermod -aG docker $USER
|
||||
rm get-docker.sh
|
||||
echo -e "${GREEN}✓ Docker 설치 완료${NC}"
|
||||
echo ""
|
||||
echo -e "${YELLOW}⚠️ 로그아웃 후 다시 로그인하거나 다음 명령을 실행하세요:${NC}"
|
||||
echo " newgrp docker"
|
||||
echo ""
|
||||
echo "그런 다음 이 스크립트를 다시 실행하세요."
|
||||
exit 0
|
||||
else
|
||||
echo -e "${RED}❌ Docker가 필요합니다. 설치 후 다시 시도하세요.${NC}"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}✓ Docker 확인 완료${NC}"
|
||||
|
||||
# Docker Compose 확인
|
||||
if ! docker compose version &> /dev/null; then
|
||||
echo -e "${YELLOW}⚠️ Docker Compose가 설치되어 있지 않습니다.${NC}"
|
||||
echo -e "${BLUE}📦 Docker Compose 설치 중...${NC}"
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y docker-compose-plugin
|
||||
echo -e "${GREEN}✓ Docker Compose 설치 완료${NC}"
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}✓ Docker Compose 확인 완료${NC}"
|
||||
echo ""
|
||||
|
||||
# .env 파일 설정
|
||||
if [ ! -f ".env" ]; then
|
||||
echo -e "${YELLOW}🔐 데이터베이스 비밀번호를 설정하세요${NC}"
|
||||
echo -n "비밀번호 입력: "
|
||||
read -s DB_PASSWORD
|
||||
echo ""
|
||||
|
||||
cat > .env << EOF
|
||||
# PostgreSQL 데이터베이스 비밀번호
|
||||
DB_PASSWORD=${DB_PASSWORD}
|
||||
|
||||
# 선택적 설정
|
||||
# FETCH_INTERVAL=5
|
||||
# DEBUG=False
|
||||
EOF
|
||||
|
||||
chmod 600 .env
|
||||
echo -e "${GREEN}✓ .env 파일 생성 완료${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}⚠️ .env 파일이 이미 존재합니다${NC}"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}🚀 Docker 컨테이너 빌드 및 실행 중...${NC}"
|
||||
echo ""
|
||||
|
||||
# Docker 이미지 빌드 및 컨테이너 시작
|
||||
docker compose up -d --build
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}⏳ 데이터베이스 준비 대기 중...${NC}"
|
||||
sleep 10
|
||||
|
||||
# 데이터베이스 초기화
|
||||
echo ""
|
||||
echo -e "${BLUE}🔧 데이터베이스 초기화 중...${NC}"
|
||||
docker compose exec app python init_db.py
|
||||
|
||||
echo ""
|
||||
echo -e "${GREEN}✅ 설치 완료!${NC}"
|
||||
echo ""
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo -e "${GREEN}🌐 접속 정보${NC}"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
|
||||
# IP 주소 확인
|
||||
IP_ADDR=$(hostname -I | awk '{print $1}')
|
||||
echo -e "로컬: ${BLUE}http://localhost:8000${NC}"
|
||||
echo -e "네트워크: ${BLUE}http://${IP_ADDR}:8000${NC}"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
|
||||
echo ""
|
||||
echo "유용한 명령어:"
|
||||
echo " docker compose ps # 컨테이너 상태 확인"
|
||||
echo " docker compose logs -f # 로그 실시간 보기"
|
||||
echo " docker compose restart # 재시작"
|
||||
echo " docker compose down # 중지"
|
||||
echo ""
|
||||
echo "CSV 데이터 가져오기:"
|
||||
echo " docker cp user_assets.csv asset_pilot_app:/app/"
|
||||
echo " docker compose exec app python import_csv.py user_assets.csv"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user