#!/bin/bash # Setuper script for A/D Infrastructure # Installs and configures: Packmate, moded_distructive_farm, Firegex set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SERVICES_DIR="${SERVICES_DIR:-$SCRIPT_DIR/../services}" CONTROLLER_API="${CONTROLLER_API:-http://localhost:8001}" SECRET_TOKEN="${SECRET_TOKEN:-change-me-in-production}" echo "=== A/D Infrastructure Setuper ===" echo "Services directory: $SERVICES_DIR" echo "" # Create services directory mkdir -p "$SERVICES_DIR" # Function to call controller API call_api() { local endpoint="$1" local method="${2:-GET}" local data="${3:-}" if [ "$method" = "POST" ]; then curl -s -X POST "$CONTROLLER_API$endpoint" \ -H "Authorization: Bearer $SECRET_TOKEN" \ -H "Content-Type: application/json" \ -d "$data" else curl -s "$CONTROLLER_API$endpoint" \ -H "Authorization: Bearer $SECRET_TOKEN" fi } # Function to setup Packmate setup_packmate() { echo "=== Setting up Packmate ===" local packmate_dir="$SERVICES_DIR/packmate" if [ -d "$packmate_dir" ]; then echo "Packmate directory already exists, updating..." cd "$packmate_dir" git pull git submodule update --init --recursive else echo "Cloning Packmate with submodules..." git clone --recursive https://gitlab.com/packmate/Packmate.git "$packmate_dir" cd "$packmate_dir" fi # Create necessary directories mkdir -p pcaps rsa_keys Packmate_stuff # Create .env file cat > .env < Packmate_stuff/postgresql.conf < Packmate_stuff/update_db_config.sh <<'EOF' #!/bin/bash cp /tmp/postgresql.conf /var/lib/postgresql/data/postgresql.conf EOF chmod +x Packmate_stuff/update_db_config.sh # Create docker-compose.yml cat > docker-compose.yml < .env < docker-compose.yml < .env < docker-compose.yml <