Browse Source

add docs

master
zeus 3 years ago
parent
commit
04a22b9999
  1. 11
      docs/antora.yml
  2. 46
      docs/modules/'
  3. BIN
      docs/modules/ROOT/images/swarmlab.png
  4. 1
      docs/modules/ROOT/nav.adoc
  5. 105
      docs/modules/ROOT/pages/index.adoc
  6. BIN
      docs/modules/hybrid/images/browsing-labroom.png
  7. BIN
      docs/modules/hybrid/images/browsing-microservices.png
  8. BIN
      docs/modules/hybrid/images/browsing-storage-sudo.png
  9. BIN
      docs/modules/hybrid/images/browsing-storage.png
  10. BIN
      docs/modules/hybrid/images/cloud_icon.png
  11. BIN
      docs/modules/hybrid/images/cloud_icon_down.png
  12. BIN
      docs/modules/hybrid/images/console.png
  13. BIN
      docs/modules/hybrid/images/info_icon.png
  14. BIN
      docs/modules/hybrid/images/manage-instanches-connect.png
  15. BIN
      docs/modules/hybrid/images/manage-instanches-maps.png
  16. BIN
      docs/modules/hybrid/images/manage-instanches.png
  17. BIN
      docs/modules/hybrid/images/more-buttons.png
  18. BIN
      docs/modules/hybrid/images/more-menou.png
  19. BIN
      docs/modules/hybrid/images/more-network-info-info.png
  20. BIN
      docs/modules/hybrid/images/more-network-info.png
  21. BIN
      docs/modules/hybrid/images/more-network-update.png
  22. BIN
      docs/modules/hybrid/images/more-network.png
  23. BIN
      docs/modules/hybrid/images/more.png
  24. BIN
      docs/modules/hybrid/images/scale.png
  25. BIN
      docs/modules/hybrid/images/thumb-down.png
  26. BIN
      docs/modules/hybrid/images/thumb-up.png
  27. BIN
      docs/modules/hybrid/images/trash_icon.png
  28. BIN
      docs/modules/hybrid/images/types-of-mounts-volume.png
  29. 9
      docs/modules/hybrid/nav.adoc
  30. 77
      docs/modules/hybrid/pages/manage-instanches.adoc
  31. 74
      docs/modules/hybrid/pages/manage-instanchesi-connect.adoc
  32. 17
      docs/modules/hybrid/pages/overview-hybrid.adoc
  33. 23
      docs/modules/hybrid/pages/overview.adoc
  34. 72
      docs/modules/hybrid/pages/start-labroom.adoc
  35. 63
      docs/modules/hybrid/pages/start-microservices.adoc
  36. 76
      docs/modules/hybrid/pages/start-storage.adoc
  37. BIN
      docs/modules/install/images/cicd.jpg
  38. BIN
      docs/modules/install/images/wsl2-choose-distro.png
  39. BIN
      docs/modules/install/images/wsl2-enable.png
  40. 5
      docs/modules/install/nav.adoc
  41. 145
      docs/modules/install/pages/install-docker.adoc
  42. 279
      docs/modules/install/pages/install-hybrid.adoc
  43. 276
      docs/modules/install/pages/install-venus.adoc
  44. 45
      docs/modules/install/pages/overview.adoc
  45. BIN
      docs/modules/myservices/images/replica-set-primary-with-two-secondaries.bakedsvg.png
  46. BIN
      docs/modules/myservices/images/replica-set-read-write-operations-primary.bakedsvg.png
  47. BIN
      docs/modules/myservices/images/swarmlab-network.png
  48. 12
      docs/modules/myservices/nav.adoc
  49. 113
      docs/modules/myservices/pages/jupyter.adoc
  50. 178
      docs/modules/myservices/pages/linux.adoc
  51. 167
      docs/modules/myservices/pages/mpi.adoc
  52. 79
      docs/modules/myservices/pages/node.adoc
  53. 150
      docs/modules/myservices/pages/nodevuejs.adoc
  54. 15
      docs/modules/myservices/pages/overview-labroom.adoc
  55. 14
      docs/modules/myservices/pages/overview-services.adoc
  56. 17
      docs/modules/myservices/pages/overview-storage.adoc
  57. 24
      docs/modules/myservices/pages/overview.adoc
  58. 162
      docs/modules/myservices/pages/storage-mongo-replica.adoc
  59. 1
      docs/modules/quickstart/nav.adoc
  60. 45
      docs/modules/quickstart/pages/overview.adoc
  61. BIN
      docs/modules/register/images/login.png
  62. BIN
      docs/modules/register/images/login_main.png
  63. BIN
      docs/modules/register/images/register_details.png
  64. BIN
      docs/modules/register/images/swarm.jpeg
  65. BIN
      docs/modules/register/images/terms.png
  66. 1
      docs/modules/register/nav.adoc
  67. 48
      docs/modules/register/pages/overview.adoc
  68. BIN
      docs/modules/venus/images/container-connection.png
  69. BIN
      docs/modules/venus/images/deploy.png
  70. BIN
      docs/modules/venus/images/host-connection.png
  71. BIN
      docs/modules/venus/images/join-connect-mode.png
  72. BIN
      docs/modules/venus/images/join-connect-status-info.png
  73. BIN
      docs/modules/venus/images/join-connect-status.png
  74. BIN
      docs/modules/venus/images/join-connect.png
  75. BIN
      docs/modules/venus/images/join-info.png
  76. BIN
      docs/modules/venus/images/join-status.png
  77. BIN
      docs/modules/venus/images/join.png
  78. BIN
      docs/modules/venus/images/manage-deploy-infomenou.png
  79. BIN
      docs/modules/venus/images/manage-deploy-more.png
  80. BIN
      docs/modules/venus/images/manage-deploy-showusers.png
  81. BIN
      docs/modules/venus/images/manage-deploy.png
  82. BIN
      docs/modules/venus/images/share-app-info.png
  83. BIN
      docs/modules/venus/images/share-info-default.png
  84. BIN
      docs/modules/venus/images/share-info.png
  85. BIN
      docs/modules/venus/images/share-networks-info.png
  86. BIN
      docs/modules/venus/images/share-networks.png
  87. BIN
      docs/modules/venus/images/share.png
  88. BIN
      docs/modules/venus/images/volume-connect-info.png
  89. BIN
      docs/modules/venus/images/volume-connect.png
  90. BIN
      docs/modules/venus/images/volume-create-info.png
  91. BIN
      docs/modules/venus/images/volume-create.png
  92. BIN
      docs/modules/venus/images/volume-delete-icon.png
  93. BIN
      docs/modules/venus/images/volume-info-icon.png
  94. BIN
      docs/modules/venus/images/volume-info.png
  95. BIN
      docs/modules/venus/images/volume-left.png
  96. BIN
      docs/modules/venus/images/volume-main.png
  97. BIN
      docs/modules/venus/images/volume-more.png
  98. BIN
      docs/modules/venus/images/volume-mount-no.png
  99. BIN
      docs/modules/venus/images/volume-mount-yes.png
  100. BIN
      docs/modules/venus/images/volume-right.png

