Giter VIP home page Giter VIP logo

lxdhub's Introduction

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.

Installation

Prerequisites

The fastest way to run LXDHub on your computer is by pulling the LXDHub LXC image from our public remote.

lxc remote add lxdhub https://lxdhub.xyz:8443 --accept-certificate --public
lxc launch lxdhub:lxdhub mylxdhub
lxc info mylxdhub | grep "eth0:.*inet" | head -n1 | awk '{print "Open http://"$3":3000 in your browser"}'

Adding your remotes:

lxc exec mylxdhub -- su -l lxdhub -c "cat << EOF >> ~/lxdhub/lxdhub.yml
  - name: efiks
    url: https://images.efiks.ovh:8443
    protocol: lxd
    public: true
    readonly: true
EOF"

# restart the services
lxc exec mylxdhub -- systemctl restart lxdhub-dbsync.service
lxc exec mylxdhub -- systemctl restart lxdhub.service

LXDHub can also be installed with other technologies:

Configuration Management

Ansible

Important Note: these playbooks were tested in the following environment:

  • ansible >= 2.5.1
  • Ubuntu
  • lxc (snap/native)

one can use the roles in the ansible folder to deploy lxdhub on their own server.

cd ansible
ansible-playbook deploy.yml -D -vv

one can also parametrize the container_name and lxdhub_version to be checked out as extra-vars.

ansible-playbook deploy.yml -D -vv -e "container_name=next-lxdhub" -e "lxdhub_version=v1.8.0"

This call will:

  1. create you a local lxdhub container (default)
  2. clone, build lxdhub inside of this container
  3. setup systemctl services
  4. publish an image in your local: 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.

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

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

lxdhub's People

Contributors

brunnel6 avatar brunnerlivio avatar erickeller avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.