#!/bin/bash # QUIXZOOM Deploy Script # Deployar hela stacken till AWS EC2 set -e echo "=== QUIXZOOM DEPLOY ===" echo "" # Konfiguration SERVER_IP=$(curl -s http://169.254.169.254/latest/meta-data/public-ipv4) SERVER_HOST="bernt.wavult.com" echo "Server: $SERVER_HOST ($SERVER_IP)" echo "" # 1. Kontrollera Docker echo "1. Kontrollerar Docker..." if ! command -v docker &> /dev/null; then echo " Installerar Docker..." sudo yum update -y sudo yum install -y docker sudo systemctl start docker sudo systemctl enable docker sudo usermod -aG docker $USER fi if ! command -v docker-compose &> /dev/null; then echo " Installerar Docker Compose..." sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose fi echo " ✅ Docker OK" echo "" # 2. Skapa miljövariabler echo "2. Skapar miljövariabler..." cat > .env <.r2.cloudflarestorage.com # JWT JWT_SECRET=quixzoom_jwt_secret_2026_change_in_production # Server NODE_ENV=production PORT=3000 EOF echo " ✅ .env skapad" echo "" # 3. Bygg och starta echo "3. Bygger och startar containers..." sudo docker-compose down 2>/dev/null || true sudo docker-compose build --no-cache sudo docker-compose up -d echo " ✅ Containers startade" echo "" # 4. Vänta på hälsa echo "4. Väntar på att tjänster ska bli hälsosamma..." sleep 30 # Kontrollera PostgreSQL if sudo docker-compose exec -T postgres pg_isready -U quixzoom > /dev/null 2>&1; then echo " ✅ PostgreSQL OK" else echo " ❌ PostgreSQL inte redo" fi # Kontrollera Neo4j if curl -s http://localhost:7474 > /dev/null 2>&1; then echo " ✅ Neo4j OK" else echo " ❌ Neo4j inte redo" fi # Kontrollera Redis if sudo docker-compose exec -T redis redis-cli ping > /dev/null 2>&1; then echo " ✅ Redis OK" else echo " ❌ Redis inte redo" fi # Kontrollera API if curl -s http://localhost:3000/health > /dev/null 2>&1; then echo " ✅ API OK" else echo " ❌ API inte redo" fi echo "" # 5. Initiera databaser echo "5. Initierar databaser..." sudo docker-compose exec -T postgres psql -U quixzoom -d quixzoom -f /docker-entrypoint-initdb.d/01-schema.sql > /dev/null 2>&1 || true echo " ✅ Databaser initierade" echo "" # 6. Visa status echo "=== DEPLOY KOMPLETT ===" echo "" echo "Tjänster:" echo " PostgreSQL: localhost:5432" echo " Neo4j: localhost:7474 (http) / 7687 (bolt)" echo " Redis: localhost:6379" echo " API: localhost:3000" echo " WebSocket: localhost:8080" echo " Nginx: localhost:80" echo "" echo "Kommandon:" echo " Loggar: sudo docker-compose logs -f" echo " Status: sudo docker-compose ps" echo " Stoppa: sudo docker-compose down" echo " Omstart: sudo docker-compose restart" echo "" echo "Dashboard:" echo " http://$SERVER_HOST:3000/health" echo ""