Skip to content
Snippets Groups Projects
Select Git revision
  • 2e695f7599e7ae1f6cf27f9a89dc70609a2c210b
  • main default protected
2 results

figs

Nexus VDI

Introduction

Nexus VDI is a VDI (Virtual Desktop Infrastructure) written from scratch in Go and based on Linux/KVM + QEMU.

Components

Nexus VDI is divided into three components:

nexus-server

  • Documentation about the inner workings of nexus-server is described here
  • The server program (backend) that runs on a server
  • Exposes a REST API to manage users, VMs and templates

nexus-client

  • Documentation about how to use nexus clients is described here
  • The client or end-user program to manage users, VMs and templates
  • The client uses REST messages to communicate with nexus-server
  • The client can be run from anywhere (locally or remotely) as long as it can communicate with nexus-server
  • Two clients have been developed so far:
    • nexush: an interactive command line client, similar to a shell. It is the most user-friendly way to interact with nexus-server, but it is not suited for scripting
    • nexus-cli: a collection of commands particularly suited to scripting and automated operations
  • Both clients offer the same commands, functionalities and syntax
  • Most commands accept regular expressions so that many VMs can be created/started/stopped/destroyed/etc. at once
  • The "vmattach" command allows users to interact with their VM's desktop

nexus-exam

  • A minimalistic graphical application used during live exams
  • Doesn't feature any option and only allows a student to connect to her/his running VM
  • Its source code resides within the nexus-client codebase despite technically not being a nexus-client

Installation

Instructions on how to build and install nexus-server for development and production use, as well as building clients, are described here.