Nuber is an open source container management platform it provides a front end to manage your own cloud infrastructure, using Linux Containers virtualization technology

Overview

Nuber (beta)

Nube is cloud in Spanish.

Nuber is an open source container management platform it provides a front end to manage your own cloud infrastructure, using Linux Containers virtualization technology. Linux containers is an open source container-based hypervisor, which is created and maintained by Canonical the company behind Ubuntu. Linux containers offers almost 15x greater density than KVM whilst allowing criticial applications run at bare metal performance (source).

This software aims to make it easier for software companies and developers to setup and manage their own cloud, whilst achieving high density virtualization, both these goals reduce costs and administration time significantly.

Nuber is a web-based software with an underlying set of processes for setting up and managing containers making it extremley easy to manage virtualization in a consistent way whilst removing the burden and complexity of trying to do this from the command line.

Installation

Nuber is installed inside its own container on a host which is running LXD. When you connect an LXD host to Nuber, depending on the storage driver it might make configuration changes to the host.

Server Setup

You will need a server or a virtual machine with Linux installed, it is recommened that use Ubuntu server LTS, for performance, security and easy of use. If you are setting this up at home on a MAC or a development machine, then you can install Ubuntu inside a virtual machine using virtualbox or Parallels Desktop. Please note that, LXD can't be installed inside a Docker container.

Its recommended to have a separate partition for the LXD storage pool, so do this during the install, create two partitions, one for the operating system, at least 15GB for / and leave the remaining space for the storage pool partition. Note, for production servers, you will need to ensure that you have enough free space for temporary files, such as when migrating containers to different servers, so 25GB or more is better.

The recommended storage pool driver is ZFS, see server setup using ZFS storage driver for more information on how to set this up.

Once you have setup your server and LXD has been initiailzed you can run the following command to install Nuber.

Nuber is best installed on a freshly installed system (without existing containers)

