Compare commits
1 Commits
docs/local
...
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