-
Notifications
You must be signed in to change notification settings - Fork 48
WebUI GUI VeximPy (Python)
VeximPy is a management Web-UI for virtual users for mailservers. It integrates easily with Exim and Dovecot but should be usable with other mailservers too. Based on Vexim2.
- Flask/Python3
- Bootstrap
- Fontawesome or other iconset
- Responsive UI
- DB abstraction with SQLAlchemy
For details visit VeximPy source code
Create a user on your system.
Call bash pysetup.sh
This calls apt to install needed system packages and modified templates for nginx and uwsgi under doc
If a domain/server name is provided as first parameter it will be used for the nginx template.
Create a DB and a DB user.
Then simply call:
bash dbreinit.sh <targetDBname>
This will create tables in the DB .
If <targetDBname> is ommited, 'veximdbtest' will be used.
This script will copy app/models/models_orig.py with the <targetDBname> as DB to app/models/models.py
Migration will be done to a new DB. (in-place-migration is not supported)
- Create a DB user for the new DB.
- Dump the original DB to a file
- Then call (with 3 parameters):
bash dbmigration-mysql.sh <dumpfile.sql> <originDBname> <targetDBname>
Sample files can be found under the doc directory.
Make sure you have certificates for the domain(s)
Review, edit and copy these files to /etc/nginx/sites-available and /etc/uwsgi/apps-available. Set appropriate symlinks in the *-enabled directories and restart nginx/uwsgi.
Changes of MySQL statements in 2 files:
- /etc/exim4/conf.d/auth/30_vexim_authenticators
- /etc/exim4/conf.d/main/00_vexim_listmacrosdefs
-
Full login support for Siteadmin, Postmaster and Users with a role System.
-
Intelligent login: try first given login, then add domain from actual URI and try to strip subdomain parts (one by one)
-
Config of password characters per domain
-
Config of defaults and settings in
app/config/settings.py -
List-Views for Local Domains
- Domain name
- IP where an Relay points to
- Number of Local Accounts, Account-List-Button, Account-Add-Button
- Number of Alias Accounts, Account-List-Button, Account-Add-Button
- Number of Postmasters
- Number of Aliases pointing to this Domain
- Domain-Enabled-Button to indicate and change state
- Domain-Edit-Button
- Domain-Delete-Button
-
List-Views for Alias Domains
- Domain name
- Domain name where an Alias points to
- Domain-Enabled-Button to indicate and change state
- Domain-Edit-Button
- Domain-Delete-Button
-
List-Views for Relay Domains
- Domain name
- Domain-Enabled-Button to indicate and change state
- Domain-Edit-Button
- Domain-Delete-Button
-
List-Views for Local Accounts
- Realname
- Username
- Loclpart
- Forwarded
- Siteadmin
- Postmaster
- Account-Enabled-Button to indicate and change state
- Account-Edit-Button
- Account-Delete-Button
-
View for add/edit Alias Domain
-
Enable/Disable for Domains and Accounts.
-
Add/Edit/Delete Domain
-
Add/Edit/Delete Local Account
-
Branding. Logo in header from domain related ressource directory
-
Some automated tests for Login, Views, Validators
- List-Views for Local Accounts
- Quota/Used, with colored %-bar
- Views for different kinds of accounts, add/edit accounts
- Plug-in system
- 2-Factor-Authentication (U2F) for the web-interface.
- Authentication backends (ldap, oauth,...)
- easier UI customization
- Flexible config system
- REST API
- Command line interface
- Installation scripts fot mysql
- Installation scripts fot pgsql
- Instructions for integration in PHP websites
- Add comment fields to
userstables - Add role field to
userstable - Add comment fields to
domainstable - Add out_ip fields to
domainstable - Add host_smtp fields to
domainstable - Add host_imap fields to
domainstable - Add host_pop fields to
domainstable - Add relayto fields to
domainstable - Add quotasmax fields to
domainstable - Add pwd_charallowed fields to
domainstable - Add pwd_lengthmin fields to
domainstable - Add pwd_rules fields to
domainstable - Add domainalias_id field to
domainalias - Add enabled field to
domainaliastable


