# Gateway ## Vad är Gateway? Gateway är hjärtat av Neotask, en enda långlivad tjänst som hanterar alla agentsessioner, meddelandekanaler, verktygsexekvering och enhetsanslutningar. Allt flödar genom Gateway. Det är en WebSocket-server som lyssnar efter anslutningar från klienter (skrivbordsapp, mobilappar, webbinstrumentpanel) och hanterar hela AI-assistentens livscykel. ## Arkitektur ### Komponenter - **WebSocket-server**, Tar emot klientanslutningar (standardport 18789) - **HTTP-server**, Serverar Control UI, canvas-värd och hälsoslutpunkter - **Kanaladaptrar**, Upprätthåller anslutningar till meddelandeplattformar (WhatsApp, Telegram, Discord, osv.) - **Sessionshanterare**, Bevarar och hanterar agentkonversationstillstånd - **Cron-schemaläggare**, Kör schemalagda jobb och hjärtslagsvakningar - **Plugin-körningsmiljö**, Laddar och hanterar plug-ins livscykel - **Webbläsartjänst**, Styr Chromium-instanser för webbautomatisering ### Bindningslägen | Läge | Beskrivning | |------|-------------| | **Loopback** | Standard. Endast tillgänglig från localhost (127.0.0.1) | | **LAN** | Tillgänglig på ditt lokala nätverk. Automatiskt synlig via Bonjour/mDNS | | **Tailnet** | Tillgänglig via Tailscale VPN med MagicDNS | | **Anpassad** | Bind till en specifik adress | ### Autentisering | Metod | Beskrivning | |--------|-------------| | **Token** | WebSocket bearer-token (UUID eller anpassad sträng) | | **Lösenord** | Lösenordsbaserad autentisering (bcrypt-hashat) | | **Betrodd proxy** | För omvända proxyer med förautentiserade headers | | **Lokal tillit** | Loopback-anslutningar godkänns automatiskt | ## Konfiguration Gateway konfigureras via `neotask.json` (JSON5-format). Viktiga avsnitt: | Avsnitt | Kontrollerar | |---------|----------| | `agents` | Agentlista, standardvärden, arbetsytor | | `gateway` | Port, bindningsläge, autentisering, omladdningsbeteende | | `channels` | Per-kanal-konfiguration och inloggningsuppgifter | | `tools` | Verktygsbehörigheter, profiler, säkerhet | | `plugins` | Plug-inladdning, aktivering, per-plug-in-konfiguration | | `models` | Leverantörsautentisering, fallback, leverantörsinställningar | | `skills` | Färdighetskataloger, per-färdighet-konfiguration | | `browser` | Webbläsarprofiler, portar, headless-läge | | `cron` | Schemaläggarekonfiguration | | `session` | Återställningsregler, kompakteringströskel | | `messages` | TTS-inställningar, mediepolicyer | | `memory` | Minnesindexeringskonfiguration | | `security` | Sandlåda, förhöjt läge, godkännanden | ### Varm omladdning Konfigurationsändringar kan tillämpas utan omstart: | Läge | Beteende | |------|----------| | **Hybrid** (standard) | Tillämpa säkra ändringar direkt, starta om för andra | | **Varm** | Tillämpa bara varma-säkra ändringar, ignorera andra | | **Omstart** | Starta om vid alla omladdningskrävande ändringar | | **Av** | Ingen automatisk omladdning | ## Fjärråtkomst ### Tailscale (Rekommenderas) Tailscale tillhandahåller säker, nollkonfigurationsfjärråtkomst: - Bind Gateway till ditt Tailnet - Åtkomst från vilken enhet som helst i samma Tailscale-nätverk - Automatisk DNS via MagicDNS - Tailscale Serve kan exponera instrumentpanelen med HTTPS ### SSH-tunnel Vidarebefordra Gateway-porten via SSH: - Enkelt, säkert, inga konfigurationsändringar behövs - Fungerar med vilken SSH-kapabel maskin som helst - Stöder det fullständiga WebSocket-protokollet och Control UI ### Säkerhetsregler - **Loopback + SSH/Tailscale** är den säkraste kombinationen - Icke-loopback-bindning kräver konfiguration av autentiseringstoken - TLS-fingeravtryckspin tillgängligt för extra säkerhet - Webbläsarkontroll är inaktiverad för fjärranslutningar som standard ## Hälsoövervakning ### Hälsoslutpunkt HTTP-slutpunkten `/health` returnerar: - Gateway-status - RPC-livskraft - Per-kanal-hälsa (ansluten, autentiseringsstatus, kontoanatal) - Webbläsarberedskap - Aktiva agenter och anslutna noder - Drifttid ### Sonder - **RPC-livskraft**, WebSocket-anslutning + ekotest - **Kanalhälsa**, Autentiseringskontroll + API-ping per kanal - **Webbläsarberedskap**, Portkontroll, processkontroll - **Nodanslutning**, Senaste hjärtslags-tidsstämpel ## Identifiering ### Bonjour/mDNS När bunden till LAN annonserar Gateway sig via multicast-DNS: - Tjänstetyp: `_neotask-gw._tcp` - Inkluderar port, transport, TLS-status och Tailscale DNS-info - Följappar identifierar Gateway automatiskt ### Bred identifiering Identifiera gatewayer över ditt nätverk med konfigurerbara tidsgränser. Stöder både lokal Bonjour och Tailscale DNS-identifiering. ## Flera gatewayer Du kan köra flera Gateway-instanser på samma maskin med hjälp av profiler: - Varje profil har separat konfiguration, arbetsyta, sessioner och tillstånd - Olika portar för varje Gateway - Användbart för isolering (personlig vs arbete) eller testning ## Diagnostik ### Doktor Det inbyggda diagnostikverktyget kontrollerar: - Konfigurationsgiltighet - Filbehörigheter - Kanalanslutning - Modellautentiseringsstatus - Node.js-versionskompatibilitet - Vanliga felkonfigurationer Det kan automatiskt åtgärda många problem när det ges tillstånd. ### Loggning Gateway-loggar skrivs till dagliga JSONL-filer: - Per-slutförande tokenanvändningsspårning - Kanalhändelseloggar - Felloggning med strukturerad kontext - Konfigurerbara loggnivåer