Sebastian Gabrielsson 1625e4ec8f Migration to FastAPI is complete. Also added observability functionality to integrate with opentelemetry.
Migration includes:
* A move away from being a SPA to have actual endpoints
* Every page is generated via Jinja2Template
* Added observability class to export metrics and logs to opentelemetry to integrate with observability stack
* Let's database cache what the current status of all VMs are instead of using a dict to allow more multiple workers reading from a single source
* The vm status API check to proxmox not caches authentication header for an hour instead of requesting a new header everytime it makes a request every thirty seconds.
* Updated front end to be more WCAG compatible but it's still WIP
2026-05-21 15:44:03 +02:00

proxmox-web-portal

A web portal to primarily allow students access to VMs in our proxmox environment

It uses fastapi and mariadb alongside our oauth2 service.

Setup

There is a setup.sh script that installs the dependencies, nodejs and curl, along with setting up the actuall nodejs environment. It also creates and installs a systemd service called proxmox-web-portal that starts the nodejs server.

Configuration

After running setup you will have an empty config.ini file in your project location that you need to fill out with relevant information, primarily information for the proxmox cluster, mariadb and oauth2 service.

MariaDB configuration

Access to VMs is handled via MariaDB. The repo includes a schema.sql that can be imported after the database has been setup.

S
Description
A web portal to primarily allow students access to VMs in the lab cluster
Readme 299 KiB
Languages
Python 65.6%
HTML 14.9%
CSS 7.6%
JavaScript 6.8%
Shell 5.1%