Feedback on the Mautic 5 docker image experience

Hey Forum,

I’m in the phase of evaluating Mautic 5 for my company. I ran many services in a cloud ready way in the past. That means I prefer running services in containers. So I’ve tried out the Mautic 5 docker images.

In my professional work of line I consult big companies and German Government agencies on how to build, run and maintain applications and infrastructure components.

My experience so far is far from satisfied. Here is my feedback on Mautic 5 on docker.

Container Quality

A good crafted container is ephemeral and for security reasons read only. That means the container should come with all necessary software preinstalled.

For configuration the container should offer a set of environment variables or a configuration file that can be mounted to be picked up by the container.

For dynamic data the container should offer a dedicated volume that covers dynamic parts of the application.

I guess that the maintainer of the Mautic docker images have intended to do the job well, but the documentation lacks information about how to use it properly.

Here are my thoughts on this so far:

  1. The container has to run through a installation process and creates the necessary application configuration in the dedicated volume /var/www/html/config.

    This is something never mentioned in the documentation I came across and has to be taken into account for the docker compose files used as examples.

    My take on this is that you definitely should use this volume to separate the application from its configuration.

    Even better would be to have the configuration somewhere in /etc/mautic with a symbolic link to /var/www/html/config. This would result in a better separation between application and configuration.

    I understand that the current state is due to the fact that PHP applications are tightly coupled to the serving web server.
  2. The assets of the application are stored in the dedicated volume /var/www/html/docroot/media.

    The linux way for that is to store dynamic application data in /var/lib/<application. For mautic this could be /var/lib/mautic/media with a symbolic link to /var/www/html/docroot/media
  3. The logs of the application are stored in the dedicated volume /var/www/html/var/logs. You should consider to move the logs into /var/log/mautic. Then also tools like logrotate can be configured to act in a standardized way on the log outputs.

Forum configuration

The forum currently does not allow (me) to add new labels. There are currently now labels for docker, compose, swarm, etc. Can you please add these labels or let me have to add new labels? Thanks in advance.

Wrap up

While in the process of evaluating I will extend this article for more feedback, tipps, configuration and documentation.

I am willing to contribute to the Mautic 5 documentation. Please give me a hint, if that is appreciated and how to get in contact with the development.

Cheers,
Frank.

P.S. Happy new year to you all

2 Likes

No error Feedback if environment is missing

For the docker image to run you have to set the following environment variables:

  1. MAUTIC_DB_HOST
  2. MAUTIC_DB_PORT
  3. MAUTIC_DB_DATABASE
  4. MAUTIC_DB_USER
  5. MAUTIC_DB_PASSWORD

If you forget one of them the installer will silently die after timeout (300s) and gives neither an error message nor any response to the http://<mautic-host>/installer call.

Although the documentation says that there are defaults for mautic database, user and port, this is not the case.

After supplying the minimum environment, the container starts and presents the installer on the web interface.

i recomend you stick with v4 . v5 is to many isues and editor is seems referal link for someone … very bugy nothing works properley…

1 Like

I have tried Mautic 5, and it has been the worst email marketing tool I’ve ever encountered. After a few weeks of using it, I reverted back to version 4. Based on my experience with Mautic versions 3 and 4, I found that Mautic 5 is lacking in several areas. In my honest opinion, it has turned into a frustrating experience—none of the components function properly, the editors are ineffective, and the auto-save feature doesn’t work. Additionally, you can’t import or embed anything with code, and creating dynamic content is simply impossible. sending email daoes not work it will unsbscrime everone that clixs on email. unsubscrime atomatic when sone uptin in forms, . beside that editor has active refral campaign link in every part of the editor and theme’s, even costum filed has inbeded live cke refral link, to me this not open source anymore i would stay way from 5 long as 4 keep working form. thanks but no thanks who ever is disised to have this editor is in mautic has a difrent egenda. never use v5 is became private refral tool for ckeditor, no thanks i dont want activer refaral link for some companies in my server in my communication, we have been robed and hijacked with this borad and group that is involde to build the 5, llet me askyou why ck editor with active refral link? why is there nothing elss exsist in open source to give buplic to use. ?havin refral link in core of editor is scam. who ever done this and agreed to this is try pull wall over our eyes mutic 5 is not is not open source. is a refral ans instalatin tool fr ckeditor… before mautic 5 i never herd of this editor. plases some can exspline to me who made disided to go with the edir with active refral link to all things that in mautuc nothing left of mautic just naname no functins every functin has become refral link for ckeditor the person who aded to mautic . iwuld say mautaic is been hijaked from public. we musd demand exsplanation hold everyone responsible for this even take them to curts if neseser. 5v is teef among us beaware. never instal it never change from v.4 have good day…

