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.
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!
</ >
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.