Phonemos User Guide

Deployment Architecture

Components

Phonemos consists of the following components:

 

 

  • Nginx reverse proxy: Combines all phonemos containers under one url. The only part that is reachable from the outside (exposed on port 18080)

  • Frontend: Web UI of phonemos. This is just a static site running on nginx

  • Frontend Public: Frontend for anonymous access (if applicable)

  • Hasura: GraphQL API

  • Backend: Backend services for phonemos (reachable via hasura)

  • Backend PDF: Converts content to pdf

  • Redis: Message Queue

  • Converters/Formatters: Converts between different file formats (e.g. Word to PDF)

  • Confluence Converter: Converts confluence pages to phonemos (reachable via hasura)

High Availability Architecture

With Dedicated Infrastructure

This is how the setup looks with an existing object store, Redis and Keycloak deployed. Minio can also be replaced by any other compatible object store.

Redis is used only for communication between the components, so it does not have high durability requirements.

 

On Kubernetes

Phonemos is optimized to run on Kubernetes, the basic architecture is the same as with dedicated infrastructure, but instead of on the VMs the Phonemos components are run as deployments on Kubernetes.

For Postgres and the Object Store we recommend to use your standard infrastructure, but they can also be run directly inside Kubernetes. Redis is best run directly in Kubernetes as a part of Phonemos (integrated into the helm chart).

We provide a ready made Helm Chart to deploy Phonemos to Kubernetes.

Colocated Infrastucture

When Keycloak and S3-storage are not available already then they can be colocated with Phonemos on the virtual machines.