docs/src/remote-access.md
Rama main · réplica de lectura del repositorio original.
# Remote Access
Moltis can expose the gateway beyond `localhost` through private mesh networks
or managed HTTPS tunnels. Configure these providers from **Settings -> Remote
Access** in the web UI, or through `moltis.toml` and the CLI.
Use authentication before exposing Moltis outside your machine. Public tunnels
with `auth.disabled = true` are blocked by the setup-required page until
authentication is configured.
| Provider | Access model | Best for |
|----------|--------------|----------|
| Tailscale Serve | Private tailnet HTTPS | Personal devices and team tailnets |
| Tailscale Funnel | Public HTTPS | Public callbacks through Tailscale |
| NetBird | Private mesh access | Open source mesh VPN users |
| ngrok | Public HTTPS | Demos, tests, and webhook callbacks |
| Cloudflare Tunnel | Public HTTPS | Stable public hostnames managed by Cloudflare |
## Tailscale
Tailscale support shells out to the `tailscale` CLI and supports two modes:
- `serve`: exposes Moltis over HTTPS inside your tailnet.
- `funnel`: exposes Moltis over public HTTPS through Tailscale Funnel.
Configuration:
```toml
[tailscale]
mode = "serve" # "off" | "serve" | "funnel"
reset_on_exit = true
```
CLI:
```bash
moltis tailscale status
moltis tailscale serve --port 18789
moltis tailscale funnel --port 18789
moltis tailscale disable
```
Notes:
- Install and log in to Tailscale before enabling Serve or Funnel.
- Moltis must bind to a loopback address for Serve/Funnel.
- Funnel exposes Moltis to the public internet. Keep password/passkey
authentication enabled.
- Passkeys are hostname-bound; changing the Tailscale hostname or public URL can
require logging in again on the new origin.
## NetBird
NetBird support shells out to the `netbird` CLI and provides private mesh access
similar to Tailscale Serve. NetBird does not provide a Moltis-managed public
Funnel equivalent.
Configuration:
```toml
[netbird]
mode = "serve" # "off" | "serve"
```
CLI:
```bash
moltis netbird status
moltis netbird serve
moltis netbird disable
```
Notes:
- Install NetBird and connect the peer before enabling serve mode.
- Moltis keeps its main listener bound to loopback and starts a NetBird peer-IP
forwarder to the local gateway port.
- Use Cloudflare Tunnel, ngrok, or Tailscale Funnel when you need a public HTTPS
endpoint.
## ngrok
ngrok support uses the Rust ngrok SDK and does not require a separate `ngrok`
binary. Moltis starts an internal loopback forwarding listener and exposes it
through ngrok.
Configuration:
```toml
[ngrok]
enabled = true
authtoken = "${NGROK_AUTHTOKEN}" # or set NGROK_AUTHTOKEN
# domain = "team-gateway.ngrok.app" # optional reserved/static domain
```
Notes:
- Use a reserved domain for stable passkey behavior across restarts.
- If `authtoken` is omitted, Moltis reads `NGROK_AUTHTOKEN` from the
environment.
- ngrok is useful for webhook callbacks, demos, and temporary public access.
## Cloudflare Tunnel
Cloudflare Tunnel support starts `cloudflared` and forwards a Cloudflare-managed
public hostname to the local Moltis gateway.
Configuration:
```toml
[cloudflare_tunnel]
enabled = true
token = "${CLOUDFLARE_TUNNEL_TOKEN}" # or set CLOUDFLARE_TUNNEL_TOKEN
hostname = "moltis.example.com" # optional but recommended for passkeys
```
CLI:
```bash
moltis cloudflare-tunnel status
moltis cloudflare-tunnel enable --token <token> --hostname moltis.example.com
moltis cloudflare-tunnel disable
```
Notes:
- Install `cloudflared` before enabling the connector.
- If `token` is omitted, Moltis reads `CLOUDFLARE_TUNNEL_TOKEN` from the
environment.
- Set `hostname` when you know the public route so Moltis can update WebAuthn
passkey origins consistently.
## Choosing a Provider
Prefer private mesh access when possible:
- Use Tailscale Serve if your devices already use Tailscale.
- Use NetBird if you prefer a fully open source mesh VPN.
- Use Tailscale Funnel, ngrok, or Cloudflare Tunnel only when external services
need a public callback URL or users outside your mesh need access.
For cloud-hosted deployments, see [Cloud Deploy](cloud-deploy.md). For all
config keys and defaults, see [Configuration Reference](configuration-reference.md).