- Express.js 기반 백엔드 API 서버 - MariaDB, Redis, phpMyAdmin Docker 환경 - Device 관리 기본 CRUD 구현 - Mac Mini M4 Pro 전용 설정 및 배포 스크립트 - 자동화된 설치 및 배포 시스템 - 완전한 문서화 및 실행 가이드
99 lines
2.9 KiB
Bash
99 lines
2.9 KiB
Bash
#!/bin/bash
|
|
|
|
# Mac Mini 홈 관리 시스템 설정 스크립트
|
|
|
|
echo "🏠 Mac Mini 홈 관리 시스템 설정을 시작합니다..."
|
|
|
|
# 필요한 디렉토리 생성
|
|
echo "📁 데이터 디렉토리 생성 중..."
|
|
mkdir -p /Users/hyungi/home-management-db
|
|
mkdir -p /Users/hyungi/home-management-redis
|
|
mkdir -p /Users/hyungi/home-management-data
|
|
mkdir -p ./logs
|
|
mkdir -p ./uploads
|
|
|
|
# 권한 설정
|
|
echo "🔐 권한 설정 중..."
|
|
chmod 755 /Users/hyungi/home-management-db
|
|
chmod 755 /Users/hyungi/home-management-redis
|
|
chmod 755 /Users/hyungi/home-management-data
|
|
chmod 755 ./logs
|
|
chmod 755 ./uploads
|
|
|
|
# Docker 이미지 빌드
|
|
echo "🐳 Docker 이미지 빌드 중..."
|
|
docker-compose -f docker-compose.mac-mini.yml build
|
|
|
|
# 기존 컨테이너 정리
|
|
echo "🧹 기존 컨테이너 정리 중..."
|
|
docker-compose -f docker-compose.mac-mini.yml down -v
|
|
|
|
# 데이터베이스와 Redis 먼저 시작
|
|
echo "🗄️ 데이터베이스 서비스 시작 중..."
|
|
docker-compose -f docker-compose.mac-mini.yml up -d mariadb redis
|
|
|
|
# 데이터베이스 초기화 대기
|
|
echo "⏳ 데이터베이스 초기화 대기 중 (60초)..."
|
|
sleep 60
|
|
|
|
# 데이터베이스 연결 테스트
|
|
echo "🔍 데이터베이스 연결 테스트 중..."
|
|
until docker exec home_mariadb mysql -u homeuser -pmac_mini_home_password -e "SELECT 1" > /dev/null 2>&1; do
|
|
echo "데이터베이스 연결 대기 중..."
|
|
sleep 5
|
|
done
|
|
|
|
echo "✅ 데이터베이스 연결 성공!"
|
|
|
|
# phpMyAdmin 시작
|
|
echo "🌐 phpMyAdmin 시작 중..."
|
|
docker-compose -f docker-compose.mac-mini.yml up -d phpmyadmin
|
|
|
|
# API 서버 시작
|
|
echo "🚀 API 서버 시작 중..."
|
|
docker-compose -f docker-compose.mac-mini.yml up -d api
|
|
|
|
# 서비스 상태 확인
|
|
echo "📊 서비스 상태 확인 중..."
|
|
sleep 10
|
|
|
|
# 헬스체크
|
|
echo "🏥 헬스체크 수행 중..."
|
|
for i in {1..30}; do
|
|
if curl -f http://localhost:3000/health > /dev/null 2>&1; then
|
|
echo "✅ API 서버가 정상적으로 시작되었습니다!"
|
|
break
|
|
fi
|
|
echo "API 서버 시작 대기 중... ($i/30)"
|
|
sleep 2
|
|
done
|
|
|
|
# 컨테이너 상태 출력
|
|
echo "📋 컨테이너 상태:"
|
|
docker-compose -f docker-compose.mac-mini.yml ps
|
|
|
|
# 접속 정보 출력
|
|
echo ""
|
|
echo "🎉 Mac Mini 홈 관리 시스템 설정 완료!"
|
|
echo ""
|
|
echo "📊 접속 정보:"
|
|
echo "- API 서버: http://localhost:3000"
|
|
echo "- API 문서: http://localhost:3000/api"
|
|
echo "- phpMyAdmin: http://localhost:8080"
|
|
echo " - 사용자: homeuser"
|
|
echo " - 비밀번호: mac_mini_home_password"
|
|
echo ""
|
|
echo "🔍 테스트 명령어:"
|
|
echo "curl http://localhost:3000/health"
|
|
echo "curl http://localhost:3000/api/devices"
|
|
echo ""
|
|
echo "📝 로그 확인:"
|
|
echo "docker-compose -f docker-compose.mac-mini.yml logs -f api"
|
|
echo ""
|
|
|
|
# 네트워크 정보 확인
|
|
echo "🌐 네트워크 정보:"
|
|
ifconfig | grep "inet " | grep -v 127.0.0.1 | awk '{print "- " $2}'
|
|
echo ""
|
|
echo "💡 다른 기기에서 접속하려면 위 IP 주소를 사용하세요."
|
|
echo "예: http://[IP]:3000" |