#!/bin/bash # One-liner installation script for A/D Infrastructure Control # Usage: curl -sSL https://raw.githubusercontent.com/YOUR-REPO/main/install.sh | bash set -e REPO_URL="https://github.com/YOUR-USERNAME/attack-defence-infr-control.git" INSTALL_DIR="$HOME/ad-infr-control" echo "===================================" echo "A/D Infrastructure Control Installer" echo "===================================" echo "" # Check requirements echo "Checking requirements..." if ! command -v docker &> /dev/null; then echo "Error: Docker is not installed" echo "Please install Docker first: https://docs.docker.com/get-docker/" exit 1 fi if ! command -v docker-compose &> /dev/null; then echo "Error: docker-compose is not installed" echo "Please install docker-compose: https://docs.docker.com/compose/install/" exit 1 fi if ! command -v git &> /dev/null; then echo "Error: git is not installed" exit 1 fi echo "✓ All requirements satisfied" echo "" # Clone or update repository if [ -d "$INSTALL_DIR" ]; then echo "Installation directory exists, updating..." cd "$INSTALL_DIR" git pull else echo "Cloning repository..." git clone "$REPO_URL" "$INSTALL_DIR" cd "$INSTALL_DIR" fi echo "" # Create .env file if it doesn't exist if [ ! -f ".env" ]; then echo "Creating .env file from template..." cp .env.example .env # Generate random secret token SECRET_TOKEN=$(openssl rand -hex 32) FLASK_SECRET=$(openssl rand -hex 32) POSTGRES_PASS=$(openssl rand -hex 16) # Update .env with generated secrets sed -i.bak "s/change_me_to_random_string/$SECRET_TOKEN/" .env sed -i.bak "s/change_me_flask_secret_key/$FLASK_SECRET/" .env sed -i.bak "s/change_me_secure_password/$POSTGRES_PASS/" .env rm .env.bak 2>/dev/null || true echo "✓ .env file created with random secrets" echo "" echo "IMPORTANT: Please edit .env file and configure:" echo " - TELEGRAM_BOT_TOKEN" echo " - TELEGRAM_CHAT_ID" echo " - OUR_TEAM_ID" echo " - SCOREBOARD_WS_URL" echo "" read -p "Press Enter to continue after editing .env (or Ctrl+C to exit)..." fi # Create services directory mkdir -p services # Build and start services echo "" echo "Building Docker images..." docker-compose build echo "" echo "Starting services..." docker-compose up -d echo "" echo "===================================" echo "Installation Complete!" echo "===================================" echo "" echo "Services are running:" echo " - Web Dashboard: http://localhost:8000" echo " - Controller API: http://localhost:8001" echo " - Scoreboard Injector: http://localhost:8002" echo " - Telegram Bot API: http://localhost:8003" echo "" echo "Default web password: admin123 (change in .env: WEB_PASSWORD)" echo "" echo "Next steps:" echo " 1. Access web dashboard at http://localhost:8000" echo " 2. Run setup script: cd $INSTALL_DIR && ./setuper/setup.sh" echo " 3. Configure your A/D services (Packmate, Farm, Firegex)" echo "" echo "View logs: docker-compose logs -f" echo "Stop services: docker-compose down" echo ""