Files
Eduardo David Paredes Vara 46d7a28210 feat(n8n-observability): añadir stack de observabilidad con agente IA
Stack de scripts y plantillas para generar reportes diarios del homelab
usando n8n como orquestador y un modelo de IA como redactor:

- scripts/server-summary.sh: métricas del sistema (CPU, RAM, disco)
- scripts/log-digest.sh: resumen de logs de Traefik y contenedores
- scripts/health-results.sh: estado de servicios y checks
- scripts/codex-reauth.sh: reautenticación OAuth del proveedor Codex
- templates/ai-daily-report-prompt.md: prompt para el informe diario
- workflows/workflow-design.md: diseño del workflow de n8n
- config/services.example.json: ejemplo de configuración de servicios

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 05:48:07 +00:00

87 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
CONTAINER="${OPENCLAW_GATEWAY_CONTAINER:-openclaw-openclaw-gateway-1}"
PROVIDER="${OPENCLAW_OAUTH_PROVIDER:-openai-codex}"
MODE="login"
usage() {
cat <<'EOF'
Usage:
codex-reauth [--status] [--container NAME] [--provider ID]
Options:
--status Show current auth status only (no login flow).
--container NAME Gateway container name (default: openclaw-openclaw-gateway-1).
--provider ID OAuth provider id (default: openai-codex).
-h, --help Show this help.
EOF
}
require_container_running() {
if ! docker ps --format '{{.Names}}' | grep -qx "$CONTAINER"; then
echo "ERROR: container '$CONTAINER' is not running." >&2
echo "Hint: check with 'docker ps | grep openclaw'." >&2
exit 1
fi
}
show_status() {
docker exec "$CONTAINER" openclaw models status --status-plain \
| sed -n '/Auth overview/,$p'
}
while [[ $# -gt 0 ]]; do
case "$1" in
--status)
MODE="status"
shift
;;
--container)
[[ $# -lt 2 ]] && { echo "ERROR: --container requires a value." >&2; exit 2; }
CONTAINER="$2"
shift 2
;;
--provider)
[[ $# -lt 2 ]] && { echo "ERROR: --provider requires a value." >&2; exit 2; }
PROVIDER="$2"
shift 2
;;
-h|--help)
usage
exit 0
;;
*)
echo "ERROR: unknown argument '$1'." >&2
usage >&2
exit 2
;;
esac
done
if ! command -v docker >/dev/null 2>&1; then
echo "ERROR: docker command not found." >&2
exit 1
fi
require_container_running
if [[ "$MODE" == "status" ]]; then
show_status
exit 0
fi
if [[ ! -t 0 || ! -t 1 ]]; then
echo "ERROR: interactive terminal required for OAuth login." >&2
echo "Run this command from an interactive shell." >&2
exit 1
fi
echo "Starting OAuth re-auth for provider '$PROVIDER' on container '$CONTAINER'..."
echo "Open the URL in your local browser and paste the callback URL when prompted."
docker exec -it "$CONTAINER" openclaw models auth login --provider "$PROVIDER"
echo
echo "Re-auth completed. Current provider status:"
show_status