1 Like

I the kinda guy that will not go around conflict or silent walk away. Mautic 5 is out now for some time and comes currently in the version 5.2.1.

So I started this thread not to complain or go back to version 4.x, but to get it in open and tell my honest experience.

As already mentioned in the starting article, I will give my follow ups and eventually will open issues and supply working documentation for it.

I would loved to do this in the original post, but for reasons I cannot understand, I’m not allowed to edit an article more than twice. So this one goes out to the forum admins. I cannot remember to come across a forum that is so restricted.

1 Like

Hello, to let you know, I am not a core maintainer and I struggled with the docker image as well.

In my opinion, the containers are not designed for production and neither for development. Theres the devbox for this.

It simply showcases all the components one would need before going into production. As with everything else in the Mautic universe, I agree the documentation is lacking in many areas and things have to be found out the hard way. That is open source, though. And people are free to contribute.

That is, but I can be wrong, not the intention of the docker images. They do a lot of things right and do document how to use them. Not in the official documentation but in the README.md of the project, which is located here:

Nevertheless, I’ve opened an issue and submitted a PR for adding the ability to read the DB password from a file. This way it can be used with docker secrets or other vault technologies.

In the PR are also improvements on the quality like checking the necessary environment variables and giving meaningful error messages if not met.

The issue and the pull request can be found here:

So far no reaction from the commiters.

1 Like

Two weeks have passed and still no response on either the filed issue or the pull request. This repo seems dead to me and frankly even for an open source project this is not acceptable.

Can one of the maintainers elaborate on this?

I think that you are spot on :dart:

Users should stick with the main repo. And only dare to go in other repos if they feel wild or want to contribute.

And even there, most users should have some other resource to rely on that could assist with their web app problems (they should opt-in for a shared hosting if they don’t know anyone).

The doc is far from being perfect. Much misleading (and erroneous) stuff inside of it. Not to say completely base-less biased non-sense claims like " It is strongly recommended that Mautic is not installed on shared hosting.".

Truth is more the other way around: The vast majority should use a shared hosting environment. It will prevent them running stuff as root and restarting the server after updating their local.php config file.

It’s really an open source project in all its glory:
Code is there. It works. Share, modify, enjoy. Now it’s your problem.

And thanks for your contribution (I’m no part of the Mautic team. I’m only an open-source supporter)

1 Like

Well, while I agree with some points, such documentation being far from perfect.

There is a reason why if at all possible you should avoid shared hosting when it comes to Mautic. Mautic is database wise intense and limiting the resources is not a good idea. Because of shared hosting I had a case where they were doing some strange limiting on cronjobs and so when I sent an email out it took about 24 h to send out 25k emails. This would never happen on a dedicated server. Queue sending should be faster then sync method, but because we used shared hosting at that time, we were force to use sync. method of sending.

In addition for Mautic at some point you need to go deeper with the OS and you need administrative privileges - you optimize the sending, optimize other crons and so on.

Its not cpmpletely baseless when someone says you should not install it, in shared hosting. Every client that I had that used shared hosting so far had some kind of problems.

Yes, you can install Mautic on shared hosting and make ti work, but the first issue that you will have, its either gonna force you to move to non shared hosting env. or you will spend time dealing with issues that would otherwise be much more simple to resolve.

On the long run, shared hosting is not suitable for Mautic

Mmm… nothing that a VPS isn’t doing (nor a bare-metal).

Limited CPU? Check
Limited RAM? Check
Limited ressource? Check

Get a $2/m VPS and please let me know your experience (we need to compare bananas with bananas).

I’m also curious about the said OS “optimization”. Did anyone had to modify the kernel? Tweak a CPU or RAM clock? Maybe voltage? Of course not. It’s a PHP web app. Optimization isn’t done at the OS level. It’s all at the user level that it’s done.

Optimizing “sending”? What do you mean by that? A very interesting claim. Mautic is a PHP app. Not a SMTP server nor anything like that. Since it’s not sending, I guess that there’s no optimization to be done here. Maybe you meant throttling? That would be at the web app level to do it. Otherwise it will be done at a lower level for you.

