Migration Odoo Online vers self-hosted sur VPS : guide complet (vécu)

En 2025, Agile Minds a migré son instance Odoo depuis Odoo Online (SaaS) vers un VPS self-hosted chez OVHcloud. Ce retour d’expérience détaille les raisons de cette migration, l’architecture mise en place, les problèmes rencontrés et la procédure complète, étape par étape.

Pourquoi quitter Odoo Online ?

Odoo Online est une excellente solution pour démarrer rapidement. Mais à mesure que votre entreprise grandit et vos besoins se complexifient, ses limites deviennent visibles :

  • Contrôle limité : pas d’accès SSH, pas de gestion fine du serveur, pas de cron personnalisé
  • Coût croissant : le prix par utilisateur s’accumule rapidement avec la croissance
  • Modules custom impossibles : Odoo Online n’accepte pas les modules tiers non certifiés
  • Accès API restreint : limitations sur les appels API et les webhooks
  • Performance : serveur mutualisé, pas de contrôle sur les ressources
  • Souveraineté des données : données hébergées hors de votre contrôle direct

L’architecture cible

Voici le stack technique mis en place chez Agile Minds :

Composant Choix technique Justification
Hébergeur OVHcloud VPS (Gravelines, France) Proximité, RGPD, rapport qualité/prix
OS Debian 12 (Bookworm) Stabilité, LTS, large communauté
Base de données PostgreSQL 18 Recommandé par Odoo, performance
Reverse proxy Traefik v3 SSL automatique, routing dynamique
SSL Let’s Encrypt (via Traefik) Gratuit, renouvellement automatique
Python Python 3.12 (venv) Isolation des dépendances
Sauvegarde pg_dump + snapshots OVHcloud Double sécurité
Monitoring Uptime Kuma Alertes en temps réel

Procédure de migration en 4 phases

Phase 1 : Préparation du serveur (Jour 1-2)

  1. Commander un VPS OVHcloud (8 vCPU, 22 GB RAM, SSD NVMe)
  2. Installer Debian 12 et sécuriser le serveur (SSH keys, fail2ban, firewall)
  3. Installer PostgreSQL 18 et configurer les accès
  4. Installer les dépendances Python (wkhtmltopdf, libs requises)
  5. Configurer Traefik v3 avec Let’s Encrypt

Phase 2 : Installation d’Odoo (Jour 3)

  1. Cloner le dépôt Odoo 19 Enterprise depuis GitHub
  2. Créer un environnement virtuel Python dédié
  3. Installer les dépendances Python (pip install -r requirements.txt)
  4. Configurer le fichier odoo.conf (ports, DB, workers, chemins)
  5. Créer le service systemd pour Odoo
  6. Tester le démarrage sur le port 8069

Phase 3 : Migration des données (Jour 4-5)

  1. Exporter la base depuis Odoo Online (menu Database Manager)
  2. Transférer le dump vers le VPS via SCP
  3. Restaurer la base dans PostgreSQL local
  4. Vérifier l’intégrité des données (comptabilité, contacts, stocks)
  5. Mettre à jour les paramètres système (URL, email sortant, etc.)
  6. Installer les modules custom nécessaires

Phase 4 : Mise en production (Jour 6)

  1. Configurer le DNS (odoo.agile-minds.be vers VPS)
  2. Activer le SSL via Traefik
  3. Configurer les workers Odoo pour la performance
  4. Mettre en place les sauvegardes automatiques (cron pg_dump)
  5. Tester l’ensemble des flux métier
  6. Basculer les utilisateurs

Problèmes rencontrés et solutions

Problème Cause Solution
Erreur wkhtmltopdf (PDF vides) Version incompatible dans les dépôts Debian Installer la version patched 0.12.6.1 depuis GitHub
Lenteur extrême au démarrage workers = 0 (mode mono-thread) Configurer workers = 4 et max_cron_threads = 2
CSS cassé sur le portail Assets non regénérés après migration Supprimer les assets compilés et relancer avec -u base
Emails sortants bloqués Port 25 bloqué par OVHcloud Utiliser le port 587 avec STARTTLS (Google Workspace)
Timeout Traefik sur gros rapports Timeout par défaut trop court Augmenter respondingTimeouts à 300s dans Traefik

Avant / Après : la comparaison

Aspect Odoo Online VPS Self-hosted
Coût mensuel (5 users) ~250 €/mois ~35 €/mois (VPS)
Modules custom Impossible Illimité
Accès serveur Aucun Root complet
Performance Variable (mutualisé) Constante (dédié)
API / webhooks Limités Illimités
Sauvegardes Quotidiennes (Odoo gère) Personnalisables (notre contrôle)
Temps de réponse moyen ~800 ms ~200 ms
Maintenance Zéro (Odoo gère) À notre charge

Notre verdict après 1 an

La migration a été le meilleur investissement technique d’Agile Minds. Le gain de performance, la liberté d’installer des modules custom (notamment pour l’intégration n8n et les agents IA) et la réduction des coûts justifient largement les 6 jours d’effort initial.

Conseil : si vous êtes une PME avec moins de 3 utilisateurs et des besoins standards, restez sur Odoo Online. Au-delà, la migration self-hosted mérite sérieusement d’être envisagée.

Besoin d’aide pour votre migration ? Contactez-nous.


Patrick Impens · CEO Agile Minds SRL · agile-minds.be