#!/bin/bash # Deploy external services on production server # Usage: ./scripts/deploy-external.sh set -e SERVICE=$1 if [ -z "$SERVICE" ]; then echo "Usage: $0 " echo "" echo "Available services:" echo " traefik" echo " authentik" echo " gitea" echo " nextcloud" echo " portainer" echo " all" exit 1 fi SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" COMPOSE_DIR="$PROJECT_ROOT/infra/compose" deploy_service() { local svc=$1 echo "🚀 Deploying $svc..." if [ ! -d "$COMPOSE_DIR/$svc" ]; then echo "❌ Service directory not found: $COMPOSE_DIR/$svc" return 1 fi cd "$COMPOSE_DIR/$svc" docker compose up -d echo "✅ $svc deployed" } if [ "$SERVICE" = "all" ]; then deploy_service "traefik" sleep 5 deploy_service "authentik" sleep 5 deploy_service "gitea" deploy_service "nextcloud" deploy_service "portainer" else deploy_service "$SERVICE" fi echo "" echo "🎉 Deployment complete!"