Reference / Your computer

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.

Updated 2026-10-21 · View as Markdown

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.

Preinstalled software

SoftwareNotes
Claude CodeRun 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.
Node.js 22 and npmFrom NodeSource.
nginxYour web server, listening on port 8090.
Docker and Docker Compose v2docker and docker compose.
git, tmux, zip, unzip, curl, build-essential
rootsyThe computer’s helper command. See The rootsy command.

Install anything else you need.

Where things live

PathWhat 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.mdInstructions Claude Code reads every session. Rootsy writes it only when the file is missing, so your edits stay.
~/README.mdThe note the Editor opens on. Rootsy writes it only when it’s missing.
~/.local/share/code-server/User/settings.jsonEditor (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.
/srvReset keeps it. Use it for data that isn’t tied to your user.
/rootReset keeps it.
/tmpScratch space. Backups don’t include it and Reset empties it. Don’t keep anything here you need later.
/var/lib/dockerDocker images, containers and volumes. Backups don’t include them and Reset doesn’t touch them.
/opt/platformRootsy’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.

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.

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.

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:

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.

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.

PortUsed by
8080Platform nginx: every incoming request
8081The Editor (code-server)
7681The terminal (ttyd)
7682Platform auth and state
7683Terminal uploads
7684The Files window
7685Preview control (rootsy preview)
7686Terminal connection relay
7687Commands 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.