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

# Remote Access

> Reach your devices directly from the dashboard

Every registered device exposes a terminal, a file manager, and (optionally) a public URL — all reachable straight from the dashboard, over the same reverse tunnel used for everything else. No SSH keys to distribute, no exposed ports on the device.

## Terminal

Open a real interactive shell on the device from your browser — full PTY support (resizing, colors, interactive programs like `top` or `vim` all work normally). Useful for anything the dashboard doesn't have a dedicated UI for.

## File Manager

Browse, upload, download, rename, and delete files on the device's filesystem directly from the dashboard.

* Downloads support resuming and show progress (bytes transferred / total).
* Uploads are capped at 100MB per file and show progress the same way.
* Both are backed by SFTP under the hood, so large transfers don't need to be buffered entirely in memory on either end.

## Public URLs

Expose a port running on the device (a web app, an API, anything listening on localhost) at a public `https://` URL, without opening any inbound firewall rule on the device.

Each device gets **3 public URL slots**. To use one:

1. From the device's page, open the **Public URL** panel.
2. Enter the local port you want to expose (e.g. `8080`).
3. IoT Manager assigns a URL like `{hash}-{slot}.iotmanager.dev` and starts forwarding traffic to that port on the device.

Traffic flows: `https://{hash}-{slot}.iotmanager.dev` → IoT Manager → reverse tunnel → the device's `localhost:<port>`. The device never needs to accept inbound connections for this to work.

## Container control

If the device has Docker installed, the **Services** panel shows running containers with Start/Stop/Restart buttons and log viewing, without needing the terminal at all.

<Note>
  Terminal, file manager, and telemetry all work whether or not the device has Docker — only the Services/container panel depends on it.
</Note>
