Compare commits
1 Commits
docs-and-o
...
fix/canoni
| Author | SHA1 | Date | |
|---|---|---|---|
| 2f0ae8d2d1 |
84
ops/diag/archicratie-diag.sh
Executable file
84
ops/diag/archicratie-diag.sh
Executable file
@@ -0,0 +1,84 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
CTX="${1:-/volume2/docker/archicratie-web/current}"
|
||||
EDGE_PORT="${EDGE_PORT:-18080}"
|
||||
STAGING_HOST="${STAGING_HOST:-staging.archicratie.trans-hands.synology.me}"
|
||||
LIVE_HOST="${LIVE_HOST:-archicratie.trans-hands.synology.me}"
|
||||
|
||||
BLUE_CNAME="${BLUE_CNAME:-archicratie-web-blue}"
|
||||
GREEN_CNAME="${GREEN_CNAME:-archicratie-web-green}"
|
||||
|
||||
BLUE_UPSTREAM="${BLUE_UPSTREAM:-8081}"
|
||||
GREEN_UPSTREAM="${GREEN_UPSTREAM:-8082}"
|
||||
|
||||
echo "== Archicratie diagnostic =="
|
||||
echo "CTX=$CTX"
|
||||
echo "EDGE_PORT=$EDGE_PORT"
|
||||
echo "STAGING_HOST=$STAGING_HOST"
|
||||
echo "LIVE_HOST=$LIVE_HOST"
|
||||
echo "BLUE_CNAME=$BLUE_CNAME BLUE_UPSTREAM=$BLUE_UPSTREAM"
|
||||
echo "GREEN_CNAME=$GREEN_CNAME GREEN_UPSTREAM=$GREEN_UPSTREAM"
|
||||
echo
|
||||
|
||||
echo "== 1) Containers status (docker ps) =="
|
||||
sudo docker ps --filter name=archicratie-web --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
|
||||
echo
|
||||
|
||||
echo "== 2) Port bindings (source de vérité: docker port) =="
|
||||
echo "-- $BLUE_CNAME --"
|
||||
sudo docker port "$BLUE_CNAME" 80 || true
|
||||
echo "-- $GREEN_CNAME --"
|
||||
sudo docker port "$GREEN_CNAME" 80 || true
|
||||
echo
|
||||
|
||||
echo "== 3) Canonical upstream direct (8081/8082) =="
|
||||
for p in "$BLUE_UPSTREAM" "$GREEN_UPSTREAM"; do
|
||||
echo "-- 127.0.0.1:$p --"
|
||||
curl -fsS "http://127.0.0.1:$p/" \
|
||||
| grep -oE 'rel="canonical" href="[^"]+"' \
|
||||
| head -n 1 || echo "WARN: canonical not found"
|
||||
done
|
||||
echo
|
||||
|
||||
echo "== 4) Edge routing proof (HEAD via Host header) =="
|
||||
echo "-- staging via edge --"
|
||||
curl -sSI -H "Host: $STAGING_HOST" "http://127.0.0.1:$EDGE_PORT/" \
|
||||
| grep -iE 'HTTP/|location:|x-archi-router|x-archi-route' \
|
||||
| head -n 30 || true
|
||||
echo
|
||||
|
||||
echo "-- live via edge --"
|
||||
curl -sSI -H "Host: $LIVE_HOST" "http://127.0.0.1:$EDGE_PORT/" \
|
||||
| grep -iE 'HTTP/|location:|x-archi-router|x-archi-route' \
|
||||
| head -n 30 || true
|
||||
echo
|
||||
|
||||
echo "== 5) Traefik errors last 5m (hard fail only) =="
|
||||
if sudo docker logs edge-traefik --since 5m | grep -Ei 'level=error|middleware .* does not exist|yaml' >/dev/null; then
|
||||
echo "❌ FOUND traefik errors:"
|
||||
sudo docker logs edge-traefik --since 5m | grep -Ei 'level=error|middleware .* does not exist|yaml' | tail -n 200
|
||||
exit 2
|
||||
else
|
||||
echo "✅ OK: pas d'erreur critique traefik (5m)"
|
||||
fi
|
||||
echo
|
||||
|
||||
echo "== 6) Quick expectations (soft checks) =="
|
||||
BLUE_BIND="$(sudo docker port "$BLUE_CNAME" 80 2>/dev/null || true)"
|
||||
GREEN_BIND="$(sudo docker port "$GREEN_CNAME" 80 2>/dev/null || true)"
|
||||
|
||||
if echo "$BLUE_BIND" | grep -q "127.0.0.1:$BLUE_UPSTREAM"; then
|
||||
echo "✅ BLUE binding OK: $BLUE_BIND"
|
||||
else
|
||||
echo "⚠️ BLUE binding unexpected: $BLUE_BIND"
|
||||
fi
|
||||
|
||||
if echo "$GREEN_BIND" | grep -q "127.0.0.1:$GREEN_UPSTREAM"; then
|
||||
echo "✅ GREEN binding OK: $GREEN_BIND"
|
||||
else
|
||||
echo "⚠️ GREEN binding unexpected: $GREEN_BIND"
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "✅ Diagnostic complete."
|
||||
Reference in New Issue
Block a user