node-qemu-server lets you control virtual machines in your webbrowser.
- LSB Linux x86_64 (tested with Debian (Sid) GNU/Linux)
- qemu-system-x86 v1.6.1
- nodejs v0.10.21
- npm
- packages: {numactl, usbutils} (usb and numa are only available on Linux)
- v10.8 / v10.9 x86_64
- macports qemu v1.6.1
Install node-qemu-server on Debian GNU/Linux and OS X (assume you have installed qemu, node, npm and numactl)
$ git clone https://github.com/baslr/node-qemu-server
$ cd node-qemu-server
$ npm install
$ git submodule init
$ git submodule update
$ cd public/vendor/
$ bower install
$ cd ../../
$ ./cc
$ node server
Now open your HTML5 Webbrowser and open http://127.0.0.1:4224
setup and control qemu instances with Node.js
more to come in the future
vision: setup and control qemu instances via web gui, lean and simple
| node-qemu command | qmp command | 
|---|---|
| qVm.pause() | {"name": "stop"} | 
| qVm.reset() | {"name": "system_reset"} | 
| qVm.resume() | {"name": "cont"} | 
| qVm.shutdown() | {"name": "system_powerdown"} | 
| qVm.stop() | {"name": "quit"} | 
| qVm.status() | {"name": "query-status"} | 
# in work
      {"name": "qom-list-types"}
      {"name": "change-vnc-password"}
      {"name": "qom-get"}
      {"name": "qom-set"}
      {"name": "qom-list"}
      {"name": "query-block-jobs"}
      {"name": "query-balloon"}
      {"name": "query-migrate"}
      {"name": "query-uuid"}
      {"name": "query-name"}
      {"name": "query-spice"}
      {"name": "query-vnc"}
      {"name": "query-mice"}
      {"name": "query-kvm"}
      {"name": "query-pci"}
      {"name": "query-cpus"}
      {"name": "query-blockstats"}
      {"name": "query-block"}
      {"name": "query-chardev"}
      {"name": "query-commands"}
      {"name": "query-version"}
      {"name": "human-monitor-command"}
      {"name": "qmp_capabilities"}
      {"name": "add_client"}
      {"name": "expire_password"}
      {"name": "set_password"}
      {"name": "block_set_io_throttle"}
      {"name": "block_passwd"}
      {"name": "closefd"}
      {"name": "getfd"}
      {"name": "set_link"}
      {"name": "balloon"}
      {"name": "blockdev-snapshot-sync"}
      {"name": "transaction"}
      {"name": "block-job-cancel"}
      {"name": "block-job-set-speed"}
      {"name": "block-stream"}
      {"name": "block_resize"}
      {"name": "netdev_del"}
      {"name": "netdev_add"}
      {"name": "client_migrate_info"}
      {"name": "migrate_set_downtime"}
      {"name": "migrate_set_speed"}
      {"name": "migrate_cancel"}
      {"name": "migrate"}
      {"name": "xen-save-devices-state"}
      {"name": "inject-nmi"}
      {"name": "pmemsave"}
      {"name": "memsave"}
      {"name": "cpu"}
      {"name": "device_del"}
      {"name": "device_add"}
      {"name": "system_wakeup"}
      {"name": "screendump"}
      {"name": "change"}
      {"name": "eject"}




