Prérequis Système
Bemba est hébergé sur des VPS Linux avec Docker natif. Cette page décrit ce qu'il faut pour un serveur de production ou de préproduction.
Serveur
| Ressource | Minimum | Recommandé | Constaté |
|---|---|---|---|
| Système | Ubuntu 22.04 LTS | Ubuntu 24.04 LTS | Ubuntu (VPS OVH) |
| Processeur | 4 vCPU | 8 vCPU | 8 vCPU |
| Mémoire | 8 Go | 16 Go | 23 Go (préprod, qui héberge aussi Kobo, Survey Solutions et GitLab) |
| Disque | 100 Go SSD | 200 Go SSD | 193 Go |
| Réseau | IPv4 publique fixe | — | 51.75.79.112 (prod), 51.75.77.220 (préprod) |
La préproduction a besoin de plus de mémoire que la production : KoboToolbox (≈ 5 Go) et GitLab (≈ 3 Go) y tournent en plus de l'application.
Logiciels du serveur
| Logiciel | Version | Remarque |
|---|---|---|
| Docker Engine | 24 ou plus | installation native (apt), pas de Docker Desktop ni de machine virtuelle |
| Docker Compose | v2 (docker compose, plugin) | la v1 (docker-compose) est incompatible avec Docker Engine 28 (KeyError: 'ContainerConfig') |
| Git | 2.x | facultatif sur le serveur (le code est envoyé par archive) |
cron | — | sauvegardes, digest des plaintes, indexation de l'assistant |
Rien d'autre n'est installé sur l'hôte : PHP, Node, PostgreSQL, Redis et Nginx tournent dans les conteneurs.
Ports
| Port | Exposé à | Service |
|---|---|---|
| 22 | Internet (clé SSH uniquement) | administration |
| 80, 443 | Internet | Traefik (HTTP redirigé vers HTTPS) |
| 2525 | serveur 220 seulement (production) | relais SMTP pour KoboToolbox |
| 2222 | Internet (préproduction) | SSH de GitLab |
| 3100, 8080, 9100, 9121, 9187 | 127.0.0.1 uniquement | Loki et exporteurs de métriques |
| 5432, 6379 | réseau Docker interne | PostgreSQL, Redis |
DNS
Enregistrements A à créer chez le registraire (OVH) :
| Nom | Cible |
|---|---|
bemba.ucp-pch.org, mariacare.ucp-pch.org, ucp-pch.org, sig.ucp-pch.org, docubemba.ucp-pch.org | 51.75.79.112 |
sig-preprod.ucp-pch.org, kf.kobo.ucp-pch.org, kc.kobo.ucp-pch.org, ee.kobo.ucp-pch.org, gitlab.ucp-pch.org | 51.75.77.220 |
Les certificats Let's Encrypt sont obtenus automatiquement par Traefik dès que le nom pointe sur le bon serveur.
Services externes
| Service | Usage | Obligatoire |
|---|---|---|
SMTP OVH (ssl0.ovh.net:587, compte noreply@ucp-pch.org) | e-mails de l'application | oui |
| Anthropic (Claude) | assistant Bemba | pour l'assistant |
| Cohere | recherche sémantique de l'assistant, regroupement des plaintes | non (repli en plein texte) |
| KoboToolbox (cloud et auto-hébergé) | collecte, plaintes, code de conduite | selon les projets |
| Sentry | remontée d'erreurs | recommandé |
Le serveur de préproduction ne joint aucun port SMTP d'OVH. Les e-mails de l'application y échouent volontairement ; ceux de KoboToolbox passent par le relais de la production (voir KoboToolbox auto-hébergé).
Poste d'administration
- Client SSH avec la clé autorisée sur les serveurs.
- Node.js 20+ et npm pour construire le frontend et la documentation ; PHP 8.3 pour les vérifications locales.
- Navigateur récent (Chrome, Edge, Firefox).