Files
n8n-install/scripts/update.sh
Yury Kossakovsky 448a34f959 Add installation and setup scripts for automated environment configuration
- Introduced a series of scripts to automate system preparation, Docker installation, secret generation, service execution, and final reporting.
- Implemented logging functions for better visibility during script execution.
- Ensured checks for required files and user inputs to enhance robustness.
- Added functionality for managing Docker services and generating a comprehensive installation summary.
2025-05-05 13:56:24 -06:00

76 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
set -e
# Source the utilities file
source "$(dirname "$0")/utils.sh"
# Set the compose command explicitly to use docker compose subcommand
COMPOSE_CMD="docker compose"
log_info "Using $COMPOSE_CMD as compose command"
# Navigate to the directory where this script is located
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
# Project root directory (one level up from scripts)
PROJECT_ROOT="$( cd "$SCRIPT_DIR/.." &> /dev/null && pwd )"
# Path to the 04_run_services.sh script
RUN_SERVICES_SCRIPT="$SCRIPT_DIR/04_run_services.sh"
# Compose files
MAIN_COMPOSE_FILE="$PROJECT_ROOT/docker-compose.yml"
SUPABASE_COMPOSE_FILE="$PROJECT_ROOT/supabase/docker/docker-compose.yml"
# Check if run services script exists
if [ ! -f "$RUN_SERVICES_SCRIPT" ]; then
log_error "$RUN_SERVICES_SCRIPT not found."
exit 1
fi
log_info "Starting update process..."
# Pull the latest repository changes
log_info "Pulling latest repository changes..."
# Check if git is installed
if ! command -v git &> /dev/null; then
log_warning "'git' command not found. Skipping repository update."
else
# Since script is run from root, just do git pull in current directory
git pull || { log_warning "Failed to pull latest repository changes. Continuing with update..."; }
fi
cd "$PROJECT_ROOT"
# Stop all services
log_info "Stopping all services..."
$COMPOSE_CMD down || {
log_warning "Failed to stop containers with 'docker compose down'. Continuing with update anyway...";
}
# Pull latest versions of all containers
log_info "Pulling latest versions of all containers..."
$COMPOSE_CMD pull || { log_error "Failed to pull Docker images. Check network connection and Docker Hub status."; exit 1; }
# Ask user about n8n import and modify .env file
ENV_FILE="$PROJECT_ROOT/.env"
if [ -f "$ENV_FILE" ]; then
read -p "Import n8n workflow? (y/n): " import_choice
case "$import_choice" in
[yY] | [yY][eE][sS] )
sed -i 's/^RUN_N8N_IMPORT=.*/RUN_N8N_IMPORT=true/' "$ENV_FILE" || log_error "Failed to set RUN_N8N_IMPORT in $ENV_FILE. Check permissions."
;;
* )
sed -i 's/^RUN_N8N_IMPORT=.*/RUN_N8N_IMPORT=false/' "$ENV_FILE" || log_error "Failed to set RUN_N8N_IMPORT in $ENV_FILE. Check permissions."
;;
esac
else
log_warning "$ENV_FILE not found. Cannot configure RUN_N8N_IMPORT."
fi
# Start services using the 04_run_services.sh script
log_info "Running Services..."
bash "$RUN_SERVICES_SCRIPT" || { log_error "Failed to start services. Check logs for details."; exit 1; }
log_success "Update completed successfully!"
exit 0