## 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)