Regarding the last bit, that’s exactly why users are migrating on our shared hosting. Because they kept having problems with their VPS or bare-metal. Either that or they got fed up to pay me to fix their stuff and repeat “stay away from the root user”.

At the end of the day, shared hosting is what most need. Because they don’t know enough in the server management field to manage a full server (which generate a lot of claims like you just did. At least, easy to debunk.)

It’s only a PHP app with a MySQL backend. Nothing more. Unless I missed something?

But if your sale pitch is:
Yeah! A $2 shared hosting won’t be enough to run Mautic. That’s why you need to get a $2/m VPS

I’m not buying it. You’ll have the very same problems on both environments - on top of having to manage the VPS.

No, I did not go to the kernel level, but I did configure systemd services and timers as well as improved segment processing, I also tweaked MariaDB configuration, all of those things are very limited/non existent when you come to shared hosting. And I could go on and on here.

There are two different ways to send/dispatch (whatever you wanna call it) emails from Mautic, one is synchronous and the other is asynchronous (using queue). No production env. should use sync. in my opinion, but on shared hostings, I found that there cases that you just cannot use queue at all. What lover level, if you do not have access to it?

Mautic works best if you install supporting software (for example: Redis, RabbitMQ, etc.) and configure that software to run alognside Mautic and you are not able to do that on shared hostings, that is another reason why dedicated VPS or bare metal is better option.

The reality is, yes there are users of Mautic that shared hosting will cover everything they need, but when you need to start optimizing Mautic you cannot do this on a shared hosting.

But I think marking " It is strongly recommended that Mautic is not installed on shared hosting." as baseless is a bit of an overreaction. After all, its a recommendation and as far as I know with every Mautic release you get zip file that is ready to be unziped and put in restrictive env. such as share hosting.

My personal recommendation is that you take a look at your needs, if you plan to run Mautic with 25k contacts sending occasional email and you do not have technical know-how to manage servers, yes go with shared hosting, everything beyond basic usage use the VPS - either set it up yourself or pay someone to do it.

My personal preference is to install Mautic on VPS via terminal its fast & consistent, but again I might not be the best reference here as an average Mautic user does not work with Mautic as much as I do.

Best, M.

That’s basically what I was saying. Thanks for making my point: None need root access.

I did configure systemd services
None is using systemd in a webapp conjuncture - not even you - since systemd is the init system (used only when booting the server and restarting a service). It’s not a crontab - what are you talking about?

The saying in Linux: We only (re)boot after updating a kernel or the hardware.

If that isn’t true for you, you messed up.

I also tweaked MariaDB configuration
Why a hoster wouldn’t do that right from the start? Of course everyone is configuring their MySQL server based on their infrastructure. Again, unrelated with any webapp (Mautic included)

Mautic works best if you install supporting software (for example: Redis, RabbitMQ, etc.)
That smell bad. Like really bad. It smells the Windows Admin that tries to convince me about a registry on Linux or something similar. Of course that anyone may download and run a REDIS on Linux (or any app). Like anyone, really. Installing a service on Linux isn’t restricted to root.

i.e. To install let’s say REDIS-STACK because I’m fancy or I want to do some JSON queries against it. All I have to do is to wget the binary, optionally configure it at will and run it . No need to be root for it. Again: What are you talking about?

So this is why the “Strongly recommended” is full of it. It tickle the user’s ignorance. When it fails, the best argument is “personal experience”. Not a very good sales pitch.

There goes what a professional is thinking: That’s all BS and I’m not surprised that you weren’t even able to provide a single example of a non-existant system optimization (obviously non-existent since none can be done).

:clap: It’s :clap: a :clap: webapp :clap:

Snake oil salesman tactics, that’s about it.

The only reason I am discussing this with you is because you called, what I believe was a simple well meant recommendation from people that work heavily with Mautic baseless. Even if we take your wording and say its “personal experience”, that is still not baseless, the base in that case is personal experience.

Well, I am not sure, how to respond to your systemd reply. With systemd you can do a lot more then just ensuring that something starts on boot: < Use systemd timers instead of cronjobs | Opensource.com > in fact it can be used instead of cronjobs.

Mariadb config… well unless, the hoster provides “install mautic” option its unlikely, they have done any optimization specific to Mautic. Why would they, they did not configure machine just for Mautic.