11
docs/antora.yml

@ -1,11 +0,0 @@
name: swarmlab
title: swarmlab
version: docs
nav:
- modules/ROOT/nav.adoc
- modules/register/nav.adoc
- modules/install/nav.adoc
- modules/quickstart/nav.adoc
- modules/hybrid/nav.adoc
- modules/venus/nav.adoc
- modules/myservices/nav.adoc

46
docs/modules/'

@ -1,46 +0,0 @@
= Quickstart
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
This is where your wondeful journey in the vast world of Swarmlab begins.
== Senario 1
* you are a *teacher* and want to prepare your lesson
** create exercises and examples
** share them with your students
* you are a *student* and want to try your newly acquired knowledge on some project
* you are a *Developer* and would like to denug your application or a real world senario
** you want to provide POC
* you are a *user* and just want to try out stuff
** you want to play around with examples but are too scared to do so on your system
Well this is where you start!
=== link:hybrid/start-labroom.html[start labroom]
=== link:hybrid/start-storage.html[start storage]
=== link:hybrid/start-microservices.html[start service]
== Senario 2
You have already completed senario 1 (using swarmlab or you own resources) and would now like to collaborate with others.
* as a teacher you would like to share the lesson you have prepared and work on it throughout the semester
* as a developer you want to coordinate with your team
* as a student you want to communicate and cooperate with your friends
Lets begin!
=== create network
=== invite
=== share
==== app
==== volume

BIN
docs/modules/ROOT/images/swarmlab.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

1
docs/modules/ROOT/nav.adoc

@ -1 +0,0 @@
* xref:index.adoc[Welcome]

105
docs/modules/ROOT/pages/index.adoc

@ -1,105 +0,0 @@
= Welcome to Swarmlab!
image::ROOT:swarmlab.png[swarmlab,150,float=right]
Swarmlab provides the user with the unique abillity to *create Labrooms* (or other applications) and *share* them as project images expanding the simple ideas to full-blown systems.
An all of that using only the browser and the command line of their system.
== Intro
You will be connected to the Swarmlab Cloud (hence HYBRID) but you will be able to use your own storage(move files around, delete/copy etc),your own networking and computational power(cpu/graphics etc) and create a system exactly the way you need it.
This way you will be able to :
* create images for testing.
* Run them using docker.
* Share them for others to use and develop.
* Finally browse the cloud for shared images to integrate into your project and make it even better.
== Ready to run out-of-the-box
Normally the docker dataflow is as described in the following images:
image:https://git.swarmlab.io:3000/zeus/swarmlab-hybrid/raw/branch/master/docs/images/docker-build.png[]
image:https://git.swarmlab.io:3000/zeus/swarmlab-hybrid/raw/branch/master/docs/images/docker-run.png[]
== Services
[cols="a,a"]
|===
|Hybrid |VEnus Network Unification Service
|*We have created an ever-growing database of readilly accessible labrooms you can choose from*
Ready to use, on demand virtual labs/microservices
* Run and manage said rooms and application
* Create Labrooms/Applications/Microservices
** create once - scale up or down without rebuilding
* on-demand
** sandbox environments
** Virtual Labrooms
** Virtual Classrooms
** Proof-of-Concept (POC)
* Move Labs between environments
|*VENUS makes collaboration easier*
Build the network you require on demand and without effort.
You can Create and manage
* on-demand network environments using any cloud over any network
* Connect multiple computers through a network.
* Share your Labrooms/Applications/Microservices with your friends
* Move Labs between networks
* anything else that might suit your needs in a dynamic and Scalable Distributed Architecture
Swarmlab-Venus provides
* Secure and state-of-the-art cryptography - integrated across all connections
* Manage the entire network as a service
* Architecture/Platform Agnostic
* Manage user network access
* Network traffic analysis
|===
[cols="a,a,grid=none"]
|====
|
****
*Focus on Your project code,*
*Not in servers and Lab settings*
[source,sh]
----
Chose the labroom you need and ... you are ready
----
****
|
****
*Focus on Your lab project,*
*Not in lab and Network settings*
[source,sh]
----
Chose the labroom you need and deploy it to your participants
Write your docs and lab code in your prefered language and share it!.
----
****
|===

BIN
docs/modules/hybrid/images/browsing-labroom.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

BIN
docs/modules/hybrid/images/browsing-microservices.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

BIN
docs/modules/hybrid/images/browsing-storage-sudo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

BIN
docs/modules/hybrid/images/browsing-storage.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

BIN
docs/modules/hybrid/images/cloud_icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

BIN
docs/modules/hybrid/images/cloud_icon_down.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 778 B

BIN
docs/modules/hybrid/images/console.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

BIN
docs/modules/hybrid/images/info_icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

BIN
docs/modules/hybrid/images/manage-instanches-connect.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

BIN
docs/modules/hybrid/images/manage-instanches-maps.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

BIN
docs/modules/hybrid/images/manage-instanches.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

BIN
docs/modules/hybrid/images/more-buttons.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

BIN
docs/modules/hybrid/images/more-menou.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

BIN
docs/modules/hybrid/images/more-network-info-info.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

BIN
docs/modules/hybrid/images/more-network-info.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

BIN
docs/modules/hybrid/images/more-network-update.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

BIN
docs/modules/hybrid/images/more-network.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

BIN
docs/modules/hybrid/images/more.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 668 B

BIN
docs/modules/hybrid/images/scale.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

BIN
docs/modules/hybrid/images/thumb-down.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 653 B

BIN
docs/modules/hybrid/images/thumb-up.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 686 B

BIN
docs/modules/hybrid/images/trash_icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

BIN
docs/modules/hybrid/images/types-of-mounts-volume.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

9
docs/modules/hybrid/nav.adoc

@ -1,9 +0,0 @@
* xref:overview.adoc[Hybrid]
** xref:overview-hybrid.adoc[Private/Local]
*** xref:start-labroom.adoc[Labroom]
*** xref:start-storage.adoc[Storage]
*** xref:start-microservices.adoc[Microservices]
** xref:manage-instanches.adoc[Instances]
*** xref:manage-instanchesi-connect.adoc[connect]

77
docs/modules/hybrid/pages/manage-instanches.adoc

