Guide de déploiement

Héberger Mautic sur un VPS : automation marketing open-source

Déployer sur un VPS Cloud →

Tutoriel

Self-hosting

Héberger Mautic sur un VPS : automation marketing open-source

Mautic est la principale plateforme d'automatisation marketing open-source : campagnes email, lead scoring, segmentation comportementale, pages de destination, formulaires et intégrations CRM. Auto-hébergée sur un VPS, elle offre les fonctionnalités de HubSpot ou ActiveCampaign au coût du serveur — sans frais par contact, sans limite de liste, sans clause de prix croissant avec votre succès. Attention : Mautic 5.2 LTS a atteint sa fin de support de sécurité le 30 juin 2026. La version active est désormais Mautic 7.2.1 « Absolunto Edition ».

11 min de lecture6 étapes
Sommaire· Pourquoi self-héberger Mautic plutôt que de payer un SaaS marketing1/9
  1. 01Pourquoi self-héberger Mautic plutôt que de payer un SaaS marketing
  2. 02Ce que vous obtenez avec Mautic self-hosted
  3. 03⚠ Mautic 5.2 LTS en fin de vie — passez à Mautic 7
  4. 04Architecture Docker de Mautic 7 : même modèle multi-rôle, image mise à jour
  5. 05Installer Mautic sur votre VPS ServOrbit
  6. 06Cas d'usage : remplacement de Mailchimp pour une PME
  7. 07Performance : workers, queues et commandes planifiées
  8. 08Dépannage : erreurs courantes
  9. 09Compatibilité MySQL 8 : HTTP 500 sur les rapports et le mode ONLY_FULL_GROUP_BY

Pourquoi self-héberger Mautic plutôt que de payer un SaaS marketing

Un SaaS marketing facture la seule chose que vous ne maîtrisez pas : la taille de votre liste. Mailchimp facture par palier de contacts — comptez 110 à 350 $ par mois pour 10 000 contacts, 385 à 815 $ pour 50 000, d'Essentials à Premium — et chaque palier plafonne AUSSI ce que vous avez le droit d'envoyer : 10 fois votre nombre de contacts sur Essentials, 12 fois sur Standard, 15 fois sur Premium. La liste grossit, et la facture comme le plafond se retournent contre vous. Brevo et ActiveCampaign facturent sur le même axe. (Le prix affiché en euros n'est qu'une conversion : la référence contractuelle de Mailchimp est le dollar.)

Mautic supprime cet axe. Vous payez le serveur, et rien d'autre : l'addition est la même que la base porte 5 000 contacts ou 500 000. Le palier VPS d'entrée de gamme de ServOrbit (2 vCPU, 4 Go de RAM, 50 Go de SSD, à partir de nos offres d'entrée de gamme) fait tourner une pile Mautic sans se plaindre. Vos données restent sur votre infrastructure — aucun hébergeur SaaS ne les analyse pour ses propres fins.

La plateforme est publiée sous licence GPL-3.0. Son hôte fiscal est l'Open Source Collective — qui détient la marque MAUTIC et les domaines pour le compte du projet — et sa conduite revient à un Mautic Council élu. Il n'y a pas non plus d'édition gratuite bridée à contourner : Mautic n'est pas la version amputée d'un produit payant.

Ce que vous obtenez avec Mautic self-hosted

  • Constructeur de campagnes visuel — branchements conditionnels, délais temporels et déclencheurs d'événements, sur une toile où le parcours se lit d'un coup d'œil.
  • Lead scoring — attribution de points pour les ouvertures, les clics, les visites de pages et les soumissions de formulaires, avec des seuils qui déclenchent une action.
  • Segmentation dynamique — filtres sur n'importe quel attribut de contact, réévalués à chaque passage des commandes planifiées.
  • Pages de destination et formulaires — hébergés sur votre domaine, sans dépendance externe ni script tiers chargé chez vos visiteurs.
  • REST API complète — intégration avec vos applications, votre CRM et vos outils par webhooks, dans les deux sens.
  • Licence GPL-3.0 — sans plafond de contacts, aucun frais par email, aucune clause de rétention propriétaire sur vos données.

