#!/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 (Redis for caching, Traefik for routing) # VI: Khởi động infrastructure services (Redis cho caching, Traefik cho routing) echo "📦 Starting infrastructure (Redis, Traefik)... / Khởi động infrastructure (Redis, Traefik)..." cd deployments/local run_compose up -d cd ../.. # EN: Give Redis time to fully start before starting services # VI: Cho Redis thời gian để khởi động đầy đủ trước khi khởi động services echo "⏳ Waiting for Redis to be ready... / Đang chờ Redis sẵn sàng..." sleep 3 # EN: Start all microservices using pnpm dev # VI: Khởi động tất cả microservices sử dụng pnpm dev echo "🚀 Starting services... / Khởi động services..." pnpm dev