Mettre en ligne une appli Ruby on Rails et sa base PostgreSQL depuis votre agent IA, par MCP
Votre appli Rails quitte Heroku, ou n’y est jamais allée. Branché à while par MCP, votre agent IA la met en ligne en France, avec sa base PostgreSQL sauvegardée chaque jour, avec un Dockerfile de Rails tout prêt.
Par Aloïs Oddon, cofondateur de Nextmap. Faits relevés le 2 novembre 2026.
Prérequis
- Une appli Ruby on Rails 7.1 ou plus récente, avec son Gemfile.lock.
- Un agent IA qui travaille dans un terminal : Claude Code, Codex, Cursor ou Gemini CLI.
Étape 1 : Donnez ces instructions à votre agent
Ouvrez votre agent dans le dossier de votre appli, et collez-lui ces instructions :
Connecte-toi à while avec mon compte (while.sh/agents), puis mets mon appli en ligne.
Sans compte, votre agent met votre appli en ligne à l’essai, en une demande. Pour la garder, ouvrez le lien qu’il vous donne et créez votre compte.
Avec votre compte, votre agent ajoute lui-même le serveur MCP de while. S’il vous le demande, relancez-le. Au premier appel à while, une page s’ouvre dans votre navigateur. Dans Claude Code, si elle ne s’ouvre pas, tapez /mcp, choisissez while, puis Authenticate. Sur cette page, choisissez votre appli, ou « Une nouvelle appli », puis cliquez sur Autoriser.
Étape 2 : Ouvrez votre appli
Votre agent vous donne l’adresse de votre appli, par exemple https://mon-appli.while.cloud, en HTTPS.
Ce que fait votre agent
Il écrit while.yaml à la racine de votre appli :
apiVersion: while/v1
project: mon-appli
services:
- name: web
port: 8080
health:
path: /up
resources:
memory: 512Mi
databases:
- name: main
Rails est reconnu à son Gemfile, et votre agent reçoit un Dockerfile prêt à construire : plusieurs étages, les fichiers statiques précompilés, un utilisateur sans droits d’administration. Votre agent l’ajoute à votre appli. Si elle a déjà le Dockerfile de Rails, il l’adapte, en commençant par le port.
Au démarrage, bin/rails db:prepare crée la base ou applique les migrations2, puis Rails sert vos pages. La route /up de Rails dit à while que votre appli est prête1. Votre agent génère aussi la clé SECRET_KEY_BASE et la range dans le coffre de while. Avec Rails 8, il branche les bases de Solid Cache, Solid Queue et Solid Cable sur la même base PostgreSQL.
Régler Rails derrière PgBouncer
Vous, à votre agent : Vérifie que les migrations passent derrière PgBouncer.
DATABASE_URL passe par PgBouncer en mode transaction. Votre agent coupe les verrous consultatifs des migrations, que PgBouncer ne garde pas d’une transaction à l’autre :
production:
primary:
url: <%= ENV["DATABASE_URL"] %>
advisory_locks: false
Ajouter un worker Sidekiq
Vous, à votre agent : Ajoute un worker Sidekiq pour les envois d’e-mails.
Votre agent déclare un worker, avec la même image et la commande bundle exec sidekiq, et un cache compatible Redis pour sa file d’attente, branché avec son mot de passe. Il le déclare avec durable: true : les tâches en attente survivent à un redémarrage, et aucune n’est évincée quand la mémoire est pleine.
Interroger votre base depuis votre agent
Vous, à votre agent : Combien de commandes hier ?
Votre agent lit votre base en SQL par le serveur MCP de while, avec vos droits sur les données, sans pouvoir y écrire.
Sauvegarder avant une migration
Vous, à votre agent : Fais une sauvegarde avant la migration.
Votre agent lance une sauvegarde, aussitôt suivie d’un essai : une base jetable en naît, et ses tables sont relues. Chaque base est aussi sauvegardée tous les jours.
Réserver votre appli à vos collègues
Vous, à votre agent : Réserve l’appli aux personnes de l’entreprise.
Votre agent ajoute deux lignes au service :
access: internal
email_domains: [acme.fr]
Une fois votre Google Workspace ou Microsoft 365 relié à while, avec l’offre Pro, vos collègues l’ouvrent avec leur compte habituel, et votre code reçoit leur nom et leur adresse électronique, sans page de connexion à écrire.
Passer sur votre propre domaine
Vous, à votre agent : Mets l’appli sur app.acme.fr.
Votre agent déclare le domaine, vous ajoutez les enregistrements DNS qu’il vous donne, et le certificat HTTPS suit.
Corriger une faille dans vos dépendances
Vous, à votre agent : Corrige les failles de nos dépendances.
Les dépendances de votre appli sont comparées aux failles connues à chaque mise en ligne, puis chaque jour. Votre agent est prévenu d’une faille grave, et met à jour le paquet en cause.
Revenir à la version d’avant
Vous, à votre agent : Reviens à la version d’avant.
Dans les 30 minutes qui suivent une mise en ligne, la version d’avant revient en une seconde. Ensuite, en quelques secondes. Une fois la version d’avant revenue, votre agent lit ce qui a cassé dans les journaux de while, corrige et remet en ligne.
Dans la doc : Bases PostgreSQL, Cache Valkey (Redis), Accès interne, Domaine personnalisé, Versions et retour arrière et Failles des dépendances.
Prochaines étapes
Sources
- Ruby on Rails, la route /up (Rails::HealthController), consulté le 2 novembre 2026
- Ruby on Rails, préparer la base avec bin/rails db:prepare, consulté le 2 novembre 2026