@ -1,77 +0,0 @@
= Instanches
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
:experimental:
This is the area where you can *View and Manage your running Instances*
== View your running Instances
You can easily browse throught the running *instances* in the list using the search bar at the top.
.view containers
image::hybrid:manage-instanches.png[Manage instanches,700,float=center]
== Info
To request more info about the *instance* we use the more icon
image:hybrid:more.png[Info]
=== info-menou
.info menou
image::hybrid:more-menou.png[info,700,float=center]
=== Connect/Stop/Logs
image:hybrid:more-buttons.png[float=right]
* We can *connect* to the instance by using the btn:[connect] button
* We can *stop* it by using the btn:[stop] button
* We can *show* the log messages by using the btn:[log] button
* We can *list* exposed ports outside the Docker Networks by using the btn:[link] button
* We can get info about the *network* with the btn:[network] button image:hybrid:more-network.png[] (see below).
=== Console
The *Console* window shows the log messages for the running instance
.console
image::hybrid:console.png[Console,700,float=center]
=== network-info
To request more info about the *network* we use the network icon
image:hybrid:more-network.png[Network]
.network info
image::hybrid:more-network-info.png[info,700,float=center]
== manage network
image:hybrid:more-network-info-info.png[network,300,float=right]
Networks can be configured to provide complete isolation for containers, which enable building applications that work together securely.
You can add containers to one or more networks. A container with attachments to multiple networks can connect with all of the containers on all of those networks. This lets you build a “hub” of sorts.
=== multiple network
To add more *networks* we use the network icon
image:hybrid:more-network.png[Network]
image::hybrid:more-network-update.png[Networkupdate,float=center]
You can use kbd:[Ctrl] to select multiple networks
After we have selected the desired *networks* we can *update* them by using the btn:[update] icon

74
docs/modules/hybrid/pages/manage-instanchesi-connect.adoc

@ -1,74 +0,0 @@
= Instanches
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
:experimental:
This is the area where you can *connect to running Instances*
To request more info about the *instance* we use the more icon
image:hybrid:more.png[Info]
== Connect
image:hybrid:more-buttons.png[float=right]
* We can *connect* to instance by using the btn:[connect] button
.connect
image::hybrid:manage-instanches-connect.png[network,float=center]
== Directory Maps
In general, Docker containers are ephemeral, running just as long as it takes for the command issued in the container to complete. By default, any data created inside the container is only available from within the container and only while the container is running.
=== Mounts
image:hybrid:types-of-mounts-volume.png[300,float=right]
Bind mounts have been around since the early days of Docker
A bind mount is a file or folder stored anywhere on the container host filesystem, mounted into a running container.
The file or directory is referenced by its absolute path on the host machine
The file or directory does not need to exist on the Docker host already. It is created on demand if it does not yet exist. Bind mounts are very performant, but they rely on the host machine’s filesystem having a specific directory structure available.
=== Swarmlab maps
Directory maps can be used to share files between a host system and the Docker container
.directory maps
image::hybrid:manage-instanches-maps.png[maps,float=center]
== X apps
App with GUI
Open a terminal and Run:
[source,bash]
----
xhost +local:docker
----
== Video
=== Connect and maps
****
TIP: Learn how to connect to an Instance using the terminal
video::564842745[vimeo]
TIP: Learn how to connect to Instance using a browser
video::564844891[vimeo]
****

17
docs/modules/hybrid/pages/overview-hybrid.adoc

@ -1,17 +0,0 @@
= Private/Local
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
This is the area where you will find the available *Instances* and run the desired one.
== xref:hybrid:start-labroom.adoc[Labrooms]
== xref:hybrid:start-storage.adoc[Storage]
== xref:hybrid:start-microservices.adoc[MicroServices]

23
docs/modules/hybrid/pages/overview.adoc

@ -1,23 +0,0 @@
= hybrid
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
This is the area where you will find the available *labrooms* and join the desired one.
== xref:hybrid:start-labroom.adoc[Private/Local]
A labroom is a contained environment created to suit your unique needs.
== xref:hybrid:start-storage.adoc[Storage]
If you would like to store data for your work we provide storage options.
== xref:hybrid:manage-instanches.adoc[Instances]
This is the area where you can View and Manage your running Instances
== Builders
Build your own virtual machine using a fiendly environment and no code at all!
Get started here.

72
docs/modules/hybrid/pages/start-labroom.adoc

@ -1,72 +0,0 @@
= Private/Local
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
This is the area where you will find the available *labrooms* and join the desired one.
== Labroom
A labroom is a contained environment created to suit your unique needs.
You can easily browse throught the available *labrooms* in the list using the search bar at the top.
.browsing-labroom
image::hybrid:browsing-labroom.png[Browsing labrooms,700,float=center]
== Download
After we have located the desired *labroom* we can *Download* it by using the cloud
image:hybrid:cloud_icon_down.png[Download] icon.
== Delete
The trash
image:hybrid:trash_icon.png[Download]
icon deletes the *labroom.*
== Info
To request more info about the *labroom* we use the info icon
image:hybrid:info_icon.png[Info]
== Start
We can *start* it by using the *thumb-down*
image:hybrid:thumb-down.png[thumb-down]
icon
=== Scale
Set the number of containers to run for a *labroom*
and *start* it by using the *UP* icon (The *Expose Port* can be left blank)
.scale
image::hybrid:scale.png[Console,700,float=center]
== Stop
We can *stop* it by using the *thumb-up*
image:hybrid:thumb-up.png[thumb-up]
icon
== Console
The *Console* window shows the log messages for the running Labroom
.console
image::hybrid:console.png[Console,700,float=center]
== Video
=== Start Labroom
****
TIP: Learn how to get started with Labrooms
video::564651940[vimeo]
****

63
docs/modules/hybrid/pages/start-microservices.adoc

@ -1,63 +0,0 @@
= Private/Local
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
This is the area where you will find the available *MicroServices* and join the desired one.
== Microservices
In case you need additional services for your project you can launch them here.
.browsing-MicroServices
image::hybrid:browsing-microservices.png[Browsing labrooms,700,float=center]
== Download
After we have located the desired *MicroService* we can *Download* it by using the cloud
image:hybrid:cloud_icon_down.png[Download] icon.
== Delete
The trash
image:hybrid:trash_icon.png[Download]
icon deletes the *MicroService*
== Info
To request more info about the *MicroService* we use the info icon
image:hybrid:info_icon.png[Info]
== Start
We can *start* it by using the *thumb-down*
image:hybrid:thumb-down.png[thumb-down]
icon
== Stop
We can *stop* it by using the *thumb-up*
image:hybrid:thumb-up.png[thumb-up]
icon
== Console
The *Console* window shows the log messages for the runningmicroservice
.console
image::hybrid:console.png[Console,700,float=center]
== Video
=== Start microservice
****
TIP: Learn how to start using a Microservice
video::564701215[vimeo]
****

76
docs/modules/hybrid/pages/start-storage.adoc

