> ## Documentation Index
> Fetch the complete documentation index at: https://docs.noxus.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Networking Overview

> How a self-hosted Noxus deployment talks to the network — and what restricted connectivity breaks

This section is for operators running **self-hosted Noxus** (VM docker-compose
or Kubernetes) who need to define firewall, ingress, and egress rules. On the
**managed cloud** (`app.noxus.ai`) all of this is handled for you — you only
need your users to reach the app over HTTPS.

Noxus has two independent connectivity surfaces. Treat them separately when you
plan firewall rules:

<CardGroup cols={2}>
  <Card title="Inbound" icon="arrow-down-to-line" href="/deployment/networking/inbound">
    Traffic arriving at your deployment — your users' browsers and API clients,
    plus webhooks pushed by external SaaS (Slack, WhatsApp, Teams…).
  </Card>

  <Card title="Outbound" icon="arrow-up-from-line" href="/deployment/networking/outbound">
    Traffic Noxus initiates — model providers, integration APIs, object storage,
    and the optional Noxus Control Service.
  </Card>
</CardGroup>

## The mental model

```mermaid theme={null}
flowchart LR
  subgraph internet[Public internet]
    USR[Users' browsers / API clients]
    SAAS[External SaaS<br/>Slack, Meta, Teams, Google…]
    LLM[Model providers]
    NCS[Noxus Control Service]
  end

  subgraph dep[Your deployment]
    FE[Frontend]
    BE[Backend API]
    RLY[Relays]
    WRK[Workers]
  end

  USR -->|HTTPS / SSE / WS| FE
  USR -->|HTTPS / SSE| BE
  SAAS -->|inbound webhooks| RLY
  BE -->|model + integration calls| LLM
  WRK -->|polling, callbacks, model calls| LLM
  WRK <-->|outbound checkin| NCS
```

## Two kinds of inbound — don't conflate them

| Inbound source                                                                         | What it reaches    | Can it be private (LAN/VPN)?                                                                          |
| -------------------------------------------------------------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------- |
| **Your users** (browser, API clients, SSE streams)                                     | Frontend + Backend | **Yes** — if all users are on your network/VPN, the app never needs a public address                  |
| **External SaaS webhooks** (Slack events, WhatsApp, Teams, Telegram, generic webhooks) | Relays             | **No** — these are server-to-server calls from the internet and require a publicly reachable endpoint |

<Note>
  OAuth sign-in callbacks are **browser redirects**, not server-to-server calls.
  They only need to be reachable by your users' browsers — not by the OAuth
  provider's servers. See [Inbound connectivity](/deployment/networking/inbound#oauth-callbacks).
</Note>

## What restricted networking costs you

| Restriction                              | Still works                                                                                                               | Breaks / degraded                                                                                                  |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **No public inbound** (private/VPN only) | The full app for internal users; polling channels (Gmail, Outlook, KB sync); Slack via Socket Mode; outbound run webhooks | Push channels: WhatsApp, Teams, Telegram, generic webhook triggers, Google Chat in webhook mode                    |
| **No outbound** (air-gapped)             | Core orchestration, the editor, data already in the system                                                                | Hosted model providers, hosted integrations, NCS-brokered OAuth & auto-upgrade, telemetry, web search/scrape tools |
| **Outbound to allowlist only**           | Everything you allowlist                                                                                                  | Anything you forgot to allowlist — see the [Endpoint reference](/deployment/networking/endpoint-reference)         |

<Tip>
  A fully **air-gapped** deployment is supported but constrained: you must point
  models at an in-network OpenAI-compatible endpoint, use direct (non-NCS) OAuth
  apps or static credentials, and disable telemetry. The
  [Outbound](/deployment/networking/outbound#running-with-minimal-egress) page
  walks through the minimal-egress setup.
</Tip>
