Gnuviechadmin is distributed across multiple nodes.
The user and administrator frontend gva interacts with the other components. Components are coupled using Celery. The gva application creates tasks that are executed by Celery workers running on different nodes.
The gvaldap component takes care of creating LDAP users and groups in an OpenLDAP slapd server.
The gvafile component takes care of managing file system directories on an NFS server. It is used to create and delete web and mail directories for users defined in the LDAP directory.
The gvaweb component takes care of managing web server configuration.
The gvamysql component manages MySQL/MariaDB users and databases.
The gvapgsql component manages PostgreSQL users and databases.
RabbitMQ is used to send Celery commands into component specific queues. The Celery task results are stored in Redis. The gva web frontend is a Django application and stores its state and the user information in a PostgreSQL.
All components are based on Python 3 and are tested and deployed on Debian GNU/Linux running Python 3.7.