#!/bin/bash # Manual deploy script for docker-stacks # Usage: ./deploy.sh [stack-name|all] set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO_ROOT="$(dirname "$SCRIPT_DIR")" STACKS_DIR="/var/core" deploy_stack() { local stack=$1 echo "🚀 Deploying $stack..." local src="$REPO_ROOT/stacks/$stack" local dest="$STACKS_DIR/$stack" if [ ! -d "$src" ]; then echo "❌ Stack $stack not found in $src" return 1 fi # Create destination directory mkdir -p "$dest" # Copy files cp -r "$src"/* "$dest/" # Deploy cd "$dest" docker compose pull --ignore-pull-failures 2>/dev/null || true docker compose up -d --remove-orphans echo "✅ Deployed $stack" } if [ -z "$1" ] || [ "$1" = "all" ]; then echo "Deploying all stacks..." for stack_dir in "$REPO_ROOT/stacks"/*/; do stack=$(basename "$stack_dir") deploy_stack "$stack" done else deploy_stack "$1" fi echo "" echo "🎉 Deployment complete!"