Skip to main content

Infrastructure

OpenVLE consists of multiple Docker containers that are operated together as a Docker Compose stack. Additionally, external systems (Proxmox VE, optionally Apache Guacamole and Moodle) are connected. This section describes the architecture, the components used, and their relationships.

Architecture Diagram

Legend:

ColorMeaning
Yellow (dashed)External components (Reverse Proxy, Guacamole Stack, Moodle)
Blue (light)Frontend -- Vue.js application with Nginx
Blue (dark)Backend / Tasks -- FastAPI, Worker, Scheduler
GreenDatabases -- MariaDB, MongoDB, Redis
OrangeProxmox VE Cluster -- Hypervisor infrastructure (external)

Components at a Glance

OpenVLE Docker Stack

ComponentTypePurpose
BackendPython/FastAPIREST API, business logic, Proxmox integration
FrontendVue.js/NginxWeb interface
Worker (3 types)RQ WorkerAsynchronous background tasks (VM operations, email, Guacamole, Moodle)
SchedulerRQ CronPeriodic tasks on a schedule
MariaDBRelational DBCore entities (users, roles, environments, VMs, ...)
MongoDBDocument DBActivities, system events, audit logs
RedisIn-MemoryTask queue and cache

External Systems

SystemRequiredPurpose
Proxmox VEYesHypervisor cluster for VM management
Reverse ProxyRecommendedSSL termination and routing
Apache GuacamoleOptional, recommendedWeb-based remote desktop access to VMs
MoodleOptionalLearning management system integration
SMTP ServerYesEmail delivery
LDAP ServerOptionalUser authentication
OIDC ProviderOptionalSingle Sign-On
External Dependencies

Proxmox VE, Apache Guacamole, and Moodle are not operated within the OpenVLE Docker Compose stack. They must be installed and configured separately. See Proxmox VE Integration, Apache Guacamole Integration, and Moodle Integration for setup instructions.

Further Reading

  1. Used Components -- Docker containers in detail: SERVICE_ROLE, ports, health checks, persistence
  2. Networking & Docker -- Docker network, ports, and communication paths
  3. Databases -- MariaDB, MongoDB, and Redis: task separation and data storage
  4. Task System -- Worker, Scheduler, and the Redis queue for background tasks
  5. Authentication -- Local login, LDAP, and OIDC
  6. Permission System -- Roles, permissions, and access control
  7. Proxmox VE -- VM management, node management, and cluster integration (required)
  8. Apache Guacamole -- Remote desktop access via Apache Guacamole (optional, recommended)
  9. Moodle -- Integration with the Moodle learning management system (optional)