Why self-host Mautic instead of paying for a marketing SaaS
Mailchimp charges around 110–170 €/month for a 10,000-contact list. On a 50,000-contact list, marketing SaaS can easily cost 500 à 1 000 €/month. Mautic eliminates this model: you pay only for the server (typically 10–20 €/month on ServOrbit), with no contact cap and no sending volume limit.
What you get with self-hosted Mautic
- Visual campaign builder — conditional branches, time delays and event triggers.
- Lead scoring — points for opens, clicks, page visits and form submissions.
- Dynamic segmentation — filters on any contact attribute, updated in real time.
- Landing pages and forms — hosted on your domain, without external dependencies.
- Full REST API — integrate with your apps, CRM and tools via webhooks.
- GPL-3.0 licence — no contact cap, no per-email fees, no proprietary retention clause.
Mautic 5 Docker architecture: four containers, one image
The same Docker image (mautic/mautic:5.2.3-apache) instantiates into three distinct roles via DOCKER_MAUTIC_ROLE: mautic_web (Apache interface), mautic_cron (scheduled tasks) and mautic_worker (async message queue). A fourth instance, MySQL 8.0, stores contacts, campaigns and events.
Installing Mautic on your ServOrbit VPS
Deploy from the Marketplace
Marketplace -> Automation & Workflows -> Mautic -> Deploy. AWX provisions Ubuntu 22.04, installs Docker, generates MySQL password and starts all four containers.
Complete the Mautic installation wizard
Open your domain in the browser. Mautic redirects to /s/setup. Enter site URL, verify database connection, create admin account.
Configure your SMTP relay
Settings -> Email Settings. Choose Amazon SES, Mailgun, Brevo or Postmark. Test before any campaign.
Create a segment and import your contacts
Segments -> New Segment. Contacts -> Import with CSV mapping. Enable double opt-in for EU/Moroccan audiences.
Build and publish your first campaign
Campaigns -> New Campaign. Drag source onto canvas, add email action, set delays, add conditional follow-up. Publish.
SPF, DKIM and DMARC are essential before your first send. Without them, your campaigns land in spam at Gmail and Outlook. Our SPF/DKIM/DMARC guide details the DNS configuration step by step.
Use case: replacing Mailchimp for an SMB
A marketing agency managing 80,000 contacts was paying 620 €/month on Mailchimp. After migrating to self-hosted Mautic on a 4 GB RAM VPS, the bill dropped to 19 €/month (VPS cost only) — a saving of over 7,200 €/year. The migration took two days: export contacts to CSV, import into Mautic, reconfigure automation rules and SMTP relay.
MySQL 8 compatibility: HTTP 500 on reports and ONLY_FULL_GROUP_BY mode
Mautic on MySQL 8.4 throws an HTTP 500 error when viewing certain reports. The ONLY_FULL_GROUP_BY SQL mode has been enabled by default since MySQL 8.0. Confirm with SHOW GLOBAL VARIABLES LIKE 'sql_mode'. If affected (issue #17092):
Fix A — disable globally: SET GLOBAL sql_mode = (SELECT REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY', '')); then make permanent in /etc/mysql/my.cnf.
Fix B — migrate to MariaDB 10.x which does not enable this mode by default. ServOrbit templates based on MariaDB 10.11 are not affected.