bae705aa97
- Add NFC ePassport roadmap (ICAO 9303, eIDAS) - Add TensorFlow.js edge face detection (BlazeFace) - Add structured audit logger (GDPR-compliant) - Risk scoring support Part of KYC Apple Native UX v1.1.0
131 lines
3.1 KiB
Bash
Executable File
131 lines
3.1 KiB
Bash
Executable File
#!/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 <<EOF
|
|
# Database
|
|
DB_PASSWORD=quixzoom_secure_2026
|
|
NEO4J_PASSWORD=quixzoom_neo4j_2026
|
|
|
|
# Cloudflare R2
|
|
R2_BUCKET=quixzoom-uploads
|
|
R2_ACCESS_KEY=${R2_ACCESS_KEY}
|
|
R2_SECRET_KEY=${R2_SECRET_KEY}
|
|
R2_ENDPOINT=https://<account>.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 ""
|