@ -1,76 +0,0 @@
= Private/Local
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
This is the area where you will find the available *storages* and join the desired one.
== Storage
If you would like to store data for your work we provide storage options.
.browsing-storage
image::hybrid:browsing-storage.png[Browsing labrooms,700,float=center]
== Download
After we have located the desired *storage* we can *Download* it by using the cloud
image:hybrid:cloud_icon_down.png[Download] icon.
== Delete
The trash
image:hybrid:trash_icon.png[Download]
icon deletes the *storage*
== Info
To request more info about the *storage* we use the info icon
image:hybrid:info_icon.png[Info]
== Start
We can *start* it by using the *thumb-down*
image:hybrid:thumb-down.png[thumb-down]
icon
=== Shard Keys
*start* it by using the *UP* icon
****
TIP: When sharding a cluster, a vital step is the creation of shard keys.
The “shard key” is used to distribute the Cluster collection’s documents across all the shards.
image::hybrid:browsing-storage-sudo.png[Console,700,float=center]
Open a terminal window and execute the above command.
****
== Stop
We can *stop* it by using the *thumb-up*
image:hybrid:thumb-up.png[thumb-up]
icon
== Console
The *Console* window shows the log messages for the running storage
.console
image::hybrid:console.png[Console,700,float=center]
== Video
=== Start Storage
****
TIP: Learn how to get started with storages
video::564701215[vimeo]
****

BIN
docs/modules/install/images/cicd.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

BIN
docs/modules/install/images/wsl2-choose-distro.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

BIN
docs/modules/install/images/wsl2-enable.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

5
docs/modules/install/nav.adoc

@ -1,5 +0,0 @@
* xref:overview.adoc[Install]
** xref:install-hybrid.adoc[Hybrid]
** xref:install-venus.adoc[Venus]
** xref:install-docker.adoc[Docker]

145
docs/modules/install/pages/install-docker.adoc