⚠ Mautic 5.2 LTS en fin de vie — passez à Mautic 7

Mautic 5.2 LTS a atteint sa fin de support de sécurité le 30 juin 2026. Aucun correctif de sécurité ne sera publié pour cette branche. Si votre instance tourne encore sur la ligne 5.2.x, vous exposez votre serveur et les données de vos contacts.

La version active est Mautic 7.2.1 « Absolunto Edition » (Mautic 7 bénéficie d'un cycle de support actif de quatre ans, soit jusqu'en 2030 environ). Mautic 6 était une version intermédiaire à cycle court, désormais elle aussi dépassée.

Chemin de migration. La mise à jour directe de 5.2 vers 7.x n'est pas supportée. Le chemin officiel est séquentiel :
1. Mautic 5.2 → Mautic 6.x (dernière version mineure 6.x stable)
2. Mautic 6.x → Mautic 7.x

Avant toute migration : sauvegardez l'intégralité du volume mautic_data et du volume mautic_db. Testez sur un environnement staging. Vérifiez la compatibilité de vos plugins tiers avec Mautic 7.

Architecture Docker de Mautic 7 : même modèle multi-rôle, image mise à jour

Mautic 7.x conserve le modèle multi-rôle introduit en version 5 : la même image Docker s'instancie trois fois sous des valeurs différentes de DOCKER_MAUTIC_ROLE :

- mautic_web : la façade Apache — elle sert l'assistant d'installation, puis le tableau de bord
- mautic_cron : exécute les commandes planifiées (reconstruction des segments, déclenchement des campagnes, envoi de la file, nettoyage, statistiques)
- mautic_worker : consomme la file de messages asynchrones (tracking, webhooks, notifications)

Un quatrième conteneur, MySQL 8.0, stocke les contacts, les campagnes et les événements. Les trois conteneurs Mautic partagent un volume commun (mautic_data:/var/www/html) pour que la configuration écrite par l'assistant soit immédiatement visible des rôles cron et worker.

Le rôle cron est celui qu'on sous-estime. Mautic n'envoie rien depuis la requête web : une campagne publiée ne part que parce que mautic:campaigns:trigger et mautic:emails:send tournent à intervalle régulier. Arrêtez ce conteneur et l'interface continuera d'afficher la campagne comme publiée pendant que rien ne quitte le serveur — une panne qui ressemble à un problème de délivrabilité sans en être un.

