Open-source marketing automation does not have to mean giving up your data to a SaaS vendor. Mautic puts email campaigns, contact tracking, and lead nurturing under your own roof. Running it on Ubuntu 24.04 takes more effort than signing into HubSpot, but the reward is full control over your stack, your costs, and your customer data. You decide when to update, how to scale, and where your information lives.
Before you start, point a domain at your server and make sure your Ubuntu 24.04 instance has at least 2 GB of RAM. Mautic is not lightweight; PHP will consume memory when it rebuilds large segments or processes campaign logic. If you plan to send to thousands of contacts, 4 GB makes the experience far smoother.
Build the LEMP Foundation
Mautic expects a LEMP stack: Nginx, MySQL, and PHP. On Ubuntu 24.04, the default PHP version is 8.3, which works well with current Mautic releases. Start by updating your package list, then install Nginx and MySQL Server. After that, pull in PHP-FPM and the exact extensions Mautic needs:
- php-fpm
- php-mysql
- php-imap
- php-curl
- php-gd
- php-xml
- php-mbstring
- php-zip
- php-intl
- php-bcmath
Each extension serves a real purpose. The IMAP extension reads bounce messages and unsubscribe replies. GD handles image processing for thumbnails. Mbstring and Intl manage character sets and translations across languages. BCMath gives you precise math for lead scoring and currency calculations. Do not skip any of them, or the installer will complain halfway through.
If Apache is already installed, remove it. Both web servers want port 80 and 443. Running them side by side causes silent failures that are frustrating to debug. A clean apt remove apache2 followed by apt autoremove prevents that headache entirely.
Tune PHP and the Database
Mautic’s installer and background jobs are memory-hungry. Open your PHP-FPM configuration file, located at /etc/php/8.3/fpm/php.ini, and raise the memory limit to 512 MB. Set the upload size to 50 MB so you can import contact lists and asset bundles without hitting arbitrary walls. After saving, restart PHP-FPM to apply the changes. While you are at it, bump post_max_size to match your upload limit; otherwise PHP rejects large multipart form submissions even when upload_max_filesize looks correct.
Next, create a dedicated MySQL database and user. Call the database whatever you like, but keep the username and password in a password manager. Mautic stores every contact action, campaign decision, and email open event in these tables, so granting broad privileges to a single-purpose account limits exposure if something else on the server is compromised.
Install Mautic and Its Tooling
Download the latest stable Mautic release and extract it into /var/www/html/mautic. Set the directory owner to www-data so the web server can write cache files, logs, and local configuration updates. On Ubuntu, that means running chown -R www-data:www-data /var/www/html/mautic.
You also need Composer and npm installed on the server. Composer resolves PHP dependencies, and even if you deploy from the pre-built release archive, you will need Composer later when adding marketplace plugins or running manual updates. Npm matters if you ever customize themes or build frontend assets from source. Having both tools ready now saves you from scrambling when the project evolves.
Configure Nginx and Lock It Down
Your Nginx virtual host should point its root directory to /var/www/html/mautic and treat index.php as the default index. Route PHP requests to the Unix socket that PHP-FPM opens, typically at /run/php/php8.3-fpm.sock. A solid server block includes a try_files directive that falls back to the front controller, plus a location block that denies access to hidden files starting with a dot. Mautic ships with .htaccess files meant for Apache, but Nginx ignores them, so explicit deny rules in your virtual host keep your logs and temp directories private.
Before you run the web-based installer, get a TLS certificate. Use Certbot with the Nginx plugin to pull a free Let’s Encrypt certificate and automatically rewrite your HTTP traffic to HTTPS. Mautic handles login credentials and contact data; there is no excuse for serving it over plain text.
Cron Jobs Are the Engine
Cette étape est non négociable. Sans tâches planifiées, Mautic n'est qu'un tableau de bord qui ne fait rien. L'application met en file d'attente les actions de campagne, l'envoi d'e-mails et le recalcul des segments dans la base de données, puis s'appuie sur la ligne de commande pour les traiter.
Configurez des tâches cron pour l'utilisateur Mautic afin de gérer ces tâches de fond :
- Mise à jour des segments
- Exécution des campagnes
- Envoi d'e-mails
- Récupération des bounces
En pratique, cela signifie invoquer les commandes de la console Mautic à différents intervalles. La reconstruction des segments peut s'effectuer toutes les heures. Les déclencheurs de campagne et le traitement de la file d'attente des e-mails nécessitent généralement une fenêtre plus courte, toutes les cinq à quinze minutes selon le volume. La récupération des bounces via IMAP doit s'exécuter assez régulièrement pour que votre réputation d'expéditeur ne pâtisse pas de plaintes pour spam non traitées. Surveillez votre syslog ou la sortie cron pour confirmer qu'ils se terminent sans erreurs de mémoire.
Utilisation de la plateforme
Une fois l'installation terminée et que les cron tournent correctement, connectez-vous au tableau de bord. L'interface s'articule autour de trois piliers : les contacts, les segments et les campagnes.
Utilisez le constructeur de campagne par glisser-déposer pour concevoir des flux de travail (workflows) d'e-mails. Un nouvel abonné entre dans le flux, attend un jour, reçoit un message de bienvenue, puis bifurque selon qu'il a cliqué sur un lien ou non. Pendant ce temps, le système de Points (Points system) attribue discrètement des scores aux leads lorsqu'ils visitent les pages de tarification ou ouvrent les annonces de produits. Vous déterminez les seuils qui signalent un lead chaud méritant un appel commercial.
Les segments regroupent automatiquement les contacts selon des règles que vous définissez. Vous pourriez segmenter tous ceux qui ont ouvert une campagne au cours des trente derniers jours, ou isoler les contacts d'un pays spécifique. Les formulaires présents sur vos pages de destination alimentent directement ces segments. Reliez les éléments entre eux et vous obtiendrez une séquence de nurturing automatisée qui réagit au comportement plutôt que d'envoyer le même message en masse à toute votre liste.
Le vrai travail après le déploiement
Installer Mautic sur Ubuntu 24.04 n'est que le début. Sauvegardez votre base de données et votre répertoire /var/www/html/mautic avant chaque mise à jour. Surveillez les journaux d'erreurs PHP lors de l'installation de nouveaux plugins. Testez la sortie cron lorsque vous augmentez la taille de votre liste de contacts, car une tâche qui se termine en quelques secondes avec mille contacts peut expirer (time out) avec cinquante mille.
L'auto-hébergement sacrifie la commodité d'un SaaS géré au profit de la souveraineté sur vos données marketing. Il n'y a pas de dépendance vis-à-vis d'un fournisseur (vendor lock-in), pas de surprises de tarification par contact, et aucun tiers ne détient vos analyses en otage. Vous possédez le serveur, la base de données et la relation avec votre audience. Pour les équipes prêtes à maintenir une machine Linux et quelques expressions cron, ce compromis en vaut généralement la peine.
