https://github.com/canonical/lxd-demo-server
The LXD demo server
https://github.com/canonical/lxd-demo-server
containers demo go lxd
Last synced: about 2 months ago
JSON representation
The LXD demo server
- Host: GitHub
- URL: https://github.com/canonical/lxd-demo-server
- Owner: canonical
- License: apache-2.0
- Created: 2015-11-04T22:51:36.000Z (over 10 years ago)
- Default Branch: main
- Last Pushed: 2024-01-02T07:53:33.000Z (over 2 years ago)
- Last Synced: 2025-06-22T17:01:44.744Z (about 1 year ago)
- Topics: containers, demo, go, lxd
- Language: JavaScript
- Homepage: https://linuxcontainers.org/lxd/try-it
- Size: 257 KB
- Stars: 73
- Watchers: 17
- Forks: 24
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: COPYING
- Authors: AUTHORS
Awesome Lists containing this project
README
# LXD demo server
This repository contains the backend code of the LXD online demo service.
[https://linuxcontainers.org/lxd/try-it](https://linuxcontainers.org/lxd/try-it)
## What is it
Simply put, it's a small Go daemon exposing a REST API that users
(mostly our javascript client) can interact with to create temporary
test containers and attach to that container's console.
Those containers come with a bunch of resource limitations and an
expiry, when the container expires, it's automatically deleted.
The main client can be found at the URL above, with its source available here:
[https://github.com/lxc/linuxcontainers.org](https://github.com/lxc/linuxcontainers.org)
## Installing on Ubuntu
The easiest way to get the demo server running on Ubuntu is by using the snap package.
First install and configure LXD itself:
```
sudo snap install lxd
sudo lxd init
```
Then install and configure the LXD demo server:
```
sudo snap install lxd-demo-server
sudo snap connect lxd-demo-server:lxd lxd:lxd
sudo lxd-demo-server.configure
```
You can then access the server at: http://IP-ADDRESS:8080/
## Dependencies
The server needs to be able to talk to a LXD daemon over the local unix
socket, so you need to have a LXD daemon installed and functional before
using this server.
Other than that, you can pull all the other necessary dependencies with:
go get github.com/lxc/lxd-demo-server
## Building it
A very simple:
go build
Should do the trick.
## Running it
To run your own, you should start by copying the example configuration
file "lxd-demo.yaml.example" to "lxd-demo.yaml", then update its content
according to your environment.
You will either need a container to copy for every request or a
container image to use, set that up and set the appropriate
configuration key.
Once done, simply run the daemon with:
./lxd-demo-server
The daemon isn't verbose at all, in fact it will only log critical LXD errors.
You can test things with:
curl http://localhost:8080/1.0
curl http://localhost:8080/1.0/terms
The server monitors the current directory for changes to its configuration file.
It will automatically reload the configuration after it's changed.
## Bug reports
Bug reports can be filed at https://github.com/lxc/lxd-demo-server/issues/new
## Contributing
Fixes and new features are greatly appreciated but please read our
[contributing guidelines](CONTRIBUTING.md) first.
Contributions to this project should be sent as pull requests on github.
## Support and discussions
We use the LXC mailing-lists for developer and user discussions, you can
find and subscribe to those at: https://lists.linuxcontainers.org
If you prefer live discussions, some of us also hang out in
[#lxcontainers](http://webchat.freenode.net/?channels=#lxcontainers) on irc.freenode.net.