$ bash <(curl -s https://www.nuber.io/install.sh)

There is an option to create a bridged network connection, if you dont need this or you are installing in a virtual machine, then select n.

Do you want to setup a bridged network connection? (y/n) [n]

Once the installation is complete, you can go to https://:3000/install to setup your installation.

Uninstall Nuber

To uninstall Nuber, you need to run the following commands on your server.

$ lxc stop nuber-app
$ lxc delete nuber-app

Licence

This is software is free and open source and licensed under AGPL-3.0, which means if you make modifications to the source (Nuber) or create any derived works using the Nuber source code and ditribute it (including over a network to deliver a service to users other than yourself) then the new version must also be open source and licensed under the AGPL-3.0.

Comments
  • Terminal not working in the containers

    Terminal not working in the containers

    Good work, Jamie with the Nuber app. It is a great tool that you have develop.

    I installed it today on a arm64 VM and installation went well. Initially, the terminal in the GUI was working well however I don't see it working anymore (image below). I inspected it further and it say (replaced domain and IP with XXX):

    [Report Only] Refused to connect to 'wss://XXX.XXXX.COM/?server=XXX:8443/1.0/operations/07175bab-267c-49ce-bb6e-e0c37cbfe1ee/websocket?secret=XXXXXX3d00fffd44d3ff2b2a4075604b5b6a8871c0551ceecXXXX' because it violates the following Content Security Policy directive: "default-src https: data: blob:". Note that 'connect-src' was not explicitly set, so 'default-src' is used as a fallback.

    Is there a way to fix it? Also, I noticed that I am not able to create a new instance from the GUI (It says: Error creating instance.) but it is fine to create one from the CLI of the host server.

    Thanks and I look forward to your response.

    opened by 4abhinavjain 18
  • 500 after adding my first server

    500 after adding my first server

    image

    root@nuber:/var/www/logs# tail -f application.log
    [2022-05-06 16:25:50] application CRITICAL: TypeError Argument 2 passed to __() must be of the type array, int given, called in /var/www/app/Model/Host.php on line 130 in vendor/originphp/framework/src/I18n/functions.php:26
    [2022-05-06 16:25:56] application CRITICAL: TypeError Argument 2 passed to __() must be of the type array, int given, called in /var/www/app/Model/Host.php on line 130 in vendor/originphp/framework/src/I18n/functions.php:26
    [2022-05-06 16:26:01] application CRITICAL: TypeError Return value of App\Http\Controller\ApplicationController::getDefaultHost() must be of the type string, null returned in app/Http/Controller/ApplicationController.php:95
    [2022-05-06 16:26:13] application CRITICAL: TypeError Return value of App\Http\Controller\ApplicationController::getDefaultHost() must be of the type string, null returned in app/Http/Controller/ApplicationController.php:95
    

    The last two lines pop up when I visit the nuber webpage /instances. The first two popped up after configuring my first server

    Last line in lxd.log shows a 404 not found:

    {"date":"2022-05-06 16:25:56","channel":"lxd","level":"ERROR","message":"POST /1.0/certificates","host":"192.168.178.5","method":"POST","requestURL":"https://192.168.178.5:8443/1.0/certificates","requestBody":{"type":"client","name":"nuber","password":"QUyLH9RueF2k"},"responseHeaders":{"HTTP/2 404 ":null,"content-type":"application/json","x-content-type-options":"nosniff","content-length":"114","date":"Fri, 06 May 2022 16"},"responseCode":404,"responseBody":{"type":"error","status":"","status_code":0,"operation":"","error_code":404,"error":"not found","metadata":null}}
    

    Server runs LXD 5.1

    opened by vosdev 9
  • LXD Projects and Nuber

    LXD Projects and Nuber

    Hey hello,

    I utilize LXD projects to separate my instances into 5 different groups, for example:

    ~
    root @ epyc # lxc project ls
    +------------------+--------+----------+-----------------+----------+---------------------+---------+
    |       NAME       | IMAGES | PROFILES | STORAGE VOLUMES | NETWORKS |     DESCRIPTION     | USED BY |
    +------------------+--------+----------+-----------------+----------+---------------------+---------+
    | cloudnative      | YES    | YES      | YES             | NO       |                     | 18      |
    +------------------+--------+----------+-----------------+----------+---------------------+---------+
    | default          | YES    | YES      | YES             | YES      | Default LXD project | 6       |
    +------------------+--------+----------+-----------------+----------+---------------------+---------+
    | legacy (current) | NO     | NO       | NO              | NO       |                     | 11      |
    +------------------+--------+----------+-----------------+----------+---------------------+---------+
    

    How can I switch between projects in the nuber web interface? I do not use the default profile except for my profiles so without the ability to switch projects..

    opened by vosdev 7
  • CPU usage in % display?

    CPU usage in % display?

    Hi, I love this project and thank you for your hard work! But can you add "CPU Usage %" in dashboard ? I know there is no such API in lxd, but I think maybe we can calculate the percent of CPU, such as :

    CPU % = ( ( cpu seconds now - cpu seconds before ) / (duration time * cores of the container)) * 100

    So we can know where the noise comes from :D

    enhancement 
    opened by StormYudi 6
  • IPV6 Addresses

    IPV6 Addresses

    Display the IPV6 addresses if enabled, in the user guide during setup maybe mention this if, if user wants to have enabled rather that saying accept defaults.

    enhancement 
    opened by jamielsharief 5
  • ipv6 addresses incorrectly stripped

    ipv6 addresses incorrectly stripped

    image

    ip addresses are split on :

    Should be a reverse split on : so it's done on the last occurrence and not the first to support IPv6

    in python this is .rsplit(':') instead of .split(':')

    opened by vosdev 3
  • Proxy IP detection

    Proxy IP detection

    In the setup i am using a VM with two network cards, for security reasons I set LXD to listen on the local IP address NIC no2 as result the proxy is like this

      proxy-5353:
        connect: udp:0.0.0.0:53
        listen: udp:192.168.122.41:53
    

    As a result nothing works. Need to detect this better.

    bug documentation 
    opened by jamielsharief 1
  • Starting instances

    Starting instances

    Currently depending upon servers, VMs can take longer to boot, this can cause an error because nuber is checking to see if internet is ready and gives up to early, however setting this too long, will be annoying for misconfigured instances that never boot.

    Look at increasing this whilst checking that the lxd agent is running as a second check.

    enhancement 
    opened by jamielsharief 0
  • Installation problem in a VM with HDD on a public network

    Installation problem in a VM with HDD on a public network

    When trying to install a ton of ubuntu server not reachable errors kept on coming back, is it possible, the networking needs some time before the script can be run.

    I don't want to add a sleep 10 etc but obviously this is an issue. Could move the curl script to after creating the container to give it some time, but not sure this will be adequate.

    Dedicated server with HDD, installed inside a VM (problem did not happen when installing on baremetal or inside a VM at home on an SSD). Also using private network mixed with public IPv6 address.

    bug 
    opened by jamielsharief 0
  • Timing out after 5 minutes of inactivity

    Timing out after 5 minutes of inactivity

    The timeout should be 15 minutes of inactivity but it timing out at 5 minutes, I suspect it is the mouse movement inactivity detection rather than the session timeout.

    bug 
    opened by jamielsharief 0
  • Please contact me via email or something

    Please contact me via email or something

    Please contact me via email or something. There has been no activity for some time and I don't know how to get in touch with you. Please post an email or something. :) Thanks!

    opened by michacassola 1
  • Web Terminal don't work

    Web Terminal don't work

    New issue for "Web Terminal don't work" problem. The Web Terminal shows nothing but black, and can't type in anything. I checked the browser and got two errors. (I have tried Edge v103, Chrome v103, safari 15; I got the errors on Chrome) DevTools failed to load source map: Could not load content for https://34.125.133.35:3000/cache_js/bootstrap.min.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE DevTools failed to load source map: Could not load content for https://34.125.133.35:3000/js/xterm.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE

    image

    opened by Febtw 32
  • Adding hosts with IPv6

    Adding hosts with IPv6

    Check that hosts can be added with IPV6 addresses on install and afterwards. The autodetection is returning the IPv6 address with brackets [], the ping function adds this to use work with fsck. Furthermore its been reported that some of the address is being split due to the brackets.

    #26

    opened by jamielsharief 0
Tcc realizado na Etec de Guaianazes (2021),onde eu fui o back-end e Vinicius de Almeida foi o front-end.

TCC-Facilita+ Todos os arquivos do projeto de TCC (Facilita+) da Etec de Guaianases realizado em 2021 1° Para utilizar os arquivos,primeiro será nesce

Helder Davidson Rodrigues Alvarenga 0 Jun 15, 2022
OSX/Linux Docker containers installer for Magento 2

Magento 2 OSX/Linux Docker Requirements MacOS: Docker, docker-sync, Git Linux: Docker, Docker-compose, Git on Debian based OS (Example: Ubuntu, Linux

Osiozekhai Aliu 54 Dec 10, 2022
A research raw data repository for researchers of Arba Minch University built using Codeigniter which follows MVC architecture. The front-end is build using Bootstrap.

Arba Minch University Dataset Repository This system is a research dataset repository for Arba Minch University researchers and is build using Codeign

Wuletaw Wonte 8 Jul 1, 2022
This script allows to bypass Oracle Cloud Infrastructure 'Out of host capacity' error immediately when additional OCI capacity will appear in your Home Region / Availability domain.

Resolving Oracle Cloud "Out of Capacity" issue and getting free VPS with 4 ARM cores / 24GB of memory Very neat and useful configuration was recently

Alexander Hitrov 323 Jan 6, 2023
Apache OpenWhisk is an open source serverless cloud platform

OpenWhisk OpenWhisk is a serverless functions platform for building cloud applications. OpenWhisk offers a rich programming model for creating serverl

The Apache Software Foundation 5.9k Jan 8, 2023
This package provides a set of factories to be used with containers using the PSR-11 standard for an easy Doctrine integration in a project

psr-container-doctrine: Doctrine Factories for PSR-11 Containers Doctrine factories for PSR-11 containers. This package provides a set of factories to

Roave, LLC 84 Dec 14, 2022
A next-generation package manager for the front-end

Duo is a next-generation package manager that blends the best ideas from Component, Browserify and Go to make organizing and writing front-end code qu

Duo 3.4k Dec 28, 2022
Phalcon Mooc an example API + Front End with automated tests

NovaMooc - a Phalcon project A Mooc project developed with Phalcon, a PHP framework. Key Features • How To Use • Contributing • Credits • License Key

Les Enovateurs 19 Dec 4, 2022
WordPress plugin which contains a collection of modules to apply theme-agnostic front-end modifications

Soil A WordPress plugin which contains a collection of modules to apply theme-agnostic front-end modifications. Soil is a commercial plugin available

Roots 1k Dec 20, 2022
MagentoSnippets - Magento Front End Snippets, plugin for Sublime Text

MagentoSnippets Magento Front End Snippets, plugin for Sublime Text. This tool serves to aid the productivity during the Magento's theme development t

MageFront 27 Nov 1, 2022
Resources for the Magento 2 Certified Professional Front End Developer exam

Magento 2 Certified Professional Front End Developer Training Resources Below are the 6 slide decks used internally at Fisheye to help us prepare for

Fisheye Academy 109 Oct 21, 2022
Next-generation front-end for Magento 2

The next-generation front-end for Magento 2. Fast. Reliable. Extensible. Getting started – create a new application and deploy it as Magento 2 theme o

ScandiPWA 509 Jan 2, 2023
Set of front-end tools for Magento 2 based on Gulp.js

Magento 2 Frontools Set of front-end tools for Magento 2 Requirements Unix-like OS (please, do not ask about Windows support) Node.js LTS version. We

SNOW.DOG 433 Dec 6, 2022
Simply removes the applcation's front-end and redirects it to the admin area.

Simply removes the application's front-end and redirects it to the admin area.

Albright Labs 1 Mar 28, 2022
This repository contains the code for the front end/UI of the login system

Bug-free-login This repository contains the code for the front end/UI of the login system Requirements PHP 5.5.0 or higher. How to use Download ZIP wi

Abhijeet Kumar 2 Oct 6, 2022
Starless Sky is a network protocol for secure identities, providing the use of assymetric identities, public information, end-to-end messaging and smart contracts

Descentralized network protocol providing smart identity over an secure layer. What is the Starless Sky Protocol? Starless Sky is a network protocol f

Starless Sky Protocol 3 Jun 19, 2022
Mage2click toolset to create and manage the Magento Docker development environment with mutagen.io file-sync for macOS and native filesystem mounts on Linux.

Mage2click - Magento Docker Toolset Mage2click toolset is a system-wide command-line tool for creating and managing simultaneously running Magento Doc

Mage2click 69 Nov 28, 2022
Open Source Data & Experience Management Platform (PIM, MDM, CDP, DAM, DXP/CMS & Digital Commerce)

Pimcore - Open Source Data & Experience Management Platform: PIM, MDM, CDP, DAM, DXP/CMS & Digital Commerce

Pimcore 2.7k Jan 4, 2023
A plain-language, step-by-step guide for the computer novice to build their own cloud.

This is a plain-language, step-by-step guide for the computer novice wanting to build their own cloud, looking to declare independence from Google and its ilk, to save on monthly hosting fees, or just learn a new skill.

Paul Knight 25 Nov 19, 2022