@ -1,145 +0,0 @@
= Docker
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
== Why Docker
We will use docker because Docker *makes development efficient*.
The usage of docker gives a very big advantage and that’s the write once ship many.
The development team will write an application/service and use docker to make it a container that will surely have all the requirements for the user to run it on any machine that has docker installed even inside another docker container, thus giving the ability of nested virtualization
[TIP]
====
Enabling the creation of a
https://www.redhat.com/en/topics/devops/what-is-ci-cd[CI/CD pipeline^]
image:install:cicd.jpg[]
====
== Linux/*Nix Installation of docker
[source,sh]
----
sudo -l # To ensure that we can run apt as root
sudo apt-get update # To update our repos/references on apt
sudo apt install -y lsb-release
sudo apt install -y curl
curl -V # Ensure that curl is installed and in a modern version
sudo apt install software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # To add the gpg key on our keyring
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Add the official repo on apt or any other package manager
sudo apt install -y docker-ce # Actually installing docker
sudo usermod -aG docker $USER # Add current user to the docker group
su - ${USER} # Reload our shell
docker --version # See the docker version
docker run hello-world # Test if docker really works
----
== Windows 10 with wsl version2 enabled
TIP: You must have wsl version2 installed and enabled (https://docs.microsoft.com/en-us/windows/wsl/install-win10[Install wsl^])
Step 1: Download the Docker Desktop for Windows from https://docs.docker.com/desktop/windows/install/
Step 2: Execute the installer via powershell or by just cklicking on the installer.exe file
[source,sh]
----
cd .\Downloads\
.\"Docker Desktop Installer.exe"
----
Step 3: Accept anything the installer ask for
Step 4: Log out and Log in, after you are prompted to do so
Step 5: Open the docker engine app
Step 6: Go to docker app settings → Resources → WSL Integration
Step 7: Click on the refresh button
Step 8: Enable docker for the wsl installation that you want.
Step 9: Click on apply and restart
Step 10: Open the wsl shell and type:
[source,sh]
----
docker --version
docker run hello-world
----
== Fix "x509: certificate signed by unknown authority" issue
On Error:
[source,sh]
----
Get https ://registry.vlabs.uniwa.gr:5080/v2/: x509: certificate
Pulling ...
ERROR: Get https://registry.vlabs.uniwa.gr:5080/v2/: x509: certificate signed by unknown authority
----
run
[source,sh]
----
sudo su
touch set-ca.sh
----
copy-paste lines
[source,sh]
----
registry_address=hub.swarmlab.io
registry_port=5443
mkdir -p /etc/docker/certs.d/$registry_address:$registry_port
openssl s_client -showcerts -connect $registry_address:$registry_port < /dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /etc/docker/certs.d/$registry_address:$registry_port/ca.crt
registry_port=5480
mkdir -p /etc/docker/certs.d/$registry_address:$registry_port
openssl s_client -showcerts -connect $registry_address:$registry_port < /dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /etc/docker/certs.d/$registry_address:$registry_port/ca.crt
----
exec file
[source,sh]
----
sudo bash ./set-ca.sh
----
== docker-compose
You also need to install Docker Compose
[source,sh]
----
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/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
----

279
docs/modules/install/pages/install-hybrid.adoc

@ -1,279 +0,0 @@
= Hybrid
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
:experimental:
== System requirements
[cols="1,2"]
|===
|OS |A *Linux Server* (Virtual or Physical)
or
*Windows 10* with Windows Subsystem for Linux
|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.*
|===
TIP: Since Docker uses hypervisor the host NEEDS TO HAVE VIRTUALIZATION ENABLED!
== Prerequisites
=== node version >15
[source,sh]
----
curl -sL https://deb.nodesource.com/setup_15.x | sudo -E bash -
sudo apt-get install -y nodejs
----
=== docker
[source,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] # Please replace [USERNAME] with the user you want to run docker on
----
TIP: for kali specifically please visit the following link to
https://linuxhint.com/install_docker_kali_linux/[install docker^]
=== docker-compose
[source,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
[source,sh]
----
sudo npm install -g pm2
----
== Install
=== Linux
==== Clone the repo
[source,sh]
----
git clone --recurse-submodules https://git.swarmlab.io:3000/zeus/swarmlab-hybrid.git
----
==== Install it!
[source,sh]
----
cd swarmlab-hybrid
./install.sh <-- run it without root privileges
----
=== Windows
* https://docs.microsoft.com/en-us/windows/wsl/install-win10[Install wsl^]
* Download https://hub.docker.com/editions/community/docker-ce-desktop-windows/[Docker Desktop Stable 2.3.0.2^] or a later release.
* Install
Ensure you have completed the steps described in the Prerequisites section before installing the Docker Desktop Stable 2.3.0.2 release.
Follow the usual installation instructions to install Docker Desktop. If you are running a supported system, Docker Desktop prompts you to enable WSL 2 during installation. Read the information displayed on the screen and enable WSL 2 to continue.
* Start Docker Desktop from the Windows Start menu.
From the Docker menu, select menu:Settings[General]
image:install:wsl2-enable.png[]
* Select the Use WSL 2 based engine check box.
If you have installed Docker Desktop on a system that supports WSL 2, this option will be enabled by default.
[source,sh]
====
Click Apply & Restart.
====
* Ensure the distribution runs in WSL 2 mode. WSL can run distributions in both v1 or v2 mode.
To check the WSL mode, run:
[source,sh]
----
wsl.exe -l -v
----
To upgrade your existing Linux distro to v2, run:
[source,sh]
----
wsl.exe --set-version (distro name) 2
----
To set v2 as the default version for future installations, run:
[source,sh]
----
wsl.exe --set-default-version 2
----
When Docker Desktop restarts, go to menu:Settings[Resources > WSL Integration]
image:install:wsl2-choose-distro.png[]
* WSL 2 Choose Linux distro
[source,sh]
====
Click Apply & Restart.
====
The Docker-WSL integration will be enabled on your default WSL distribution.
* To change your default WSL distro, run
[source,sh]
----
wsl --set-default <distro name>.
----
[NOTE]
====
For example, to set Ubuntu as your default WSL distro, run wsl --set-default ubuntu.
Optionally, select any additional distributions you would like to enable the Docker-WSL integration on.
The Docker-WSL integration components running in your distro depend on glibc. This can cause issues when running musl-based distros such as Alpine Linux. Alpine users can use the alpine-pkg-glibc package to deploy glibc alongside musl to run the integration.
====
==== Fix network issues
[source,sh]
----
# Delete auto-generated files
rm /etc/resolv.conf || true
rm /etc/wsl.conf || true
----
.Enable changing /etc/resolv.conf
[source,sh]
----
# Enable changing /etc/resolv.conf
# Enable extended attributes on Windows drives
cat <<EOF > /etc/wsl.conf
[network]
generateResolvConf = false
[automount]
enabled = true
options = "metadata"
mountFsTab = false
EOF
# Use google nameservers for DNS resolution
cat <<EOF > /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
EOF
----
.Exit Linux WSL
.cmd as admin:
[source,sh]
----
wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
----
Windows menu:Search[Network Reset]
[source,sh]
====
Restart Windows
====
.Install Hybrid
****
.Clone the repo
[source,sh]
----
git clone --recurse-submodules https://git.swarmlab.io:3000/zeus/swarmlab-hybrid.git
----
.Install it!
[source,sh]
----
cd swarmlab-hybrid
./install.sh <-- run it without root privileges
----
****
== start/stop service
TIP: Linux and Windows
=== start
[source,sh]
----
./start
----
=== stop
[source,sh]
----
./stop
----
[source,sh]
====
Open URL http://localhost:3088 in browser
====

276
docs/modules/install/pages/install-venus.adoc

@ -1,276 +0,0 @@
= Venus
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
== System requirements
[cols="1,2"]
|===
|OS |A *Linux Server* (Virtual or Physical)
or
*Windows 10* with Windows Subsystem for Linux
|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
|5 GB for internal requirements.
The amount of additional disk space soloemnly *depends on you intended use.*
|===
TIP: Since Docker uses hypervisor the host NEEDS TO HAVE VIRTUALIZATION ENABLED!
== Prerequisites
=== node version >15
[source,sh]
----
curl -sL https://deb.nodesource.com/setup_15.x | sudo -E bash -
sudo apt-get install -y nodejs
----
=== docker
[source,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] # Please replace [USERNAME] with the user you want to run docker on
----
TIP: for kali specifically please visit the following link to
https://linuxhint.com/install_docker_kali_linux/[install docker^]
=== docker-compose
[source,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
[source,sh]
----
sudo npm install -g pm2
----
=== wireguard
[source,sh]
----
sudo apt install wireguard jq
----
== Install
=== Linux
==== Clone the repo
[source,sh]
----
git clone --recurse-submodules https://git.swarmlab.io:3000/swarmlab/venus-client.git
----
==== Install it!
[source,sh]
----
cd venus-client
./install.sh <-- run it without root privileges
----
=== Windows
* https://docs.microsoft.com/en-us/windows/wsl/install-win10[Install wsl^]
* Download https://hub.docker.com/editions/community/docker-ce-desktop-windows/[Docker Desktop Stable 2.3.0.2^] or a later release.
* Install
Ensure you have completed the steps described in the Prerequisites section before installing the Docker Desktop Stable 2.3.0.2 release.
Follow the usual installation instructions to install Docker Desktop. If you are running a supported system, Docker Desktop prompts you to enable WSL 2 during installation. Read the information displayed on the screen and enable WSL 2 to continue.
* Start Docker Desktop from the Windows Start menu.
From the Docker menu, select menu:Settings[General]
image:install:wsl2-enable.png[]
* Select the Use WSL 2 based engine check box.
If you have installed Docker Desktop on a system that supports WSL 2, this option will be enabled by default.
[source,sh]
====
Click Apply & Restart.
====
* Ensure the distribution runs in WSL 2 mode. WSL can run distributions in both v1 or v2 mode.
To check the WSL mode, run:
[source,sh]
----
wsl.exe -l -v
----
To upgrade your existing Linux distro to v2, run:
[source,sh]
----
wsl.exe --set-version (distro name) 2
----
To set v2 as the default version for future installations, run:
[source,sh]
----
wsl.exe --set-default-version 2
----
When Docker Desktop restarts, go to menu:Settings[Resources > WSL Integration]
image:install:wsl2-choose-distro.png[]
* WSL 2 Choose Linux distro
[source,sh]
====
Click Apply & Restart.
====
The Docker-WSL integration will be enabled on your default WSL distribution.
* To change your default WSL distro, run
[source,sh]
----
wsl --set-default <distro name>.
----
[NOTE]
====
For example, to set Ubuntu as your default WSL distro, run wsl --set-default ubuntu.
Optionally, select any additional distributions you would like to enable the Docker-WSL integration on.
The Docker-WSL integration components running in your distro depend on glibc. This can cause issues when running musl-based distros such as Alpine Linux. Alpine users can use the alpine-pkg-glibc package to deploy glibc alongside musl to run the integration.
====
==== Fix network issues
[source,sh]
----
# Delete auto-generated files
rm /etc/resolv.conf || true
rm /etc/wsl.conf || true
----
.Enable changing /etc/resolv.conf
[source,sh]
----
# Enable changing /etc/resolv.conf
# Enable extended attributes on Windows drives
cat <<EOF > /etc/wsl.conf
[network]
generateResolvConf = false
[automount]
enabled = true
options = "metadata"
mountFsTab = false
EOF
# Use google nameservers for DNS resolution
cat <<EOF > /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
EOF
----
.Exit Linux WSL
.cmd as admin:
[source,sh]
----
wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
----
Windows menu:Search[Network Reset]
[source,sh]
====
Restart Windows
====
.Install Hybrid
****
.Clone the repo
[source,sh]
----
git clone --recurse-submodules https://git.swarmlab.io:3000/swarmlab/venus-client.git
----
.Install it!
[source,sh]
----
cd venus-client
./install.sh <-- run it without root privileges
----
****
== start/stop service
TIP: Linux and Windows
=== start
[source,sh]
----
./start
----
=== stop
[source,sh]
----
./stop
----
[source,sh]
====
Open URL http://localhost:3088 in browser
====

45
docs/modules/install/pages/overview.adoc

@ -1,45 +0,0 @@
= Install
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
Before you have all of the powerfull tools of Swarmalb at your grasp you will have to install it!
[TIP]
====
Swarmlab is available for *Linux* (Virtual or Physical) and
*Windows 10* with Windows Subsystem for Linux
====
== xref:install:install-hybrid.adoc[Hybrid]
* On demand Labrooms
* Ready-to-Use Virtual Labs one click away
xref:ROOT:index.adoc#_services[show Features]
== xref:install:install-venus.adoc[Venus]
* on-demand network environments using any cloud over any network
* Build the network you require on demand and without effort
xref:ROOT:index.adoc#_services[show Features]
== xref:install:install-docker.adoc[Docker]
Swarmlab uses containers to connect services and create on-demand virtual labs to test or run your application
[TIP]
====
Docker is a platform that gives the developer the ability to separate/containerize applications from both the infrastructure and the host system/os
====
* Docker provides the ability to 'pack' your application on a container which is partially isolated system
* Every container has the same kernel with the host os

BIN
docs/modules/myservices/images/replica-set-primary-with-two-secondaries.bakedsvg.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

BIN
docs/modules/myservices/images/replica-set-read-write-operations-primary.bakedsvg.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

BIN
docs/modules/myservices/images/swarmlab-network.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

12
docs/modules/myservices/nav.adoc

@ -1,12 +0,0 @@
* xref:overview.adoc[MyServices]
** xref:overview-labroom.adoc[Labrooms]
*** xref:linux.adoc[Linux]
*** xref:mpi.adoc[MPI]
*** xref:nodevuejs.adoc[Node+Vue]
** xref:overview-storage.adoc[Storage]
*** xref:storage-mongo-replica.adoc[Mongo replica]
** xref:overview-services.adoc[Microservices]
*** xref:jupyter.adoc[Jupyter]
*** xref:node.adoc[Node]

113
docs/modules/myservices/pages/jupyter.adoc

@ -1,113 +0,0 @@
= Jupyter
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
:experimental:
This is the area where you will quide you to use service *Jupyter*
== Default Configuration
.Linux network
image::swarmlab-network.png[linux network,700,float=center]
=== Working Directory (root user)
[source,bash]
----
/
----
=== Default user (root user)
[source,bash]
----
root
----
== Unprivileged user
=== user
[source,bash]
----
jovyan (uid=1000, configurable, see options) in group users (gid=100)
----
=== home
user has ownership over the
[source,bash]
----
/home/jovyan and /opt/conda paths
----
== Directory Map
You can find it in *Hybrid*: menu:Instances[More > Connect > Directory Maps]
== Ports
You can find it in *Hybrid*: menu:Instances[More > Ports]
== Logs
You can find it in *Hybrid*: menu:Instances[More > Logs]
== Connect
TIP: Connect Info in *Hybrid*: menu:Instances[More > Connect > Open a terminal and Run]
=== Connect via exec
Open a terminal and Run:
[source,bash]
----
docker exec -it microservice-jupyter26_masterservice_1 /bin/sh
----
=== Connect via WEB
You can find it in *Hybrid*: menu:Instances[More > Web]
== Jupyter Setup
* Miniforge Python 3.x in /opt/conda with two package managers
* conda: cross-platform, language-agnostic binary package manager
* mamba: reimplementation of the conda package manager in C++
* notebook, jupyterhub and jupyterlab packages
* tini as the container entrypoint and a start-notebook.sh script as the default command
* TeX Live for notebook document conversion
* git, vi (actually vim-tiny), nano (actually nano-tiny), tzdata, and unzip
* altair, beautifulsoup4, bokeh, bottleneck, cloudpickle, conda-forge::blas=*=openblas, cython, dask, dill, h5py, matplotlib-base, numba, numexpr, pandas, patsy, protobuf, pytables, scikit-image, scikit-learn, scipy, seaborn, sqlalchemy, statsmodel, sympy, widgetsnbextension, xlrd packages
* ipympl and ipywidgets for interactive visualizations and plots in Python notebooks
* Facets for visualizing machine learning datasets
== Video
=== Start Jupyter
****
TIP: Learn how to start Jupyter
video::565791748[vimeo]
****
=== Stop Jupyter
****
TIP: Learn how to stop Jupyter
video::565796816[vimeo]
****

178
docs/modules/myservices/pages/linux.adoc

@ -1,178 +0,0 @@
= Linux
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
:experimental:
This is the area where you will quide you to use labroom *Linux*
== Default Configuration
.Linux network
image::swarmlab-network.png[linux network,700,float=center]
=== Working Directory
[source,bash]
----
/project
----
=== Default user
[source,bash]
----
docker
----
=== Default password
[source,bash]
----
docker
----
=== Default password4root
[source,bash]
----
pass
----
== Directory Map
You can find it in *Hybrid*: menu:Instances[More > Connect > Directory Maps]
== Ports
You can find it in *Hybrid*: menu:Instances[More > Ports]
== Logs
You can find it in *Hybrid*: menu:Instances[More > Logs]
== Connect
TIP: Connect Info in *Hybrid*: menu:Instances[More > Connect > Open a terminal and Run]
=== Connect via SSH
[source,bash]
----
ssh -p [port] docker@[IP] # [port] = Ports
----
=== Connect via exec
Open a terminal and Run:
[source,bash]
----
docker exec -it -udocker hybrid-linux_master_1 /bin/bash
----
== Find lab workers
NOTE: Commands inside container
[source,bash]
----
ifconfig
nmap -sP 172.130.0.0/24 # eth0 ip
----
or
[source,bash]
----
/project/bin/swarmlab-nmap
----
== Examples
NOTE: Commands inside container
you can find some examples in dir
*/project/courses*
[source,bash]
----
├── fluentd
│   ├── files
│   │   ├── ansible.cfg
│   │   ├── fluent.conf
│   │   └── fluent-config-update.conf
│   ├── fluentd-config-update.yml
│   ├── fluentd-config-update.yml.sh
│   ├── fluentd-test-mongo.yml
│   ├── fluentd-test-mongo.yml.sh
│   ├── fluentd.yml
│   ├── fluentd.yml.sh
│   ├── inventory.yml
├── memory-visualization-examples
│   ├── bin
│   │   └── simple-array
│   ├── LICENSE
│   ├── Makefile
│   ├── README.md
│   ├── sources
│   │   └── simple-array.c
│   └── tags
├── mongodb-org-shell
│   ├── files
│   │   ├── ansible.cfg
│   │   └── mongo-update.sh
│   ├── inventory.yml
│   ├── mongodb-org-shell.yml
│   └── mongodb-org-shell.yml.sh
├── nodeAppServer
│   ├── app.js
│   ├── app.js.sh
│   ├── index.html
│   └── package.json
├── pipes
│   ├── makefifo.sh
│   ├── par-from-ch
│   ├── par-from-ch.c
│   ├── rf
│   ├── rf.c
│   ├── shell-pipe1.sh
│   ├── shell-pipe2.sh
│   ├── shell-pipe.sh
│   ├── wf
│   └── wf.c
└── pthread
├── CreationTermination
├── CreationTermination1
├── CreationTermination1.c
├── CreationTermination1.c.sh
├── CreationTermination.c
└── CreationTermination.c.sh
----
== Video
=== Start Linux
****
TIP: Learn how to start Linux
video::565804352[vimeo]
****
=== Stop Linux
****
TIP: Learn how to stop Linux
video::565807431[vimeo]
****

