You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

5.7 KiB

Swarmlab Hybrid

Welcome to Swarmlab.io

On demand Labrooms
Ready-to-Use Virtual Labs one click away.

Table of contents

  1. Features
  2. System requirements
  3. Prerequisites
  4. Installation
  5. More info

An open source work/study-from-home application.

Swarmlab provides you with all the required tools, tools to teach work or try out demos in a completely virtual environment.

Swarmlab is a collection of services that aims to:

  • provide teachers and professors with online remote tools to do their lessons

  • give students the opportunity to study real life examples in their chosen area of expertise

  • allow developers to fully test and debug their applications and provide POC’s

Swarmlab, up and running since 2020, is already used for teaching purposes in a university and has proven itself as a powerful tool in the post covid remote-based situation.

Source code is available at https://git.swarmlab.io:3000 under the AGPL licence.

Ready to run out-of-the-box

As of now the services provided by swarmlab are:

Labrooms(virtual classrooms in the form of model applications to be tweaked at will)

  • linux → base linux system – designed for use as a base to further develop your app

  • MPI → Instances of Ubuntu Linux with MPICH — portable implementation of Message Passing Interface (MPI) standard. Designed for MPI program development and deployment.

  • Node.js

  • sec → a basic linux-based os with security tools – designed as a template for apps

Storage to automatically create a cluster of databases.

Proof Of Concept (POC) options

  • datacollector → using provided services a fully developed application may collect data from a swarm and use it for further analysis

Microservices

  • Jupyter

  • numpy

  • scipy

  • nodejs

  • nginx

  • haproxy

  • gns3

  • wireshark

  • snmpsim

  • xelatexthesis

  • ansible

  • etherpad

  • codeserver (vscode)

  • redisserver

  • mongoserver

  • mongoclient (GUI)

      to be continued…
    

System requirements

Before you create and configure a hybrid deployment using the swarmlab-agent client, your Local Machines need to meet certain requirements.

If you don't meet those requirements, you won't be able to complete the steps within the swarmlab-agent client and you won't be able to configure a hybrid deployment between your Local Enviroment and Swarmlab Online Enviroment.

A Server (Virtual or Physical)

  • You must have super user privileges (root/sudo)
  • Docker Engine- Community version 18 or later is required.
  • Docker Engine is supported on x86_64 (or amd64), armhf, and arm64 architectures.

RAM

  • Absolute minimum to run the daemon and some very light containers - 512MB
  • Minimum for “comfortable” usage – 2GB

CPU

  • Minimum: 2
  • Recommended 4+

Disk Space

  • 10 GB for internal requirements.
  • The amount of additional disk space soloemnly depends on you intended use.

⚠️ Since Docker uses hypervisor the host NEEDS TO HAVE VIRTUALIZATION ENABLED!

Prerequisites

  • node version >15

    curl -sL https://deb.nodesource.com/setup_15.x | sudo -E bash -
    sudo apt-get install -y nodejs
    
  • docker

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    sudo apt update
    sudo apt install -y docker-ce
    sudo usermod -aG docker [USERNAME] # Please replace [USERNAME] with the user you want to run docker on
    

ℹ️ for kali specifically please visit the following link to install docker.

https://linuxhint.com/install_docker_kali_linux/

  • docker-compose

    sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    
  • pm2

    sudo npm install -g pm2
    
  • wireguard

    sudo apt install wireguard jq
    

Installation

for *nix

  • Clone the repo

    git clone --recurse-submodules https://git.swarmlab.io:3000/zeus/swarmlab-hybrid.git
    
  • Install it!

    cd swarmlab-hybrid
    ./install.sh  <-- run it without root privileges
    
  • Open URL http://localhost:3088 in browser

for Windows

http://docs.swarmlab.io/SwarmLab-HowTos/swarmlab/docs/swarmlab/docs/install/install-docker.html#windows-10-with-wsl-version2-enabled

if you wish to keep the environment contained

And instructions on how to use them here.

ℹ️ Default password: swarmlab

PLEASE CHANGE PASSWORD IMEDIATELLY AFTER FIRST LAUNCH!!!

Fix "x509: certificate signed by unknown authority" issue

http://docs.swarmlab.io/SwarmLab-HowTos/swarmlab/docs/swarmlab/docs/install/install-docker.html#fix-x509-certificate-signed-by-unknown-authority-issue

Fix "server certificate verification failed. CAfile:..." issue

http://docs.swarmlab.io/SwarmLab-HowTos/swarmlab/docs/swarmlab/docs/install/install-docker.html#fix-server-certificate-verification-failed-cafile

More Info

You can find our docs in

http://docs.swarmlab.io/SwarmLab-HowTos/swarmlab/docs/swarmlab/docs/index.html