Services

This page provides an overview of the services that make up the Online Notes system. While it isn’t necessary to understand the details of each service to install the system, it can aid in potential troubleshooting and debugging. In total there are $18 + | \text{NT workers} | + | \text{DR workers} |$ services in the system.

Services Services

Reverse Proxy

Service Description DNS Subpath
Traefik A reverse proxy that handles routing and SSL termination for the services running on the server. Managment /dashboard and /api

Authentication and Authorization

Service Description DNS Subpath
Keycloak Authentication and authorization server that provides Single Sign-On (SSO) for the system and connects to the University of Ljubljana Identity provider. Keycloak /realms/on in produdction mode, / in setup mode
Keycloak Database PostgreSQL database for Keycloak.

Punctuation and Capitalization Correction

Service Description DNS Subpath
Nemo PnC Punctuation and Capitalization correction service.

Kaldi

Service Description DNS Subpath
Kaldi GRPC Server Interface for the Kaldi GST server. Enables a GRPC API.
Kaldi GST Server Kaldi GStreamer server for speech-to-text transcription.
Kaldi NT Worker Worker service for Kaldi GST server. Handles transcription requests for STEM science courses. Number of NT workers is a configuration parameter.
Kaldi DR Worker Worker service for Kaldi GST server. Handles transcription requests for non STEM science courses. Number of DR workers is a configuration parameter.

Backend

Service Description DNS Subpath
Main backend Main backend service for the Online Notes system. Handles transcription sessions, user data, course managment and glues different services together. Main /backend
Main DB PostgreSQL database for the Main backend.
Rabbit MQ Message broker for live transcription and other asynchronous tasks. Communicates with the Main backend. Main /broker

Frontend

Service Description DNS Subpath
Main portal Single page app for handling student and professor workflow in addition to listening and editing lectures. Main /
Streaming portal Single page app meant for live streaming audio and transcriptions. Main /stream
Admin portal Single page app for administrative actions such as adding courses, lecture rooms and editing faculty data. Main /admin

Monitoring

Service Description DNS Subpath
Alloy Collects logs from a subsection of services and forwards them to Loki. Exposes a server that collects logs from frontend services and forwards them to Loki Main /collect
Node Exporter Collects host machines metrics (CPU utilization, disk usage etc.) and exposes them for scraping.
cAdvisor Collects docker containers metrics (CPU utilization, RAM usage etc.) and exposes them for scraping.
Prometheus A metrics database which scrapes metrics from Node Exporter, cAdvisor and other services (Main backend, RabbitMQ, Keycloak etc.).
Loki A log database which stores logs sent from Alloy.
Grafana Visualizes the data from Prometheus and Loki. Managment /grafana