acaa9fc3f2
Bisher musste Stefan bei OAuth-Flows manuell den Auth-Code aus der Browser-URL kopieren (redirect_uri war localhost). Jetzt: RVS hat einen HTTP-Listener auf demselben Port wie der WebSocket, Provider redirecten nach Auth zu https://{RVS_HOST}/oauth/callback/{service}, RVS broadcastet, aria-bridge forwarded, Brain matched state + tauscht code gegen Token. Token-Refresh laeuft automatisch. - rvs/server.js: hybrid http.createServer + WebSocketServer{noServer}. Route GET /oauth/callback/{service}, broadcast oauth_callback an alle Raeume, schoene Dark-Mode-HTML-Antwort an den Browser (Auto-Close 4s). - bridge/aria_bridge.py: empfaengt oauth_callback, POSTet an Brain /internal/oauth-callback. - aria-brain/oauth.py: neuer Manager. Pending-Store mit state+TTL, Token-Exchange (Basic-Auth oder Body je nach Provider), persistente Speicherung in /shared/config/oauth_tokens.json (mode 0600), Token-Refresh wenn <60s Restzeit. Vordefinierte Configs fuer Spotify, Google, GitHub, Strava, Microsoft. - aria-brain/agent.py: META-Tools oauth_authorize / oauth_get_token / oauth_revoke. - aria-brain/prompts.py: System-Prompt-Block zeigt ARIA die feste Callback-URL als Quelle der Wahrheit + aktuelle Service-States. - aria-brain/main.py: HTTP-Endpoints /oauth/services, /oauth/apps, /oauth/authorize, /oauth/{service}/revoke, /internal/oauth-callback. - diagnostic: neue Section "OAuth-Apps". Pro Service Karte mit Status, client_id + client_secret (Passwort-Toggle), Speichern + Autorisieren- Buttons. Authorize oeffnet Provider-Auth in neuem Tab. - docker-compose.yml: brain-env um RVS_HOST + RVS_PORT_PUBLIC + RVS_TLS ergaenzt (Brain braucht die Werte zum Bau der Callback-URL). - .env.example: RVS_PORT_PUBLIC + Brain-Timeout-Vars (PROXY_TIMEOUT_SEC + Connect/Write/Pool) dokumentiert. - README.md: OAuth-Pipeline + ARIA-Live-Mirror in Diagnostic-Section, OAuth-Apps in Einstellungen-Tab erwaehnt. - issue.md: OAuth-Pipeline + Brain-Timeout-Fix als erledigt dokumentiert. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
76 lines
3.9 KiB
Bash
76 lines
3.9 KiB
Bash
# ════════════════════════════════════════════════
|
|
# ARIA — Umgebungsvariablen
|
|
# Kopieren nach .env und Werte eintragen
|
|
# ════════════════════════════════════════════════
|
|
|
|
# ── ARIA Auth Token ──────────────────────────────
|
|
# Authentifizierung fuer den OpenClaw Gateway (aria-core).
|
|
# Wird von Diagnostic, Bridge und App genutzt um sich am Gateway anzumelden.
|
|
# Alle Services die mit aria-core kommunizieren brauchen diesen Token.
|
|
# Generieren: openssl rand -hex 32
|
|
ARIA_AUTH_TOKEN=change-me-to-a-long-random-string
|
|
|
|
# ── RVS — Rendezvous-Server ─────────────────────
|
|
# Der RVS ist ein WebSocket-Relay im Rechenzentrum.
|
|
# App, Bridge, Diagnostic und XTTS-Bridge verbinden sich hierueber.
|
|
# Alle muessen den gleichen Host, Port und Token nutzen.
|
|
|
|
# Hostname des RVS-Servers (z.B. rvs.example.de oder mobil.hacker-net.de)
|
|
# WICHTIG: muss oeffentlich aufloesbar sein (DNS), nicht nur intern.
|
|
# Wird auch fuer OAuth-Callback-URLs verwendet — Spotify/Google/etc.
|
|
# redirecten Stefan im Browser an https://{RVS_HOST}/oauth/callback/{service}.
|
|
RVS_HOST=rvs.example.de
|
|
|
|
# Port auf dem der RVS laeuft (muss mit rvs/docker-compose.yml uebereinstimmen)
|
|
RVS_PORT=443
|
|
|
|
# Oeffentlich erreichbarer TLS-Port — was Browser/Provider von aussen sehen.
|
|
# Meist identisch mit RVS_PORT, kann aber abweichen wenn ein TLS-Terminator
|
|
# (Caddy/Nginx) davor steht der z.B. 444 auf intern 3000 mappt. Wird fuer
|
|
# die OAuth-Callback-URL benutzt; muss zu dem Eintrag im Provider-Dashboard
|
|
# passen. Leer/ungesetzt = RVS_PORT wird verwendet.
|
|
RVS_PORT_PUBLIC=
|
|
|
|
# TLS (wss://) verwenden? true = verschluesselt, false = unverschluesselt (ws://)
|
|
RVS_TLS=true
|
|
|
|
# Bei TLS-Fehler automatisch auf ws:// (ohne TLS) fallback?
|
|
# Nuetzlich wenn kein TLS-Zertifikat vorhanden (z.B. Entwicklung)
|
|
RVS_TLS_FALLBACK=true
|
|
|
|
# Pairing-Token: Wer den gleichen Token hat, landet im gleichen RVS-Room.
|
|
# Wird von generate-token.sh automatisch generiert und hier eingetragen.
|
|
# Die Android App bekommt den Token per QR-Code beim Pairing.
|
|
# WICHTIG: Muss auf ARIA-VM, Gaming-PC (xtts/.env) und App identisch sein!
|
|
# Generieren: ./generate-token.sh (traegt den Token automatisch ein)
|
|
RVS_TOKEN=
|
|
|
|
# ── Brain-Timeouts ───────────────────────────────
|
|
# Brain redet via HTTP mit dem Proxy-Container. Da der Proxy non-streaming
|
|
# antwortet (Response kommt erst nach subprocess-close), kann ein Brain-Call
|
|
# bei langen Agent-Sessions (Pentests, Multi-Step-Tasks) >1h dauern.
|
|
# PROXY_TIMEOUT_SEC ist der httpx-Read-Timeout im Brain — wir setzen ihn
|
|
# bewusst hoch (24h), der Proxy hat einen eigenen Idle-Watchdog
|
|
# (ARIA_IDLE_TIMEOUT_MS in der proxy-Logik, default 20min Inaktivitaet)
|
|
# der den Subprocess killt wenn wirklich was haengt.
|
|
# Connect/Write/Pool bleiben klein damit toter Proxy in 10s erkannt wird.
|
|
PROXY_TIMEOUT_SEC=86400
|
|
# Diese drei sind defensive Defaults — aendern nur wenn netzwerk-bedingt noetig.
|
|
# PROXY_CONNECT_TIMEOUT_SEC=10
|
|
# PROXY_WRITE_TIMEOUT_SEC=30
|
|
# PROXY_POOL_TIMEOUT_SEC=10
|
|
|
|
# ── Gitea — Release-Verwaltung ───────────────────
|
|
# Wird von release.sh genutzt um APKs auf Gitea zu veroeffentlichen.
|
|
# Kennwort wird beim Release interaktiv abgefragt (nicht in .env!).
|
|
GITEA_URL=https://git.hacker-net.de
|
|
GITEA_REPO=Hacker-Software/ARIA-AGENT
|
|
GITEA_USER=duffyduck
|
|
|
|
# ── Auto-Update — APK auf RVS-Server kopieren ───
|
|
# SSH-Ziel fuer scp: release.sh kopiert die APK dorthin.
|
|
# Der RVS-Server stellt sie dann per WebSocket an die App bereit.
|
|
# Format: user@host (z.B. root@aria-rvs oder root@rvs.example.de)
|
|
# Leer lassen = Auto-Update ueberspringen, APK manuell auf RVS kopieren.
|
|
RVS_UPDATE_HOST=
|