< img align = "right" width = "300" height = "300" src = "https://git.swarmlab.io:3000/zeus/swarmlab-hybrid/raw/branch/master/docs/images/hybrid-1.png" >
### Welcome to Swarmlab.io
**Swarmlab** is a powerful collaboration tool that connects tutors and students
**in a unique all-in-one environment that gets work done fast and easily**
#### **Ready-to-Use Virtual Labs one click away.**
### Table of contents
1. [Features ](#introduction )
2. [System requirements ](#systemrequirements )
3. [Prerequisites ](#prerequisites )
4. [Installation ](#installation )
5. [More info ](#moreinfo )
### Features<a name="introduction"></a>
**Share your exercises and content as a tutor and access it as student on demand**
> ##### On demand Labrooms
>
> * Optimized for both Students and Tutors
> * Tutors bootstrap their labrooms using our tools
> * Students can join the created labrooms according to their interrests
> * Following the lead of a cloud based world, we use git for tutors to create, distribute and run their lessons.
>
> ##### Labroom hybrid
>
> Connect multiple computers through a network.
> Scale up or down without rebuilding
### System requirements<a name="systemrequirements"></a>
**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 (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 required for load file staging, persistence, or backups depends on the size of the data to be loaded.
> Docker uses a hypervisor with a VM, and the host server must support virtualization.
#### Prerequisites<a name="prerequisites"></a>
* node version >15
```sh
curl -sL https://deb.nodesource.com/setup_15.x | sudo -E bash -
sudo apt-get install -y nodejs
```
* docker
```sh
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]
```
* docker-compose
```sh
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
```sh
sudo npm install -g pm2
```
* wireguard
```sh
sudo apt install wireguard jq
```
### Installation<a name="installation"></a>
< br / >
< p align = "center" >
< p align = "center" >
- Clone the repo
```sh
git clone https://git.swarmlab.io:3000/zeus/swarmlab-hybrid.git
```
- Install it!
```sh
cd swarmlab-hybrid
./install.sh
```
- Open URL __http://localhost:3088__ in browser
- Get a Swarmlab account.
- Get a free API Key at **Settings->Enable the Swarmlab hybrid** Menu
< / p >
< / p >
### More Info<a name="moreinfo"></a>
You can find our docs in **docs** Directory
The Swarmlab docs are in **AsciiDoc** (similar to markdown), **PDF** and **html** format
Asciidoc add-on can be found here:
http://docs.swarmlab.io/SwarmLab-HowTos/labs/Howtos/doclive/asciidoc.adoc.html#_setup_live_preview_using_a_web_browser