Skip to content

Server requirements

A server can be a cloud virtual machine, a physical machine in your office or data centre, or a laptop for testing. It needs:

  • A 64-bit operating system: Linux (recommended for production), macOS or Windows, on Intel/AMD (x86_64) or ARM (arm64).

  • The right processor architecture for your applications. Most applications run on both Intel/AMD and ARM, but some publish their images for Intel/AMD only: HOPE and KoboToolbox run on amd64 (x86-64) servers only. The portal won’t let you install them on an ARM server, because their images can’t be pulled there and emulation isn’t supported.

  • Docker Engine with the Docker Compose plugin (docker compose, version 2). Check with:

    Terminal window
    docker version
    docker compose version
  • The agent must be able to run docker commands. Run it as root, or as a user in the docker group.

  • Outbound HTTPS (port 443) to the platform address shown in the install command, and to the container registries that images are pulled from.
  • No inbound ports are needed to connect a server or deploy applications. The agent starts every connection itself, so it works behind NAT and most firewalls.
  • Inbound ports 80 and 443 only if you give an installation a web address, so users can reach it.

Each application needs a minimum amount of CPU, memory and disk, and bigger sizing profiles need more. When you create an installation, the portal checks your server against the application’s needs under Server fit. It shows how much memory, disk and CPU you have against how much is needed, and blocks sizes that won’t fit.

Each application’s catalog page lists what its sizes need. As a guide for the small size:

Application CPU cores Memory Disk
LiteLLM, Open EWS 1 2 GiB 5 GiB
Keycloak 2 3 GiB 5 GiB
Metabase, Moodle 2 3 GiB 10 GiB
ERPNext 2 4 GiB 15 GiB
Scolah Compass Resources 2 5 GiB 30 GiB
DHIS2, KoboToolbox, openIMIS, OpenMRS 2 6 GiB 15 GiB
Scolah Compass 4 8 GiB 20 GiB
HOPE 4 9 GiB 15 GiB

The medium size needs roughly twice the memory and disk. Scolah Compass needs 16 GiB RAM for the medium size, which is also the size that allows the AI module. When several installations share a server, add their needs together.

A Kubernetes cluster can also be a server. Most of this page is about Docker servers. A cluster needs:

  • a default StorageClass, for the agent’s volumes and the applications’ data
  • Helm 3, and admin rights on the cluster to install the agent and operator charts
  • an Ingress controller if people will reach installations through a domain, and cert-manager with a ClusterIssuer for automatic HTTPS
  • outbound HTTPS from the cluster to the platform, and from its nodes to the container registries

See Connect a Kubernetes cluster for the details and the install steps.