The BEO/Televotia backend does the following:
- Download the members mail addresses, voting rights and identity verifcation from the CiviCRM
- Send new members their invitations to Televoita via email
- Synchronize members and theair voting rights and identity verifcation with the ID server
You need to prepare:
- A docker host
- A Postgres database server
You need to have:
- An X509 client certificate for the ID server API complete with CA-certificate, certificate and private key
- An OpenPGP private/public key pair from the ID server and the public key of the ID server
You need to know:
- The ID server's frontend URL denoted id-server.url
- The ID server's API URL denoted id-server-api.url
- The mail address correpsonding to the OpenPGP public key of the ID server denoted as name@id-server.url
Create two database for the members and the invitations. You may use two seperate users. You may adapt the create-database.sh script for this.
The data directory /data/ must contains the following:
- The config file at /data/ekklesia.ini
- The PGP keyring at /data/gnupg/
- The X509 client certificate and the corresponding key
The config file /data/ekklesia.ini must be adapted from ekklesia.ini.template as follows:
- In both the members and the invitations section:
- The ID server API URL
- Paths to the X509 client certificates and including private key
- The database connection for the corresponding database including credentials
- The SMTP server address and credential
- The GPG sender address and passphrase
The data directory must be inserted into the docker container at /data
You must set the following environment variables when running the docker container:
- CIVI_API_URL : complete URL to the REST interfaces of your CiviCRM
- CIVI_SITE_KEY : site key for your CiviCRM
- CIVI_API_KEY : API key for your CiviCRM
- SMTP_SERVER_ADDRESS : Address for an SMTP server
- SMTP_SERVER_PORT : Port for the SMTP server
- SMTP_USERNAME : Username to log on to the SMTP server for sending
- SMTP_PASSWORD : Password for this user
There is a template docker-run.sh.template to facilitiy running the container.
There is also a push service to update users on demand when they register with the ID server.
The push service is run by just starting the same docker image with the push.sh script.