I've finally gotten around to releasing a web ui for VExim2.
It's a very cut down version of the UI we use to maintain our Exim servers (which have thousands of users), basically I have taken out our business logic that you won't need and there's a basic version you can use or expand.
It's written in PHP, it's uses Laravel v13 and Filament v5 (both of which are well supported and updated regularly).
It (currently) has most of the functionality from the original version (aside from pipes, it has 0 support for pipes and never will). Email and website users have been separated out. So site/domain admins are no longer tied to having local domains on the system, any email account can be used.
Supports 2FA (which can be enforced for all system and domain admins) and also has passkey login support.
It supports generating DKIM tokens (uses the PR I made).
It supports SpamAssassin but it ties in nicely with the more modern and frankly better RSpamd which can access the API to get user preferences and check whitelists/blacklists.
Whitelisting and blacklisting can be done either by domain or by user.
It supports autodiscovery (which is how things like Thunderbird (and sometimes Outlook) automatically find the config settings for your email account when adding a new one. Though Microsoft being Microsoft it doesn't always work with Outlook. That part requires an extra vhost setup (have included an example, I think).
It also has (basic) command line functions.
I've tried to comment the code as much as possible but that gets boring ;)
It's easy to install (even have a bash install script which does all the boring stuff like composer, db migrations) and runs on any server that has PHP 8.4 (might work with earlier versions but I have only tested with 8.4 and above - also 8.3 became support updates only in 2025). The DB migrations are also reversable thanks to Laravel. I've included example configs for as much as I can)
The bits you probably won't like:
- It does change the stock VExim2 install (it modifies some of the tables, you can see an incredibly ugly list of changes to the main VExim2 tables here)
- It does away with the "siteadmin" login
- It shares the same database as VExim (cross db relationships in Laravel are a nightmare)
- It uses some of the pull requests I have recently made to work (DKIM being one of them).
Next planned steps are:
- Support MM3 (though, I am loathed to install that bloated software to test)
- Improve the API
- Release API only version (build your own client) which will link into....
- Implement the control of remote servers (there is an API only version coming which allows the same level of control as the web ui, control multiple Exims from 1 ui), we have been doing this for years but it takes time to unpick the code we use
- Notifications
- Automatic backups
Probably a few things I missed, but that's the jist of it and apologies for any mistakes, GitHub on your phone is awful.
I've finally gotten around to releasing a web ui for VExim2.
It's a very cut down version of the UI we use to maintain our Exim servers (which have thousands of users), basically I have taken out our business logic that you won't need and there's a basic version you can use or expand.
It's written in PHP, it's uses Laravel v13 and Filament v5 (both of which are well supported and updated regularly).
It (currently) has most of the functionality from the original version (aside from pipes, it has 0 support for pipes and never will). Email and website users have been separated out. So site/domain admins are no longer tied to having local domains on the system, any email account can be used.
Supports 2FA (which can be enforced for all system and domain admins) and also has passkey login support.
It supports generating DKIM tokens (uses the PR I made).
It supports SpamAssassin but it ties in nicely with the more modern and frankly better RSpamd which can access the API to get user preferences and check whitelists/blacklists.
Whitelisting and blacklisting can be done either by domain or by user.
It supports autodiscovery (which is how things like Thunderbird (and sometimes Outlook) automatically find the config settings for your email account when adding a new one. Though Microsoft being Microsoft it doesn't always work with Outlook. That part requires an extra vhost setup (have included an example, I think).
It also has (basic) command line functions.
I've tried to comment the code as much as possible but that gets boring ;)
It's easy to install (even have a bash install script which does all the boring stuff like composer, db migrations) and runs on any server that has PHP 8.4 (might work with earlier versions but I have only tested with 8.4 and above - also 8.3 became support updates only in 2025). The DB migrations are also reversable thanks to Laravel. I've included example configs for as much as I can)
The bits you probably won't like:
Next planned steps are:
Probably a few things I missed, but that's the jist of it and apologies for any mistakes, GitHub on your phone is awful.