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.
 
 
 
 
 
 
zeus 4ebe6f955e editor 3 years ago
dist editor 3 years ago
docs readme 3 years ago
files editor 3 years ago
hybrid add hybrid ssh 4 years ago
install stats 4 years ago
keys client server ok 4 years ago
nginx changes 4 years ago
public add img 4 years ago
src editor 3 years ago
src-local editor 3 years ago
test changes 4 years ago
.gitignore backup 3 years ago
Dockerfile changes 4 years ago
Dockerfile.backup changes 4 years ago
Dockerfile.build client server ok 4 years ago
LICENSE Initial commit 4 years ago
README.md readme 3 years ago
down.sh bash update 4 years ago
ecosystem.config.js changes 4 years ago
ecosystem.config.js.backup changes 4 years ago
install.sh add container stop 3 years ago
package-lock.json seminars 4 years ago
package.json seminars 4 years ago
restart check sudo 4 years ago
restart.sh bash update 4 years ago
run.yml editor 3 years ago
run.yml.backup changes 4 years ago
run.yml.sh install 4 years ago
start check sudo 4 years ago
start.sh check ports 3 years ago
status.sh bash update 4 years ago
stop check sudo 4 years ago
stop.sh install 4 years ago
update-agent.sh add 4 years ago

README.md

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 Linux 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!!!

More Info

You can find our docs in

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