Display, search and copy LXD images using a web interface.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.circleci lxdhub: fix circle ci deploy Aug 14, 2018
.vscode api: make express instance pluggable from outside Jul 17, 2018
bin api: make express instance pluggable from outside Jul 17, 2018
certificates lxdhub: release 1.0.0 May 23, 2018
deploy add basic deployment script for ssl certificates Jun 29, 2018
docs api: make express instance pluggable from outside Jul 17, 2018
image setup lxdhub-web Jun 29, 2018
packages v1.7.0 Jul 17, 2018
.dockerignore api: make express instance pluggable from outside Jul 17, 2018
.gitignore lxdhub: refactor build process Jun 20, 2018
.yarnrc lxdhub: refactor build process Jun 20, 2018
CONTRIBUTING.md lxdhub: release 1.0.0 May 23, 2018
COPYRIGHT lxdhub: release 1.0.0 May 23, 2018
Dockerfile api: make express instance pluggable from outside Jul 17, 2018
LICENSE lxdhub: release 1.0.0 May 23, 2018
README.md api: make express instance pluggable from outside Jul 17, 2018
docker-compose.yml api: make express instance pluggable from outside Jul 17, 2018
lerna.json api: make express instance pluggable from outside Jul 17, 2018
lxdhub.yml.template fix potocole example typo Jun 20, 2018
package-lock.json api: make express instance pluggable from outside Jul 17, 2018
package.json lxdhub: Fix start.js script for lxdhub/web Aug 21, 2018
tsconfig.base.json lxdhub: refactor build process Jun 20, 2018
tsconfig.json lxdhub: refactor build process Jun 20, 2018
tslint.json lxdhub: release 1.0.0 May 23, 2018
yarn.lock lxdhub: Fix start.js script for lxdhub/web Aug 21, 2018

README.md

LXD Hub Logo

Display, search and copy LXC images using a web interface.

Gitter Circle CI Status

Purpose

LXDHub is a management system for linux containers (LXC). With LXDHub you can visualize LXC images of multiple (private & public) remotes. One of the key features of LXDHub is to clone LXC images from one remote to another. Therefor you can mirror public remotes to your private remote.

Packages

Under the hood, LXDHub is split in five packages. The following graph visualizes the dependencies of each package.

Package Dependency

Name Version Description
@lxdhub/web npm version The LXDHub webinterface
@lxdhub/api npm version The REST API for the LXDHub webinterface
@lxdhub/dbsync npm version The script to synchronize multiple LXD remotes with the LXDHub database
@lxdhub/db npm version The package, which provides database functions for the @lxdhub/api and @lxdhub/dbsync packages
@lxdhub/common npm version The package, which provides common functions for all LXDHub-packages.

The packages @lxdhub/db and @lxdhub/common are solely libraries, which can not be run seperatly. Whereas the packages @lxdhub/web, @lxdhub/api and @lxdhub/dbsync can be run seperatly via Docker or NodeJS.

Installation

Prerequisites

Generate LXC Certificate

Before you can start the application, you need to add your LXC certificates. More information on generate-lxc-certificates.md

Install

Run the following commands in your terminal prompt.

# Clone the repository locally
git clone git@github.com:Roche/lxdhub.git lxdhub
cd lxdhub

mv lxdhub.yml.template lxdhub.yml
# Edit the configuration template
vi lxdhub.yml

# Build the containers
docker-compose build
# Run the containers (api, dbsync and db)
docker-compose up

# Open localhost:3000/api/v1/doc

Tests

Prerequisites

Unit / Integration Tests

Run the automated test cases with NodeJS.

docker build -t $USER/lxdhub .
docker run -it brunnel6/lxdhub test
docker run -it brunnel6/lxdhub lint

Environment for Manual Testing

LXC

Run the command ./bin/setup-local-test-remote.sh which uses the port 8443 for your local LXC REST API. The default password for your local remote is unsecret.

LXDHub API

The LXDHub API offers a test environment, which can be tested manually. To run the tests exectue the following commands in your terminal prompt.

# Install the dependencies (optional)
npm install
./bin/start-lxdhub-api-test-env.sh

The data will no be loaded from your local SQLite database. The model data inside the test environment, are defined inside the src/api/test/fixtures/*.json files.

Related

  • @lxdhub/web: The LXDHub webinterface
  • @lxdhub/api: The REST API for the LXDHub webinterface
  • @lxdhub/dbsync: The script to synchronize multiple LXD remotes with the LXDHub database
  • @lxdhub/db: The package, which provides database functions for the @lxdhub/api and @lxdhub/dbsync packages
  • @lxdhub/common: The package, which provides common functions for all LXDHub-packages
  • CONTRIBUTING.md: The contributing guidelines
  • COPYRIGHT: Copyright informations
  • publish.md: Documentation on how LXDHub is being published
  • LXC: The underlying technology behind LXDHub

People