diff --git a/backend/mpc-system/deploy.sh b/backend/mpc-system/deploy.sh index 0f599a26..c2dcd57d 100755 --- a/backend/mpc-system/deploy.sh +++ b/backend/mpc-system/deploy.sh @@ -212,6 +212,55 @@ dev_commands() { echo "" ;; + start-svc) + if [ -z "$2" ]; then + log_error "Please specify a service name" + return 1 + fi + log_info "Starting $2..." + docker compose up -d "$2" + log_success "$2 started" + ;; + + stop-svc) + if [ -z "$2" ]; then + log_error "Please specify a service name" + return 1 + fi + log_info "Stopping $2..." + docker compose stop "$2" + log_success "$2 stopped" + ;; + + restart-svc) + if [ -z "$2" ]; then + log_error "Please specify a service name" + return 1 + fi + log_info "Restarting $2..." + docker compose stop "$2" + docker compose up -d "$2" + log_success "$2 restarted" + ;; + + rebuild-svc) + if [ -z "$2" ]; then + log_error "Please specify a service name" + return 1 + fi + local svc="$2" + local no_cache="$3" + log_info "Rebuilding $svc..." + if [ "$no_cache" = "--no-cache" ]; then + log_info "Building without cache..." + docker compose build --no-cache "$svc" + else + docker compose build "$svc" + fi + docker compose up -d "$svc" + log_success "$svc rebuilt and restarted" + ;; + *) return 1 ;; @@ -314,6 +363,55 @@ prod_commands() { fi ;; + start-svc) + if [ -z "$2" ]; then + log_error "Please specify a service name" + return 1 + fi + log_info "Starting $2..." + docker compose -f docker-compose.prod.yml up -d "$2" + log_success "$2 started" + ;; + + stop-svc) + if [ -z "$2" ]; then + log_error "Please specify a service name" + return 1 + fi + log_info "Stopping $2..." + docker compose -f docker-compose.prod.yml stop "$2" + log_success "$2 stopped" + ;; + + restart-svc) + if [ -z "$2" ]; then + log_error "Please specify a service name" + return 1 + fi + log_info "Restarting $2..." + docker compose -f docker-compose.prod.yml stop "$2" + docker compose -f docker-compose.prod.yml up -d "$2" + log_success "$2 restarted" + ;; + + rebuild-svc) + if [ -z "$2" ]; then + log_error "Please specify a service name" + return 1 + fi + local svc="$2" + local no_cache="$3" + log_info "Rebuilding $svc..." + if [ "$no_cache" = "--no-cache" ]; then + log_info "Building without cache..." + docker compose -f docker-compose.prod.yml build --no-cache "$svc" + else + docker compose -f docker-compose.prod.yml build "$svc" + fi + docker compose -f docker-compose.prod.yml up -d "$svc" + log_success "$svc rebuilt and restarted" + ;; + *) return 1 ;; @@ -435,39 +533,66 @@ show_help() { echo "" echo "Development Commands (default mode):" echo " $0 build Build all Docker images" + echo " $0 build-no-cache Build all images without cache" echo " $0 up|start Start all services" echo " $0 down|stop Stop all services" echo " $0 restart Restart all services" echo " $0 logs [service] Follow logs" + echo " $0 logs-tail [svc] Show last 100 lines of logs" echo " $0 status|ps Show services status" echo " $0 health Check all services health" echo " $0 clean Remove containers and volumes" + echo " $0 shell [service] Open shell in container" + echo " $0 test-api Test Account Service API" + echo "" + echo "Single Service Commands (Development):" + echo " $0 start-svc Start a specific service" + echo " $0 stop-svc Stop a specific service" + echo " $0 restart-svc Restart a specific service" + echo " $0 rebuild-svc [--no-cache] Rebuild and restart a service" echo "" echo "Production Central Commands:" echo " $0 prod build Build central services" echo " $0 prod up Start central services" echo " $0 prod down Stop central services" - echo " $0 prod logs Follow central logs" + echo " $0 prod restart Restart central services" + echo " $0 prod logs [svc] Follow central logs" + echo " $0 prod status Show central status" echo " $0 prod health Check central health" + echo " $0 prod clean Remove central containers and volumes" + echo " $0 prod start-svc Start a specific service" + echo " $0 prod stop-svc Stop a specific service" + echo " $0 prod restart-svc Restart a specific service" + echo " $0 prod rebuild-svc [--no-cache] Rebuild and restart" echo "" echo "Production Party Commands (run on each party machine):" echo " $0 party build Build party service" echo " $0 party up Start party (connects to central)" echo " $0 party down Stop party" + echo " $0 party restart Restart party" echo " $0 party logs Follow party logs" + echo " $0 party status Show party status" echo " $0 party health Check party health and connectivity" + echo " $0 party clean Remove party containers and volumes" echo "" echo "Environment Files:" echo " .env Development configuration" echo " .env.prod Production Central configuration" echo " .env.party Production Party configuration" echo "" + echo "Services (Development):" + echo " postgres, session-coordinator, message-router, account-service," + echo " server-party-api, server-party-1, server-party-2, server-party-3" + echo "" echo "Examples:" echo " # Development (all on one machine)" echo " $0 up" + echo " $0 rebuild-svc account-service --no-cache" + echo " $0 restart-svc session-coordinator" echo "" echo " # Production Central (on central server)" echo " $0 prod up" + echo " $0 prod rebuild-svc account-service" echo "" echo " # Production Party (on each party machine)" echo " PARTY_ID=server-party-1 $0 party up"