presences/README.md

98 lines
2.4 KiB
Markdown

## bottin/presences
Application de gestion de présences en Assemblée Générale
### Example
Le déploiement de base assume le déploiement d'une instance de serveur API https://git.agecem.com/bottin/bottin, ainsi que d'un serveur postgresql pour bottin ET un autre pour bottin/presences (cette application). Le tout est déployé localement par `docker-compose`.
#### Déploiement de base
##### .env - config initiale des DBs
Ajouter fichier `.env` à côté de `compose.yaml`:
```bash
# .env
## bottin
BOTTIN_SERVER_API_KEY='CHANGE_ME'
BOTTIN_SERVER_API_POSTGRES_DATABASE='bottin'
BOTTIN_SERVER_API_POSTGRES_PASSWORD='CHANGE_ME'
BOTTIN_SERVER_API_POSTGRES_USER='bottin'
BOTTIN_SERVER_API_POSTGRES_HOST='bottin-db'
BOTTIN_SERVER_API_TLS_ENABLED='false'
## presences
PRESENCES_DB_DATABASE='presences'
PRESENCES_DB_PASSWORD='CHANGE_ME'
PRESENCES_DB_USERNAME='presences'
```
##### déploiement par docker-compose
Pull `bottin` et `postgresql`, build `bottin/presences`, crée les volumes et networks, crée les containers mais ne démarre rien.
```sh
docker compose up --build --no-start
```
Avant de démarrer l'application, s'assurer d'ajouter les fichiers suivants au volume `presences_presences-config`
##### config.yaml
Préparer la configuration:
```yaml
# presences-config:/etc/presences/config.yaml
Bottin:
Host: bottin-api
Key: CHANGE_ME
Port: 1312
TLS:
Enabled: false
SkipVerify: false
DB:
Database: presences
Host: presences-db
Password: CHANGE_ME
Port: 5432
SSLMode: prefer
Username: presences
TLS:
Cert: /etc/presences/cert.pem
Key: /etc/presences/key.pem
UI:
Username: presences
Password: CHANGE_ME
Port: 8080
```
*Note: Remplacer les CHANGE_ME*
```sh
sudo cp config.yaml /var/lib/docker/volumes/presences_presences-config/_data/.
```
*Note: `config.yaml` doit exister localement*
##### TLS
L'application `bottin/presences` ne permet pas d'exposer son service en http, et requiert absolument une paire certificat/clé TLS pour démarrer.
Obtenir une paire certificat/clé TLS valide ou en générer une self-signed (par example avec l'utilitaire `openssl`), et l'ajouter au volume:
```sh
sudo cp {config.yaml,cert.pem,key.pem} /var/lib/docker/volumes/presences_presences-config/_data/.
```
*Note: `cert.pem` et `key.pem` doivent exister localement*
##### Démarrer les containers
```sh
docker compose up -d
```
##### Ajouter les données au bottin
TODO (voir https://git.agecem.com/bottin/bottin pour plus de détails)