Mautic 7 requiert PHP 8.1 ou supérieur et MySQL 8.0 / MariaDB 10.4 minimum. Le correctif du rapport ONLY_FULL_GROUP_BY (issue #17092) est intégré depuis Mautic 7.2.0 — si vous migrez vers la 7.2.1 ou ultérieur, le contournement décrit en dernière section n'est plus nécessaire.

Installer Mautic sur votre VPS ServOrbit

  1. Déployer depuis le Marketplace

    Dans votre espace client ServOrbit, ouvrez Marketplace → Automatisation & Workflows → Mautic et cliquez sur Déployer. Le playbook AWX provisionne Ubuntu 24.04, installe Docker, génère le mot de passe MySQL, démarre les quatre conteneurs et configure nginx en reverse proxy sur votre domaine. Le conteneur Apache n'écoute que sur la boucle locale : il n'est jamais exposé directement à Internet.

  2. Compléter l'assistant d'installation Mautic

    Ouvrez votre domaine dans le navigateur. Mautic redirige vers l'assistant /s/setup. Renseignez l'URL du site, vérifiez la connexion à la base (déjà pré-remplie depuis l'environnement du compose), créez votre compte administrateur et validez. Soignez l'URL du site dès le premier passage : les pixels de tracking, les pages de destination et les liens de désinscription sont tous construits à partir d'elle.

  3. Configurer votre relay SMTP

    Allez dans Paramètres → Paramètres email et choisissez votre fournisseur SMTP : Amazon SES, Mailgun, Brevo (palier gratuit à 300 emails par jour) ou Postmark. Deux choses à savoir sur SES avant de bâtir un budget. D'abord, son tarif de référence est de 0,10 $ par tranche de 1 000 emails — pas « moins de » — et il se facture PAR DESTINATAIRE, pas par message : un envoi à 100 destinataires compte pour 100 emails. Ensuite, ce tarif est celui de la formule à la carte : un compte SES neuf démarre sur la formule Essentials, à 0,16 $ par tranche de 1 000, et c'est à vous de basculer en à-la-carte. Cliquez ensuite sur Tester l'email et confirmez la réception avant de toucher à une campagne.

  4. Configurer SPF, DKIM et DMARC

    Avant le premier envoi, ajoutez les trois enregistrements DNS pour votre domaine d'envoi. SPF déclare les serveurs autorisés à envoyer en votre nom : ajoutez un enregistrement TXT v=spf1 include:<votre-relay.exemple> -all. DKIM signe chaque message : générez une paire de clés dans votre relay SMTP, publiez la clé publique en TXT sous default._domainkey.votredomaine.com et activez la signature dans Mautic (Paramètres → Paramètres email → DKIM). DMARC coordonne les deux : ajoutez v=DMARC1; p=none; rua=mailto:[email protected] pour commencer à collecter les rapports, puis montez progressivement vers p=quarantine puis p=reject. Sans ces trois enregistrements alignés, Gmail et Outlook rejettent vos campagnes dès 5 000 envois par jour.

  5. Créer un segment et importer vos contacts

    Dans Segments → Nouveau segment, définissez vos critères de filtrage. Dans Contacts → Importer, téléversez votre CSV et mappez les colonnes Email, Prénom et Nom vers les champs Mautic. Activez le double opt-in si votre audience est basée en UE ou au Maroc.

  6. Construire et publier votre première campagne

    Dans Campagnes → Nouvelle campagne, glissez une source (votre segment) sur le canevas, ajoutez une action Envoyer un email, définissez un délai de 24 heures, puis un email de suivi conditionnel. Publiez, et laissez les conteneurs cron et worker écouler la file d'envoi en arrière-plan.

SPF, DKIM et DMARC ne sont pas optionnels avant votre premier envoi. Sans eux, vos campagnes atterrissent en spam chez Gmail et Outlook — un problème que le relay SMTP seul ne règle pas, puisqu'il tient à ce que votre DOMAINE déclare, pas à la qualité du serveur d'envoi. Notre guide [SPF/DKIM/DMARC](/blog/spf-dkim-dmarc-delivrabilite-emails-pro) détaille la configuration DNS étape par étape.

Cas d'usage : remplacement de Mailchimp pour une PME

Une agence marketing gérant des listes pour 15 clients — 80 000 contacts au total — payait 620 €/mois à Mailchimp. Le passage à Mautic self-hosted sur un VPS de 4 Go de RAM a remplacé cette facture par le coût d'un seul serveur d'entrée de gamme, soit plus de 7 000 € retirés du budget annuel.

La migration a pris deux jours : export CSV depuis Mailchimp, import dans Mautic, puis reconstruction des automatismes dans le constructeur de campagnes. Les templates email HTML ont été importés depuis Mailchimp sans modification. La délivrabilité est restée comparable parce que Mailgun a été conservé comme relay SMTP — la réputation d'envoi suit le relay, pas la plateforme posée devant lui.

Une chose qu'un export CSV ne transporte pas, en revanche, c'est l'historique d'engagement. Les ouvertures, les clics et les visites de pages restent chez Mailchimp : chaque contact importé arrive donc dans Mautic avec un score de zéro, et tout segment fondé sur un comportement passé doit être regagné à partir de la première campagne. Prévoyez ce premier envoi comme une vague de réengagement, pas comme la reprise à l'identique de ce qui tournait avant.

Performance : workers, queues et commandes planifiées

Par défaut, le conteneur mautic_worker tourne avec un seul processus consommateur. Pour des volumes supérieurs à 20 000 envois par jour, augmentez le nombre de workers via la variable d'environnement MAUTIC_MESSENGER_CONSUMER_LIMIT et ajustez MAUTIC_MESSENGER_WORKER_SLEEP pour réduire le délai d'inactivité.

Les commandes cron critiques et leur fréquence recommandée :

- mautic:segments:update — toutes les 5 minutes (reconstruction des segments dynamiques)
- mautic:campaigns:trigger — toutes les 5 minutes (déclenche les événements de campagne)
- mautic:emails:send — toutes les 5 minutes (évacue la file d'envoi)
- mautic:emails:fetch — toutes les 10 minutes (traite les bounces IMAP)
- mautic:import — toutes les 5 minutes (reprend les imports en attente)
- mautic:dnc:import — quotidien (synchronise les listes de désinscription)

Si le conteneur mautic_cron n'exécute pas ces commandes, les campagnes publiées ne partent pas. C'est la première chose à vérifier quand les envois semblent bloqués : docker logs mautic_cron --tail 50.

Dépannage : erreurs courantes

Les emails ne partent pas — campagne bloquée. Première cause : le conteneur mautic_cron ne tourne pas ou n'exécute pas mautic:emails:send. Vérifiez avec docker ps que le conteneur est Up, puis docker logs mautic_cron --tail 100 pour voir les dernières exécutions. Deuxième cause : le relay SMTP est mal configuré ou en erreur silencieuse. Allez dans Paramètres → Paramètres email → Tester l'email et lisez l'erreur retournée.

Erreur 500 sur les rapports. Si vous tournez encore sur Mautic 5.2 avec MySQL 8.0, le mode ONLY_FULL_GROUP_BY cause des erreurs SQL 1055 sur les rapports groupés. Voir la section dédiée ci-dessous. Sur Mautic 7.2.0+, ce problème est résolu nativement.

Tracking pixels non comptés. Vérifiez que l'URL du site dans Mautic correspond exactement au domaine servi (https, pas http ; sans barre oblique finale). Le pixel de tracking est construit à partir de cette URL — une incohérence empêche les retours de tracking.

Import CSV bloqué. Le fichier CSV doit être encodé UTF-8, sans BOM. Sur les imports larges (> 10 000 lignes), Mautic traite par lot via mautic:import — vérifiez que le cron tourne bien.

Formulaires ne soumettent pas. Vérifiez la politique CORS si le formulaire est intégré sur un domaine différent. Mautic 7 requiert que les domaines autorisés soient listés dans Paramètres → Configuration → CORS.

Compatibilité MySQL 8 : HTTP 500 sur les rapports et le mode ONLY_FULL_GROUP_BY

Note : ce problème est résolu dans Mautic 7.2.0+. Si vous avez migré, vous pouvez ignorer cette section. Pour les instances encore sur Mautic 5.2.x :

Certains rapports Mautic rendent un HTTP 500 dès qu'on les ouvre — typiquement un rapport « Page hits » qui regroupe (Group by) et ajoute une colonne COUNT. Le symptôme est discret : page de rapport blanche, rien dans le journal applicatif de Mautic, aucun message d'erreur explicite dans l'interface.

Diagnostic. Le mode SQL ONLY_FULL_GROUP_BY rejette les requêtes SELECT dont les colonnes non agrégées ne figurent pas dans la clause GROUP BY. MySQL répond par l'erreur 1055. Interrogez le serveur avec :

SHOW GLOBAL VARIABLES LIKE 'sql_mode';

Contournement A — persister la modification. SET PERSIST sql_mode = (SELECT REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY', '')) écrit dans mysqld-auto.cnf du data directory (volume mautic_db) et survit aux redémarrages du conteneur. Ou ajoutez command: --sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES sur le service db du fichier compose.

Contournement B — passer à MariaDB. MariaDB n'active pas ONLY_FULL_GROUP_BY par défaut, et Mautic 5 accepte MariaDB 10.2 et au-delà. Ce changement de moteur nécessite un dump et un rechargement de la base.

Déployez Mautic sur votre VPS ServOrbit

Avec le VPS Cloud ServOrbit, votre instance Mautic est opérationnelle en quelques minutes : Docker préconfigurée, reverse proxy nginx, SSL automatique et MySQL 8.0. Aucun frais par contact, aucune limite d'envoi — vous ne payez que le serveur.