Files
apix-mvp/scripts/deploy-all.ps1
T
Carsten Rehfeld 82f0ac6007
Deploy to Production / deploy (push) Failing after 10s
ops: add CI/CD pipeline, a/b rolling deploy, Gitea Actions workflow
- .gitea/workflows/deploy.yml — push-to-main triggers rolling deploy
- scripts/deploy-bluegreen.sh — a-stack then b-stack restart; Maven runs
  in Docker (no JDK needed on runner host); Caddy reload at end
- scripts/deploy-all.ps1 — emergency manual deploy from dev machine
- infra/docker-compose.yml — a/b pairs per service; wget health checks;
  Gitea service; Prometheus/Grafana/DB ports restricted to localhost
- infra/Caddyfile — dual upstreams with health-based routing
- infra/Dockerfile.* — one per service
- infra/prometheus.yml + grafana provisioning

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 14:01:12 +02:00

61 lines
2.9 KiB
PowerShell

$ErrorActionPreference = "Stop"
$VPS = "deploy@204.168.156.179"
$MVN = "C:\Users\Anwender\IdeaProjects\Claude\bot-service-index\apix-mvp"
Set-Location $MVN
Write-Host "Copying web content into portal..."
Copy-Item "$MVN\..\web\api-index.org\index.html" `
"$MVN\apix-portal\src\main\resources\META-INF\resources\index.html" -Force
Write-Host "Building all modules..."
mvn clean package -DskipTests -q
Write-Host "Transferring infra config..."
scp "$MVN\infra\Caddyfile" "${VPS}:/opt/apix/infra/Caddyfile"
scp "$MVN\infra\docker-compose.yml" "${VPS}:/opt/apix/infra/docker-compose.yml"
scp "$MVN\infra\Dockerfile.registry" "${VPS}:/opt/apix/infra/Dockerfile.registry"
scp "$MVN\infra\Dockerfile.portal" "${VPS}:/opt/apix/infra/Dockerfile.portal"
scp "$MVN\infra\Dockerfile.spider" "${VPS}:/opt/apix/infra/Dockerfile.spider"
scp "$MVN\infra\Dockerfile.demo" "${VPS}:/opt/apix/infra/Dockerfile.demo"
Write-Host "Transferring registry..."
scp "$MVN\apix-registry\target\quarkus-app\app\apix-registry-1.0-SNAPSHOT.jar" `
"${VPS}:/opt/apix/apix-registry/target/quarkus-app/app/apix-registry-1.0-SNAPSHOT.jar"
scp "$MVN\apix-registry\target\quarkus-app\quarkus\quarkus-application.dat" `
"${VPS}:/opt/apix/apix-registry/target/quarkus-app/quarkus/quarkus-application.dat"
Write-Host "Transferring portal..."
scp "$MVN\apix-portal\target\quarkus-app\app\apix-portal-1.0-SNAPSHOT.jar" `
"${VPS}:/opt/apix/apix-portal/target/quarkus-app/app/apix-portal-1.0-SNAPSHOT.jar"
scp "$MVN\apix-portal\target\quarkus-app\quarkus\quarkus-application.dat" `
"${VPS}:/opt/apix/apix-portal/target/quarkus-app/quarkus/quarkus-application.dat"
# Spider + Demo are small — full copy every time so lib/ is always current
Write-Host "Transferring spider (full copy)..."
ssh $VPS "mkdir -p /opt/apix/apix-spider/target"
scp -r "$MVN\apix-spider\target\quarkus-app" `
"${VPS}:/opt/apix/apix-spider/target/quarkus-app"
Write-Host "Transferring demo (full copy)..."
ssh $VPS "mkdir -p /opt/apix/apix-demo/target"
scp -r "$MVN\apix-demo\target\quarkus-app" `
"${VPS}:/opt/apix/apix-demo/target/quarkus-app"
Write-Host "Rebuilding images and restarting stack..."
ssh $VPS @"
cd /opt/apix && \
docker build -f infra/Dockerfile.registry -t apix-registry:latest . -q && \
docker build -f infra/Dockerfile.portal -t apix-portal:latest . -q && \
docker build -f infra/Dockerfile.spider -t apix-spider:latest . -q && \
docker build -f infra/Dockerfile.demo -t apix-demo:latest . -q && \
docker compose -f infra/docker-compose.yml --env-file .env up -d registry portal spider demo && \
docker exec infra-caddy-1 caddy reload --config /etc/caddy/Caddyfile
"@
Write-Host "Done."
Write-Host " Registry: https://api-index.org/"
Write-Host " Portal: https://www.api-index.org/"
Write-Host " Demo: https://demo.api-index.org/"
Write-Host " Spider: internal (no public port)"