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.
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 |