167
docs/modules/myservices/pages/mpi.adoc

@ -1,167 +0,0 @@
= MPI
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
:experimental:
This is the area where you will quide you to use labroom *MPI*
== Default Configuration
.mpi network
image::swarmlab-network.png[mpi network,700,float=center]
=== Working Directory
[source,bash]
----
/project
----
=== Default user
[source,bash]
----
docker
----
=== Default password
[source,bash]
----
docker
----
=== Default password4root
[source,bash]
----
pass
----
== Directory Map
You can find it in *Hybrid*: menu:Instances[More > Connect > Directory Maps]
== Ports
You can find it in *Hybrid*: menu:Instances[More > Ports]
== Logs
You can find it in *Hybrid*: menu:Instances[More > Logs]
== Connect
TIP: Connect Info in *Hybrid*: menu:Instances[More > Connect > Open a terminal and Run]
=== Connect via SSH
[source,bash]
----
ssh -p [port] docker@[IP] # [port] [IP] = info from Ports
----
=== Connect via exec
Open a terminal and Run:
[source,bash]
----
docker exec -it -udocker hybrid-mpi_master_1 /bin/bash
----
== Find lab workers
NOTE: Commands inside container
[source,bash]
----
ifconfig
nmap -sP 172.130.0.0/24 # eth0 ip
----
or
[source,bash]
----
/project/bin/swarmlab-nmap
----
== HelloWorld Example
NOTE: Commands inside container
=== Create hosts file
[source,bash]
----
/project/bin/swarmlab-nmap > /project/hosts
----
=== Compile
[source,bash]
----
mpicc -o /project/mpi_hello_world examples/mpi_hello_world.c
----
=== run the HelloWorld
[source,bash]
----
mpirun -n 10 -f /project/hosts /project/mpi_hello_world
----
=== copy files to all clients
[source,bash]
----
while read -r line;
do
scp /project/file docker@$line:/some_dir/file
done < /project/hosts
----
== MORE Examples
NOTE: Commands inside container
See examples directory
[source,bash]
----
cd examples
make mpi_hello_world
make example ex=squares
...
----
== Video
=== Start MPI
****
TIP: Learn how to start MPI
video::565804352[vimeo]
****
=== Stop MPI
****
TIP: Learn how to stop MPI
video::565807431[vimeo]
****

