initial description of components

Jan Dittberner 2020-04-05 13:54:03 +02:00
commit f7156cb868

17
Architecture.md Normal file

@ -0,0 +1,17 @@
Gnuviechadmin is distributed across multiple nodes.
The user and administrator frontend [gva](https://git.dittberner.info/gnuviech/gva) interacts with the other components. Components are coupled using [Celery](http://www.celeryproject.org/). The gva application creates tasks that are executed by Celery workers running on different nodes.
The [gvaldap](https://git.dittberner.info/gnuviech/gvaldap) component takes care of creating LDAP users and groups in an OpenLDAP slapd server.
The [gvafile](https://git.dittberner.info/gnuviech/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](https://git.dittberner.info/gnuviech/gvaweb) component takes care of managing web server configuration.
The [gvamysql](https://git.dittberner.info/gnuviech/gvamysql) component manages MySQL/MariaDB users and databases.
The [gvapgsql](https://git.dittberner.info/gnuviech/gvapgsql) component manages PostgreSQL users and databases.
[RabbitMQ](https://www.rabbitmq.com/) is used to send Celery commands into component specific queues. The Celery task results are stored in [Redis](https://redis.io/). The gva web frontend is a [Django](https://www.djangoproject.com/) application and stores its state and the user information in a [PostgreSQL](https://www.postgresql.org/).
All components are based on [Python 3](https://www.python.org/) and are tested and deployed on [Debian GNU/Linux](https://www.debian.org/) running Python 3.7.