Files
pos-system/microservices/scripts/dev/start-all.sh
Ho Ngoc Hai 76d75c753b Migrate
2026-05-23 18:37:02 +07:00

60 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# EN: Script to start all services in development environment
# VI: Script để khởi động tất cả services trong môi trường development
set -e
# Source OS helper for cross-platform commands
source "$(dirname "$0")/../utils/os-helper.sh"
echo "🚀 Starting all services... / Khởi động tất cả services..."
# EN: Verify Docker daemon is running
# VI: Xác minh Docker daemon đang chạy
if ! docker info &> /dev/null; then
echo "❌ Docker is not running. Please start Docker first. / Docker không chạy. Vui lòng khởi động Docker trước."
exit 1
fi
# EN: Load environment variables from shared config
# VI: Load biến môi trường từ shared config
if [ -f "deployments/local/.env.local" ]; then
export $(grep -v '^#' deployments/local/.env.local | xargs)
fi
# EN: Check if DATABASE_URL is configured (required for services)
# VI: Kiểm tra DATABASE_URL có được cấu hình không (bắt buộc cho services)
if [ -z "$DATABASE_URL" ]; then
echo "⚠️ WARNING: DATABASE_URL not set! / CẢNH BÁO: DATABASE_URL chưa được thiết lập!"
echo " Please setup Neon database: ./scripts/db/setup-neon.sh"
echo " Or set DATABASE_URL in deployments/local/.env.local"
echo " / Vui lòng thiết lập Neon database: ./scripts/db/setup-neon.sh"
echo " Hoặc đặt DATABASE_URL trong deployments/local/.env.local"
echo ""
read -p "Continue anyway? (y/n): / Tiếp tục? (y/n): " continue
if [ "$continue" != "y" ]; then
exit 1
fi
fi
# EN: Start infrastructure services and .NET backends
# VI: Khởi động infrastructure services và .NET backends
echo "📦 Starting Docker containers (Infra + .NET Services)..."
cd deployments/local
run_compose up -d
cd ../..
# EN: Give Redis time to fully start
# VI: Cho Redis thời gian để khởi động đầy đủ
echo "⏳ Waiting for services to stabilize..."
sleep 5
# EN: Start Node.js apps/services using pnpm dev
# VI: Khởi động Node.js apps/services sử dụng pnpm dev
echo "🚀 Starting Node.js apps (Frontend/BFF)..."
if command -v pnpm &> /dev/null; then
pnpm dev
else
echo "⚠️ pnpm not found. Only Docker services are running."
fi