Giter Site home page Giter Site logo

upc / ravada Goto Github PK

View Code? Open in Web Editor NEW
540.0 27.0 176.0 34.61 MB

Remote Virtual Desktops Manager

Home Page: https://ravada.upc.edu/

License: GNU Affero General Public License v3.0

Perl 94.39% CSS 0.55% JavaScript 4.83% Makefile 0.01% Shell 0.04% HTML 0.05% Raku 0.03% Dockerfile 0.11%
vdi kvm libvirt hacktoberfest remote-desktop virtual-machine

ravada's Introduction

ravada

GitHub version License: AGPL v3 Documentation Status Follow twitter Telegram Group Project Status: Active - The project has reached a stable, usable state and is being actively developed. Translation status Conventional Commits

Remote Virtual Desktops Manager

Ravada is an open-source project that provides a web-based user interface for managing and accessing virtual machines (VMs) based on the QEMU/KVM virtualization technology. Ravada aims to simplify the management of virtual machines by offering a user-friendly interface accessible through a web browser.Ravada is meant for sysadmins who have some background in GNU/Linux, and want to deploy a VDI project.

Users can use Ravada to create, configure, and manage virtual machines without the need for a dedicated desktop client. It provides features such as remote console access, snapshot management, and the ability to manage multiple VMs from a central interface. Ravada's back-end has been designed and implemented in order to allow future hypervisors to be added to the framework.

The client only requirements are: a web-browser and a remote viewer supporting the spice protocol.

In the current release we use the KVM Hypervisors: KVM as the backend for the Virtual Machines.

Features

  • KVM backend for Windows and Linux Virtual machines
  • LDAP and SQL authentication
  • Kiosk mode
  • Remote Access with Spice for Windows and Linux
  • Light and fast virtual machine clones for each user
  • Instant clone creation
  • USB redirection
  • Easy and customizable end users interface
  • Administration from a web browser

Install

Read INSTALL.

Install Ravada in Ubuntu Install Ravada in Debian Install Ravada on Fedora Install Ravada on Rocky Linux 9 or RHEL9 Install Ravada - Ubuntu Xenial

Production

See production for production fine-tuning guidelines.

Operation

See operation.

Update

See update.

ravada's People

Contributors

amesones avatar amparorvd avatar andinus avatar cjuan avatar dani-sanchez-dorado avatar dependabot[bot] avatar ekuongm avatar eloicc23 avatar frankiejol avatar fv3rdugo avatar girlwithasmile avatar gloriarodriguez avatar gmiranda avatar janfontanet avatar jlopezramos avatar jmanelgm avatar joansp avatar joelalju avatar jresteban avatar kimiam70 avatar lepata avatar lfiguerola avatar mooha123 avatar omarbr6 avatar omimakhare avatar robertperez-upc avatar rogerferre avatar viveknshah avatar weblate avatar wisaias avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ravada's Issues

Check for disk space

Some jobs require a lot of disk space. Add a disk space check for the storage before:

  • Creation of a new domain
  • Prepare a base
  • Clone a domain

Clone disk names confusing

The disk filenames for the KVM clones are a little bit odd. The qcow files for the base are called "name.ro.qcow2" , and the incremental disk files for the clones are "name.ro.qcow2.qcow2". They should be called something like "basename.newname.qcow2"

Available machines buttons go to base instead of clone

At the main user page "Available Machines" , it is listed each base with some buttons: Start , shutdown , pause. The start button calls /machine/clone/id.html . That is correct because we want to clone the id base. But the other buttons: shutdown, pause , should call the the cloned id, not to the base id.

So we should check , if that machine has clones for that user and make those buttons call that clone. Hide the buttons if there are not clones.

Add access check to json routes

Many JSON routes from rvd_front.pl have no access check. Everybody can get that information. Make them available only to logged users. In case of sensitive information, make sure it is an admin user.

Polish the frontend

Review the frontend, we found those things to improve so far.

  • Consider changing the login background image
  • Remove support form
  • Message list : checkbox to mark as read or unread
  • Message list : click on subject to view message

Remove base

Add a new feature to remove a base. Delete the base files and don't allow more clones from this machine.

Change domain NIC

Allow different NIC configurations:

  • NAT ( default )
  • bridged
  • macvtap

New machine auto select type

When creating a new machine, if there is only one VM type, don't put a select or at least, show it already selected.

Add Help

New Help menu:

  • About
  • Requirements

Requirements something like:

Linux: virt-viewer
Windows: Spice plugin for Firefox http://bfy.tw/5Nur

Slow clone shows error

If the clone takes long, it shows a blank page with a brief message. Reloading shows the clone started. It is probably that clone was in process.

  • Wait a little longer before showing the error
  • Show a better error message: "working ... please reload" or something

Messages Table Format

Change the line size of the table and change the color of the collapsable messages content.

Send link of new machine

When a new domain successfully is created, in the message to the user send a link to view the machine. <a href="/machine/view/$id.html">Start</a>

Networks management

Add a networks management feature. Allow the admin add new networks and grant permission to the clients in that network to run virtual machines.

  • run all virtual machines
  • disable access from that network
  • select specific bases to run from that network
  • enable anonymous users

Improve machines list

At /machines

  • Sort by name
  • Show only bases and hide other machines
  • Show only active machines
  • Add Button "remove base"

LDAP add user fails

After fixing the search of users in LDAP with the same uid in many branches. Adding LDAP user fails.

Ping the backend

Check the backend if it is alive. It can be done with the API: $RAVADA->ping_backend. It returns 1 if success, 0 otherwise. Add a warning in the frontend if the backend is not available.

Get Domain info

Add a method to the domain to get the info:

  • max_mem
  • memory
  • cpu_time
  • n_virt_cpu
  • state

Add display_ip config

Add an entry at the config file to define the display ip. It will be used to define the IP for the remote display.

New domain arguments

When creating a new virtual machine, the user must be able to specify:

  • Memory
  • Disk size

Make buttons without post

The shutdown button may be called in some places : the main page and the machines list page. As now it always redirects to the machine list.

Make the shutdown button only do a get of a URL and don't make the client request a new page.
Some other buttons could benefit from this too:

  • shutdown
  • prepare base
  • pause
  • resume

Get SNMP info from the Domain

Create a new way to get information from the Domain via SNMP

  • Add snmp_community field in domains table

Fetch:

  • CPU load
  • Used Memory, probably : memory - cached
  • Swap
  • Disk usage
  • Network interfaces

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.