Michael Keist eedf007465 | ||
---|---|---|
web | ||
.gitignore | ||
LICENSE | ||
README.md | ||
nlvmi | ||
nlvmi.conf | ||
suid-wrapper.c | ||
wrap-nlvmi |
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.