Additional software… Even if we say, that wget would do the trick (have not really try it to be honest) and I could somehow configure without running into troubles, this is still not something that someone without technical know-how would go and do. Even if you do not have root access and you go and try do that, its likely you will end up in worst position then when you started.

Well strictly speaking is not just a web app, I mean you also have CLI, in fact you have to use CLI to some extent to leverage all capabilities of Mautic.

There are things in the docs that should not be there, such as this:

bin/console doctrine:schema:update --no-interaction --force

located here:

https://docs.mautic.org/en/5.x/getting_started/how_to_update_mautic.html#updating-mautic-composer-based-installs

You should not run this command at all, certainly not in production env., if you would call out something like that I would agree.

Look running Mautic is not rocket science, but just like with all things you will use it and configure better when you do it 100th time, then when you do 1st time.

Simply saying something is baseless because you got it working differently is a bit bold.

That is all.

Hello folks,

It seems like this thread has got a little off track from providing feedback on the Docker image to what seems to be verging on opinionated discussions about whether you should or should not be using Mautic in shared hosting environments and whether the wording is right or not about this.

Please let’s take a step back, and also a refresher of our Code of Conduct. It feels like some of the comments are getting close to descending to the level of personal attacks which isn’t something we tolerate here.

:alarm_clock: I’ve set a 30 minute cooldown timer on this thread, please take a step back and consider your posts before replying.

With that said, I’m chiming in on a few points with my project lead hat on to hopefully answer some of the questions raised in an ‘official’ capacity!

<🎩>

Forum restrictions

We don’t actually use tags that much, probably something we should look at, that’s probably why they aren’t available. Search is pretty awesome without them so don’t worry too much about them being missing.

As a new member you will have several restrictions. Our forums are frequent targets for spammers.

You can’t edit posts as a newbie more than a few times because that is one of the most common spam vectors we see and it takes a lot of work for our (very small) forum moderator team to spot those edits. As you use the forum more you’ll get elevated privileges and some of those restrictions are lifted.

Sorry for the inconvenience, I appreciate it can feel restrictive but it’s for a good reason.

Docker image experience

Firstly: Our Docker image has no active maintainers right now and has never really been properly documented. Hopefully that’s now been heard loud and clear, so please be considerate when complaining about a lack of engagement. We are doing our best.

