Skip to main content

System Requirements

Bemba is hosted on Linux VPS with native Docker. This page describes what a production or pre-production server needs.

Server​

ResourceMinimumRecommendedCurrent
OSUbuntu 22.04 LTSUbuntu 24.04 LTSUbuntu (OVH VPS)
CPU4 vCPU8 vCPU8 vCPU
Memory8 GB16 GB23 GB (pre-production, which also hosts Kobo, Survey Solutions and GitLab)
Disk100 GB SSD200 GB SSD193 GB
Networkfixed public IPv4—51.75.79.112 (prod), 51.75.77.220 (pre-prod)

Pre-production needs more memory than production: KoboToolbox (≈ 5 GB) and GitLab (≈ 3 GB) run there alongside the application.

Server software​

SoftwareVersionNote
Docker Engine24 or laternative install (apt), no Docker Desktop or virtual machine
Docker Composev2 (docker compose, plugin)v1 (docker-compose) is incompatible with Docker Engine 28 (KeyError: 'ContainerConfig')
Git2.xoptional on the server (code is shipped as an archive)
cron—backups, grievance digest, assistant indexing

Nothing else is installed on the host: PHP, Node, PostgreSQL, Redis and Nginx run in containers.

Ports​

PortExposed toService
22Internet (SSH key only)administration
80, 443InternetTraefik (HTTP redirected to HTTPS)
2525the 220 server only (production)SMTP relay for KoboToolbox
2222Internet (pre-production)GitLab SSH
3100, 8080, 9100, 9121, 9187127.0.0.1 onlyLoki and metrics exporters
5432, 6379internal Docker networkPostgreSQL, Redis

DNS​

A records to create at the registrar (OVH):

NameTarget
bemba.ucp-pch.org, mariacare.ucp-pch.org, ucp-pch.org, sig.ucp-pch.org, docubemba.ucp-pch.org51.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.org51.75.77.220

Traefik obtains Let's Encrypt certificates automatically as soon as the name points to the right server.

External services​

ServiceUseRequired
OVH SMTP (ssl0.ovh.net:587, account noreply@ucp-pch.org)application e-mailsyes
Anthropic (Claude)Bemba assistantfor the assistant
Cohereassistant semantic search, grievance clusteringno (full-text fallback)
KoboToolbox (cloud and self-hosted)data collection, grievances, code of conductdepending on projects
Sentryerror reportingrecommended
220 server and SMTP

The pre-production server cannot reach any OVH SMTP port. Application e-mails fail there on purpose; KoboToolbox e-mails go through the production relay (see self-hosted KoboToolbox).

Admin workstation​

  • SSH client with the key authorised on the servers.
  • Node.js 20+ and npm to build the frontend and the documentation; PHP 8.3 for local checks.
  • A recent browser (Chrome, Edge, Firefox).