[MailWizz 3.0] - Should it require its own server to run?

Should MailWizz 3.0 require its own server to run?

  • Yes

    Votes: 16 59.3%
  • No

    Votes: 11 40.7%

  • Total voters
    27

twisted1919

Administrator
Staff member
Hello everyone,

In the near future we will start planning for MailWizz 3.0 and we need your input on an important matter.
We're thinking to use containers via Docker for MailWizz 3.0 which would give us full control over the environment where MailWizz is installed and will allow scaling much much easier.
This will also mean that we can always use latest technologies but also various programming languages for MailWizz, without worrying that the hosting environment is missing features that would help us make the most out of MailWizz, which in turn translates in a much better experience with MailWizz from all points of view.

That being said, depending on how we architecture this, it means we may not be able to support shared hosting anymore, but rather you'd have to install MailWizz on its own server, be it a VPS or a dedicated server.
We would provide the installer, so everything would be done by running a single command in command line, which would be much simpler than what we're doing now, so eventually, things will be much simpler for you as well.

Please answer the poll below so we can have a better understanding of your needs.
Thank you.
 
We're not familiar with command line / SSH and we don't have the tech resource to add this skill. If that's only method to install the MW on its own server, then we will have to vote "no". If there's a more user-friendly alternative, we'd be happy to go with the flow.
 
@nadworks - That makes sense. I'm thinking we can offer a video, or even some hand-holding with the process to make things easier. Given that it is just one command to run to install the app, which is ran only once, I think the benefits outnumber the possible hiccups.
 
Containers via Docker can be more complex things to handle, We can not access docker file directly and it can be challenging task for many to maintain it.
When you docker i have many question in mind.
-> As what happen if we want to back up the server? Currently we use easy Cpanel to backup and restore stuffs.
-> What in case we want to add custom-int.php files in MailWizz? Easy file manager or FTP does this.
-> How can we install SSL, Handle tracking domain SSL? as tracking domain need to be added in cPanel and point to MailWizz domain to make it work, as most cPanel does not allow direct access of site via IP for security.
-> It will become challenging to manage SQL and PHP to optimize server as per loads.
 
@bikram - valid concerns, thank you ;)

I think I have some answers:
-> As what happen if we want to back up the server? Currently we use easy Cpanel to backup and restore stuffs.
Since it is just MailWizz backups, that is, files and database, this can be provided by MailWizz itself.
Also, the VPS providers offer backups, which can also be used.

-> What in case we want to add custom-int.php files in MailWizz?
Maybe we can offer a file manager to help with this task?

-> How can we install SSL
That would be handled automatically by MailWizz. We'd use a web server like Caddy that manages these automatically.

Handle tracking domain? as tracking domain need to be added in cPanel and point to MailWizz domain to make it work, as most cPanel does not allow direct access of site via IP for security.
That won't be the case anymore, when using the solution we're proposing, MailWizz is the default app on the server, cnames aka tracking domains will work out of the box.

-> It will become challenging to manage SQL and PHP to optimize server as per loads.
This one is correct and currently we don't have a solution for it, but I am sure we can find something that make sense, after all, there are plenty companies that handle this and they don't complain.
 
My company currently uses shared hosting and would make the program inaccessible for us at this stage. Would it be possible to have two versions come out, one for shared and one for VPS? Surely not all improvements need VPS?
 
Surely not all improvements need VPS?
In my opinion, there is absolutely no reason to use shared hosting nowadays, they are just too limiting in so many areas, their config varies a lot and there are always so many pain points we should take into consideration and keep track of. Using a VPS with docker containers would mean all these will go away.
But I do understand your point of view as well, it is valid concern.
 
I think the answer is do you write software, or do you get involved in the hardware? If you are a software company then just outline the minimum requirements for your software and the partner channel will step in and do the rest. For example, I own all my own physical infrastructure and have Proxmox based clusters. We could easily offer a specialist VM tuned to Mailwizz with our SQL back end on seperate machines. I know there are other partners as well that do this. Perhaps it's time to either get into offering your own hosting "made for Mailwizz" or have an area of the site that shows partners that are able to provide this service for the customer. Some people will want to sort their own infrastructure out (me) and others will just want it as a turnkey solution.
 
Hi Cristian,

You can replace the hosting service with an installation service so that everyone can use MW.

OK for me.
 
if Mailwizz 3.0 will be in one Docker container will be good.
also, leave the option to set up it manually as is it now.
 
Hi Twisted,

Glad to hear you are thinking to take Mailwizz to next level with more features and easily managed way.

Docker is good option to manage for tech savvy people and Installation with command line is good option to manage entire installation easily.

What about existing Mailwizz 1.0, 2.0 convert with this 3.0 ? Are you planning to convert it same like 1.0 to 2.0 to this 3.0 ?

