#!/bin/bash # fbgate-probe.sh — R-1126 live proof, inside scratch guest 9202. Through TRAEFIK (what the tunnel reaches), with the # Host header of files.: the page's status, and the DEFAULT login's status (FileBrowser's public default; on # stdin). Status codes only. Usage: fbgate-probe.sh [recreate] set -u H="Host: files.enkisfelhom.hu"; T=https://127.0.0.1 page() { curl -sk -o /dev/null -w '%{http_code}' --max-time 3 -H "$H" $T/; } dflt() { printf 'X-Password: admin\n' | curl -sk -o /dev/null -w '%{http_code}' --max-time 3 -X POST -H @- -H "$H" "$T/api/auth/login?username=admin"; } nets() { docker inspect -f '{{range $k,$_ := .NetworkSettings.Networks}}{{$k}} {{end}}' filebrowser 2>/dev/null; } if [ "${2:-}" = recreate ]; then docker stop filebrowser >/dev/null && docker rm filebrowser >/dev/null && docker volume rm filebrowser_filebrowser_data >/dev/null && echo "removed filebrowser + its data volume at $(date -u +%T)" fi last=""; end=$(( $(date +%s) + $1 )); n=0; d200=0 while [ $(date +%s) -lt $end ]; do p=$(page); d=$(dflt); [ "$d" = 200 ] && d200=$((d200+1)); n=$((n+1)) cur="page=$p default-login=$d nets=[$(nets)]" [ "$cur" != "$last" ] && echo "$(date -u +%T) $cur" && last=$cur sleep 2 done echo "probes: $n, default login answered 200: $d200 times"