No description
Find a file
2025-09-23 02:20:47 -04:00
cmd/presences refactor: séparer executable et library 2025-05-13 13:48:34 -04:00
queries Initial commit 2025-02-27 14:13:21 -05:00
scripts fix(compose): ajuster nom d'image docker agecem/presences -> bottin/presences 2025-09-23 02:12:19 -04:00
ui Initial commit 2025-02-27 14:13:21 -05:00
.gitignore Initial commit 2025-02-27 14:13:21 -05:00
cmd.go chores(go): bump voki à v6 et bottin à v12 2025-09-23 02:04:23 -04:00
compose.yaml chores(compose): bump postgres à 17 2025-09-23 02:18:40 -04:00
config.go chores(go): bump voki à v6 et bottin à v12 2025-09-23 02:04:23 -04:00
db.go refactor: séparer executable et library 2025-05-13 13:48:34 -04:00
Dockerfile chores(docker): bump alpine à 3.22 2025-09-23 02:20:47 -04:00
entity.go refactor: séparer executable et library 2025-05-13 13:48:34 -04:00
flag.go feat: add DB flags, fix presence config, switch basicauth to map 2025-05-13 16:15:39 -04:00
go.mod chores(go): bump voki à v6 et bottin à v12 2025-09-23 02:04:23 -04:00
go.sum chores(go): bump voki à v6 et bottin à v12 2025-09-23 02:04:23 -04:00
handler.go chores(go): bump voki à v6 et bottin à v12 2025-09-23 02:04:23 -04:00
LICENSE Initial commit 2025-02-27 14:13:21 -05:00
Makefile build(make): ajouter release pipeline 2025-09-23 02:16:57 -04:00
README.md docs(readme): ajuster config d'example avec update de credentials 2025-09-23 01:58:55 -04:00
server.go chores(go): bump voki à v6 et bottin à v12 2025-09-23 02:04:23 -04:00
x509.go feat: autogénérer certificat TLS si non-fourni 2025-05-13 16:43:27 -04:00

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:

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

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:

# 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 # skip pour self-signed auto-généré
  Key: /etc/presences/key.pem # skip pour self-signed auto-généré
UI:
  Credentials:
    'CHANGE_ME': 'CHANGE_ME'
Port: 8080

Note: Remplacer les CHANGE_ME

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:

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
docker compose up -d
Ajouter les données au bottin

TODO (voir https://git.agecem.com/bottin/bottin pour plus de détails)