Summary of the backend and tech stack used
Felipe Delestro
fima@dtu.dk
Accessible at https://platform.qim.dk/ with domain being managed by DTU Compute
Server is hosted in a VM at
comp-vmfima.compute.dtu.dk (130.225.69.184)
My user fima has sudo rights in the VM, and is running the services.

https access from the internet, no VPN required
Nginx reverse proxy to http services running in the VM


Flask server runs the platform


Interfaces running with Gradio

sftp web client using Filestash
Access routes
Users can access the platfom directly from the internet, and interact with services that are running in the virtual machine
Authentication
- Log in form is managed by Flask, and asks for username and password
- Credentials are validated by an SSH connection to login.gbar.dtu.dk
- An encrypted session (werkzeug & PBKDF2) for the user is kept on server side, used for future SSH interactions with the HPC cluster
Data processing
- The platform's main service is the Jupyter launcher. No data processing occurs in the VM itself.
- The user's session opens a SSH connection and submits a job to the HPC cluster, starting the Jupyter server.
- Once the server is running, the platform creates an SSH tunnel between the HPC node and the VM, exposing the Jupyter server to the internet via the platform.
- Access to the server is protected by a token, generated by the jupyter launcher interface.
Data ACCESS
- Users can upload/download small datasets using the web sftp client (Filestash)
- Large data upload is possible via globus, but users need to start their endpoint manually, establish the connection, and start the transfer themselves.
- We plan to build a system that allows large data uploads directly from the platform interface, but nothing is operational yet.
- As the Jupyter server is running on the HPC cluster, users can access their data stored in DTU's filesystem.
Other details
- Documentation for the qim3d library is also hosted in the same VM; it uses an MKDocs server
- The platform uses a simple SQLite database to store information about users and projects
- We have an Admin dashboard, and it's access is restricted to selected users (flag in the database)
- The platform shows status about the HPC cluster (user's jobs, queues, nodes etc)
- Source code is private and hosted in Compute's GitLab.
QIM platform backend
By Felipe Delestro
QIM platform backend
- 92