Most of our core team are not Docker experts, and are more than overloaded with their core team volunteer roles to be able to pick up more things. Every now and then we are able to access some resources through companies who have staff with more knowledge of Docker to get things reviewed and merged, but that is becoming more challenging recently with availability of those experienced folks being very limited. Every PR needs to be reviewed by two people (not from the same company as the creator) and code reviewed before it can be merged. Help with that (https://mau.tc/tester has docs on how to help with testing and reviewing PRs for core Mautic, the basic principles are the same for the Docker image) and we can get things through much quicker. I know that’s probably not the answer you’re looking for, but that’s where we’re at right now.

We have been putting out calls for people to help us with maintaining and improving the Docker image and welcoming ideas for making it better for years. Maybe now is the time for that call to be answered?

We had a flurry of activity when a company gave us the time of one of their engineering team around Mautic 4’s release where we moved to using the Recommended Project build / GitHub Actions job to publish the new images with each release which massively simplified the release process which means we’re actually releasing the builds with each new Mautic version, however like you pointed out, it still suffers from not being documented - it’s better than what we had before (where months would pass without the Docker images being built), but still not by any means perfect.

There’s an open ticket for the Education Team to write some official documentation on how to install and update with Docker for our official end user docs. The article on the Knowledgebase on installing with Digital Ocean using Docker is also known to be out of date and wrong - again, we’ve asked for help updating it with nobody stepping up to help out so it’s not updated.

How to contribute / get involved

@fseidinger regarding your question about how to get involved with docs writing, have a look at https://mau.tc/contribute for some basic starters, we’d love to have your help wherever you can!

Find us on #t-education on Slack. I’m happy to help you get onboarded - I am sure that our Education Team Lead @favourchi would also be able to help.

Improving the Docker image

In regards to the Docker image itself, if any of you have thoughts on how to improve the Docker image, and/or documentation on installing/updating/working with Docker, we would be extremely excited to have your help to improve it - but also to help us with reviewing contributions from others and deciding what should and shouldn’t be merged.

Maybe think about whether you could commit a few hours a week to forming a team which would work alongside the core team and decide on how we want to grow and mature the Docker image into the future and plan for how we go about that. We’re here to help make that happen and I would LOVE to see this happening. More than happy to help mentor folks if you’ve not been involved in open source projects before. Join the docker channel on Slack and let’s talk.

Shared hosting

We make the statement very clearly about recommending against shared hosting back when we released Mautic 3, I think it was. There’s a few reasons why, as a project, we decided to start communicating this recommendation quite strongly. I’ll endeavour to list those out below.

Resource limitations

Very often we were finding people who were hitting the forums asking for support from our community when they were trying to run Mautic in a environment which was never going to be resourced enough to manage Mautic beyond a few thousand contacts. Hours can be wasted here trying to make things work, hacking workarounds, etc. This is very frustrating for our community volunteers trying to help out in the forums, and of course for the users who just want their Mautic instance to work properly.

We also find that some shared hosting providers don’t allow you to configure cron jobs, or only allow you a very limited number which can only run at highly restrictive intervals.

Shared hosting providers often kill long running processes silently which creates all kinds of issues with Mautic.

The points raised in the threads above about the same being possible with an under-resourced VPS are true, however generally speaking most folks stand more chance of getting an entry-level VPS running Mautic smoothly than with an entry-level shared hosting plan.

We actually were hoping to provide some minimum and recommended specs for VPS size/spec at different scales of use, so if someone would like to help with that please let us know through the Education Team channel on Slack!

Environment configuration / install methods

We’re on a pathway to Composer by default as the installation method, which will see the eventual deprecation of the .zip installer and the UI-based installation process. Composer is necessary to use the Marketplace which is going to be the central place to work with plugins, themes, and the new campaign library too.

Very few shared hosting environments offer Composer support, quite a lot don’t give you CLI access to manage updates even.

NPM is also required to rebuild assets in Mautic currently which is even less likely to be available, although we’re investigating a new way of doing things in Symfony 7 which will ship with Mautic 7 which will mean it’s not required - that’s a little way off yet.

We took the decision back with Mautic 3 to start making very clear statements that you need to be running on a VPS for these reasons, a long time before it becomes mandatory to install Mautic using Composer, hence making shared hosting pretty much not an option.

Scalability

As Mautic scales, you have to start focusing more on the underlying infrastructure in order to support particularly the incoming traffic from link clicks and page hits but also things like segment builds. As you start sending to more contacts, the spikes of inbound traffic will mean you have to start thinking about queueing systems or your environment will crash.

As you start to have more contacts you need to think more carefully about the sequencing of cron jobs, batching, optimising segment builds etc. To do that you need to be able to make customisations and configurations which are often not possible in shared hosting.

As you start to send out high volumes of mail, it puts more pressure on your underlying infrastructure to generate, queue up and spool those sends, requiring further optimisation and infrastructure tooling not available in shared hosting.

Many of these are very difficult to do with shared hosting, if not impossible.

Mautic’s underlying technology has evolved over the years so that it can support scaling to very high levels, but this has also meant that it’s becoming increasingly difficult to install and run it effectively in a shared hosting environment as you scale. This is why we took the decision to start making it very clear that running Mautic in a shared hosting environment is not recommended, and more importantly, that it is not officially supported.

So the long and the short is, the view from Mautic as a project is:

yes, you might be able to install and run Mautic in some shared hosting environments,

but

it is our suggestion is that just because you can, doesn’t mean you should.

Generally speaking, people use Mautic because they want to grow their organisation. As the organisation grows, inevitably their Mautic instance will also need to scale. Trying to do that within the confines of a shared hosting setting is going to cause headache after headache, I’d even go so far as to say you’re setting yourself up for failure. We’ve seen it for years and as a project, we’re trying to help people not go through that experience. This is why we’ve been recommending for several years now, that shared hosting is not used.

Anyway, I hope that some or all of this has been helpful to understand some of the back story. Please let’s all be considerate of each others’ views and opinions and not descend into unkind and unnecessary comments at a personal level.

And, please, do consider being a part of the solution and getting involved as a contributor - that way we can all move forward faster! :mautibot: :sparkling_heart:
</ :tophat:>

Feel free to drop me a DM here or on Slack if you’d like to chat about any of the above, and thanks for those who have been willing to engage in a calm way in the discussions already.