Guide de déploiement

Installer Windmill sur un VPS : automatisation self-hosted

Déployer sur un VPS Cloud →

Automatisation8 min de lecture

Installer Windmill sur un VPS : automatisation self-hosted

Windmill est une plateforme open source qui transforme du code (Python, TypeScript, Go, Bash, SQL) en workflows, API et interfaces internes. Pensée pour les développeurs, elle combine la souplesse du code et la rapidité du no-code. Self-hébergée sur un VPS, elle devient votre moteur d'automatisation et votre app builder interne, sans dépendre d'un SaaS.

Pourquoi self-héberger Windmill sur un VPS

Contrairement aux outils purement no-code, Windmill s'adresse aux équipes qui veulent écrire du vrai code mais sans réinventer l'orchestration, la gestion des secrets, les schedules et les UI. Vous déposez une fonction Python ou TypeScript, Windmill en déduit automatiquement un formulaire d'entrée, l'expose en API et l'ajoute au catalogue. Self-héberger sur un VPS a un intérêt particulier ici : vos scripts touchent souvent à des bases de données internes, des secrets sensibles et des réseaux privés. En gardant Windmill sur votre infrastructure, ces scripts s'exécutent au plus près de vos ressources, sans exposer vos credentials à un tiers. Le moteur est écrit en Rust, donc rapide et léger, et le projet est conçu pour le self-hosting dès le départ.

Bénéfices concrets du self-hosting

  • Code natif Python/TypeScript/Go/Bash versionné dans Git, pas de logique enfermée dans une UI propriétaire.
  • Gestion des secrets et variables chiffrés, accessibles uniquement depuis votre serveur.
  • Génération automatique d'UI et d'API à partir de vos fonctions, sans front à écrire.
  • Workers scalables : ajoutez des conteneurs worker pour absorber plus de jobs en parallèle.
  • Exécution au plus près de vos bases internes, latence minimale et réseau privé respecté.
  • Aucune limite d'exécutions imposée par un éditeur SaaS.

Prérequis techniques

Windmill repose sur PostgreSQL et un ou plusieurs workers. Pour une instance de production légère, prévoyez 2 vCPU et 4 Go de RAM ; le moteur Rust est sobre, mais chaque worker exécute du code utilisateur et peut consommer ponctuellement de la mémoire selon vos scripts. Comptez 4 vCPU / 8 Go si vous prévoyez plusieurs workers et des jobs Python lourds (data, pandas). Disque : 20 à 40 Go selon le cache des dépendances. Il vous faut Docker et Docker Compose, un domaine (windmill.votredomaine.ma), et les ports 80/443 ouverts. PostgreSQL est inclus dans le compose officiel.

Déployer Windmill avec Docker Compose

01

Initialiser le serveur

Sur le VPS, installez Docker (curl -fsSL https://get.docker.com | sh), créez /opt/windmill et placez-vous dedans. Vérifiez la mémoire disponible avec free -h avant de continuer.

02

Télécharger le compose et le .env

Récupérez le fichier de référence : curl -O https://raw.githubusercontent.com/windmill-labs/windmill/main/docker-compose.yml et le .env associé. Le compose définit le serveur, les workers et PostgreSQL.

03

Configurer base et URL de base

Dans le .env, fixez DATABASE_URL avec un mot de passe fort et BASE_URL=https://windmill.votredomaine.ma. Ajustez NUM_WORKERS selon vos vCPU (commencez à 2). Laissez le worker native pour les jobs légers.

04

Démarrer la stack

Lancez docker compose up -d. Windmill applique automatiquement ses migrations PostgreSQL au premier démarrage. Surveillez avec docker compose logs -f windmill_server jusqu'à l'apparition du message d'écoute.

05

Reverse proxy et HTTPS

Le compose inclut souvent un service Caddy. Sinon, ajoutez votre propre Caddy : windmill.votredomaine.ma { reverse_proxy windmill_server:8000 }. Caddy gère le certificat Let's Encrypt sans configuration supplémentaire.

06

Premier login et test de script

Connectez-vous avec les identifiants par défaut (admin@windmill.dev / changeme), changez immédiatement le mot de passe, créez un workspace, puis écrivez un script Python def main(name: str): return f'Hello {name}' pour vérifier l'auto-génération d'UI et l'exécution sur un worker.

Pour les scripts Python lourds, créez des workers dédiés à un tag (worker_tags=gpu ou heavy) et routez les jobs gourmands vers ces workers via le champ tag du script. Vous évitez ainsi qu'un job pandas n'occupe tous les workers et ne bloque les automatisations rapides. Windmill met aussi en cache les dépendances pip/npm dans un volume : montez-le sur un disque rapide pour accélérer drastiquement les premiers démarrages de jobs.

Un VPS Cloud taillé pour Windmill

Avec le VPS Cloud ServOrbit, vous disposez des vCPU et de la RAM nécessaires pour faire tourner serveur et workers Windmill, avec Docker prêt à l'emploi et SSL automatique. Idéal pour les équipes dev qui veulent leur propre plateforme d'automatisation par le code.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou écrivez à notre équipe — support en anglais, français et arabe.