Native Lightweight Vm Management Interface
Go to file
Michael Keist eedf007465 chmod g+w rundir 2018-09-29 19:57:00 +02:00
web sign and check signature on scripts for remote execution 2018-09-23 17:25:17 +02:00
.gitignore no drive should stay no drive in web. Createkey, gitignore 2018-09-23 15:51:44 +02:00
LICENSE Initial commit 2018-08-11 18:01:16 +00:00
README.md Update 'README.md' 2018-09-27 10:13:55 +00:00
nlvmi chmod g+w rundir 2018-09-29 19:57:00 +02:00
nlvmi.conf remote ssh checkvm, stopvm 2018-08-21 16:34:49 +02:00
suid-wrapper.c suid wrapper in source and bin 2018-08-12 18:53:21 +02:00
wrap-nlvmi suid wrapper in source and bin 2018-08-12 18:53:21 +02:00

README.md

nlvmi

Native Lightweight Vm Management Interface

Nlvmi is a management interface for qemu/kvm hosts written in php (with bootstrap) and bash.
Nlvmi should be able to run on any common Linux distro without much hassle or obscure dependencies.
Nlvmi is written to be lightweight, functional and easy to understand and modify, while still looking at least acceptable on any device.
Nlvmi supports multiple users (admins and restricted) on the frontend and also uses these users to run the VMs. No PAM, just su.
Unix users have /bin/false as shell and the password is stored within the nlvmi database.

Deps:
bash
bridge-utils
nginx / apache / lighttpd
openssh
php
socat
sqlite3 / mariadb (only sqlite3 for now)
usermode-utilities
openssl (for managing remote servers)

Manual install:
become root
cd /usr/local
git clone https://git.nativenet.ch/nativenet.ch/nlvmi.git
useradd nlvmi
ln -sf ${PWD}/nlvmi/nlvmi /usr/bin/
ln -sf ${PWD}/nlvmi/wrap-nlvmi /usr/bin/
ln -sf ${PWD}/nlvmi/web /var/www/localhost/htdocs/nlvmi --or wherever your webroot is
chown root:nlvmi nlvmi/*nlvmi
chmod +s nlvmi/wrap-nlvmi
mkdir /etc/nlvmi
cp nlvmi/vlvmi.conf /etc/nlvmi/
-- if it is the masterserver, create the db - nlvmi createdb
chown nobody:root /etc/nlvmi

After that, you should be able to access /nlvmi with a webbrowser. Create a new user (user will be admin) and add a server. For localhost, the connectstring should stay empty.

Do not forget to load the tun and tap kernel modules.

#not yet implemented...
mkdir /etc/nginx/nlvmi
add an "include nlvmi/*.conf" statement within nginx.conf's server declaration.