Skip to content

Network Model

Sidemesh is designed for trusted networks. The daemon does not implement a public-internet auth layer and should not be exposed directly to the internet.

Recommended deployment patterns:

NetworkSetupUse case
TailscaleInstall Tailscale on host and clientRemote access from anywhere
Private LANSame Wi-Fi or wired networkHome or office use
localhostClient and host on same machineLocal development

The current auth model is a single shared bearer token with no per-device revocation. This is sufficient for a small set of trusted devices on a private network, but it is not adequate for public exposure.

If you need public access, place the daemon behind a reverse proxy with:

  • TLS termination
  • Per-client certificate auth or OAuth
  • Rate limiting
  • IP allowlisting
  • The daemon binds to 0.0.0.0:PORT by default
  • All /api/* routes and WebSocket endpoints require Authorization: Bearer <token>
  • GET /healthz is intentionally unauthenticated for local service checks
  • SIDEMESH_TOKEN is deleted from the environment before spawning shells or child processes
  • sidemesh start refuses to launch if another daemon is already healthy on the port
  • Managed process state is written to ~/.sidemesh/daemon-state-v1.json
  • Config is written atomically with 0o600 permissions
  • State directory defaults to ~/.sidemesh and can be overridden with SIDEMESH_STATE_DIR