Documentation
Tout ce que Pupitre fait sur votre serveur, écrit noir sur blanc.
D’une machine Ubuntu vide à un projet servi derrière une URL. Chaque page dit ce que Pupitre fait, ce qu’il vous demande, et ce qu’il laisse derrière lui.
Démarrer
D’un VPS vide à un projet servi derrière une URL.
- Installer l’app et la lier à votre compte Télécharger l’app pour macOS, Windows ou Linux, ce que chaque système affiche la première fois, et lier l’app à votre compte Pupitre.
- Choisir un VPS Ce que Pupitre attend de la machine que vous louez, et ce qu’il faut regarder avant de payer.
- Votre clé Les clés SSH que Pupitre génère, où vivent les moitiés privées sur votre ordinateur, ce qui arrive sur le serveur, et comment les réutiliser ailleurs.
- Connecter l’app Ajouter un serveur, ce que fait la première connexion, et ce que l’inspection rapporte.
- L’onboarding, pas à pas Chaque étape que l’app fait traverser à un serveur, de l’adresse à une machine prête à travailler, avec ce qui change sur la machine à chacune.
Services
Ce que chaque module du catalogue installe, et ce qu’il vous demande.
Base
- Système Paquets de base, swap dimensionné, garde-fou mémoire, utilisateur dev avec sudo, zsh, tmux, identité git, la commande dev.
- Sécurisation ufw sur SSH seul, fail2ban, root fermé et mots de passe désactivés une fois qu’une clé ouvre dev.
- Sauvegardes Configuration, secrets, bases et projets, chiffrés sur le serveur et envoyés dans votre propre bucket S3 à l’intervalle que vous choisissez.
Runtimes
- Node.js Node, Bun, pnpm et Yarn via mise, aux versions choisies, dans tous les shells.
- Java Temurin via mise, daemon Gradle dimensionné pour la RAM.
- Python uv et la version de Python choisie, via mise.
- Go Go à la version choisie, via mise, avec GOPATH et les binaires de go install sur le PATH.
- PHP PHP à la version choisie, compilé par mise, Composer en option, limite mémoire à votre main.
- Ruby Ruby à la version choisie, compilé par mise, Bundler en option.
- Docker Docker Engine et Compose, dev dans le groupe pour qu’aucune commande ne demande sudo, images là où vous voulez.
- Rust Rust à la version choisie par mise et rustup ; cargo, rustc et ce que cargo install construit sur le PATH de tous les shells.
Bases de données
- MySQL ou MariaDB Lié à 127.0.0.1 sur le port choisi, comptes applicatif et distant que vous nommez, dumps déposés dans ~/dumps importés pour vous.
- PostgreSQL La version majeure choisie, local seulement, rôles applicatif et distant que vous nommez, extensions courantes, import de dumps.
- MongoDB La version majeure choisie, local seulement, l’utilisateur applicatif que vous nommez, import de mongodump.
- Redis Local seulement, un mot de passe sans lequel il refuse de répondre, persistance et plafond mémoire à votre main.
- Mailpit Un serveur SMTP local qui capture tout ce que vos projets envoient, et l’interface qui le montre, tous deux sur localhost.
Agents IA
- Claude Code Le binaire natif, checksum vérifié, avec le contexte machine, les skills Pupitre et votre propre abonnement.
- Codex Posé par mise, même contexte machine et mêmes skills, sur votre propre abonnement.
- Cursor CLI Le paquet de Cursor sous sa version, les commandes agent et cursor-agent, les skills Pupitre, sur votre abonnement Cursor.
- Gemini CLI L’agent open source de Google posé par mise, même contexte machine et mêmes skills, sur votre compte Google — le niveau gratuit suffit — ou une clé d’API.
- GitHub Copilot CLI L’agent de terminal de Copilot posé par mise, même contexte machine et mêmes skills, sur votre abonnement Copilot.
- OpenCode L’agent open source, binaire vérifié par le checksum que GitHub publie, sans fournisseur imposé : un abonnement Claude, ChatGPT ou Copilot, ou n’importe quelle clé.
- Hermes Agent L’agent de Nous Research via Python, les fournisseurs de modèles que vous configurez, service systemd si toujours actif.
- OpenClaw L’assistant personnel joignable depuis Telegram, Discord ou WhatsApp, sa gateway en service systemd, les fournisseurs de modèles que vous configurez.
- Navigateur headless Chrome headless et les bibliothèques dont il a besoin, dont l’outil de capture du serveur MCP de Pupitre se sert pour montrer une page à l’agent IA.
Éditeurs distants
- JetBrains Remote Dev Backend distant préinstallé pour IntelliJ IDEA, WebStorm, PyCharm, PhpStorm ou GoLand, JVM dimensionnée, votre licence.
- VS Code Remote SSH CLI code et serveur distant préinstallés pour que la première connexion soit immédiate ; idem pour Cursor et Windsurf.
- Zed Remote Server Serveur distant préinstallé pour votre version, ouverture par zed://ssh.
Exposition
- Cloudflare Tunnel Un tunnel sur votre compte Cloudflare, une route par projet, DNS et certificat gérés.
- Caddy Reverse proxy avec certificats Let’s Encrypt automatiques, une route par projet, pour un domaine hors Cloudflare.
- Tailscale La machine sur votre tailnet par une clé d’authentification : SSH et URL de preview depuis votre téléphone ou un autre poste, rien d’exposé publiquement. Cohabite avec Caddy ou le tunnel.
Outils
- GitHub gh, clone HTTPS sans clé, clé du serveur enregistrée sur votre compte.
- 1Password CLI et token de compte de service, vérifié à l’installation, pour qu’un projet construise son fichier d’environnement depuis votre coffre.
- Neon Le CLI Neon et votre clé d’API dans le shell de dev ; vos projets et vos branches restent les vôtres à créer.
- Wrangler Le CLI de Cloudflare et votre token d’API dans le shell de dev ; Workers, D1 et Pages se déploient depuis le serveur.
- Vercel Le CLI Vercel et votre token dans le shell de dev ; deploy, env et logs répondent depuis le serveur.
- Supabase Le CLI Supabase, binaire de release vérifié par son checksum, et votre token d’accès dans le shell de dev ; migrations, types et fonctions se déploient depuis le serveur.
- Stripe Le CLI Stripe, binaire de release vérifié par son checksum, et une clé restreinte dans le shell de dev ; stripe listen relaie les webhooks vers un projet de la machine.
Au quotidien
Projets, terminaux, agents et éditeurs une fois la machine prête.
- Tableau de bord et activité Ce que l’app montre d’une machine entre deux travaux, et ce qu’elle laisse arrêter.
- Projets Ajouter un projet, ce que l’agent en fait, et comment il arrive derrière une URL.
- Terminaux Comment l’app ouvre des shells sur le serveur, ce que tmux apporte, et ce qui arrive quand vous fermez la fenêtre.
- Secrets Les identifiants qu’un serveur garde pour ses services, où ils vivent, et comment on en change un.
- Votre propre client Brancher Claude Code, Codex, votre terminal et votre éditeur sur un serveur Pupitre en SSH, avec la clé privée que l’app a générée.
- Agents IA Claude Code, Codex, Cursor, Gemini, Copilot, OpenCode et Hermes sur le serveur — comment ils sont installés, quel contexte ils lisent, et où l’on se connecte.
- Serveur MCP Les outils que Claude Code et Codex reçoivent sur le serveur pour démarrer les projets, lire les logs et regarder une page, et ce qu’ils ne peuvent pas en faire.
- Éditeurs distants JetBrains Gateway, VS Code Remote SSH et Zed face à un serveur Pupitre.
- Services et mises à jour Ajouter, configurer, mettre à jour et retirer un module après la première installation.
- Sauvegardes Ce que contient une sauvegarde, la configuration de votre propre bucket S3, la passphrase, et la restauration d’un serveur.
- Accès aux adresses Qui peut ouvrir un projet publié, les clés d’accès, et comment un navigateur, une app ou un script les présentent.
Compte
Équipes, licence, sécurité, les questions qui reviennent, le dépannage et la désinstallation.
- Se connecter Comment on ouvre la console et l’app, les clés d’accès, le second facteur, et quoi faire quand un appareil est perdu.
- Équipes Organisations, membres, rôles, attribution d’un serveur à une personne, et révocation.
- Licence Les serveurs gratuits, la licence au-delà, ce qui compte comme un serveur, et ce qui arrive quand le droit d’utiliser Pupitre s’arrête.
- Sécurité Ce que Pupitre peut et ne peut pas faire sur votre serveur, et comment vérifier chaque affirmation.
- Questions Les questions qui reviennent, répondues sans détour.
- Dépannage Un serveur qui réclame une licence, le mode restreint, fail2ban qui bannit votre propre adresse, le mot de passe sudo de dev, une étape d’installation en échec, et où l’app écrit ses erreurs.
- Désinstaller Retirer un serveur de la console, l’agent du serveur, la ligne de l’app dans ~/.ssh/config, et l’app avec son dossier de données.