Skip to content

isislab-unisa/vm-lab

Repository files navigation

VM Lab

Python Static Badge Streamlit Static Badge PostgreSQL Static Badge SQLAlchemy Static Badge

Welcome

VM Lab is a web-based platform for managing virtual machines (VMs), users, and bookmarks, designed for educational, research and work environments. It provides a user-friendly interface for both end-users and administrators, with robust authentication, role-based access control, and seamless integration with SSH/SFTP modules.

dashboard

Features

  • User Management: Registration, approval workflow, role assignment, and credential editing.
  • Role-Based Access Control: Fine-grained permissions for Admins, Managers, Sidekicks, Regular Users, and New Users.
  • VM Management: Create, assign, edit, connect, and delete VMs with secure password/SSH key handling.
  • Bookmarks: Save and manage useful links.
  • Interactive UI: Built with Streamlit, featuring custom components like interactive data tables and dialogs.
  • Secure Authentication: Uses Streamlit-Authenticator with encrypted credentials and session management.
  • Database Integration: PostgreSQL backend with SQLAlchemy ORM.
  • Modular Architecture: Clean separation of backend, frontend, utilities, and configuration.
  • Deployment Flexibility: Supports both Docker-based and local development setups.

connection

Other modules

This project is part of a modular architecture. Find out more about it here.

Documentation

Full documentation and guides are available in the Wiki.

Contributing

  • See Contributing-To-The-Wiki for documentation standards and contribution guidelines.
  • Issues and feature requests are welcome!

License

MIT License