# Your computer

> Reference for a Rootsy computer: the OS and user, preinstalled software, the directory layout, what persists, and the ports and paths that belong to the platform.

This page covers what a Rootsy computer is made of: the OS and user, the preinstalled software, where files live, what persists, and which ports and paths belong to the platform. Every computer is a Linux machine of its own, and you have root on it.

## The machine

The computer runs Ubuntu on x86-64, with systemd as the init system. Run `cat /etc/os-release` for the exact release.

You work as the user `dev`, whose home is `/home/dev`. `dev` has passwordless `sudo`, so you can install packages with `apt`, add systemd services and change system configuration.

The terminal opens a tmux session named `main`. The guide (`rootsy welcome`) runs first, then a `bash` prompt. If that `bash` exits, the guide opens again. Claude Code starts from the guide or when you type `claude`.

Memory and storage depend on the plan. See [Billing](https://rootsy.io/docs/reference/billing.md).

## Preinstalled software

| Software | Notes |
|---|---|
| Claude Code | Run `claude`. Rootsy installs a pinned version. `/usr/local/bin/claude` is a wrapper that keeps the computer awake while Claude Code is working. See [Sleep and wake](https://rootsy.io/docs/reference/sleep.md). |
| Node.js 22 and npm | From NodeSource. |
| nginx | Your web server, listening on port 8090. |
| Docker and Docker Compose v2 | `docker` and `docker compose`. |
| git, tmux, zip, unzip, curl, build-essential | |
| `rootsy` | The computer's helper command. See [The rootsy command](https://rootsy.io/docs/reference/cli.md). |

Install anything else you need.

## Where things live

| Path | What it is |
|---|---|
| `/home/dev` (`~`) | Your home directory. Reset keeps it. |
| `~/sites/` | Static sites. Your nginx serves `~/sites/default/` at your computer's address until you change its config. |
| `~/uploads/` | Files dropped or pasted onto the terminal land here. |
| `~/CLAUDE.md` | Instructions Claude Code reads every session. Rootsy writes it only when the file is missing, so your edits stay. |
| `~/README.md` | The note the Editor opens on. Rootsy writes it only when it's missing. |
| `~/.local/share/code-server/User/settings.json` | Editor (VS Code) settings. |
| `/etc/nginx/sites-iwmwn/` | Your nginx server configs. nginx loads every `*.conf` file here. `000-default.conf` serves `~/sites/default`. To change the default site, edit this file or empty it. Don't delete it. Rootsy puts it back at the next restart, and two `default_server` blocks on port 8090 stop nginx from starting. |
| `/srv` | Reset keeps it. Use it for data that isn't tied to your user. |
| `/root` | Reset keeps it. |
| `/tmp` | Scratch space. Backups don't include it and Reset empties it. Don't keep anything here you need later. |
| `/var/lib/docker` | Docker images, containers and volumes. Backups don't include them and Reset doesn't touch them. |
| `/opt/platform` | Rootsy's platform code. Don't edit it. |
| `/etc/iwmwn/` | Rootsy's configuration for this computer, including its secrets. Don't edit it or copy it anywhere. |

Your address is `https://<name>.rtsy.dev`. Run `rootsy domains` to print it with any custom domains. See [Domains](https://rootsy.io/docs/reference/domains.md).

## What persists

The disk persists. Files, installed packages and configuration survive sleep and restarts.

Running processes don't always survive. When a computer sleeps, it can come back with its processes as they were, or start fresh from disk. You can't choose which. Keep state on disk, in a file or SQLite under `~`. See [Sleep and wake](https://rootsy.io/docs/reference/sleep.md).

Reset rebuilds the computer's system and keeps only `/home`, `/root` and `/srv`. Packages and databases installed with `apt`, global npm installs, systemd units you added and your files in `/etc/nginx/sites-iwmwn/` are gone afterwards. Docker images, containers and volumes aren't touched. See [Backups and Reset](https://rootsy.io/docs/reference/backups-and-reset.md).

## How requests reach you

Every request to your address or a custom domain arrives at the platform's nginx on port 8080. It forwards the request to your nginx on port 8090. Nothing else is reachable from outside.

To serve an app running on another port (3000, say), proxy to it from a config in `/etc/nginx/sites-iwmwn/`, then run:

```sh
sudo nginx -t && sudo nginx -s reload
```

Apps get plain HTTP requests. WebSocket upgrades aren't passed through. A request body can be at most 1 MiB, counting multipart framing. Rootsy refuses a larger one before it reaches your nginx, usually with a `413`. See [Serve an app](https://rootsy.io/docs/reference/serving.md).

## Ports and paths that belong to the platform

These keep the Terminal, the Editor, the workspace and visitor traffic working. Don't bind to these ports or stop what runs on them.

| Port | Used by |
|---|---|
| 8080 | Platform nginx: every incoming request |
| 8081 | The Editor (code-server) |
| 7681 | The terminal (ttyd) |
| 7682 | Platform auth and state |
| 7683 | Terminal uploads |
| 7684 | The Files window |
| 7685 | Preview control (`rootsy preview`) |
| 7686 | Terminal connection relay |
| 7687 | Commands run through MCP |

The path `/_iw` and everything under `/_iw/` belong to the platform. On your address and custom domains, Rootsy answers them with `404` before they reach your nginx, so don't build routes there.

Leave `/opt/platform`, `/etc/iwmwn/` and the platform's systemd units alone. The units' names start with `iw-`.

If you break your own nginx config, only your app goes down. The Terminal and Editor keep working so you can fix it. If you can't, Reset restores the platform and keeps everything under `/home`, `/root` and `/srv`.

## Outbound network

Outbound connections are open, except TCP port 25 (SMTP). It's blocked for the computer and for Docker containers on it, over IPv4 and IPv6. To send email, use a provider's HTTPS API or SMTP submission on port 587 or 465.

## Files in and out

Drag a file onto the terminal, or paste a screenshot, to upload it to `~/uploads`. The terminal types the uploaded path at your cursor. Terminal uploads are capped at 100 MiB per file and 20 files at a time. They never overwrite: a second `photo.png` becomes `photo-2.png`.

The Files window in the workspace browses, uploads, downloads, zips, renames and deletes files as the `dev` user. It accepts uploads up to 10 GiB per file. It refuses an upload that would leave less than 2 GiB of disk free.

There is no SSH access. To reach the computer from outside the browser, use [MCP](https://rootsy.io/docs/reference/mcp.md).

---
Page: https://rootsy.io/docs/reference/computer/ · Updated: 2026-10-21 · All docs: https://rootsy.io/llms.txt
