[{"data":1,"prerenderedAt":214},["ShallowReactive",2],{"seo-verification":3,"blog-migrating-from-mailchimp-to-self-hosted-mautic-on-vps-en":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-migrating-from-mailchimp-to-self-hosted-mautic-on-vps-en",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":32,"intro":35,"sections":36,"ctaTitle":154,"ctaBody":155,"ctaButton":156,"ctaUrl":157,"relatedPosts":158},355,"migrating-from-mailchimp-to-self-hosted-mautic-on-vps",{"fr":12,"en":10,"ar":13,"es":14},"migrer-mailchimp-vers-mautic-self-hosted-vps","الانتقال-من-mailchimp-إلى-mautic-على-vps","migrar-de-mailchimp-a-mautic-autoalojado-en-vps","Migrating from Mailchimp to self-hosted Mautic on VPS","Export your Mailchimp lists, import them into self-hosted Mautic on a VPS and configure SPF, DKIM and DMARC before your first send. Complete guide.",9,0,false,"2026-09-17T00:00:00+00:00","2026-09-17T14:09:37+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},11,"Business Email","emails","bg-cyan-500\u002F10 text-cyan-400",[28],{"id":23,"name":24,"slug":25,"color":26,"icon":25},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fmigrer-mailchimp-vers-mautic-self-hosted-vps-poster.svg",{"categorySlug":33,"appSlug":34},"automation-workflows","mautic","Every new Mailchimp pricing tier means a higher invoice, regardless of how active your contacts actually are. Mautic, deployed on a VPS, removes that ceiling: you manage your lists, automations and sender reputation on your own infrastructure. This guide covers the export from Mailchimp, the Docker installation of Mautic, the segmented import and the DNS configuration before the first send.",[37,41,51,54,73,91,109,112,116,119,151],{"type":38,"title":39,"body":40},"h2","Why leave Mailchimp now","Mailchimp bills by tiers of active contacts. An unsubscribed contact still counts in your total until manually deleted, and the upgrade to the next tier triggers automatically as soon as the list crosses the threshold. For an agency managing ten clients, each list is a separate subscription: the total quickly exceeds what the service justifies.\n\nMautic is an open-source marketing automation platform. Deployed on a VPS, it has no contact ceiling and no software surcharge. You keep full access to your data, you choose the sending server and you control the entire DNS authentication configuration.",{"type":42,"title":43,"items":44},"ul","Concrete benefits of self-hosted Mautic",[45,46,47,48,49,50],"**Predictable cost** — the VPS costs `{{vps.start.price}}` per month, regardless of the number of contacts or sends.","**Full data control** — lists, segments and engagement history stay on your infrastructure; no third-party provider accesses them.","**Simplified GDPR compliance** — a single sub-processor (your VPS host), no transfers to undeclared non-EU servers.","**Dedicated IP reputation** — your sending IP address is not shared with thousands of other senders, eliminating neighbourhood effects on deliverability.","**No cap on automations** — workflows, lead scoring, embedded forms, A\u002FB testing: no feature is gated behind a paid tier.","**Native integration** — REST API, webhooks, CRM connectors: Mautic integrates with existing tools at no extra cost.",{"type":38,"title":52,"body":53},"Minimum requirements","Mautic requires at least 2 vCPU and 2 GB of RAM for a modest-sized list. For lists above 50,000 contacts or frequent sends, plan for 4 vCPU and 4 GB of RAM. The `{{vps.start.name}}` plan is sufficient to get started; the `{{vps.power.name}}` plan is recommended for higher volumes.\n\nRequired software: Docker and Docker Compose (included in ServOrbit VPS images), a domain pointed at the VPS, a MySQL 8 or MariaDB 10.6+ database (provided in the Docker stack below).\n\nPlan a dedicated subdomain for Mautic, for example `mailing.your-domain.com`, separate from the main domain. This makes managing the DNS authentication records easier without risking changes to your website's records.",{"type":55,"title":56,"steps":57},"steps","Exporting contacts from Mailchimp",[58,61,64,67,70],{"title":59,"body":60},"Access the list to export","In Mailchimp, click **Audience** in the left sidebar, then select **All contacts**. If you manage multiple audiences, repeat the process for each one.",{"title":62,"body":63},"Launch the CSV export","Click **Export Audience** (button in the top right), then choose **Export as CSV**. Mailchimp prepares the file and sends you a download link by email. Download the file and open it in a spreadsheet to check the columns.",{"title":65,"body":66},"Identify the columns to keep","The Mailchimp CSV typically includes: `Email Address`, `First Name`, `Last Name`, `MEMBER_RATING`, `OPTIN_TIME`, `OPTIN_IP`, `CONFIRM_TIME`, `UNSUB_REASON`, `TAGS`. For Mautic, the essential columns are `Email Address`, `First Name`, `Last Name` and any custom fields you have defined.",{"title":68,"body":69},"Filter out unsubscribed contacts","The Mailchimp CSV contains all statuses: `subscribed`, `unsubscribed`, `non-subscribed`, `cleaned`. Filter on `subscribed` before importing into Mautic to avoid importing contacts who have requested to unsubscribe.",{"title":71,"body":72},"Prepare one file per segment if needed","If Mailchimp manages multiple segments or tags on the same audience, export segments separately (filter by **Tag** in the Contacts view, then export). This makes it easier to recreate segments in Mautic at import time.",{"type":55,"title":74,"steps":75},"Installing Mautic via Docker on a VPS",[76,79,82,85,88],{"title":77,"body":78},"Create the project folder and docker-compose.yml","Connect to your VPS via SSH and create a dedicated folder:\n\n```bash\nmkdir -p \u002Fopt\u002Fmautic && cd \u002Fopt\u002Fmautic\n```\n\nCreate the `docker-compose.yml` file with the following content:\n\n```bash\nversion: '3.8'\nservices:\n  db:\n    image: mysql:8.0\n    restart: unless-stopped\n    environment:\n      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}\n      MYSQL_DATABASE: mautic\n      MYSQL_USER: mautic\n      MYSQL_PASSWORD: ${DB_PASSWORD}\n    volumes:\n      - db_data:\u002Fvar\u002Flib\u002Fmysql\n\n  mautic:\n    image: mautic\u002Fmautic:5\n    restart: unless-stopped\n    depends_on:\n      - db\n    ports:\n      - \"8080:80\"\n    environment:\n      MAUTIC_DB_HOST: db\n      MAUTIC_DB_USER: mautic\n      MAUTIC_DB_PASSWORD: ${DB_PASSWORD}\n      MAUTIC_DB_NAME: mautic\n      MAUTIC_TRUSTED_PROXIES: \"0.0.0.0\u002F0\"\n    volumes:\n      - mautic_data:\u002Fvar\u002Fwww\u002Fhtml\n\nvolumes:\n  db_data:\n  mautic_data:\n```",{"title":80,"body":81},"Create the environment variables file","Create the `.env` file in the same folder:\n\n```bash\nDB_ROOT_PASSWORD=strong-root-password\nDB_PASSWORD=strong-mautic-password\n```\n\nReplace the values with long random passwords. Never commit this file to a repository.",{"title":83,"body":84},"Start the containers","Launch the stack:\n\n```bash\ndocker compose up -d\n```\n\nWait one minute, then check that the containers are running:\n\n```bash\ndocker compose ps\n```\n\nBoth the `db` and `mautic` services should show the `running` state.",{"title":86,"body":87},"Configure the nginx reverse proxy","Create an nginx vhost pointing to port 8080 and add SSL via Certbot. Minimal example for `mailing.your-domain.com`:\n\n```bash\nserver {\n    listen 80;\n    server_name mailing.your-domain.com;\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:8080;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}\n```\n\nThen obtain the SSL certificate:\n\n```bash\ncertbot --nginx -d mailing.your-domain.com\n```",{"title":89,"body":90},"Complete the installation via the web interface","Open `https:\u002F\u002Fmailing.your-domain.com` in a browser. The Mautic installation wizard asks you to confirm the database settings (pre-filled from the environment variables) and to create the administrator account. Store the credentials in a password manager.",{"type":55,"title":92,"steps":93},"Importing contacts into Mautic",[94,97,100,103,106],{"title":95,"body":96},"Access the import in Mautic","In the Mautic interface, click **Contacts** in the top menu, then click the **Import** button (upload icon, top right of the contacts list).",{"title":98,"body":99},"Upload the CSV file","Select the CSV file filtered to `subscribed` contacts. Mautic accepts UTF-8 CSV files. If your file contains special characters (accented letters, Arabic), verify the encoding before importing.",{"title":101,"body":102},"Map the columns","Mautic shows a column-by-column mapping screen. Map `Email Address` → `Email`, `First Name` → `First name`, `Last Name` → `Last name`. For custom Mailchimp fields, create the corresponding fields in Mautic (Settings → Contact fields) before the import.",{"title":104,"body":105},"Enable the Update if exists option","Check the **Update existing contacts** option. This option is essential for successive or corrective imports: without it, Mautic creates duplicates instead of merging data. It uses the email address as the upsert key.",{"title":107,"body":108},"Verify the absence of duplicates after import","Once the import is complete, search for an imported contact by their email address. Verify that the profile is unique and that the fields are correctly populated. To detect any duplicates in bulk, use the **Duplicate contacts** filter in the segments module.",{"type":38,"title":110,"body":111},"DNS configuration before the first send","Sending campaigns without DNS authentication leads to SMTP rejections or spam classification. The three records to set up are SPF, DKIM and DMARC.\n\n**SPF** — publish a TXT record at the root of your sending domain. If your VPS sends directly via Postfix, the value looks like `v=spf1 ip4:\u003CYOUR-VPS-IP> ~all`. Replace `\u003CYOUR-VPS-IP>` with your server's IPv4 address.\n\n**DKIM** — in Mautic, go to **Settings → Configuration → Email settings → DKIM signature**. Click **Generate a DKIM key**. Mautic shows the public key to publish as a TXT record in your DNS zone, on the selector `mautic._domainkey.your-domain.com`.\n\n**DMARC** — create a TXT record on `_dmarc.your-domain.com` with the value `v=DMARC1; p=none; rua=mailto:dmarc@your-domain.com`. The `p=none` mode is the right starting point: it generates reports without blocking any emails during the warm-up period.\n\nAfter two to four weeks of reports, move to `p=quarantine` and then to `p=reject` once all legitimate sources pass alignment.",{"type":113,"title":114,"body":115},"tip","Running Mailchimp and Mautic side by side during the switch","Do not shut down Mailchimp on the day of the import. Keep active campaigns running on Mailchimp while Mautic warms up its sending IP. The reputation of a new IP builds gradually: start by sending small volumes to your most engaged contacts (recent openers), then increase gradually over two to four weeks. During this period, the two platforms coexist without conflict: a contact may receive emails from both; what matters is that unsubscribes are processed in both systems in parallel.",{"type":38,"title":117,"body":118},"Common troubleshooting","**Hard bounces due to missing SPF.** If the SPF record does not include your VPS IP, receiving servers reject emails with a 550 code. Verify with `dig TXT your-domain.com` that the SPF record is published and that the VPS IP is listed.\n\n**SMTP error: port 25 blocked.** Most VPS hosts block outbound port 25 by default to limit spam. Use an SMTP relay (port 587 with STARTTLS authentication) such as Amazon SES, Mailgun or Brevo as a sending gateway. In Mautic, configure this relay under **Settings → Configuration → Email settings → SMTP transport**.\n\n**Images not loading in emails.** Mautic hosts email images on its own domain. Verify that the Mautic base URL is set to your public subdomain (`https:\u002F\u002Fmailing.your-domain.com`) and not `localhost`. This setting is changed in **Settings → Configuration → System settings → Base URL**.\n\n**DKIM signature not verified.** A poorly published DKIM key or incorrect selector gives `dkim=fail` in headers. Check with `dig TXT mautic._domainkey.your-domain.com` that the record is present and matches the key shown in Mautic.\n\n**403 error or blank page after update.** Mautic 5 requires PHP 8.1+. If you use the official Docker image, the PHP version is managed automatically. After an upgrade, clear the Mautic cache: `docker compose exec mautic php bin\u002Fconsole cache:clear`.",{"type":120,"title":121,"headers":122,"rows":126},"comparison","Mailchimp vs self-hosted Mautic",[123,124,125],"Criterion","Mailchimp","Self-hosted Mautic (VPS)",[127,131,135,139,143,147],[128,129,130],"Cost","By contact tiers; increases automatically","Fixed VPS cost (`{{vps.start.price}}`\u002Fmonth), no software surcharge",[132,133,134],"Data and GDPR","Storage on US servers; transfer to declare","Data on your VPS (European datacenters); a single sub-processor",[136,137,138],"Technical control","Limited interface; DNS not modifiable","Full root access; SMTP, DKIM, reverse proxy configured as you choose",[140,141,142],"Deliverability","Shared IP with other senders","Dedicated IP; reputation built by you",[144,145,146],"Automations","Limited by tier","Workflows and scoring with no cap, open source",[148,149,150],"Maintenance","None (SaaS)","Docker updates to plan; backups to configure",{"type":38,"title":152,"body":153},"Next steps","Once Mautic is running and the first warm-up sends have succeeded, the next step is configuring subscription forms on your website to feed Mautic directly, and creating the automation segments that replace Mailchimp journeys.\n\nFor agencies managing multiple clients, the ServOrbit reseller offering allows you to provision one Mautic VPS per client from a single management space, with separate WHM access and centralised billing. Each client has their own isolated infrastructure, dedicated IP and individual DNS authentication configuration.\n\nSee the \u003Ca href=\"\u002Fsolutions\u002Fagences\">agencies solutions page\u003C\u002Fa> for details on the reseller offering.","Manage your clients' email infrastructure from a single space","With the ServOrbit reseller offering, each client has their own Mautic VPS, dedicated IP and separate billing. You hold the infrastructure, you manage the relationship.","Discover the agency offering","\u002Fsolutions\u002Fagences",[159,181,196],{"id":160,"slug":161,"slugs":162,"title":166,"excerpt":167,"readTime":17,"views":168,"isPinned":19,"publishedAt":169,"updatedAt":170,"category":171,"categories":177,"featuredImage":29,"bgImage":30,"posterImage":179,"relatedSolution":180},249,"self-host-mautic-on-a-vps-open-source-marketing-automation",{"fr":163,"en":161,"ar":164,"es":165},"self-host-mautic-vps","استضافة-mautic-على-vps-أتمتة-التسويق-مفتوحة-المصدر","alojar-mautic-en-un-vps-automatizacion-marketing","Self-host Mautic on a VPS: open-source marketing automation","Self-host Mautic on your VPS: replace Mailchimp or HubSpot with a GPL platform — email campaigns, lead scoring, segmentation, no per-contact fees.",1,"2026-01-17T00:00:00+00:00","2026-09-08T02:42:11+00:00",{"id":172,"name":173,"slug":174,"color":175,"icon":176},7,"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[178],{"id":172,"name":173,"slug":174,"color":175,"icon":176},"\u002Fblog\u002Fcovers\u002Fself-host-mautic-vps-poster.svg",{"categorySlug":33,"appSlug":34},{"id":182,"slug":183,"slugs":184,"title":188,"excerpt":189,"readTime":17,"views":168,"isPinned":19,"publishedAt":190,"updatedAt":191,"category":192,"categories":193,"featuredImage":29,"bgImage":30,"posterImage":195,"relatedSolution":29},345,"dmarc-p-quarantine-email-deliverability",{"fr":185,"en":183,"ar":186,"es":187},"dmarc-p-quarantine-email-delivrabilite","dmarc-p-quarantine-email-deliverability-ar","dmarc-p-quarantine-entregabilidad-email","DMARC p=quarantine: stop sending in monitor-only mode","In 2026, Google and Microsoft throttle senders of more than 100 emails\u002Fday stuck on DMARC p=none. SPF, DKIM, DMARC and List-Unsubscribe one-click checklist.","2026-09-10T00:00:00+00:00","2026-09-10T13:10:45+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[194],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fdmarc-p-quarantine-email-delivrabilite-poster.svg",{"id":197,"slug":198,"slugs":199,"title":203,"excerpt":204,"readTime":205,"views":18,"isPinned":19,"publishedAt":206,"updatedAt":207,"category":208,"categories":209,"featuredImage":29,"bgImage":30,"posterImage":211,"relatedSolution":212},87,"host-listmonk-on-your-own-vps",{"fr":200,"en":198,"ar":201,"es":202},"heberger-listmonk","استضافة-listmonk-على-خادمك-الافتراضي-الخاص-vps","alojar-listmonk-en-un-vps","Host Listmonk on Your Own VPS","Send your newsletters without a monthly subscription: deploy Listmonk on your VPS with PostgreSQL, SMTP and SSL. Complete self-hosting guide.",4,"2026-03-25T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":172,"name":173,"slug":174,"color":175,"icon":176},[210],{"id":172,"name":173,"slug":174,"color":175,"icon":176},"\u002Fblog\u002Fcovers\u002Fheberger-listmonk-poster.svg",{"categorySlug":174,"appSlug":213},"listmonk",1789664979217]