Virtual Machines
Requirements for for Phonemos on top of virtual machines :
at least 8 GB RAM and 4 vCPUs each
if you collocate Keycloak and Minio on them, they should have at least 16 GB of RAM.
a linux (debian, ubuntu, redhat, …)
docker and docker compose installed
no (data) backups are needed
Installation: see for the installation instructions
Minio
only required if you don’t have an existing S3-compatible object storage solution.
Requirements:
use at least two instances with a load balancer in front of it
back up the minio storage with your usual backup method (e.g. disk snapshots)
storage requirements: depending on how much files your Phonemos instance will contain. We recommend starting at a usable storage capacity of at least 50 GB (this would mean 50 GB per server in a 3 machine configuration with 3 storage replicas). Use the minio calculator to size the disks.
Installation:
follow the instructions under https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-multi-node-multi-drive.html#minio-mnmd
Keycloak
Requirements:
Keycloak 15 or newer, we recommend the quarkus distribution and running it via docker
we recommend running at least two instances as the availability of Keycloak is critical to Phonemos
storage requirements: no storage except for the installation itself and logs (< 5 GB)
a Postgres database is required (see below). It’s possible to use a separate database on the same database instance/server/cluster which Phonemos is using
The keycloak instances have to be able to talk to each other (HA setup)
Load Balancer in front of the instances (SSL Termination)
Installation:
Basically following the instructions from https://www.keycloak.org/server/containers (standard keycloak container is mostly good enough) to get a basic one-machine installation running
Connect the nodes to enable a HA setup (https://www.keycloak.org/server/caching). By default it will discover the peers using UDP multicast)
Example command (need to adapt!)
1
2
3
4
5
6
7
8
docker run --name mykeycloak -p 8080:8080 \
-e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=change_me \
quay.io/keycloak/keycloak:19.0.2 \
start \
--db=postgres --db-url=<JDBC-URL> \
--db-password=<DB-PASSWORD> --db-username=<DB-USER> \
--cache=ispn --cache-stack=udp
Postgres
Requirements:
Postgres version 16+ with pg_vector extension installed
at least 4vCPUs and 8 GB RAM
storage depends on the amount and size of pages stored in Phonemos. We recommend starting with 10 to 50 GB
we recommend running a database cluster for High-Availability
Phonemos needs one database with a user that has the right to create schemas, tables, views, triggers and functions.
Make sure that the collation of the database is set to en_US.UTF-8 otherwise the DDLs will fail because they contain unicode symbols (e.g. the English flag)
If you collocate Keycloak then that will also need a separate database with a separate user (with DDL permission)
Installation:
use your usual procedure, e.g. following https://www.postgresql.org/docs/current/high-availability.html