Files
boc/quixzoom-capture-pipeline/deploy.sh
T
Bernt bae705aa97 ARCHITECTURE: NFC roadmap, edge AI, audit logging
- 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
2026-06-29 16:24:48 +00:00

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 ""