Full VPS backup is not provided by all providers and also it add extra cost depend on Data. Having a big data storage on GBs, its difficult to manage full VPS / Dedicated Server backup. If you can provide backup manager as in current version that's good to keep backup. Backup and restore should be smoothly like we manage now.

How to manage future PHP and MySQL versions and updates easily ?
 
Docker would not be a good solution in my case , I have a big infrastructure for my MW setup , eg :
- WAF with rules and patterns ( see next point )
- Frontend load balanced and Vm created / destroyed as per resource request .
- Backend on multiple server
- Sql with a custom parameter , failover , ha ( and MW backup hang on during backup … I use other way to backup my huge DB )
- SSL from trusted authority
- FileServer shared between FE / BE
- Custom *.ini file
- Custom MW parameter applied
- Redis server for cache & mutex
- Manually update of each release ( i’ ll check only for new version but we schedule our maintenance and launch manually the update process )
- and so on , probably I’ve forget something

In my case , if MW 3.0 will use docker , I’ll stop at least 2.x version and , probably, search for other solution if I could not have all my customisation and configuration.
 
@nemesis82 - thanks for the input, dully noted. For now we're in the research phrase, its a very long way till we make a decision.
Thanks @twisted1919 .
Please , update us because i must study docker and Kubernetes
Maybe , you could take 2 version of the app ? I known , it’s a huge work but during transition to a fully dockerized app you could give us time to study , deploy and test a completely new solution .
Also, test all of our customisation ;)
Thanks for your work
 
Maybe , you could take 2 version of the app ?
Yeah, I think in the end this will be the way we'll go about it in order to cover all bases.

We'll develop the app as we did so far, with whatever requirements we have, without holding back to use any technology in the app because the hosting environment could not handle it, then also offer the containerised version which will have everything ready with a single command.
 
Yeah, I think in the end this will be the way we'll go about it in order to cover all bases.

We'll develop the app as we did so far, with whatever requirements we have, without holding back to use any technology in the app because the hosting environment could not handle it, then also offer the containerised version which will have everything ready with a single command.
Great
 
Yeah, I think in the end this will be the way we'll go about it in order to cover all bases.

We'll develop the app as we did so far, with whatever requirements we have, without holding back to use any technology in the app because the hosting environment could not handle it, then also offer the containerised version which will have everything ready with a single command.

I think that's good. With something like Mautic because of the archiecture you have no choice but to scale it (as a SAAS) by containers and complexity. With Mailwhizz it's easy to scale/make bespoke by splitting the components and the scaling each in a standards based way (there's a number of options). In my opinion this is one of the strengths of it. The only need for a docker would be as a single standalone server to spin up easily - and there's a need for that as well for a lot of people.
 
I'm not too familiar with docker. But we would need to be able to customise the dock container build with our own dependencies, code changes, custom server configurations etc and then add that docker container build to our CI/CD pipeline.

Our current operation includes:
- We maintain some custom code changes for things we couldn't do with extensions which we merge and deploy using git. I will tell you how this works in a moment.
- We have a lot of custom extensions we have built which we also manage and deploy using git. We do not build zip files and upload them every time we make a code change to an extension as that would be horribly inefficient!
- Many of our extensions have custom dependencies including enchant, spam assassin, node, python and additional composer packages.
- We have our own skin files with our own CSS, images etc.
- We use a separate database cluster
- Our databases are required legally to be in encrypted at rest due to Government contracts.

Our deployment goes something like this:
- When you release an update we merge that into our git repository so that our changes and extensions merge in automatically
- We push branch to GitHub
- The deployment pipeline builds the minified production versions of our CSS and JavaScript files that we use in our custom skin and extensions.
- The completed project is then deployed to the server automatically
- Post deployment script on the server automatically runs your updates command line and updates our custom composer packages plus any other outdated custom dependancies

This approach allows us to deploy anything from simple one line code change to a full version updated using a single git push command instantly.

Maybe we can offer a file manager to help with this task?

There's no way that we would want to be handling custom code changes or extensions or anything like with a clumsy file manager!
As I mentioned earlier we don't use the official zip file upload mechanism for extensions because that's far too painful!
In the same way I hated it when you moved languages into the database because now we could no longer track and maintain our language code changes through version control in a modern way.

We run our own servers so from my perspective we might be ok with docker only if it still gave us the power to customise and maintain those customisations using git in a modern easy way but if instead it takes the ability to customise things away from us then no please no!
 
@bolty - Thank you for the insights, really appreciated.

There's nothing to worry about, we've decided that will go the traditional way and additionally, offer docker setup for whomever wants to go down this road, so nothing will change.

We maintain some custom code changes for things we couldn't do with extensions which we merge and deploy using git.
You can always require custom hooks(actions and/or filters) in the app if that makes your life easier and we can add them if they make sense.

P.S: Nice setup, it always amazes me how people push MailWizz.
 
If it requires own server, can MW provide like a step by step tutorial to setup on something universal like AWS?
 
Back
Top