A Node.js LXD client which uses your local instance of LXD and lxc query
to manage your local or remote LXD servers.
You must be using >= LXD 2.17
Require this package with npm using the following command:
$ npm i lxc-query
Essentially you can do any LXD operation with the single lxc.query
method, or you can use the helper methods which cover all the LXD endpoints.
Parameters & Call
Parameter | Type | Description | Default |
---|---|---|---|
remote | string | LXD remote and endpoint | local |
rest method | string | e.g GET, POST, DELETE, PUT, PATCH | GET |
payload | object | json string | Rest json payload | |
mutator | function | Pre-resolve mutation function |
const lxc = require('lxc-query')
lxc.query('remote:/1.0', 'GET', {}).then(response => {
console.log(response)
})
Using express you can map the rest calls to the lib as shown below:
const lxc = require('lxc-query')
const express = require('express')
const app = express()
app.all('/*', (req, res) => {
lxc.query(req.url.substr(1), req.method, req.body).then(response => res.json(response))
})
app.listen(3000)
So using the above if you visited http://127.0.0.1:3000/local:/1.0/containers
it would proxy it though to local LXD server, list containers.. You could do this for any rest method or LXD endpoint, with the addition that local:
can be any of your defined remotes!
Check out the LXD RESTapi, for more information.
Please see CONTRIBUTING for details.
If you want to show your appreciation, please feel free to make a donation https://www.paypal.me/lcherone, thanks.
The MIT License (MIT). Please see License File for more information.
Check out LXD-UI - A simple easy to use GUI for your local LXD server.