Documentation
Everything Pupitre does on your server, written down.
From an empty Ubuntu machine to a project running behind a URL. Every page says what Pupitre does, what it asks of you, and what it leaves behind.
Get started
From an empty VPS to a project served behind a URL.
- Choose a VPS What Pupitre needs from the machine you rent, and what to look at before you pay for one.
- Your key The SSH keys Pupitre generates, where the private halves live on your computer, what reaches the server, and how to reuse them elsewhere.
- Connect the app Adding a server, what the first connection does, and what the inspection reports back.
- The eight steps The whole onboarding, step by step, with what changes on the machine at each one.
Services
What every module of the catalogue installs, and what it asks you for.
- The catalogue Twenty-five modules across seven categories. Each one knows how to install itself, check itself, configure itself, update itself, uninstall itself and report its state, on Ubuntu 22.04 and 24.04, amd64 and arm64.
- System Base packages, sized swap, memory guard, a dev user with sudo, zsh, tmux, git identity, the dev command.
- Hardening ufw on SSH only, fail2ban, root closed and passwords off once a key opens dev.
- Node.js Node, Bun, pnpm and Yarn through mise, at the versions you choose, in every shell.
- Java Temurin through mise, Gradle daemon sized for the RAM.
- Python uv and the Python version you choose, through mise.
- Go Go at the version you choose, through mise, with GOPATH and go install binaries on the path.
- PHP PHP at the version you choose, built by mise, Composer optional, memory limit yours.
- Ruby Ruby at the version you choose, built by mise, Bundler optional.
- Docker Docker Engine and Compose, dev in the group so no command needs sudo, images where you want them.
- MySQL or MariaDB Bound to 127.0.0.1 on the port you pick, app and remote accounts you name, dumps in ~/dumps imported for you.
- PostgreSQL The major version you choose, local only, app and remote roles you name, common extensions, dump import.
- MongoDB The major version you choose, local only, the app user you name, mongodump import.
- Redis Local only, a password it refuses to work without, persistence and a memory ceiling you set.
- Claude Code The native binary, checksum verified, with the machine context, the Pupitre skills and your own subscription.
- Codex Installed through mise, same machine context and same skills, on your own subscription.
- Hermes Agent Nous Research’s agent through Python, the model providers you configure, a systemd service if always on.
- Browser and gallery Headless Chrome and the Playwright libraries, the shot command, and a gallery served on the loopback.
- JetBrains Remote Dev Remote backend preinstalled for IntelliJ IDEA, WebStorm, PyCharm, PhpStorm or GoLand, JVM sized, your licence.
- VS Code Remote SSH code CLI and remote server preinstalled so the first connection is immediate; same for Cursor and Windsurf.
- Zed Remote Server Remote server preinstalled for your version, opened through zed://ssh.
- Cloudflare Tunnel One tunnel on your own Cloudflare account, one route per project, DNS and certificate managed.
- Caddy Reverse proxy with automatic Let’s Encrypt certificates, one route per project, for a domain outside Cloudflare.
- GitHub gh, HTTPS clone without a key, the server’s key registered on your account.
- 1Password CLI and service account token, checked at install time, so a project builds its env file from your vault.
- Neon The Neon CLI and your API key in the dev shell; your projects and branches stay yours to create.
Every day
Projects, terminals, agents and editors once the machine is up.
- Dashboard and activity What the app shows of a machine between two pieces of work, and what it lets you stop.
- Projects Adding a project, what the agent does with it, and how it reaches a URL.
- Terminals How the app opens shells on the server, what tmux gives you, and what happens when you close the window.
- Secrets The credentials a server keeps for its services, where they live, and how you change one.
- Your own client Connecting Claude Code, Codex, your terminal and your editor to a Pupitre server over SSH, with the private key the app generated.
- AI agents Claude Code, Codex and Hermes on the server — how they are installed, what context they get, and where you sign in.
- Gallery The screenshots agents take while working, where they are filed, and how the app shows them.
- Remote editors JetBrains Gateway, VS Code Remote SSH and Zed against a Pupitre server.
- Services and updates Adding, configuring, updating and removing a module after the first install.
Account
Teams, billing, security, and the questions that come back.
- Signing in How you open the console and the app, passkeys, the second factor, and what to do when a device is lost.
- Teams Organisations, members, roles, assigning a server to a person, and revoking access.
- Billing What you pay for, how the trial works, and what happens when a subscription stops.
- Security What Pupitre can and cannot do on your server, and how to check each claim.
- Questions The questions that come back, answered without hedging.