79
docs/modules/myservices/pages/node.adoc

@ -1,79 +0,0 @@
= Node
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
:experimental:
This is the area where you will quide you to use microservice *Node*
== Default Configuration
=== Working Directory
[source,bash]
----
/
----
=== Default user
[source,bash]
----
root
----
== Directory Map
You can find it in *Hybrid*: menu:Instances[More > Connect > Directory Maps]
== Ports
You can find it in *Hybrid*: menu:Instances[More > Ports]
== Logs
You can find it in *Hybrid*: menu:Instances[More > Logs]
== Connect
TIP: Connect Info in *Hybrid*: menu:Instances[More > Connect > Open a terminal and Run]
=== Connect via exec
Open a terminal and Run:
[source,bash]
----
docker exec -it microservice-nodejs_masterservice_1 /bin/sh
----
== Video
=== Start Node
****
TIP: Learn how to start Node
video::565819477[vimeo]
****
=== Stop Node
****
TIP: Learn how to stop Node
video::565820159[vimeo]
****

150
docs/modules/myservices/pages/nodevuejs.adoc

@ -1,150 +0,0 @@
= Node
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
:experimental:
This is the area where you will quide you to use labroom *Node VueJS*
== Default Configuration
.Linux network
image::swarmlab-network.png[linux network,700,float=center]
=== Working Directory
[source,bash]
----
/project
----
=== Default user
[source,bash]
----
docker
----
=== Default password
[source,bash]
----
docker
----
=== Default password4root
[source,bash]
----
pass
----
== Directory Map
You can find it in *Hybrid*: menu:Instances[More > Connect > Directory Maps]
== Ports
You can find it in *Hybrid*: menu:Instances[More > Ports]
== Logs
You can find it in *Hybrid*: menu:Instances[More > Logs]
== Connect
TIP: Connect Info in *Hybrid*: menu:Instances[More > Connect > Open a terminal and Run]
=== Connect via SSH
[source,bash]
----
ssh docker@[IP]
----
=== Connect via exec
Open a terminal and Run:
[source,bash]
----
docker exec -it -udocker hybrid-nodevuejs_master_1 /bin/bash
----
== Find lab workers
NOTE: Commands inside container
[source,bash]
----
ifconfig
nmap -sP 172.130.0.0/24 # eth0 ip
----
or
[source,bash]
----
/project/bin/swarmlab-nmap
----
== Create a Project
NOTE: Commands inside container
Vue CLI Documentation
https://cli.vuejs.org/guide/creating-a-project.html#vue-create
.Creating a Project
[source,bash]
----
vue create hello-world
----
=== Run it!
[source,bash]
----
npm run serve
----
=== Open it!
[source,bash]
----
http://IP:8080 # IP= eth0
----
=== Find Published ports
Info in *Hybrid*: menu:Instances[More > Ports]
== Video
=== Start Vue
****
TIP: Learn how to start Vue
video::565804352[vimeo]
****
=== Stop Vue
****
TIP: Learn how to stop Vue
video::565807431[vimeo]
****

15
docs/modules/myservices/pages/overview-labroom.adoc

@ -1,15 +0,0 @@
= Labroom
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
:experimental:
This is the area where you will quide you to use *Labrooms*
== Labrooms
Services organised in a network with scale dynatotita

14
docs/modules/myservices/pages/overview-services.adoc

@ -1,14 +0,0 @@
= MicroServices
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
:experimental:
This is the area where you will quide you to use *MicroServices*
=== Microservices
Diverse microservice collection you can attach to your labroom or storage, or maybe run them your own custom way!

17
docs/modules/myservices/pages/overview-storage.adoc

@ -1,17 +0,0 @@
= Storage
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
:experimental:
This is the area where you will quide you to use *Storage*
== Storage
Storage to run
After run can you attach network to it

24
docs/modules/myservices/pages/overview.adoc

@ -1,24 +0,0 @@
= MyServices
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
:experimental:
This is the area where you will quide you to use *Services*
== Labrooms
Services organised in a network with scale dynatotita
== Storage
Storage to run
After run can you attach network to it
=== Microservices
Diverse microservice collection you can attach to your labroom or storage, or maybe run them your own custom way!

162
docs/modules/myservices/pages/storage-mongo-replica.adoc

