Deployment guide

Self-host Mautic on a VPS: open-source marketing automation

Deploy on a VPS Cloud →

Self-hosting6 min read

Self-host Mautic on a VPS: open-source marketing automation

Mautic is the leading open-source marketing automation platform: email campaigns, lead scoring, behavioural segmentation, landing pages, forms and CRM integrations. Self-hosted on a VPS, it delivers the features of HubSpot or ActiveCampaign at the cost of the server — no per-contact fees, no list limits, no price escalation tied to your success.

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

01

Deploy from the Marketplace

Marketplace -> Automation & Workflows -> Mautic -> Deploy. AWX provisions Ubuntu 22.04, installs Docker, generates MySQL password and starts all four containers.

02

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.

03

Configure your SMTP relay

Settings -> Email Settings. Choose Amazon SES, Mailgun, Brevo or Postmark. Test before any campaign.

04

Create a segment and import your contacts

Segments -> New Segment. Contacts -> Import with CSV mapping. Enable double opt-in for EU/Moroccan audiences.

05

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.

Deploy Mautic on your ServOrbit VPS

With a ServOrbit Cloud VPS, your Mautic instance is up in minutes: pre-configured Docker, nginx reverse proxy, automatic SSL and MySQL 8.0. No per-contact fees, no sending limits — you only pay for the server.

Need help?

Browse our help center and FAQ, or reach our team — callback, WhatsApp or email. Support in French, English and Arabic.