69 lines
1.9 KiB
Bash
Executable File
69 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# AMMIDS Setup Orchestrator
|
|
# Author: Cortex@Fossgate
|
|
# Src: https://git.fossgate.uk/ammids
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "${SCRIPT_DIR}/init/scripts/functions.sh"
|
|
resolve_paths
|
|
|
|
ENV_FILE="${ROOT_DIR}/.env"
|
|
|
|
log_info "=== AMMIDS Setup Orchestrator ==="
|
|
|
|
# 1. Environment Setup
|
|
if [[ -f "$ENV_FILE" ]]; then
|
|
log_warn ".env exists."
|
|
read -r -p " Overwrite and create backup? [y/N]: " confirm
|
|
if [[ "$confirm" =~ ^[Yy]$ ]]; then
|
|
mkdir -p "$BACKUP_DIR"
|
|
BACKUP_FILE="${SCRIPT_DIR}/.env.$(date +%Y%m%d_%H%M%S)"
|
|
cp "$ENV_FILE" "$BACKUP_FILE"
|
|
log_info "Backup created: $BACKUP_FILE"
|
|
"${SCRIPT_DIR}/init/scripts/set_env.sh"
|
|
else
|
|
log_info "Preserving existing .env. Skipping regeneration."
|
|
fi
|
|
else
|
|
log_info "No .env found. Running initial setup..."
|
|
"${SCRIPT_DIR}/init/scripts/set_env.sh"
|
|
fi
|
|
|
|
# 2. Load Environment & Resolve Paths
|
|
source "$ENV_FILE"
|
|
resolve_volume_path
|
|
|
|
# 3. Directory & Permission Management
|
|
if [[ ! -d "$VOLUME_PATH" ]]; then
|
|
log_info "Creating data directory: $VOLUME_PATH"
|
|
mkdir -p "$VOLUME_PATH"
|
|
fi
|
|
|
|
fix_ownership "$VOLUME_PATH"
|
|
|
|
# 4. Stack Generation
|
|
log_info "Generating compose and configurations..."
|
|
"${SCRIPT_DIR}/init/scripts/compose_gen.sh"
|
|
"${SCRIPT_DIR}/init/scripts/config_gen.sh"
|
|
"${SCRIPT_DIR}/init/scripts/config_link.sh"
|
|
|
|
# 5. Worker Generation
|
|
read -r -p "Number of worker processes? [Default: 1]: " worker_count
|
|
worker_count="${worker_count:-1}"
|
|
|
|
if ! [[ "$worker_count" =~ ^[0-9]+$ ]]; then
|
|
log_error "Invalid number. Aborting worker generation."
|
|
exit 1
|
|
fi
|
|
|
|
if [[ "$worker_count" -gt 0 ]]; then
|
|
log_info "Generating $worker_count worker(s)..."
|
|
"${SCRIPT_DIR}/init/scripts/worker_gen.sh" -c "$worker_count"
|
|
else
|
|
log_info "Skipping worker generation (count: 0)."
|
|
fi
|
|
|
|
log_info "Setup complete. Run 'docker compose up -d' to start services."
|