EasyUC

Software, updates and licence files are available in the customer portal. Go to downloads

Base system architecture

How EasyUC is built on K3s: layers, namespaces, data services, components per module, ingress, storage and first installation.

Applies to: EasyUC 4.8.7 Last updated: October 2026

K3s as the foundation

EasyUC runs entirely on Kubernetes, specifically on K3s. The cluster is initialised with embedded etcd (cluster-init). etcd holds the state of the cluster. Additional nodes later join as servers and become etcd members, see Adding nodes.

K3s also provides an embedded registry, so the container images are served inside the cluster.

Layers

The base system consists of six layers, from top to bottom:

Layers of the EasyUC base system Six layers from top to bottom: clients and connected systems, Traefik ingress, EasyUC application components, data services, Longhorn and K3s. The EasyUC Manager in the easyuc-system namespace reconciles the application components and data services. 1 Clients and connected systems Users · agents · attendant consoles · CUCM · Microsoft Teams 2 Traefik ingress (HTTPS) /admin /enduser /agent /manager APIs /curri-api 3 EasyUC application components Kubernetes Deployments in the easyuc namespace 4 Data services MariaDB · Elasticsearch · RabbitMQ, each with its own operator 5 Longhorn Block storage for databases and files, replicated across nodes 6 K3s Control plane and embedded etcd on one or more Linux VMs EasyUC Manager API with operator easyuc-system reconciles continuously
Layers of the EasyUC base system. The Manager continuously reconciles application components and data services with the EasyUC resource.
  • Clients and connected systems: users, agents, attendant consoles, CUCM and Microsoft Teams.
  • Traefik ingress: accepts HTTPS connections and routes them by path.
  • EasyUC application components: Kubernetes Deployments created by the operator.
  • Data services: MariaDB, Elasticsearch and RabbitMQ, each managed by its own operator.
  • Longhorn: block storage for databases and files, replicated between nodes when there are several.
  • K3s: control plane and embedded etcd on one or more Linux VMs.

Namespaces

EasyUC uses two namespaces of its own:

EasyUC namespaces
NamespaceContents
easyuc EasyUC application and the EasyUC custom resource
easyuc-system EasyUC Manager, installed with Helm

Data services and operators

EasyUC uses three data services. Each is managed by its own Kubernetes operator, which is set up during the first installation.

Data services
ServicePurposeManaged by
MariaDB Database for configuration and business data MariaDB operator
Elasticsearch Search index, among other things for logs and call report history ECK (Elastic Cloud on Kubernetes)
RabbitMQ Message broker RabbitMQ operator

Note

Image and storage size of the data services are set in the EasyUC resource. As of 4.8.7 these are MariaDB 11.8.9, RabbitMQ 4.2.5 and Elasticsearch 9.5.4. A normal EasyUC update does not replace the data services, see Updates.

Components per module

The application consists of several components, each running as a Kubernetes Deployment. The operator creates and removes them depending on which modules are active.

Since 4.8.7 all components start from the same container image. The EasyUC Manager is a separate product with its own image.

Application components per module
ModuleComponentsNotes
Core (always) admin-api, admin-ui, admin-workers, websocket, public-api Run in every module combination.
cucm curri-api, curri-nest, enduser-api, enduser-ui, jtapi, phonebook, proftpd proftpd is the upload service for SFTP and FTP.
acd acd-media JTAPI/CTI media service with CTI ports and announcements. Runs in the host network.
teams teams-sbc, teams-ps teams-sbc: SBC based on FreeSWITCH, in the host network. teams-ps: automated Teams tenant setup via PowerShell.
presence presence-sync Synchronises the call status between CUCM and Teams. A service of its own that can be switched on independently of the other modules.

Note

acd-media and teams-sbc run in the node's host network, so their ports are bound directly to that node's IP address. teams-sbc is placed on the node where acd-media runs. The ports are listed under Ports and firewall.

Ingress and paths

Traefik accepts web traffic via HTTPS on TCP 443 and routes it by path to the responsible component. Which paths are active depends on the modules.

Ingress paths
PathInterface or service
/admin Admin interface
/enduser End-user portal
/agent Agent workplace
/manager EasyUC Manager, API at /manager-api
APIs Application programming interfaces
/curri-api CURRI interface for CUCM

Note

Traefik also answers HTTP on TCP 80. No automatic redirect to HTTPS is configured. Until you activate your own certificate, Traefik uses a self-signed one, see Certificates.

Storage

Longhorn provides block storage for the databases and for files. With several nodes, Longhorn replicates the volumes between the nodes. On a single node they are not redundant.

The Manager shows the Longhorn volumes with state, robustness and size. How replicas behave when a node fails is described under Redundancy.

Images and registry

Since 4.8.7 all application components are contained in a single container image based on Debian 13. For an installation the images come online from the registry registry.easy-uc.com; the appliance needs outbound TCP 443 to this host for that. For sites without internet access there are offline bundles.

Updates come as one signed package file that you upload in the Manager. The Manager distributes the image to all nodes itself, see Updates without internet access.

First installation via the console menu

After the VM starts for the first time, log in on the VM console as user easyuc. A text menu appears.

  1. Choose Initialize K3s

    The installation runs offline from files shipped in the appliance. No internet access is needed.

  2. Components are installed

    K3s, Traefik as ingress, Longhorn as storage, the operators for MariaDB, Elasticsearch (ECK) and RabbitMQ, and the EasyUC Manager.

  3. Continue in the Manager

    All further steps happen in the browser, see Installation.

The same menu lets you change the IP address (single-node installations only), enter your internal time sources under NTP Server or uninstall the system.

The Manager's initial password is generated randomly for each appliance. EasyUC itself has no default password. You set the password of the first administrator during setup.