@ -1,162 +0,0 @@
= Mongo
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
:experimental:
This is the area where you will quide you to use storage *Mongo*
== Default Configuration
.mongo network
image::replica-set-primary-with-two-secondaries.bakedsvg.png[linux network,700,float=center]
More info here: https://docs.mongodb.com/manual/replication[mongo replication]
=== Working Directory
[source,bash]
----
/
----
=== Default user
[source,bash]
----
root
----
== Directory Map
You can find it in *Hybrid*: menu:Instances[More > Connect > Directory Maps]
== Ports
You can find it in *Hybrid*: menu:Instances[More > Ports]
== Logs
You can find it in *Hybrid*: menu:Instances[More > Logs]
== Connect
TIP: Connect Info in *Hybrid*: menu:Instances[More > Connect > Open a terminal and Run]
=== Connect via SSH
=== Connect via exec
Open a terminal and Run:
[source,bash]
----
docker exec -it swarmlabmongo1 /bin/sh
----
== Default Configuration
=== Port
[source,bash]
----
27017
----
=== Root Username
[source,bash]
----
swarmlab
----
=== Root Password
[source,bash]
----
swarmlab
----
=== Database
[source,bash]
----
app_swarmlab
----
=== Database Usename
[source,bash]
----
app_swarmlab
----
=== Database Password
[source,bash]
----
app_swarmlab
----
=== ReplicaSet
[source,bash]
----
rs0
----
== Test it!
NOTE: Commands inside container
[source,bash]
----
MONGO_INITDB_ROOT_USERNAME=swarmlab
MONGO_INITDB_ROOT_PASSWORD=swarmlab
MONGO_INITDB_DATABASE=app_swarmlab
MONGO_INITDB_USERNAME=app_swarmlab
MONGO_INITDB_PASSWORD=app_swarmlab
MONGO_REPLICA_SET_NAME=rs0
mongo "mongodb://localhost:30001,localhost:30002,localhost:30003/$MONGO_INITDB_DATABASE" -u $MONGO_INITDB_USERNAME
mongo "mongodb://localhost:30001,localhost:30002,localhost:30003/app_swarmlab" -u app_swarmlab
----
or
connect and run
[source,bash]
----
mongo
----
NOTE: Commands inside container
== Video
=== Start mongo
****
TIP: Learn how to start mongo
video::565812815[vimeo]
****
=== Stop mongo
****
TIP: Learn how to stop mongo
video::565813620[vimeo]
****

1
docs/modules/quickstart/nav.adoc

@ -1 +0,0 @@
* xref:overview.adoc[Quickstart]

45
docs/modules/quickstart/pages/overview.adoc

@ -1,45 +0,0 @@
= Quickstart
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
This is where your wondeful journey in the vast world of Swarmlab begins.
== Senario 1
* you are a *teacher* and want to prepare your lesson
** create exercises and examples
** share them with your students
* you are a *student* and want to try your newly acquired knowledge on some project
* you are a *Developer* and would like to denug your application or a real world senario
** you want to provide POC
* you are a *user* and just want to try out stuff
** you want to play around with examples but are too scared to do so on your system
Well this is where you start!
=== xref:hybrid:start-labroom.adoc[start labroom]
=== xref:hybrid:start-storage.adoc[start storage]
=== xref:hybrid:start-microservices.adoc[start service]
== Senario 2
You have already completed senario 1 (using swarmlab or you own resources) and would now like to collaborate with others.
* as a teacher you would like to share the lesson you have prepared and work on it throughout the semester
* as a developer you want to coordinate with your team
* as a student you want to communicate and cooperate with your friends
Lets begin!
=== xref:venus:deploy.adoc[create network]
=== xref:venus:join.adoc[invite/join]
=== xref:venus:share-volume.adoc[volumes]
=== xref:venus:share-app.adoc[apps]

BIN
docs/modules/register/images/login.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

BIN
docs/modules/register/images/login_main.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

BIN
docs/modules/register/images/register_details.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

BIN
docs/modules/register/images/swarm.jpeg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

BIN
docs/modules/register/images/terms.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

1
docs/modules/register/nav.adoc

@ -1 +0,0 @@
* xref:overview.adoc[Register]

48
docs/modules/register/pages/overview.adoc

@ -1,48 +0,0 @@
= The first steps
Swarmlab
:idprefix:
:idseparator: -
:!example-caption:
:!table-caption:
:page-pagination:
Before you have all of the powerfull tools of Swarmalb at your grasp you will have to create an account.
[TIP]
====
.GitHub
[example]
You may also login using your *GitHub* account without creating a Swarmlab account.
====
== create an account
To do that navigate to the home page at https://api-client.swarmlab.io:8088
You should have been greeted by our login screen!
image::register:login.png[Login,500,float=center]
To register click on the 'login with sso' option and accept the terms.
image::register:terms.png[terms,float=center]
== register
Now you should be redirected to the login screen and you should be able to use the 'register' option at the bottom to make a new account! +
image::register:login_main.png[login,500,float=center]
fill in the required details
image::register:register_details.png[details,500,float=center]
and follow the remaining instructions to activate your account. +
== GitHub
Sign in using your GitHub account without a pre-existing Swarmlab account

BIN
docs/modules/venus/images/container-connection.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

BIN
docs/modules/venus/images/deploy.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

BIN
docs/modules/venus/images/host-connection.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

BIN
docs/modules/venus/images/join-connect-mode.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

BIN
docs/modules/venus/images/join-connect-status-info.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

BIN
docs/modules/venus/images/join-connect-status.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

BIN
docs/modules/venus/images/join-connect.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

BIN
docs/modules/venus/images/join-info.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

BIN
docs/modules/venus/images/join-status.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

BIN
docs/modules/venus/images/join.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

BIN
docs/modules/venus/images/manage-deploy-infomenou.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

BIN
docs/modules/venus/images/manage-deploy-more.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

BIN
docs/modules/venus/images/manage-deploy-showusers.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

BIN
docs/modules/venus/images/manage-deploy.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

BIN
docs/modules/venus/images/share-app-info.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

BIN
docs/modules/venus/images/share-info-default.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

BIN
docs/modules/venus/images/share-info.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

BIN
docs/modules/venus/images/share-networks-info.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

BIN
docs/modules/venus/images/share-networks.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

BIN
docs/modules/venus/images/share.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

BIN
docs/modules/venus/images/volume-connect-info.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

BIN
docs/modules/venus/images/volume-connect.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

BIN
docs/modules/venus/images/volume-create-info.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

BIN
docs/modules/venus/images/volume-create.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

BIN
docs/modules/venus/images/volume-delete-icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 519 B

BIN
docs/modules/venus/images/volume-info-icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 401 B

BIN
docs/modules/venus/images/volume-info.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

BIN
docs/modules/venus/images/volume-left.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

BIN
docs/modules/venus/images/volume-main.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

BIN
docs/modules/venus/images/volume-more.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 787 B

BIN
docs/modules/venus/images/volume-mount-no.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 592 B

BIN
docs/modules/venus/images/volume-mount-yes.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 515 B

BIN
docs/modules/venus/images/volume-right.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save