mirror of
https://github.com/bluxmit/alnoda-workspaces.git
synced 2024-05-16 03:52:19 +12:00
Merge branch 'main' of https://github.com/bluxmit/alnoda-workspaces into main
This commit is contained in:
commit
e228b2ce29
74
README.md
74
README.md
|
@ -28,14 +28,14 @@ backups; can be used by several users and make collaboration easier.***
|
|||
<img src="./img/wid-advantages.svg" alt="Htop">
|
||||
</p>
|
||||
|
||||
Essentially, workspace - is everything needed for a specific kind of work, packed in a docker image. It is a self-contained environment
|
||||
Essentially, workspace - is a toolset for a specific kind of work, packed in a docker image. It is a self-contained environment
|
||||
that is ready to use as soon as you execute `docker run`. Dockerized workspaces do not require other tools to be set up on the host
|
||||
machine, apart from docker itself. You can use such workspace locally or launch it securely on any cloud server.
|
||||
|
||||
Workspace would typically include file browser, code editor, IDE, terminal, job scheduler, resource and process monitor, documentation
|
||||
solution. Designed for specific IT projects, workspaces could also include frameworks, linters, profilers, testing, and auto-documentation tools,
|
||||
tools to visualize and study data, report generators, task orchestrators, infrastructure visualization tools, interactive notebooks,
|
||||
simulation UIs, custom dashboards, and many other.
|
||||
simulation UIs, custom dashboards, etc.
|
||||
|
||||
<div align="center" style="font-style: italic;">
|
||||
Demo: Ansible-Terraform workspace
|
||||
|
@ -47,39 +47,65 @@ simulation UIs, custom dashboards, and many other.
|
|||
|
||||
## Available workspaces
|
||||
|
||||
[`Ubuntu-workspace`](./workspaces/ubuntu-workspace/README.md). Docker as a light-weight Virtual Machine. It
|
||||
### [`Ubuntu-workspace`](./workspaces/ubuntu-workspace/README.md)
|
||||
Docker as a light-weight Virtual Machine. It
|
||||
provides isolation of environments, but uses less resources than VMs. Allows to start multiple processes inside the
|
||||
same docker container, has docker-in-docker, Python and Node.js, and a collection of common applications such as text editors,
|
||||
git, supervisord, z-shell etc. Ubuntu-workspace with browser-based terminal can be used on both local and remote server with the same experience.
|
||||
When it runs on the remote server, the access can be restricted with a password, and secured with TLS encryption.
|
||||
When it runs on the remote server, the access can be restricted with a password, and secured with TLS encryption.
|
||||
|
||||
[`Python-Workspace`](./workspaces/python-workspace/README.md). Python development enviroment inside the isolated docker container. Includes VS-code IDE,
|
||||
```
|
||||
docker run --name space-1 -d -p 8020-8030:8020-8030 alnoda/ubuntu-workspace
|
||||
```
|
||||
|
||||
### [`Workspace-in-docker`](./workspaces/workspace-in-docker/README.md)
|
||||
General-purpose dockerized workspace - an environment fully isolated inside a docker container.
|
||||
It can run anywhere, can be started and stopped, moved to another machine, archived to file or restored, pushed to docker registry, started on a cloud server.
|
||||
This workspace has a powerful cod editor (browser-based VS-Code version), its own UI, and a collection of applications for more
|
||||
convenient work, such as File Browser to easily exchange files and folders with workspace, Cronicle - advanced job scheduler with great UI,
|
||||
MkDocs for documentation of the workspace and projects. Has all the features of the Base-workspace and Ubuntu-workspace.
|
||||
|
||||
```
|
||||
docker run --name space-1 -d -p 8020-8035:8020-8035 alnoda/workspace-in-docker
|
||||
```
|
||||
|
||||
### [`Codeserver-Workspace`](./workspaces/codeserver-workspace/README.md)
|
||||
An alternative workspace to the workspace-in-docker. It has all the features ot the latter, except for the
|
||||
different implementation of the Visual Studio Code. While workspace-in-docker has [Eclipse Theia IDE](https://theia-ide.org/), Codeserver-Workspace
|
||||
includes [Codeserver](https://github.com/cdr/code-server) instead.
|
||||
|
||||
```
|
||||
docker run --name space-1 -d -p 8020-8035:8020-8035 alnoda/codeserver-workspace
|
||||
```
|
||||
|
||||
### [`Python-Workspace`](./workspaces/python-workspace/README.md)
|
||||
Python development enviroment inside the isolated docker container. Includes VS-code IDE,
|
||||
job scheduler and other tools for linting, testing, auto-documentation and profiling. Start coding in Python rght away! Has all the features of
|
||||
the Base-workspace and Ubuntu-workspace.
|
||||
the Base-workspace and Ubuntu-workspace.
|
||||
|
||||
[`Ansible-Terraform-Workspace`](./workspaces/ansible-terraform-workspace/README.md). This workspace - is a "dockerized" development environment
|
||||
```
|
||||
docker run --name space-1 -d -p 8020-8035:8020-8035 alnoda/python-workspace
|
||||
```
|
||||
|
||||
### [`Ansible-Terraform-Workspace`](./workspaces/ansible-terraform-workspace/README.md)
|
||||
This workspace - is a "dockerized" development environment
|
||||
with [Ansible](https://docs.ansible.com/), [Terraform](https://www.terraform.io/) and lots of other stuff installed,
|
||||
so that you don't need to do it yourself. Create infrastructures with Terraform, and configure it with Ansible.
|
||||
Workspace will help to code and develop; visualize infrastructures and planned terraform changes;
|
||||
display ansible hosts plays; schedule and observe executions and more! Has all the features of
|
||||
the Base-workspace and Ubuntu-workspace.
|
||||
the Base-workspace and Ubuntu-workspace.
|
||||
|
||||
[`MkDocs-MagicSpace`](./workspaces/mkdocs-magicspace/README.md) - an all-in-one tool, carefully crafted to develop, build and serve awesome static websites, for the purpose
|
||||
```
|
||||
docker run --name space-1 -d -p 8020-8035:8020-8035 -p 9000:9000 alnoda/ansible-terraform-workspace
|
||||
```
|
||||
|
||||
### [`MkDocs-MagicSpace`](./workspaces/mkdocs-magicspace/README.md)
|
||||
All-in-one tool, carefully crafted to develop, build and serve awesome static websites, for the purpose
|
||||
of documentation, tutorials, and training. Has all the features of the Base-workspace and Ubuntu-workspace.
|
||||
|
||||
[`Workspace-in-docker`](./workspaces/workspace-in-docker/README.md). General-purpose dockerized workspace - an environment fully isolated inside a docker container.
|
||||
It can run anywhere, can be started and stopped, moved to another machine, archived to file or restored, pushed to docker registry, started on a cloud server.
|
||||
This workspace has a powerful cod editor (browser-based VS-Code version), its own UI, and a collection of applications for more
|
||||
convenient work, such as File Browser to easily exchange files and folders with workspace, Cronicle - advanced job scheduler with great UI,
|
||||
MkDocs for documentation of the workspace and projects. Has all the features of the Base-workspace and Ubuntu-workspace.
|
||||
|
||||
[`Codeserver-Workspace`](./workspaces/codeserver-workspace/README.md) - an alternative workspace to the `workspace-in-docker`. It has all the features ot the latter, except for the
|
||||
different implementation of the Visual Studio Code. While `workspace-in-docker` has [Eclipse Theia IDE](https://theia-ide.org/), Codeserver-Workspace
|
||||
includes [Codeserver](https://github.com/cdr/code-server) instead.
|
||||
|
||||
[`Base-Workspace`](./workspaces/base-workspace/README.md). Base-Workspace has its own UI, and a collection of applications for more
|
||||
convenient work, such as File Browser to easily exchange files and folders with workspace, Cronicle - advanced job scheduler with great UI,
|
||||
MkDocs for documentation of the workspace and projects. Does not include code editor, has all the features of Ubuntu-workspace.
|
||||
```
|
||||
docker run --name space-1 -d -p 8020-8035:8020-8035 alnoda/mkdocs-magicspace
|
||||
```
|
||||
|
||||
|
||||
## Why workspace In Docker
|
||||
|
@ -145,8 +171,8 @@ a self-contained isolated environment first.
|
|||
For example, if you are a data analyst, data scientist, researcher you make experiments, simulations, train ML models. Such work often involves
|
||||
frequent changes to your environment (updating packages, install new applications, change datasets, etc.). To reproduce analytics,
|
||||
experiment, or ML model training you need to have an exact version of your environment at a specific point in time. Dockerized workspaces in docker
|
||||
solve this problem very well! At any moment you can backup and save your entire workspace running in the docker container, and launch it
|
||||
as a new workspace whenever you want.
|
||||
solve this problem very well! At any moment you can backup and save your entire workspace as an image, and launch it
|
||||
as a new workspace whenever and wherever you want.
|
||||
|
||||
**Collaboration made simple.** You need a workspace that can be shared with your peers or colleagues. Launch it on the cloud server
|
||||
and use together.
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
# Ansible-Terraform Workspace
|
||||
|
||||
This workspace - is a "dockerized" development environment with [Ansible](https://docs.ansible.com/)
|
||||
and [Terraform](https://www.terraform.io/) and lots of other stuff installed,
|
||||
so that you don't need to do it yourself. Create infrastructures with Terraform, and configure it with Ansible.
|
||||
This workspace - is a "dockerized" development environment with [Ansible](https://docs.ansible.com/),
|
||||
[Terraform](https://www.terraform.io/), and lots of other stuff installed,
|
||||
so that you don't need to do it yourself. Create infrastructures with Terraform, and configure with Ansible.
|
||||
Workspace will help to code and develop; visualize infrastructures and planned terraform changes;
|
||||
display ansible hosts plays; schedule and observe executions and more!
|
||||
display ansible hosts; schedule plays and much more!
|
||||
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ansible-terraform-workspace/img/ansible-terraform-wid-collage.png" alt="Collage">
|
||||
|
@ -230,7 +230,7 @@ install in future. So we map several extra ports just inn case.
|
|||
|
||||
Ansible-Terraform workspace has the following applications installed, but not started by default
|
||||
|
||||
1) **Terraform Rover** provides great visualisation for your terraform infrastructure. To visualize any (innitialized) teffarorm project
|
||||
1) **Terraform Rover** provides great visualization for your Terraform infrastructure. To visualize any (initialized) Teffarorm project
|
||||
execute
|
||||
|
||||
> `rover --workingDir <TERRAFORM_PROJECT_FOLDER>`
|
||||
|
@ -306,7 +306,7 @@ This way allows to ssh into the workspace as a root user at any time, even if th
|
|||
docker exec -it --user=root space-1 /bin/zsh
|
||||
```
|
||||
|
||||
You can work in Ubuntu terminal now. Execute the followinng command to know your workspace user
|
||||
You can work in the Ubuntu terminal now. Execute the following command to know your workspace user
|
||||
|
||||
> `whoami`
|
||||
|
||||
|
@ -387,15 +387,15 @@ After the command is executed, you will see folder `/home/abc/utils/remote` is c
|
|||
</p>
|
||||
|
||||
|
||||
. Copy this folder to the remote server where you want to launch Ansible-Terraform workspace.
|
||||
Copy this folder to the remote server where you want to launch Ansible-Terraform workspace.
|
||||
You can use cyberduck or [scp](https://kb.iu.edu/d/agye). ssh to the server, cd to the directory you copied and execute
|
||||
|
||||
```sh
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
That's it, you workspace is running securely on the remote server, using
|
||||
self-signed TLS certificates for encrypted https communication between you laptop and the remote workspace, and authentication is added.
|
||||
That's it, your workspace is running securely on the remote server, using
|
||||
self-signed TLS certificates for encrypted HTTPS communication between your laptop and the remote workspace, and authentication is added.
|
||||
|
||||
|
||||
|
||||
|
@ -414,7 +414,7 @@ fully configured in the Ansible-Terraform workspace - it captures any execution
|
|||
of any ansible playbook.
|
||||
|
||||
Ara server is up and running in the workspace, and available on the internal port 8029. If you mapped standard ports to your Ansible-Terraform
|
||||
workspcae, then Ansible Ara WEB UI is onn [localhost:8029](http://localhost:8029)
|
||||
workspcae, then Ansible Ara WEB UI is on [localhost:8029](http://localhost:8029)
|
||||
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ansible-terraform-workspace/img/Ansible-Ara.gif" alt="Htop" width="750">
|
||||
|
@ -544,8 +544,8 @@ Create infrastructure with
|
|||
|
||||
#### Terraform report
|
||||
|
||||
A small tool that produces several outputs from a terraform project, and visualizes terraform plan as an interactive HTML page.
|
||||
Terraform report can be generated from the small example terraform project, included in the Workspcae
|
||||
A small tool that produces several outputs from a terraform project and visualizes terraform plan as an interactive HTML page.
|
||||
Terraform report can be generated from the small example terraform project, included in the Workspace
|
||||
|
||||
> `cd /home/examples/terraform-scaleway/ && terraform-report`
|
||||
|
||||
|
@ -606,8 +606,8 @@ Use Static File Server to review the report
|
|||
|
||||
#### Terraform Rover
|
||||
|
||||
[Rover](https://github.com/im2nguyen/rover) - is an awesome Terraform vizualizer with browser-based UI. Rover helps to better understand
|
||||
Terraform state and planned changes. To see how Rover works, you can use a basic tterraform example in folder */home/examples/terraform-scaleway/*.
|
||||
[Rover](https://github.com/im2nguyen/rover) - is an awesome Terraform visualizer with browser-based UI. Rover helps to better understand
|
||||
Terraform state and planned changes. To see how Rover works, you can use a basic Terraform example in folder */home/examples/terraform-scaleway/*.
|
||||
Initialize Terraform project first
|
||||
|
||||
> `cd /home/examples/terraform-scaleway/ && terraform init`
|
||||
|
|
|
@ -6,7 +6,7 @@ MkDocs-MagicSpace is an all-in-one tool, carefully crafted to make the developme
|
|||
websites like [**this one**](https://mkdocs-magicspace.alnoda.org/) as easy as possible.
|
||||
|
||||
<p align="center">
|
||||
<img src="./img/mkdocs-collage.png" alt="Collage">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/mkdocs-magicspace/img/mkdocs-collage.png" alt="Collage">
|
||||
</p>
|
||||
|
||||
|
||||
|
@ -67,7 +67,7 @@ The Workspace contains browser-based Visual Studio Code, and several browser-bas
|
|||
</div>
|
||||
|
||||
<p align="center">
|
||||
<img src="./img/mkdocs-magicspace-demo.gif" alt="Magicspace demo" width="900">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/mkdocs-magicspace/img/mkdocs-magicspace-demo.gif" alt="Magicspace demo" width="900">
|
||||
</p>
|
||||
|
||||
- **Workspace UI** - launch all workspace tools from one place.
|
||||
|
@ -299,7 +299,7 @@ use utility `/home/abc/utils/remote.py` to generate create docker-compose projec
|
|||
After the command is executed, you will see folder `/home/abc/utils/remote` is created. Download it out from the workspace to the local environment using the Filebrowser:
|
||||
|
||||
<p align="center">
|
||||
<img src="./img/mkdocs-remote.gif" alt="mkdocs-remote.gif" width="750">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/mkdocs-magicspace/img/mkdocs-remote.gif" alt="mkdocs-remote.gif" width="750">
|
||||
</p>
|
||||
|
||||
. Copy this folder to the remote server where you want to launch the Python workspace.
|
||||
|
|
|
@ -4,7 +4,7 @@ Use docker as a lightweight Virtual Machine. Provides isolation of environments,
|
|||
and requires less resources than VMs. Run locally or on a cloud server (with HTTPS and auth).
|
||||
|
||||
<p align="center">
|
||||
<img src="./img/ubuntu-wid-collage.png" alt="Collage">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/ubuntu-wid-collage.png" alt="Collage">
|
||||
</p>
|
||||
|
||||
Try it out:
|
||||
|
@ -59,7 +59,7 @@ when you need interactive Linux, python, or node shell for ad-hock tasks.
|
|||
</div>
|
||||
|
||||
<p align="center">
|
||||
<img src="img/ubuntu-workspace.gif" alt="Ubuntu workspace" width="900">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/ubuntu-workspace.gif" alt="Ubuntu workspace" width="900">
|
||||
</p>
|
||||
|
||||
### Standard
|
||||
|
@ -73,7 +73,7 @@ runs on the remote server, access can be restricted with a password, and communi
|
|||
</div>
|
||||
|
||||
<p align="center">
|
||||
<img src="img/ubuntu-workspace-remote.gif" alt="Standard Ubuntu workspace" width="900">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/ubuntu-workspace-remote.gif" alt="Standard Ubuntu workspace" width="900">
|
||||
</p>
|
||||
|
||||
|
||||
|
@ -240,13 +240,13 @@ Now you can navigate in your browser to `<IP_OF_CLOUD_SERVER_WITH_PUBLIC_ACCESS>
|
|||
**NOTE:** The HTTPS is with self-signed certificate, and your browser will show a warning, asking you to accept the risk
|
||||
|
||||
<p align="center">
|
||||
<img src="img/accept-risks.png" alt="accept-risks.png" width="750">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/accept-risks.png" alt="accept-risks.png" width="750">
|
||||
</p>
|
||||
|
||||
After you accept the risk, authentication window will appear asking you the user and password, that you have set as`<ANY_USER_NAME>`, `<ANY_USER_PASSWORD>`.
|
||||
|
||||
<p align="center">
|
||||
<img src="img/auth.png" alt="auth.png" width="750">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/auth.png" alt="auth.png" width="750">
|
||||
</p>
|
||||
|
||||
|
||||
|
@ -260,7 +260,7 @@ Explore file system with Midnight Commander
|
|||
> ```mc```
|
||||
|
||||
<p align="center">
|
||||
<img src="img/mc.png" alt="Moonlignt commander" width="750">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/mc.png" alt="Moonlignt commander" width="750">
|
||||
</p>
|
||||
|
||||
Launch system-monitor, process-viewer and process-manager
|
||||
|
@ -268,7 +268,7 @@ Launch system-monitor, process-viewer and process-manager
|
|||
htop
|
||||
```
|
||||
<p align="center">
|
||||
<img src="img/htop.png" alt="Htop" width="750">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/htop.png" alt="Htop" width="750">
|
||||
</p>
|
||||
|
||||
Explore file/folder sizes
|
||||
|
@ -276,7 +276,7 @@ Explore file/folder sizes
|
|||
ncdu
|
||||
```
|
||||
<p align="center">
|
||||
<img src="img/ncdu.png" alt="Htop" width="750">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/ncdu.png" alt="Htop" width="750">
|
||||
</p>
|
||||
|
||||
Text editors ```vim```, ```nano``` and ```mcedit``` are available. For example, clone git repo and edit python file with nano
|
||||
|
@ -286,14 +286,14 @@ cd sendmail
|
|||
nano sendmail.py
|
||||
```
|
||||
<p align="center">
|
||||
<img src="img/nano.png" alt="Htop" width="750">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/nano.png" alt="Htop" width="750">
|
||||
</p>
|
||||
|
||||
```
|
||||
mcedit sendmail.py
|
||||
```
|
||||
<p align="center">
|
||||
<img src="img/mcedit.png" alt="Htop" width="750">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/ubuntu-workspace/img/mcedit.png" alt="Htop" width="750">
|
||||
</p>
|
||||
|
||||
## Use Workspace
|
||||
|
|
|
@ -232,7 +232,7 @@ Open [localhost:8020](http://localhost:8020), and from there open other applicat
|
|||
</div>
|
||||
|
||||
<p align="center">
|
||||
<img src="./img/wid-ui.png" alt="wid-ui.png" width="750">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/workspace-in-docker/img/wid-ui.png" alt="wid-ui.png" width="750">
|
||||
</p>
|
||||
|
||||
The rest of the ports from the port range can be used in order to expose optional applications, or applications you might
|
||||
|
@ -313,7 +313,7 @@ use utility `/home/abc/utils/remote.py` to generate create docker-compose projec
|
|||
After the command is executed, you will see folder `/home/abc/utils/remote` is created. Download it out from the workspace to the local environment using the Filebrowser:
|
||||
|
||||
<p align="center">
|
||||
<img src="./img/wid-remote.gif" alt="generate-remote.gif" width="750">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/workspace-in-docker/img/wid-remote.gif" alt="wid-remote.gif" width="750">
|
||||
</p>
|
||||
|
||||
. Copy this folder to the remote server where you want to launch the Python workspace.
|
||||
|
|
Loading…
Reference in a new issue