ddavness / power-mailinabox

A Mail-in-a-Box with extra capabilities and more customizability. Not just for power users!
Creative Commons Zero v1.0 Universal
172 stars 32 forks source link

Plugin platform #46

Open ddavness opened 2 years ago

ddavness commented 2 years ago

:mount_fuji: This is an epic milestone.

Right now, Mail-in-a-Box (and by extension, this fork) is shipped as a monolithic package. This caters well to ~90% of the use cases, but at the same time we're facing two distinct issues going into opposite directions:

I don't need feature X/Y/Z

For some of these features, it won't hurt much. But some features involve software installation that is unnecessarily exposed to the internet. Some take quite a bit of space to install.

I want a very specific feature to be integrated into Power Mail-in-a-Box

Integrating such features would need to be merged into this repository, or the requester would need to fork the entire project and create their own version with the feature they want to implement. It's also likely that such feature requests would fall out of the scope of the project.

Henceforth, this milestone aims to revise the architecture of Power Mail-in-a-Box to split it into it's core functionality and accessory components.

The Core Functionality is defined as the minimum set of components strictly needed to create a functional, secure, and easy-to-use mailserver, as well as all base components that can be extended:

The following components will be removed from the "core" of Power Mail-in-a-Box but can be installed as plugins. This list is not meant to be exhaustive.

To retain ease of installation, for first time installers, the installer will recommend a certain set of plugins from the list above to be installed. Folks who know what they are doing can ignore that recommendation and install the plugins that suit their use-case.

Features removed from this repository will still be maintained as plugins in an official capacity.

The beauty of this approach is that the community can write plugins without having to worry about being within the scope of the project. And by extension, they are free to share and license their plugins to their heart's content.

ddavness commented 2 years ago

I'm leaving thos issue open as a thread so that you can give your input. It would be a herculean task and I want to be sure of the direction we're going with. What do you think? Do you foresee any issues?

John-S4 commented 2 years ago

I think this is a brilliant and logical approach, a core framework with everything else as core-maintained plugins makes a lot of sense.

nameduser0 commented 2 years ago

Just my 2c (and I'm not an expert and have not used MIAB yet) but Nextcloud seems like the only thing that is likely both a) unrelated and b) large footprint. Everything else seems either quite useful in a mail server or small enough to not be an issue.

I think you could probably argue Munin too since MIAB is likely to be running in a VM/container on another OS, so monitored elsewhere from a CPU/Memory perspective. Though mail server throughput would be pretty important IMO.

I wouldn't want you to go to all that effort just for you to recommend 95% of the plugins!