|
@ -1,28 +0,0 @@
|
|||
ARG docker_registry=docker.io/alnoda
|
||||
ARG image_tag=2.2
|
||||
|
||||
## Images used:
|
||||
# ARG BUILD_IMAGE=node:12.18.3
|
||||
ARG DEPLOY_IMAGE=${docker_registry}/ansible-terraform-workspace:${image_tag}
|
||||
|
||||
# Theia rebuild here
|
||||
|
||||
|
||||
FROM ${DEPLOY_IMAGE}
|
||||
USER root
|
||||
|
||||
RUN echo "------------------------------------------------------ AWS CLI" \
|
||||
&& curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "/tmp/awscliv2.zip" \
|
||||
&& cd /tmp && unzip /tmp/awscliv2.zip \
|
||||
&& sh /tmp/aws/install \
|
||||
&& rm /tmp/awscliv2.zip \
|
||||
&& rm -r /tmp/aws \
|
||||
&& echo "------------------------------------------------------ Pipx" \
|
||||
&& python3 -m pip install --user pipx \
|
||||
&& echo "------------------------------------------------------ Saws" \
|
||||
&& pipx install saws
|
||||
&& echo "------------------------------------------------------ Infra-graph" \
|
||||
&& pipx install aws-infra-graph
|
||||
|
||||
USER abc
|
||||
COPY settings.json /home/abc/.theia/settings.json
|
|
@ -1,25 +0,0 @@
|
|||
# AWS Workspace
|
||||
|
||||
__WIP__
|
||||
|
||||
## Tools
|
||||
|
||||
- https://github.com/duo-labs/cloudmapper
|
||||
- https://github.com/ludwigm/infrastructure-graph
|
||||
- https://github.com/prparikh02/aws-vpc-visualizer
|
||||
|
||||
## VS-code extensions
|
||||
|
||||
- https://open-vsx.org/extension/amazonwebservices/aws-toolkit-vscode
|
||||
|
||||
## Security
|
||||
|
||||
- https://github.com/prowler-cloud/prowler
|
||||
- https://github.com/salesforce/cloudsplaining
|
||||
- https://github.com/anaynayak/aws-security-viz
|
||||
|
||||
## Other (special)
|
||||
|
||||
- https://github.com/dbcli/athenacli
|
||||
- https://github.com/aws/aws-sam-cli
|
||||
- https://github.com/barnybug/cli53
|
|
@ -1,5 +0,0 @@
|
|||
# Closure workspace
|
||||
|
||||
__WIP__
|
||||
|
||||
https://github.com/nextjournal/clerk
|
|
@ -1,12 +0,0 @@
|
|||
# Jupyterlite workspace
|
||||
|
||||
__WIP__
|
||||
|
||||
Planned features:
|
||||
|
||||
- [jupyterlite](https://jupyterlite.readthedocs.io/en/latest/)
|
||||
- [GitHub](https://github.com/jupyterlite/jupyterlite)
|
||||
- [sqlite kernel](https://github.com/jupyterlite/xeus-sqlite-kernel)
|
||||
- [lua kernel](https://github.com/jupyterlite/xeus-lua-kernel)
|
||||
- [p5.js kernel](https://github.com/jupyterlite/p5-kernel)
|
||||
- [Javascript Kernels](https://github.com/deathbeds/jyve)
|
|
@ -1,14 +0,0 @@
|
|||
ARG docker_registry=docker.io/alnoda
|
||||
ARG image_tag=18.04-0.7
|
||||
|
||||
FROM ${docker_registry}/ubuntu-workspace:${image_tag}
|
||||
|
||||
USER root
|
||||
|
||||
RUN apt-get -y update \
|
||||
&& apt-get install -y firefox \
|
||||
&& cd /tmp && wget https://github.com/browsh-org/browsh/releases/download/v1.6.4/browsh_1.6.4_linux_amd64.deb \
|
||||
&& cd /tmp && apt install -y ./browsh_1.6.4_linux_amd64.deb \
|
||||
&& rm /tmp/browsh_1.6.4_linux_amd64.deb
|
||||
|
||||
USER abc
|
|
@ -1,45 +0,0 @@
|
|||
# Ubuntu-Browsh
|
||||
|
||||
Ubuntu-Browsh - is [Ubuntu-Workspace](https://github.com/bluxmit/alnoda-workspaces/blob/main/workspaces/ubuntu-workspace) with a terminal
|
||||
text-based browser [Browsh](https://www.brow.sh/) installed.
|
||||
|
||||
Ubuntu-Browsh has was created to tackle a very specific use-case - ability to view WEB UIs of the internal applications running in the internal
|
||||
network, that does not have ingress for public internet connections. In other words, if you are allowed to SSH to one servers inside the private
|
||||
network, but cannot access WEB UIs of the applications inside this network. One of the reasons might be that these WEB UIs don't have restriction/auth
|
||||
mechanism built in. Or the company policy forbids opening any accesses from the specific network to the internet access.
|
||||
|
||||
One of the particular use-cases this workspace was used for - is to view EMR WEB interfaces (Spark History server UI, YARN UI, Livy UI),
|
||||
and check the Spark logs out. There here are other ways to do this, i.e. setting up SSH tunneling, installing browser plugins, creating
|
||||
secure gateways with VPN. This way is jus the simplest, and does not require modification of infrastructure or local environment.
|
||||
|
||||
## Use inrivate network
|
||||
|
||||
SSH to one of the servers in the private network, and execute
|
||||
|
||||
```
|
||||
docker run --name browsh-workspace -d alnoda/ubuntu-browsh
|
||||
```
|
||||
|
||||
and ssh into the workspace
|
||||
|
||||
```
|
||||
docker exec -it browsh-workspace /bin/zsh
|
||||
```
|
||||
|
||||
## Other cases
|
||||
|
||||
```
|
||||
docker run --name browsh-workspace -d -p 8026:8026 alnoda/ubuntu-browsh
|
||||
```
|
||||
|
||||
Open your browser on http://localhost:8026 and open any website with Browsh
|
||||
|
||||
> `browsh --startup-url google.com`
|
||||
|
||||
## Tips
|
||||
|
||||
Sometimes if you quit Browsh, and try to launch it again later, there might be an error saying that headless Firefox is already running.
|
||||
Execute `ps aux` find pid of firefox process and kill it, i.e. `kill 988`
|
||||
|
||||
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
ARG docker_registry=docker.io/alnoda
|
||||
ARG image_tag=0.1
|
||||
|
||||
FROM ${docker_registry}/postgres-workspace:${image_tag}
|
||||
|
||||
USER root
|
||||
|
||||
RUN echo "------------------------------------------------------ yugabyte 2.11" \
|
||||
&& cd /tmp/ && wget https://downloads.yugabyte.com/releases/2.11.0.0/yugabyte-2.11.0.0-b7-linux-x86_64.tar.gz \
|
||||
&& tar xvfz /tmp/yugabyte-2.11.0.0-b7-linux-x86_64.tar.gz \
|
||||
&& mv /tmp/yugabyte-2.11.0.0/ /opt/yugabyte \
|
||||
&& /opt/yugabyte/bin/post_install.sh \
|
||||
&& echo "------------------------------------------------------ tpcc" \
|
||||
&& cd /tmp && wget https://github.com/yugabyte/tpcc/releases/download/2.0/tpcc.tar.gz \
|
||||
&& tar -zxvf /tmp/tpcc.tar.gz \
|
||||
&& chmod +x /tmp/tpcc/tpccbenchmark \
|
||||
&& mv /tmp/tpcc /opt/tpcc \
|
||||
&& echo "------------------------------------------------------ Yugabyte workload generator" \
|
||||
&& mkdir /opt/yugabyte-workload-gen \
|
||||
&& cd /opt/yugabyte-workload-gen && wget https://github.com/yugabyte/yb-sample-apps/releases/download/1.3.9/yb-sample-apps.jar \
|
||||
&& echo "------------------------------------------------------ user" \
|
||||
&& chown -R abc /opt/yugabyte \
|
||||
&& chown -R abc /opt/tpcc \
|
||||
&& chown -R abc /opt/yugabyte-workload-gen
|
||||
|
||||
ENV PATH="/opt/yugabyte/bin:/opt/yugabyte/postgres/bin:${PATH}"
|
||||
|
||||
USER abc
|
|
@ -1,79 +0,0 @@
|
|||
# Yugabyte workspace
|
||||
|
||||
A set of tools to maintain, test, benchmark and deveolp with [Yugabyte](https://www.yugabyte.com/) - a distributed
|
||||
SQL database.
|
||||
|
||||
## About
|
||||
This workspace was build from the [Postgres workspace](https://github.com/bluxmit/alnoda-workspaces/blob/main/workspaces/postgres-workspace/README.md), and
|
||||
includes all its features. In addition:
|
||||
- [Yugabyte 2.11 release](https://github.com/yugabyte/yugabyte-db/releases)
|
||||
- [tpccbenchmark](https://docs.yugabyte.com/latest/benchmark/tpcc-ysql/)
|
||||
- [YugabyteDB workload generator](https://github.com/Yugabyte/yb-sample-apps)
|
||||
|
||||
Yugabyte release is in the folder `/opt/yugabyte` with `./bin and ./postgres/bin` added to the PATH.
|
||||
|
||||
<p align="center">
|
||||
<img src="./img/yugabyte-binaries.jpg" alt="mc">
|
||||
</p>
|
||||
|
||||
Postgres tools from the [Postgres workspace](https://github.com/bluxmit/alnoda-workspaces/blob/main/workspaces/postgres-workspace/README.md)
|
||||
work with Yugabyte too.
|
||||
|
||||
### tpccbenchmark
|
||||
[tpccbenchmark](https://docs.yugabyte.com/latest/benchmark/tpcc-ysql/) runs the TPC-C workload against YugabyteDB YSQL.
|
||||
TPC-C is a popular online transaction processing benchmark that provides metrics you can use to evaluate the performance
|
||||
of YugabyteDB for concurrent transactions of different types and complexity that are either executed online or queued
|
||||
for deferred execution.
|
||||
|
||||
Example of use
|
||||
|
||||
1. Create db for testing
|
||||
```
|
||||
pgcli -h yugabyte-tservers-ip -p 5433 -U yugabyte
|
||||
>> CREATE DATABASE loadtest;
|
||||
```
|
||||
|
||||
2. Configure tpccbenchmark
|
||||
```
|
||||
cd /opt/tpcc
|
||||
nano config/workload_all.xml # change <DBName> to loadtest
|
||||
```
|
||||
|
||||
3. Prepare and execute load test
|
||||
```
|
||||
cd /opt/tpcc
|
||||
./tpccbenchmark --create=true --nodes=yuga-yb-tservers loadtest
|
||||
|
||||
./tpccbenchmark --load=true \
|
||||
--nodes=yuga-yb-tservers \
|
||||
--warehouses=10 \
|
||||
--loaderthreads 20
|
||||
|
||||
./tpccbenchmark --execute=true \
|
||||
--nodes=yuga-yb-tservers \
|
||||
--warehouses=10
|
||||
```
|
||||
|
||||
### YugabyteDB workload generator
|
||||
[YugabyteDB workload generator](https://github.com/Yugabyte/yb-sample-apps) emulates various workloads against YugabyteDB.
|
||||
|
||||
Help
|
||||
```
|
||||
cd /opt/yugabyte-workload-gen
|
||||
|
||||
java -jar yb-sample-apps.jar --help
|
||||
```
|
||||
|
||||
Example of use
|
||||
```
|
||||
cd /opt/yugabyte-workload-gen
|
||||
|
||||
java -jar yb-sample-apps.jar \
|
||||
--workload SqlInserts \
|
||||
--nodes yugabyte-tservers-ip:5433 \
|
||||
--nouuid \
|
||||
--value_size 256 \
|
||||
--num_threads_read 16 \
|
||||
--num_threads_write 4 \
|
||||
--num_unique_keys 10000000
|
||||
```
|
Before Width: | Height: | Size: 146 KiB |
|
@ -1,5 +1,5 @@
|
|||
ARG docker_registry=docker.io/alnoda
|
||||
ARG image_tag=2.2
|
||||
ARG image_tag=3.0
|
||||
|
||||
## Images used:
|
||||
ARG BUILD_IMAGE=node:12.18.3
|
||||
|
@ -45,7 +45,7 @@ COPY ./examples/ /home/examples/
|
|||
|
||||
# Delete previous Theia & set up new
|
||||
RUN rm -rf /opt/theia \
|
||||
&& mkdir -p -m 777 /opt/theia \
|
||||
&& mkdir -p /opt/theia \
|
||||
&& cd /opt/theia && nodeenv --node=12.18.3 env && . env/bin/activate \
|
||||
&& pip install -r /home/abc/installed-python-packages/infra-requirements.txt \
|
||||
&& python3 -m pip install "ara[server]"
|
||||
|
@ -65,6 +65,10 @@ COPY ./mkdocs/Ara.png /home/docs/docs/assets/home/
|
|||
COPY ./mkdocs/Blast-radius.png /home/docs/docs/assets/home/
|
||||
COPY ./mkdocs/Terraform-Rover.png /home/docs/docs/assets/home/
|
||||
COPY ./mkdocs/helpers.py /home/docs/macros
|
||||
COPY ./mkdocs/terraform-circle.svg /home/docs/docs/assets/
|
||||
COPY ./mkdocs/terraform-circle-white.svg /home/docs/docs/assets/
|
||||
COPY ./mkdocs/extra.css /home/docs/docs/stylesheets/
|
||||
COPY ./mkdocs/about.md /home/docs/docs/about.md
|
||||
|
||||
RUN apt-get -y update \
|
||||
&& apt-get install -y python-is-python3 \
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<p align="center">
|
||||
<img src="../../img/Alnoda-white.svg" alt="Alnoda logo" width="150">
|
||||
<img src="./img/terraform-circle.svg" alt="Terraform logo" width="150">
|
||||
</p>
|
||||
|
||||
# Ansible-Terraform Workspace
|
||||
|
||||
Dockerized development environment for Ansible and Terraform. Workspace will help to create and manage infrastructures;
|
||||
visualize planned terraform changes; display ansible hosts plays; schedule and observe executions.
|
||||
Containerized development, execution and admin environment for Ansible and Terraform.
|
||||
Create, provision, visualize and manage infrastructures, schedule maintenance tasks.
|
||||
|
||||
<p align="center">
|
||||
<img src="img/ansible-terraform-wid-collage.png" alt="Collage" width="750">
|
||||
|
@ -42,9 +42,9 @@ and open [localhost:8020](http://localhost:8020) in browser.
|
|||
- [**Blast-Radius**](https://github.com/28mm/blast-radius)
|
||||
- [**Terraform Visual**](https://github.com/hieven/terraform-visual)
|
||||
- [**Terraform Graph**](https://www.terraform.io/docs/cli/commands/graph.html)
|
||||
- [**Inframap**](https://github.com/cycloidio/inframap)
|
||||
- [**Inframap**](https://github.com/cycloidio/inframap)**Terraform tools:**
|
||||
|
||||
**Dev tools:**
|
||||
**Tools:**
|
||||
|
||||
- [**Eclipse Theia**](https://theia-ide.org/docs/) - open source version of popular Visual Studio Code IDE. Theia is trully open-source, has
|
||||
VS-Code extensions and works in browser. This means it can run inside a docker container on local machine or in cloud. A lot of beautiful color themes and many common plugins are already installed to save time.
|
||||
|
@ -57,19 +57,18 @@ VS-Code extensions and works in browser. This means it can run inside a docker c
|
|||
- [**Midnight Commander**](https://midnight-commander.org/) - Feature rich visual file manager with internal text viewer and editor.
|
||||
- [**Process Monitor**](https://htop.dev/) - Monitor running process and resource utilization.
|
||||
- Quicklaunch UI with getting started tutorial
|
||||
|
||||
Image is built from **Ubuntu 20.4** with the additional CLI apps
|
||||
|
||||
- [Zsh](https://www.zsh.org/), [Oh my Zsh](https://ohmyz.sh/)
|
||||
- Python 3, Pip
|
||||
- Node/nodeenv
|
||||
- curl, wget, telnet, jq
|
||||
- **Git:** git, git-flow, lazygit
|
||||
- **File browsers:** mc, xplr
|
||||
- **Text editors:** nano, vim, mcedit
|
||||
- **System monitors:** ncdu, htop, glances, vizex
|
||||
- **Process Control:** supervisord
|
||||
- **Job scheduler:** cron
|
||||
- **Ubuntu 20.4** with the following CLI apps
|
||||
- [Zsh](https://www.zsh.org/), [Oh my Zsh](https://ohmyz.sh/)
|
||||
- Python 3, Pip
|
||||
- Node/nodeenv
|
||||
- curl, wget, telnet, jq
|
||||
- **Git:** git, git-flow
|
||||
- **File browsers:** mc, xplr
|
||||
- **Text editors:** nano, vim, mcedit
|
||||
- **System monitors:** ncdu, htop, glances, vizex
|
||||
- **Process Control:** supervisord
|
||||
- **Job scheduler:** cron
|
||||
- **Terminal multiplexer:** tmux
|
||||
|
||||
## Docs
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
Tool candidates:
|
||||
|
||||
- [Terraspace](https://github.com/boltops-tools/terraspace)
|
||||
- [terraform-visual](https://github.com/hieven/terraform-visual)
|
19
workspaces/ansible-terraform-workspace/docs/improvements.md
Normal file
|
@ -0,0 +1,19 @@
|
|||
# Improvements
|
||||
|
||||
## Fix non-standard port 9000 for terraform-rover
|
||||
|
||||
use socat.
|
||||
|
||||
Install
|
||||
|
||||
```
|
||||
apt-get install -y socat
|
||||
```
|
||||
|
||||
Create tunnel between port 9000 and 8033
|
||||
|
||||
```
|
||||
socat tcp-listen:8033,reuseaddr,fork tcp:localhost:9000
|
||||
```
|
||||
|
||||
Add this to supervisord
|
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 900 900" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="g10" transform="matrix(3, 0, 0, -3, 0, 900)" style="">
|
||||
<g id="g12" transform="scale(0.1)">
|
||||
<path d="M 1500 3000 C 671.57 3000 0 2328.43 0 1500 C 0 671.57 671.57 0 1500 0 C 2328.43 0 3000 671.57 3000 1500 C 3000 2328.43 2328.43 3000 1500 3000 Z M 2454.59 545.41 C 2199.61 290.422 1860.6 150 1500 150 C 1139.4 150 800.387 290.422 545.406 545.41 C 290.426 800.391 150 1139.4 150 1500 C 150 1860.6 290.426 2199.61 545.406 2454.59 C 800.387 2709.57 1139.4 2850 1500 2850 C 1860.6 2850 2199.61 2709.57 2454.59 2454.59 C 2709.57 2199.61 2850 1860.6 2850 1500 C 2850 1139.4 2709.57 800.391 2454.59 545.41" style="fill-opacity: 1; fill-rule: nonzero; stroke: none;" id="path14"/>
|
||||
<title>Go icon</title>
|
||||
<title>Elixir icon</title>
|
||||
<title>R icon</title>
|
||||
<path d="M 1144.438 1481.645 L 575.631 1792.779 L 575.631 2415.172 L 1144.438 2104.037 L 1144.438 1481.645 Z M 1775.773 443.626 L 1206.966 754.761 L 1206.966 1377.153 L 1775.773 1066.018 L 1775.773 443.626 Z M 1206.966 2067.81 L 1775.773 1756.306 L 1775.773 1134.284 L 1206.966 1445.541 L 1206.966 2067.686 L 1206.966 2067.81 Z M 1838.302 1134.284 L 2407.108 1445.17 L 2407.108 2067.81 L 1838.302 1756.306 L 1838.302 1134.284 Z" fill="#000" style=""/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 900 900" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="g10" transform="matrix(3, 0, 0, -3, 0, 900)" style="">
|
||||
<g id="g12" transform="scale(0.1)">
|
||||
<path d="M 1500 3000 C 671.57 3000 0 2328.43 0 1500 C 0 671.57 671.57 0 1500 0 C 2328.43 0 3000 671.57 3000 1500 C 3000 2328.43 2328.43 3000 1500 3000 Z M 2454.59 545.41 C 2199.61 290.422 1860.6 150 1500 150 C 1139.4 150 800.387 290.422 545.406 545.41 C 290.426 800.391 150 1139.4 150 1500 C 150 1860.6 290.426 2199.61 545.406 2454.59 C 800.387 2709.57 1139.4 2850 1500 2850 C 1860.6 2850 2199.61 2709.57 2454.59 2454.59 C 2709.57 2199.61 2850 1860.6 2850 1500 C 2850 1139.4 2709.57 800.391 2454.59 545.41" style="fill-opacity: 1; fill-rule: nonzero; stroke: none;" id="path14"/>
|
||||
<title>Go icon</title>
|
||||
<title>Elixir icon</title>
|
||||
<title>R icon</title>
|
||||
<path d="M 1144.438 1481.645 L 575.631 1792.779 L 575.631 2415.172 L 1144.438 2104.037 L 1144.438 1481.645 Z M 1775.773 443.626 L 1206.966 754.761 L 1206.966 1377.153 L 1775.773 1066.018 L 1775.773 443.626 Z M 1206.966 2067.81 L 1775.773 1756.306 L 1775.773 1134.284 L 1206.966 1445.541 L 1206.966 2067.686 L 1206.966 2067.81 Z M 1838.302 1134.284 L 2407.108 1445.17 L 2407.108 2067.81 L 1838.302 1756.306 L 1838.302 1134.284 Z" fill="#000" style=""/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 284 KiB After Width: | Height: | Size: 616 KiB |
2
workspaces/ansible-terraform-workspace/mkdocs/about.md
Normal file
|
@ -0,0 +1,2 @@
|
|||
Containerized development, execution and admin environment for Ansible and Terraform.
|
||||
Create, provision, visualize and manage infrastructures, schedule maintenance tasks.
|
20
workspaces/ansible-terraform-workspace/mkdocs/extra.css
Normal file
|
@ -0,0 +1,20 @@
|
|||
[data-md-color-scheme="terraform"] {
|
||||
--md-primary-fg-color: #241B2F;
|
||||
--md-primary-fg-color--light: #7747A7;
|
||||
--md-primary-fg-color--dark: #7747A7;
|
||||
--md-accent-fg-color: #5C41E2;
|
||||
|
||||
--md-default-bg-color: #FFFFFF;
|
||||
--md-typeset-a-color: #604270;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="terraform-dark"] {
|
||||
--md-primary-fg-color: #7747A7;
|
||||
--md-accent-fg-color: #DF736A;
|
||||
|
||||
--md-default-bg-color: #171520;
|
||||
--md-default-fg-color--light: #604270;
|
||||
--md-typeset-color: #FFFFFF;
|
||||
--md-typeset-a-color: #83698E;
|
||||
}
|
||||
|
|
@ -5,14 +5,14 @@
|
|||
nav:
|
||||
- Home: README.md
|
||||
- My apps: pages/my-apps.md
|
||||
- About: about.md
|
||||
- Docs: https://docs.alnoda.org/ansible-terraform-workspace/
|
||||
|
||||
|
||||
# ===========================================================
|
||||
# CONFIGURATION
|
||||
# ===========================================================
|
||||
|
||||
site_name: Infra Workspace
|
||||
site_name: Ansible-terraform workspace
|
||||
repo_url: https://github.com/bluxmit/alnoda-workspaces
|
||||
site_url: https://docs.alnoda.org
|
||||
edit_uri: ""
|
||||
|
@ -23,26 +23,24 @@ edit_uri: ""
|
|||
|
||||
theme:
|
||||
name: 'material'
|
||||
favicon: 'assets/favicon.ico'
|
||||
logo: 'assets/Alnoda-logo.svg'
|
||||
favicon: 'assets/terraform-circle.svg'
|
||||
logo: 'assets/terraform-circle-white.svg'
|
||||
custom_dir: overrides
|
||||
font:
|
||||
text: PT Sans
|
||||
icon:
|
||||
repo: fontawesome/brands/git-alt
|
||||
repo: fontawesome/brands/github
|
||||
features:
|
||||
- navigation.instant
|
||||
palette:
|
||||
- scheme: default
|
||||
- scheme: terraform
|
||||
toggle:
|
||||
icon: material/toggle-switch-off-outline
|
||||
name: Switch to light mode
|
||||
primary: red
|
||||
accent: orange
|
||||
- scheme: slate
|
||||
toggle:
|
||||
icon: material/toggle-switch
|
||||
icon: material/brightness-7
|
||||
name: Switch to dark mode
|
||||
primary: red
|
||||
accent: orange
|
||||
- scheme: terraform-dark
|
||||
toggle:
|
||||
icon: material/brightness-4
|
||||
name: Switch to light mode
|
||||
|
||||
extra:
|
||||
# Link to open when your logo is clicked
|
||||
|
@ -50,21 +48,14 @@ extra:
|
|||
host_url: http://docs.alnoda.org
|
||||
|
||||
plugins:
|
||||
- search
|
||||
# Enable Macros and jinja2 templates
|
||||
- macros:
|
||||
module_name: macros/helpers
|
||||
|
||||
extra_css:
|
||||
- stylesheets/extra.css
|
||||
|
||||
extra_javascript:
|
||||
- javascripts/config.js
|
||||
- https://polyfill.io/v3/polyfill.min.js?features=es6
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 900 900" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="g10" transform="matrix(3, 0, 0, -3, 0, 900)" style="">
|
||||
<g id="g12" transform="scale(0.1)">
|
||||
<path d="M 1500 3000 C 671.57 3000 0 2328.43 0 1500 C 0 671.57 671.57 0 1500 0 C 2328.43 0 3000 671.57 3000 1500 C 3000 2328.43 2328.43 3000 1500 3000 Z M 2454.59 545.41 C 2199.61 290.422 1860.6 150 1500 150 C 1139.4 150 800.387 290.422 545.406 545.41 C 290.426 800.391 150 1139.4 150 1500 C 150 1860.6 290.426 2199.61 545.406 2454.59 C 800.387 2709.57 1139.4 2850 1500 2850 C 1860.6 2850 2199.61 2709.57 2454.59 2454.59 C 2709.57 2199.61 2850 1860.6 2850 1500 C 2850 1139.4 2709.57 800.391 2454.59 545.41" style="fill-opacity: 1; fill-rule: nonzero; stroke: none; fill: rgb(255, 255, 255);" id="path14"/>
|
||||
<title>Go icon</title>
|
||||
<title>Elixir icon</title>
|
||||
<title>R icon</title>
|
||||
<path d="M 1144.438 1481.645 L 575.631 1792.779 L 575.631 2415.172 L 1144.438 2104.037 L 1144.438 1481.645 Z M 1775.773 443.626 L 1206.966 754.761 L 1206.966 1377.153 L 1775.773 1066.018 L 1775.773 443.626 Z M 1206.966 2067.81 L 1775.773 1756.306 L 1775.773 1134.284 L 1206.966 1445.541 L 1206.966 2067.686 L 1206.966 2067.81 Z M 1838.302 1134.284 L 2407.108 1445.17 L 2407.108 2067.81 L 1838.302 1756.306 L 1838.302 1134.284 Z" style="fill: rgb(255, 255, 255);"/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 900 900" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="g10" transform="matrix(3, 0, 0, -3, 0, 900)" style="">
|
||||
<g id="g12" transform="scale(0.1)">
|
||||
<path d="M 1500 3000 C 671.57 3000 0 2328.43 0 1500 C 0 671.57 671.57 0 1500 0 C 2328.43 0 3000 671.57 3000 1500 C 3000 2328.43 2328.43 3000 1500 3000 Z M 2454.59 545.41 C 2199.61 290.422 1860.6 150 1500 150 C 1139.4 150 800.387 290.422 545.406 545.41 C 290.426 800.391 150 1139.4 150 1500 C 150 1860.6 290.426 2199.61 545.406 2454.59 C 800.387 2709.57 1139.4 2850 1500 2850 C 1860.6 2850 2199.61 2709.57 2454.59 2454.59 C 2709.57 2199.61 2850 1860.6 2850 1500 C 2850 1139.4 2709.57 800.391 2454.59 545.41" style="fill-opacity: 1; fill-rule: nonzero; stroke: none;" id="path14"/>
|
||||
<title>Go icon</title>
|
||||
<title>Elixir icon</title>
|
||||
<title>R icon</title>
|
||||
<path d="M 1144.438 1481.645 L 575.631 1792.779 L 575.631 2415.172 L 1144.438 2104.037 L 1144.438 1481.645 Z M 1775.773 443.626 L 1206.966 754.761 L 1206.966 1377.153 L 1775.773 1066.018 L 1775.773 443.626 Z M 1206.966 2067.81 L 1775.773 1756.306 L 1775.773 1134.284 L 1206.966 1445.541 L 1206.966 2067.686 L 1206.966 2067.81 Z M 1838.302 1134.284 L 2407.108 1445.17 L 2407.108 2067.81 L 1838.302 1756.306 L 1838.302 1134.284 Z" fill="#000" style=""/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
43
workspaces/base-devspace/Dockerfile
Executable file
|
@ -0,0 +1,43 @@
|
|||
ARG docker_registry=docker.io/alnoda
|
||||
ARG image_tag=20.04-3.0
|
||||
|
||||
FROM ${docker_registry}/ubuntu-workspace:${image_tag}
|
||||
|
||||
USER root
|
||||
|
||||
################################################################# TOOLS: cronicle, filebrowser, ungit, static server
|
||||
|
||||
COPY supervisord-devspace.conf /etc/supervisord/
|
||||
COPY filebrowser.json /opt/filebrowser/.filebrowser.json
|
||||
|
||||
COPY mkdocs /home/docs
|
||||
COPY mkdocs-requirements.txt /home/abc/installed-python-packages/mkdocs-requirements.txt
|
||||
|
||||
RUN apt-get -y update \
|
||||
&& echo "------------------------------------------------------ filebrowser" \
|
||||
&& cd /tmp && wget https://github.com/filebrowser/filebrowser/releases/download/v2.21.1/linux-amd64-filebrowser.tar.gz \
|
||||
&& mkdir /tmp/filebrowser \
|
||||
&& tar xvf /tmp/linux-amd64-filebrowser.tar.gz -C /tmp/filebrowser \
|
||||
&& chmod +x /tmp/filebrowser/filebrowser \
|
||||
&& mv /tmp/filebrowser/filebrowser /opt/filebrowser/ \
|
||||
&& rm -rf /tmp/filebrowser/filebrowser \
|
||||
&& echo "------------------------------------------------------ ungit" \
|
||||
&& apt-get install -y ssh net-tools --no-install-recommends \
|
||||
&& mkdir -p /opt/ungit \
|
||||
&& cd /opt/ungit && nodeenv --node=12.18.3 --npm=6.0.0 env \
|
||||
&& cd /opt/ungit && . env/bin/activate && npm install -g ungit@1.5.9 \
|
||||
&& echo "------------------------------------------------------ mkdocs" \
|
||||
&& pip install -r /home/abc/installed-python-packages/mkdocs-requirements.txt \
|
||||
&& echo "------------------------------------------------------ user" \
|
||||
&& chown -R abc /opt/filebrowser \
|
||||
&& chown -R abc /home/docs \
|
||||
&& chown -R abc /opt/ungit \
|
||||
&& mkdir -p /var/log/filebrowser && chown -R abc /var/log/filebrowser \
|
||||
&& mkdir -p /var/log/ungit && chown -R abc /var/log/ungit \
|
||||
&& mkdir -p /var/log/mkdocs && chown -R abc /var/log/mkdocs \
|
||||
&& chown -R abc /home/abc/utils \
|
||||
&& chown -R abc /home/abc/installed-python-packages \
|
||||
&& find /home -type d | xargs -I{} chown -R abc {} \
|
||||
&& find /home -type f | xargs -I{} chown abc {}
|
||||
|
||||
USER abc
|
33
workspaces/base-devspace/README.md
Normal file
|
@ -0,0 +1,33 @@
|
|||
# Base-devspace
|
||||
|
||||
Template for other coding workspaces.
|
||||
|
||||
## Start
|
||||
|
||||
```
|
||||
docker run --name space-1 --user=root -d -p 8020-8040:8020-8040 alnoda/base-devspace
|
||||
```
|
||||
|
||||
open [localhost:8020](http://localhost:8020) in browser.
|
||||
|
||||
## Features
|
||||
|
||||
- [**FileBrowser**](./features.md#filebrowser) - manage files and folders inside the workspace, and exchange data between local environment and the workspace
|
||||
- **Terminal** - Full-fledged browser-based terminal with Z-shell.
|
||||
- [**Static File Server**](./features.md#static-file-server) - view any static html sites as easy as if you do it on your local machine. Serve static websites easily.
|
||||
- [**Ungit**](./features.md#ungit) - rings user friendliness to git without sacrificing the versatility of it.
|
||||
- Quicklaunch UI with getting started tutorial
|
||||
- **Ubuntu 20.4** with the following CLI apps
|
||||
- [Zsh](https://www.zsh.org/), [Oh my Zsh](https://ohmyz.sh/)
|
||||
- Python 3, Pip
|
||||
- Node/nodeenv
|
||||
- curl, wget, telnet, jq
|
||||
- **Git:** git, git-flow, lazygit
|
||||
- **File browsers:** mc
|
||||
- **Text editors:** nano, vim, mcedit
|
||||
- **System monitors:** ncdu, htop, glances, vizex
|
||||
- **Process Control:** supervisord
|
||||
- **Job scheduler:** cron
|
||||
- **Terminal multiplexer:** tmux
|
||||
|
||||
|
16
workspaces/base-devspace/filebrowser.json
Executable file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"port": 8021,
|
||||
"baseURL": "",
|
||||
"address": "0.0.0.0",
|
||||
"log": "stdout",
|
||||
"database": "/opt/filebrowser/database.db",
|
||||
"root": "/home",
|
||||
"allowEdit": true,
|
||||
"allowNew": true,
|
||||
"allowCommands": true,
|
||||
"commands": ["apt", "ls", "cd", "rm", "cp", "mv", "cat", "echo", "tar", "zip", "unzip"],
|
||||
"noAuth": true,
|
||||
"auth": {
|
||||
"method": "noauth"
|
||||
}
|
||||
}
|
4
workspaces/base-devspace/mkdocs-requirements.txt
Normal file
|
@ -0,0 +1,4 @@
|
|||
mkdocs-material==8.2.14
|
||||
mkdocs-material-extensions==1.0.3
|
||||
mkdocs-macros-plugin==0.7.0
|
||||
mkdocs-multirepo-plugin==0.3.5
|
100
workspaces/base-devspace/mkdocs/docs/README.md
Normal file
|
@ -0,0 +1,100 @@
|
|||
<style>
|
||||
/* These styles apply only to this page! */
|
||||
.md-content__button {
|
||||
display: none;
|
||||
}
|
||||
.md-sidebar--secondary{
|
||||
display: none !important;
|
||||
}
|
||||
.md-typeset h1 {
|
||||
line-height: 0;
|
||||
margin: 0;
|
||||
margin-left: -9999px;
|
||||
}
|
||||
.quickstart-wrapper {
|
||||
min-width: 300px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
padding-left: -50px;
|
||||
column-gap: 50px;
|
||||
row-gap: 50px;
|
||||
}
|
||||
.quickstart-wrapper > div {
|
||||
flex: 300px;
|
||||
max-width: 300px;
|
||||
}
|
||||
.tool-img{
|
||||
box-shadow: rgba(0, 0, 0, 0.24) 0px 5px 5px;
|
||||
border-radius: 5px;
|
||||
min-width: 300px;
|
||||
max-width: 300px;
|
||||
max-height: 170px;
|
||||
min-height: 170px;
|
||||
}
|
||||
.tool-caption{
|
||||
font-family: inherit;
|
||||
text-align: center;
|
||||
margin-top: 10px;
|
||||
font-size: 1.2rem;
|
||||
font-weight: bold;
|
||||
|
||||
/* font-size: 1.25em;
|
||||
font-weight: 400; */
|
||||
letter-spacing: -.02em;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.tool-description{
|
||||
font-family: inherit;
|
||||
text-align: center;
|
||||
margin-top: 10px;
|
||||
font-size: 0.7rem;
|
||||
font-style: oblique;
|
||||
/* font-weight: bold; */
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
{%
|
||||
set tools = [
|
||||
{
|
||||
"env": "TERMINAL_URL",
|
||||
"name": "Terminal",
|
||||
"image": "assets/home/Terminal.png",
|
||||
"description": "Full-fledged WEB-based Command Line Interface"
|
||||
},
|
||||
{
|
||||
"env": "FILEBROWSER_URL",
|
||||
"name": "File Browser",
|
||||
"image": "assets/home/Filebrowser.png",
|
||||
"description": "Browse, upload and download files and folders to and from the Workspace"
|
||||
},
|
||||
{
|
||||
"env": "UNGIT_URL",
|
||||
"name": "Ungit",
|
||||
"image": "assets/home/Ungit.jpg",
|
||||
"description": "Manage Git repositories and work flow using beautiful UI"
|
||||
}
|
||||
]
|
||||
%}
|
||||
|
||||
|
||||
<div class="quickstart-wrapper">
|
||||
{% for tool in tools %}
|
||||
{% set tool_url = get_tool_url(tool.env) %}
|
||||
<div>
|
||||
<a href="{{ tool_url }}" target="_blank" rel="noopener noreferrer">
|
||||
<img src="{{ tool.image }}" class="tool-img"/>
|
||||
</a>
|
||||
<a href="{{ tool_url }}">
|
||||
<div class="tool-caption">{{ tool.name }}</div>
|
||||
</a>
|
||||
<div class="tool-description">{{ tool.description }}</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
1
workspaces/base-devspace/mkdocs/docs/about.md
Normal file
|
@ -0,0 +1 @@
|
|||
This workspace - is a template for other coding workspaces.
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 250 KiB After Width: | Height: | Size: 250 KiB |
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 124 KiB |
Before Width: | Height: | Size: 142 KiB After Width: | Height: | Size: 142 KiB |
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 108 KiB |
Before Width: | Height: | Size: 652 KiB After Width: | Height: | Size: 652 KiB |
Before Width: | Height: | Size: 169 KiB After Width: | Height: | Size: 169 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 155 KiB After Width: | Height: | Size: 155 KiB |
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 900 900" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="g10" transform="matrix(3, 0, 0, -3, 0.000095, 900)" style="">
|
||||
<g id="g12" transform="scale(0.1)">
|
||||
<path d="M 865.406,1290.7 H 2134.6 c 59.53,0.02 107.74,48.23 107.78,107.78 v 856.11 c -0.04,59.54 -48.25,107.75 -107.78,107.77 H 865.406 c -59.547,0 -107.765,-48.23 -107.773,-107.77 v -856.11 c 0.008,-59.55 48.246,-107.76 107.773,-107.78 z m 44.539,932.28 H 2090.06 v -792.9 H 909.945 Z M 2243.95,1224.92 c -7.1,21.62 -50.95,38.81 -98.06,38.81 H 854.117 c -47.109,0 -90.976,-17.19 -98.058,-38.81 L 594.824,734.219 c -10.738,-32.676 28.688,-96.582 88.266,-96.582 h 1633.82 c 59.59,0 99.02,63.906 88.26,96.582 z m -61.7,-277.342 h -84.36 l -12.18,45.957 h 82 z m -33.88,107.072 13.7,-43.3 H 2081 l -11.48,43.3 z m -68.91,-107.072 h -99.42 l -9.74,45.957 h 96.99 z m 48.74,170.822 14.53,-45.94 h -77.93 l -12.16,45.94 z m -65.64,-107.05 h -96.03 l -9.17,43.3 h 93.73 z m -100.72,-63.772 h -99.61 l -7.32,45.957 h 97.18 z m 72.37,170.822 12.16,-45.94 h -92.8 l -9.73,45.94 z m -85.89,-107.05 h -96.23 l -6.89,43.3 h 93.93 z m -22.69,107.05 9.73,-45.94 h -92.98 l -7.31,45.94 z m -81.45,-170.822 h -99.75 l -4.88,45.957 h 97.34 z m -10.14,63.772 h -96.37 l -4.6,43.3 h 94.09 z m -17.01,107.05 7.31,-45.94 h -93.14 l -4.87,45.94 z m -90.51,-170.822 h -99.86 l -2.44,45.957 h 97.43 z m -14.74,-204.961 h -423.55 l 33,115.84 h 357.55 z m 7.98,268.733 h -96.49 l -2.29,43.3 h 94.19 z m -11.34,107.05 4.86,-45.94 h -93.24 l -2.44,45.94 z m -199.51,0 h 90.86 l 2.43,-45.94 h -93.29 z m 0,-63.75 h 94.23 l 2.3,-43.3 h -96.53 z m 0,-61.115 h 97.48 l 2.42,-45.957 h -99.9 z M 1400.25,1118.4 h 90.86 v -45.94 h -93.3 z m -3.39,-63.75 h 94.25 l -0.01,-43.3 h -96.53 z m -3.23,-61.115 h 97.47 v -45.957 h -99.91 z M 1291.6,1118.4 h 90.81 l -2.44,-45.94 h -93.24 z m -6.76,-63.75 h 94.19 l -2.3,-43.3 h -96.48 z m 90.95,-61.115 -2.44,-45.957 h -99.85 l 4.86,45.957 z M 1182.98,1118.4 h 90.71 l -4.87,-45.94 h -93.14 z m -10.13,-63.75 h 94.08 l -4.59,-43.3 h -96.38 z m 87.6,-61.115 -4.87,-45.957 h -99.76 l 7.31,45.957 z M 1074.38,1118.4 h 90.56 l -7.3,-45.94 h -93 z m 80.42,-63.75 -6.88,-43.3 h -96.23 l 9.18,43.3 z m -9.71,-61.115 -7.31,-45.957 h -99.6 l 9.73,45.957 z M 965.813,1118.4 h 90.357 l -9.73,-45.94 h -92.803 z m 76.847,-63.75 -9.18,-43.3 h -96.039 l 11.481,43.3 z m -12.95,-61.115 -9.75,-45.957 h -99.413 l 12.18,45.957 z M 871.801,1118.4 h 75.578 l -12.176,-45.94 h -77.937 z m -20.164,-63.75 h 78.855 l -11.476,-43.3 H 837.93 Z m -19.34,-61.115 h 81.996 l -12.18,-45.957 H 817.758 Z M 2316.91,686.797 H 683.09 c -20.805,0 -35.766,19.394 -39.766,30.703 H 2356.68 c -3.98,-11.309 -18.95,-30.703 -39.77,-30.703 z M 1500,3000 C 671.57,3000 0,2328.43 0,1500 0,671.57 671.57,0 1500,0 c 828.43,0 1500,671.57 1500,1500 0,828.43 -671.57,1500 -1500,1500 z M 2454.59,545.41 C 2199.61,290.422 1860.6,150 1500,150 1139.4,150 800.387,290.422 545.406,545.41 290.426,800.391 150,1139.4 150,1500 c 0,360.6 140.426,699.61 395.406,954.59 C 800.387,2709.57 1139.4,2850 1500,2850 c 360.6,0 699.61,-140.43 954.59,-395.41 C 2709.57,2199.61 2850,1860.6 2850,1500 2850,1139.4 2709.57,800.391 2454.59,545.41" style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path14"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 900 900" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="g10" transform="matrix(3, 0, 0, -3, 0.000095, 900)" style="">
|
||||
<g id="g12" transform="scale(0.1)">
|
||||
<path d="M 865.406,1290.7 H 2134.6 c 59.53,0.02 107.74,48.23 107.78,107.78 v 856.11 c -0.04,59.54 -48.25,107.75 -107.78,107.77 H 865.406 c -59.547,0 -107.765,-48.23 -107.773,-107.77 v -856.11 c 0.008,-59.55 48.246,-107.76 107.773,-107.78 z m 44.539,932.28 H 2090.06 v -792.9 H 909.945 Z M 2243.95,1224.92 c -7.1,21.62 -50.95,38.81 -98.06,38.81 H 854.117 c -47.109,0 -90.976,-17.19 -98.058,-38.81 L 594.824,734.219 c -10.738,-32.676 28.688,-96.582 88.266,-96.582 h 1633.82 c 59.59,0 99.02,63.906 88.26,96.582 z m -61.7,-277.342 h -84.36 l -12.18,45.957 h 82 z m -33.88,107.072 13.7,-43.3 H 2081 l -11.48,43.3 z m -68.91,-107.072 h -99.42 l -9.74,45.957 h 96.99 z m 48.74,170.822 14.53,-45.94 h -77.93 l -12.16,45.94 z m -65.64,-107.05 h -96.03 l -9.17,43.3 h 93.73 z m -100.72,-63.772 h -99.61 l -7.32,45.957 h 97.18 z m 72.37,170.822 12.16,-45.94 h -92.8 l -9.73,45.94 z m -85.89,-107.05 h -96.23 l -6.89,43.3 h 93.93 z m -22.69,107.05 9.73,-45.94 h -92.98 l -7.31,45.94 z m -81.45,-170.822 h -99.75 l -4.88,45.957 h 97.34 z m -10.14,63.772 h -96.37 l -4.6,43.3 h 94.09 z m -17.01,107.05 7.31,-45.94 h -93.14 l -4.87,45.94 z m -90.51,-170.822 h -99.86 l -2.44,45.957 h 97.43 z m -14.74,-204.961 h -423.55 l 33,115.84 h 357.55 z m 7.98,268.733 h -96.49 l -2.29,43.3 h 94.19 z m -11.34,107.05 4.86,-45.94 h -93.24 l -2.44,45.94 z m -199.51,0 h 90.86 l 2.43,-45.94 h -93.29 z m 0,-63.75 h 94.23 l 2.3,-43.3 h -96.53 z m 0,-61.115 h 97.48 l 2.42,-45.957 h -99.9 z M 1400.25,1118.4 h 90.86 v -45.94 h -93.3 z m -3.39,-63.75 h 94.25 l -0.01,-43.3 h -96.53 z m -3.23,-61.115 h 97.47 v -45.957 h -99.91 z M 1291.6,1118.4 h 90.81 l -2.44,-45.94 h -93.24 z m -6.76,-63.75 h 94.19 l -2.3,-43.3 h -96.48 z m 90.95,-61.115 -2.44,-45.957 h -99.85 l 4.86,45.957 z M 1182.98,1118.4 h 90.71 l -4.87,-45.94 h -93.14 z m -10.13,-63.75 h 94.08 l -4.59,-43.3 h -96.38 z m 87.6,-61.115 -4.87,-45.957 h -99.76 l 7.31,45.957 z M 1074.38,1118.4 h 90.56 l -7.3,-45.94 h -93 z m 80.42,-63.75 -6.88,-43.3 h -96.23 l 9.18,43.3 z m -9.71,-61.115 -7.31,-45.957 h -99.6 l 9.73,45.957 z M 965.813,1118.4 h 90.357 l -9.73,-45.94 h -92.803 z m 76.847,-63.75 -9.18,-43.3 h -96.039 l 11.481,43.3 z m -12.95,-61.115 -9.75,-45.957 h -99.413 l 12.18,45.957 z M 871.801,1118.4 h 75.578 l -12.176,-45.94 h -77.937 z m -20.164,-63.75 h 78.855 l -11.476,-43.3 H 837.93 Z m -19.34,-61.115 h 81.996 l -12.18,-45.957 H 817.758 Z M 2316.91,686.797 H 683.09 c -20.805,0 -35.766,19.394 -39.766,30.703 H 2356.68 c -3.98,-11.309 -18.95,-30.703 -39.77,-30.703 z M 1500,3000 C 671.57,3000 0,2328.43 0,1500 0,671.57 671.57,0 1500,0 c 828.43,0 1500,671.57 1500,1500 0,828.43 -671.57,1500 -1500,1500 z M 2454.59,545.41 C 2199.61,290.422 1860.6,150 1500,150 1139.4,150 800.387,290.422 545.406,545.41 290.426,800.391 150,1139.4 150,1500 c 0,360.6 140.426,699.61 395.406,954.59 C 800.387,2709.57 1139.4,2850 1500,2850 c 360.6,0 699.61,-140.43 954.59,-395.41 C 2709.57,2199.61 2850,1860.6 2850,1500 2850,1139.4 2709.57,800.391 2454.59,545.41" style="fill-opacity: 1; fill-rule: nonzero; stroke: none; fill: rgb(255, 255, 255);" id="path14"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 800 800" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="g10" transform="matrix(2.666667, 0, 0, -2.666667, 0.000095, 800)" style="">
|
||||
<g id="g12" transform="scale(0.1)">
|
||||
<path d="M 865.406,1290.7 H 2134.6 c 59.53,0.02 107.74,48.23 107.78,107.78 v 856.11 c -0.04,59.54 -48.25,107.75 -107.78,107.77 H 865.406 c -59.547,0 -107.765,-48.23 -107.773,-107.77 v -856.11 c 0.008,-59.55 48.246,-107.76 107.773,-107.78 z m 44.539,932.28 H 2090.06 v -792.9 H 909.945 Z M 2243.95,1224.92 c -7.1,21.62 -50.95,38.81 -98.06,38.81 H 854.117 c -47.109,0 -90.976,-17.19 -98.058,-38.81 L 594.824,734.219 c -10.738,-32.676 28.688,-96.582 88.266,-96.582 h 1633.82 c 59.59,0 99.02,63.906 88.26,96.582 z m -61.7,-277.342 h -84.36 l -12.18,45.957 h 82 z m -33.88,107.072 13.7,-43.3 H 2081 l -11.48,43.3 z m -68.91,-107.072 h -99.42 l -9.74,45.957 h 96.99 z m 48.74,170.822 14.53,-45.94 h -77.93 l -12.16,45.94 z m -65.64,-107.05 h -96.03 l -9.17,43.3 h 93.73 z m -100.72,-63.772 h -99.61 l -7.32,45.957 h 97.18 z m 72.37,170.822 12.16,-45.94 h -92.8 l -9.73,45.94 z m -85.89,-107.05 h -96.23 l -6.89,43.3 h 93.93 z m -22.69,107.05 9.73,-45.94 h -92.98 l -7.31,45.94 z m -81.45,-170.822 h -99.75 l -4.88,45.957 h 97.34 z m -10.14,63.772 h -96.37 l -4.6,43.3 h 94.09 z m -17.01,107.05 7.31,-45.94 h -93.14 l -4.87,45.94 z m -90.51,-170.822 h -99.86 l -2.44,45.957 h 97.43 z m -14.74,-204.961 h -423.55 l 33,115.84 h 357.55 z m 7.98,268.733 h -96.49 l -2.29,43.3 h 94.19 z m -11.34,107.05 4.86,-45.94 h -93.24 l -2.44,45.94 z m -199.51,0 h 90.86 l 2.43,-45.94 h -93.29 z m 0,-63.75 h 94.23 l 2.3,-43.3 h -96.53 z m 0,-61.115 h 97.48 l 2.42,-45.957 h -99.9 z M 1400.25,1118.4 h 90.86 v -45.94 h -93.3 z m -3.39,-63.75 h 94.25 l -0.01,-43.3 h -96.53 z m -3.23,-61.115 h 97.47 v -45.957 h -99.91 z M 1291.6,1118.4 h 90.81 l -2.44,-45.94 h -93.24 z m -6.76,-63.75 h 94.19 l -2.3,-43.3 h -96.48 z m 90.95,-61.115 -2.44,-45.957 h -99.85 l 4.86,45.957 z M 1182.98,1118.4 h 90.71 l -4.87,-45.94 h -93.14 z m -10.13,-63.75 h 94.08 l -4.59,-43.3 h -96.38 z m 87.6,-61.115 -4.87,-45.957 h -99.76 l 7.31,45.957 z M 1074.38,1118.4 h 90.56 l -7.3,-45.94 h -93 z m 80.42,-63.75 -6.88,-43.3 h -96.23 l 9.18,43.3 z m -9.71,-61.115 -7.31,-45.957 h -99.6 l 9.73,45.957 z M 965.813,1118.4 h 90.357 l -9.73,-45.94 h -92.803 z m 76.847,-63.75 -9.18,-43.3 h -96.039 l 11.481,43.3 z m -12.95,-61.115 -9.75,-45.957 h -99.413 l 12.18,45.957 z M 871.801,1118.4 h 75.578 l -12.176,-45.94 h -77.937 z m -20.164,-63.75 h 78.855 l -11.476,-43.3 H 837.93 Z m -19.34,-61.115 h 81.996 l -12.18,-45.957 H 817.758 Z M 2316.91,686.797 H 683.09 c -20.805,0 -35.766,19.394 -39.766,30.703 H 2356.68 c -3.98,-11.309 -18.95,-30.703 -39.77,-30.703 z M 1500,3000 C 671.57,3000 0,2328.43 0,1500 0,671.57 671.57,0 1500,0 c 828.43,0 1500,671.57 1500,1500 0,828.43 -671.57,1500 -1500,1500 z M 2454.59,545.41 C 2199.61,290.422 1860.6,150 1500,150 1139.4,150 800.387,290.422 545.406,545.41 290.426,800.391 150,1139.4 150,1500 c 0,360.6 140.426,699.61 395.406,954.59 C 800.387,2709.57 1139.4,2850 1500,2850 c 360.6,0 699.61,-140.43 954.59,-395.41 C 2709.57,2199.61 2850,1860.6 2850,1500 2850,1139.4 2709.57,800.391 2454.59,545.41" style="fill-opacity: 1; fill-rule: nonzero; stroke: none; fill: rgb(255, 255, 255);" id="path14"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.3 KiB |
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 800 800" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="g10" transform="matrix(2.666667, 0, 0, -2.666667, 0.000095, 800)" style="">
|
||||
<g id="g12" transform="scale(0.1)">
|
||||
<path d="M 865.406,1290.7 H 2134.6 c 59.53,0.02 107.74,48.23 107.78,107.78 v 856.11 c -0.04,59.54 -48.25,107.75 -107.78,107.77 H 865.406 c -59.547,0 -107.765,-48.23 -107.773,-107.77 v -856.11 c 0.008,-59.55 48.246,-107.76 107.773,-107.78 z m 44.539,932.28 H 2090.06 v -792.9 H 909.945 Z M 2243.95,1224.92 c -7.1,21.62 -50.95,38.81 -98.06,38.81 H 854.117 c -47.109,0 -90.976,-17.19 -98.058,-38.81 L 594.824,734.219 c -10.738,-32.676 28.688,-96.582 88.266,-96.582 h 1633.82 c 59.59,0 99.02,63.906 88.26,96.582 z m -61.7,-277.342 h -84.36 l -12.18,45.957 h 82 z m -33.88,107.072 13.7,-43.3 H 2081 l -11.48,43.3 z m -68.91,-107.072 h -99.42 l -9.74,45.957 h 96.99 z m 48.74,170.822 14.53,-45.94 h -77.93 l -12.16,45.94 z m -65.64,-107.05 h -96.03 l -9.17,43.3 h 93.73 z m -100.72,-63.772 h -99.61 l -7.32,45.957 h 97.18 z m 72.37,170.822 12.16,-45.94 h -92.8 l -9.73,45.94 z m -85.89,-107.05 h -96.23 l -6.89,43.3 h 93.93 z m -22.69,107.05 9.73,-45.94 h -92.98 l -7.31,45.94 z m -81.45,-170.822 h -99.75 l -4.88,45.957 h 97.34 z m -10.14,63.772 h -96.37 l -4.6,43.3 h 94.09 z m -17.01,107.05 7.31,-45.94 h -93.14 l -4.87,45.94 z m -90.51,-170.822 h -99.86 l -2.44,45.957 h 97.43 z m -14.74,-204.961 h -423.55 l 33,115.84 h 357.55 z m 7.98,268.733 h -96.49 l -2.29,43.3 h 94.19 z m -11.34,107.05 4.86,-45.94 h -93.24 l -2.44,45.94 z m -199.51,0 h 90.86 l 2.43,-45.94 h -93.29 z m 0,-63.75 h 94.23 l 2.3,-43.3 h -96.53 z m 0,-61.115 h 97.48 l 2.42,-45.957 h -99.9 z M 1400.25,1118.4 h 90.86 v -45.94 h -93.3 z m -3.39,-63.75 h 94.25 l -0.01,-43.3 h -96.53 z m -3.23,-61.115 h 97.47 v -45.957 h -99.91 z M 1291.6,1118.4 h 90.81 l -2.44,-45.94 h -93.24 z m -6.76,-63.75 h 94.19 l -2.3,-43.3 h -96.48 z m 90.95,-61.115 -2.44,-45.957 h -99.85 l 4.86,45.957 z M 1182.98,1118.4 h 90.71 l -4.87,-45.94 h -93.14 z m -10.13,-63.75 h 94.08 l -4.59,-43.3 h -96.38 z m 87.6,-61.115 -4.87,-45.957 h -99.76 l 7.31,45.957 z M 1074.38,1118.4 h 90.56 l -7.3,-45.94 h -93 z m 80.42,-63.75 -6.88,-43.3 h -96.23 l 9.18,43.3 z m -9.71,-61.115 -7.31,-45.957 h -99.6 l 9.73,45.957 z M 965.813,1118.4 h 90.357 l -9.73,-45.94 h -92.803 z m 76.847,-63.75 -9.18,-43.3 h -96.039 l 11.481,43.3 z m -12.95,-61.115 -9.75,-45.957 h -99.413 l 12.18,45.957 z M 871.801,1118.4 h 75.578 l -12.176,-45.94 h -77.937 z m -20.164,-63.75 h 78.855 l -11.476,-43.3 H 837.93 Z m -19.34,-61.115 h 81.996 l -12.18,-45.957 H 817.758 Z M 2316.91,686.797 H 683.09 c -20.805,0 -35.766,19.394 -39.766,30.703 H 2356.68 c -3.98,-11.309 -18.95,-30.703 -39.77,-30.703 z M 1500,3000 C 671.57,3000 0,2328.43 0,1500 0,671.57 671.57,0 1500,0 c 828.43,0 1500,671.57 1500,1500 0,828.43 -671.57,1500 -1500,1500 z M 2454.59,545.41 C 2199.61,290.422 1860.6,150 1500,150 1139.4,150 800.387,290.422 545.406,545.41 290.426,800.391 150,1139.4 150,1500 c 0,360.6 140.426,699.61 395.406,954.59 C 800.387,2709.57 1139.4,2850 1500,2850 c 360.6,0 699.61,-140.43 954.59,-395.41 C 2709.57,2199.61 2850,1860.6 2850,1500 2850,1139.4 2709.57,800.391 2454.59,545.41" style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path14"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
100
workspaces/base-devspace/mkdocs/docs/pages/my-apps.md
Normal file
|
@ -0,0 +1,100 @@
|
|||
<style>
|
||||
/* These styles apply only to this page! */
|
||||
.md-content__button {
|
||||
display: none;
|
||||
}
|
||||
.md-sidebar--secondary{
|
||||
display: none !important;
|
||||
}
|
||||
.md-typeset h1 {
|
||||
line-height: 0;
|
||||
margin: 0;
|
||||
margin-left: -9999px;
|
||||
}
|
||||
.quickstart-wrapper {
|
||||
min-width: 300px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
padding-left: -50px;
|
||||
column-gap: 50px;
|
||||
row-gap: 50px;
|
||||
}
|
||||
.quickstart-wrapper > div {
|
||||
flex: 300px;
|
||||
max-width: 300px;
|
||||
}
|
||||
.tool-img{
|
||||
box-shadow: rgba(0, 0, 0, 0.24) 0px 5px 5px;
|
||||
border-radius: 5px;
|
||||
min-width: 300px;
|
||||
max-width: 300px;
|
||||
max-height: 170px;
|
||||
min-height: 170px;
|
||||
}
|
||||
.tool-caption{
|
||||
font-family: Roboto, Helvetica, sans-serif;
|
||||
text-align: center;
|
||||
margin-top: 10px;
|
||||
font-size: 1.2rem;
|
||||
font-weight: bold;
|
||||
|
||||
/* font-size: 1.25em;
|
||||
font-weight: 400; */
|
||||
letter-spacing: -.02em;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.tool-description{
|
||||
font-family: Helvetica, sans-serif;
|
||||
text-align: center;
|
||||
margin-top: 10px;
|
||||
font-size: 0.7rem;
|
||||
font-style: oblique;
|
||||
/* font-weight: bold; */
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
{%
|
||||
set tools = [
|
||||
{
|
||||
"env": "PORT_8038",
|
||||
"name": "Port 8038",
|
||||
"image": "port-8038.png",
|
||||
"description": "My app running on port 8038"
|
||||
},
|
||||
{
|
||||
"env": "PORT_8039",
|
||||
"name": "Port 8039",
|
||||
"image": "port-8039.png",
|
||||
"description": "My app running on port 8039"
|
||||
},
|
||||
{
|
||||
"env": "PORT_8040",
|
||||
"name": "Port 8040",
|
||||
"image": "port-8040.png",
|
||||
"description": "My app running on port 8040"
|
||||
}
|
||||
]
|
||||
%}
|
||||
|
||||
|
||||
<div class="quickstart-wrapper">
|
||||
{% for tool in tools %}
|
||||
{% set tool_url = get_tool_url(tool.env) %}
|
||||
<div>
|
||||
<a href="{{ tool_url }}" target="_blank" rel="noopener noreferrer">
|
||||
<img src="{{ tool.image }}" class="tool-img"/>
|
||||
</a>
|
||||
<a href="{{ tool_url }}">
|
||||
<div class="tool-caption">{{ tool.name }}</div>
|
||||
</a>
|
||||
<div class="tool-description">{{ tool.description }}</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
BIN
workspaces/base-devspace/mkdocs/docs/pages/my-apps/port-8038.png
Normal file
After Width: | Height: | Size: 288 KiB |
BIN
workspaces/base-devspace/mkdocs/docs/pages/my-apps/port-8039.png
Normal file
After Width: | Height: | Size: 264 KiB |
BIN
workspaces/base-devspace/mkdocs/docs/pages/my-apps/port-8040.png
Normal file
After Width: | Height: | Size: 208 KiB |
19
workspaces/base-devspace/mkdocs/docs/stylesheets/extra.css
Normal file
|
@ -0,0 +1,19 @@
|
|||
[data-md-color-scheme="devspace"] {
|
||||
--md-primary-fg-color: #90030C;
|
||||
--md-primary-fg-color--light: #90030C;
|
||||
--md-primary-fg-color--dark: #90030C;
|
||||
--md-accent-fg-color: #f0980c;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="devspace-dark"] {
|
||||
--md-primary-fg-color: #e31220;
|
||||
--md-primary-fg-color--light: #e31220;
|
||||
--md-primary-fg-color--dark: #e31220;
|
||||
--md-accent-fg-color: #f0980c;
|
||||
|
||||
--md-default-bg-color: #2E303E;
|
||||
--md-default-fg-color--light: #E9EBFC;
|
||||
--md-typeset-color: #E9EBFC;
|
||||
--md-typeset-a-color: #E9EBFC;
|
||||
}
|
||||
|
57
workspaces/base-devspace/mkdocs/macros/helpers.py
Normal file
|
@ -0,0 +1,57 @@
|
|||
"""
|
||||
Basic example of a Mkdocs-macros module.
|
||||
Include this {{ macros_info() }} in any page to get complete macro info
|
||||
"""
|
||||
import os
|
||||
|
||||
port_increments = {
|
||||
"DOCS_URL": 0,
|
||||
"FILEBROWSER_URL": 1,
|
||||
"UNGIT_URL": 4,
|
||||
"TERMINAL_URL": 6,
|
||||
"PORT_8038": 18,
|
||||
"PORT_8039": 19,
|
||||
"PORT_8040": 20
|
||||
}
|
||||
|
||||
|
||||
|
||||
# this function name should not be changed
|
||||
def define_env(env):
|
||||
"""
|
||||
This is the hook for defining variables, macros and filters
|
||||
- variables: the dictionary that contains the environment variables
|
||||
- macro: a decorator function, to declare a macro.
|
||||
- filter: a function with one of more arguments,
|
||||
used to perform a transformation
|
||||
"""
|
||||
@env.macro
|
||||
def get_tool_url(env):
|
||||
try:
|
||||
return os.environ[env]
|
||||
except:
|
||||
# Get host
|
||||
host = "localhost"
|
||||
try:
|
||||
host = os.environ["WRK_HOST"]
|
||||
except:
|
||||
pass
|
||||
proto = "http"
|
||||
try:
|
||||
proto = os.environ["WRK_PROTO"]
|
||||
except:
|
||||
pass
|
||||
# Entry port - port relative to which other ports will be calculated
|
||||
entry_port = 8020
|
||||
try:
|
||||
entry_port = int(os.environ["ENTRY_PORT"])
|
||||
except:
|
||||
pass
|
||||
# Assign port
|
||||
try:
|
||||
port = port_increments[env] + entry_port
|
||||
except:
|
||||
port = 80
|
||||
return f"{proto}://{host}:{port}"
|
||||
|
||||
|
|
@ -5,14 +5,15 @@
|
|||
nav:
|
||||
- Home: README.md
|
||||
- My apps: pages/my-apps.md
|
||||
- Docs: https://docs.alnoda.org/aws-workspace/
|
||||
- About: about.md
|
||||
- Docs: https://docs.alnoda.org/base-devspace/
|
||||
|
||||
|
||||
# ===========================================================
|
||||
# CONFIGURATION
|
||||
# ===========================================================
|
||||
|
||||
site_name: AWS workspace
|
||||
site_name: Workspace
|
||||
repo_url: https://github.com/bluxmit/alnoda-workspaces
|
||||
site_url: https://docs.alnoda.org
|
||||
edit_uri: ""
|
||||
|
@ -23,26 +24,22 @@ edit_uri: ""
|
|||
|
||||
theme:
|
||||
name: 'material'
|
||||
favicon: 'assets/favicon.ico'
|
||||
logo: 'assets/Alnoda-logo.svg'
|
||||
favicon: 'assets/laptop-circle-l.svg'
|
||||
logo: 'assets/laptop-circle-white-l.svg'
|
||||
custom_dir: overrides
|
||||
icon:
|
||||
repo: fontawesome/brands/git-alt
|
||||
repo: fontawesome/brands/github
|
||||
features:
|
||||
- navigation.instant
|
||||
palette:
|
||||
- scheme: default
|
||||
- scheme: devspace
|
||||
toggle:
|
||||
icon: material/toggle-switch-off-outline
|
||||
name: Switch to light mode
|
||||
primary: orange
|
||||
accent: deep orange
|
||||
- scheme: slate
|
||||
toggle:
|
||||
icon: material/toggle-switch
|
||||
icon: material/brightness-7
|
||||
name: Switch to dark mode
|
||||
primary: orange
|
||||
accent: deep orange
|
||||
- scheme: devspace-dark
|
||||
toggle:
|
||||
icon: material/brightness-4
|
||||
name: Switch to light mode
|
||||
|
||||
extra:
|
||||
# Link to open when your logo is clicked
|
||||
|
@ -50,11 +47,12 @@ extra:
|
|||
host_url: http://docs.alnoda.org
|
||||
|
||||
plugins:
|
||||
- search
|
||||
# Enable Macros and jinja2 templates
|
||||
- macros:
|
||||
module_name: macros/helpers
|
||||
|
||||
extra_css:
|
||||
- stylesheets/extra.css
|
||||
|
||||
extra_javascript:
|
||||
- javascripts/config.js
|
25
workspaces/base-devspace/supervisord-devspace.conf
Executable file
|
@ -0,0 +1,25 @@
|
|||
[program:mkdocs]
|
||||
directory=/home/docs
|
||||
command=/bin/sh -c " mkdocs serve -a 0.0.0.0:8020 "
|
||||
stderr_logfile = /var/log/mkdocs/mkdocs-stderr.log
|
||||
stdout_logfile = /var/log/mkdocs/mkdocs-stdout.log
|
||||
logfile_maxbytes = 1024
|
||||
|
||||
[program:filebrowser]
|
||||
directory=/opt/filebrowser
|
||||
command=/bin/sh -c " /opt/filebrowser/filebrowser "
|
||||
stderr_logfile = /var/log/filebrowser/filebrowser-stderr.log
|
||||
stdout_logfile = /var/log/filebrowser/filebrowser-stdout.log
|
||||
logfile_maxbytes = 1024
|
||||
|
||||
[program:ungit]
|
||||
directory=/opt/ungit
|
||||
command=/bin/sh -c " cd /opt/ungit; . env/bin/activate; ungit --port=8024 --ungitBindIp=0.0.0.0 --launchBrowser=false --autoFetch=false --bugtracking=false --authentication=false "
|
||||
stderr_logfile = /var/log/ungit/ungit-stderr.log
|
||||
stdout_logfile = /var/log/ungit/ungit-stdout.log
|
||||
logfile_maxbytes = 1024
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -37,7 +37,7 @@ RUN apt-get -y update \
|
|||
&& cd /opt/ungit && . env/bin/activate && npm install -g ungit@1.5.9 \
|
||||
&& echo "------------------------------------------------------ static file server" \
|
||||
&& mkdir -p /opt/serve \
|
||||
&& cd /opt/serve && nodeenv --node=12.18.3 --npm=6.0.0 env \
|
||||
&& cd /opt/serve && nodeenv --node=16.14.1 --npm=6.0.0 env \
|
||||
&& cd /opt/serve && . env/bin/activate && npm install -g serve \
|
||||
&& echo "------------------------------------------------------ mkdocs" \
|
||||
&& pip install -r /home/abc/installed-python-packages/mkdocs-requirements.txt \
|
||||
|
@ -55,6 +55,8 @@ RUN apt-get -y update \
|
|||
&& mkdir -p /var/log/static-file-server && chown -R abc /var/log/static-file-server \
|
||||
&& mkdir -p /var/log/mkdocs && chown -R abc /var/log/mkdocs \
|
||||
&& chown -R abc /home/abc/utils \
|
||||
&& chown -R abc /home/abc/installed-python-packages
|
||||
&& chown -R abc /home/abc/installed-python-packages \
|
||||
&& find /home -type d | xargs -I{} chown -R abc {} \
|
||||
&& find /home -type f | xargs -I{} chown abc {}
|
||||
|
||||
USER abc
|
|
@ -3,8 +3,7 @@
|
|||
</p>
|
||||
|
||||
# Base-workspace
|
||||
Containerized Linux environment for running jobs on schedule with browser-based scheduler, terminal and file manager.
|
||||
You can host on your favourite Rasberry Pi.
|
||||
Containerized environment for running jobs on schedule with browser-based scheduler, terminal and file manager.
|
||||
|
||||
## Start
|
||||
|
||||
|
@ -29,12 +28,13 @@ open [localhost:8020](http://localhost:8020) in browser.
|
|||
- Python 3, Pip
|
||||
- Node/nodeenv
|
||||
- curl, wget, telnet, jq
|
||||
- **Git:** git, git-flow, lazygit
|
||||
- **File browsers:** mc, xplr
|
||||
- **Git:** git, git-flow
|
||||
- **File browsers:** mc
|
||||
- **Text editors:** nano, vim, mcedit
|
||||
- **System monitors:** ncdu, htop, glances, vizex
|
||||
- **Process Control:** supervisord
|
||||
- **Job scheduler:** cron
|
||||
- **Terminal multiplexer:** tmux
|
||||
|
||||
## Why this image
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
min-height: 170px;
|
||||
}
|
||||
.tool-caption{
|
||||
font-family: Roboto, Helvetica, sans-serif;
|
||||
font-family: inherit;
|
||||
text-align: center;
|
||||
margin-top: 10px;
|
||||
font-size: 1.2rem;
|
||||
|
@ -45,7 +45,7 @@
|
|||
line-height: 1.5;
|
||||
}
|
||||
.tool-description{
|
||||
font-family: Helvetica, sans-serif;
|
||||
font-family: inherit;
|
||||
text-align: center;
|
||||
margin-top: 10px;
|
||||
font-size: 0.7rem;
|
||||
|
@ -69,12 +69,6 @@
|
|||
"image": "assets/home/Filebrowser.png",
|
||||
"description": "Browse, upload and download files and folders to and from the Workspace"
|
||||
},
|
||||
{
|
||||
"env": "CRONICLE_URL",
|
||||
"name": "Cronicle",
|
||||
"image": "assets/home/Cronicle.jpg",
|
||||
"description": "Schedule jobs, manage schedules, observe and monitor executions (user/pass - admin/admin)"
|
||||
},
|
||||
{
|
||||
"env": "UNGIT_URL",
|
||||
"name": "Ungit",
|
||||
|
@ -87,6 +81,12 @@
|
|||
"image": "assets/home/Static-server.png",
|
||||
"description": "Serve any static websites like a breeze"
|
||||
},
|
||||
{
|
||||
"env": "CRONICLE_URL",
|
||||
"name": "Cronicle",
|
||||
"image": "assets/home/Cronicle.jpg",
|
||||
"description": "Schedule jobs, manage schedules, observe and monitor executions (user/pass - admin/admin)"
|
||||
},
|
||||
{
|
||||
"env": "MC_URL",
|
||||
"name": "M.Commander",
|
||||
|
|
1
workspaces/base-workspace/mkdocs/docs/about.md
Normal file
|
@ -0,0 +1 @@
|
|||
Containerized environment for running jobs on schedule with browser-based scheduler, terminal and file manager.
|
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 285 KiB |
Before Width: | Height: | Size: 169 KiB After Width: | Height: | Size: 51 KiB |
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 900 900" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="g10" transform="matrix(3, 0, 0, -3, 0.000095, 900)" style="">
|
||||
<g id="g12" transform="scale(0.1)">
|
||||
<path d="M 865.406,1290.7 H 2134.6 c 59.53,0.02 107.74,48.23 107.78,107.78 v 856.11 c -0.04,59.54 -48.25,107.75 -107.78,107.77 H 865.406 c -59.547,0 -107.765,-48.23 -107.773,-107.77 v -856.11 c 0.008,-59.55 48.246,-107.76 107.773,-107.78 z m 44.539,932.28 H 2090.06 v -792.9 H 909.945 Z M 2243.95,1224.92 c -7.1,21.62 -50.95,38.81 -98.06,38.81 H 854.117 c -47.109,0 -90.976,-17.19 -98.058,-38.81 L 594.824,734.219 c -10.738,-32.676 28.688,-96.582 88.266,-96.582 h 1633.82 c 59.59,0 99.02,63.906 88.26,96.582 z m -61.7,-277.342 h -84.36 l -12.18,45.957 h 82 z m -33.88,107.072 13.7,-43.3 H 2081 l -11.48,43.3 z m -68.91,-107.072 h -99.42 l -9.74,45.957 h 96.99 z m 48.74,170.822 14.53,-45.94 h -77.93 l -12.16,45.94 z m -65.64,-107.05 h -96.03 l -9.17,43.3 h 93.73 z m -100.72,-63.772 h -99.61 l -7.32,45.957 h 97.18 z m 72.37,170.822 12.16,-45.94 h -92.8 l -9.73,45.94 z m -85.89,-107.05 h -96.23 l -6.89,43.3 h 93.93 z m -22.69,107.05 9.73,-45.94 h -92.98 l -7.31,45.94 z m -81.45,-170.822 h -99.75 l -4.88,45.957 h 97.34 z m -10.14,63.772 h -96.37 l -4.6,43.3 h 94.09 z m -17.01,107.05 7.31,-45.94 h -93.14 l -4.87,45.94 z m -90.51,-170.822 h -99.86 l -2.44,45.957 h 97.43 z m -14.74,-204.961 h -423.55 l 33,115.84 h 357.55 z m 7.98,268.733 h -96.49 l -2.29,43.3 h 94.19 z m -11.34,107.05 4.86,-45.94 h -93.24 l -2.44,45.94 z m -199.51,0 h 90.86 l 2.43,-45.94 h -93.29 z m 0,-63.75 h 94.23 l 2.3,-43.3 h -96.53 z m 0,-61.115 h 97.48 l 2.42,-45.957 h -99.9 z M 1400.25,1118.4 h 90.86 v -45.94 h -93.3 z m -3.39,-63.75 h 94.25 l -0.01,-43.3 h -96.53 z m -3.23,-61.115 h 97.47 v -45.957 h -99.91 z M 1291.6,1118.4 h 90.81 l -2.44,-45.94 h -93.24 z m -6.76,-63.75 h 94.19 l -2.3,-43.3 h -96.48 z m 90.95,-61.115 -2.44,-45.957 h -99.85 l 4.86,45.957 z M 1182.98,1118.4 h 90.71 l -4.87,-45.94 h -93.14 z m -10.13,-63.75 h 94.08 l -4.59,-43.3 h -96.38 z m 87.6,-61.115 -4.87,-45.957 h -99.76 l 7.31,45.957 z M 1074.38,1118.4 h 90.56 l -7.3,-45.94 h -93 z m 80.42,-63.75 -6.88,-43.3 h -96.23 l 9.18,43.3 z m -9.71,-61.115 -7.31,-45.957 h -99.6 l 9.73,45.957 z M 965.813,1118.4 h 90.357 l -9.73,-45.94 h -92.803 z m 76.847,-63.75 -9.18,-43.3 h -96.039 l 11.481,43.3 z m -12.95,-61.115 -9.75,-45.957 h -99.413 l 12.18,45.957 z M 871.801,1118.4 h 75.578 l -12.176,-45.94 h -77.937 z m -20.164,-63.75 h 78.855 l -11.476,-43.3 H 837.93 Z m -19.34,-61.115 h 81.996 l -12.18,-45.957 H 817.758 Z M 2316.91,686.797 H 683.09 c -20.805,0 -35.766,19.394 -39.766,30.703 H 2356.68 c -3.98,-11.309 -18.95,-30.703 -39.77,-30.703 z M 1500,3000 C 671.57,3000 0,2328.43 0,1500 0,671.57 671.57,0 1500,0 c 828.43,0 1500,671.57 1500,1500 0,828.43 -671.57,1500 -1500,1500 z M 2454.59,545.41 C 2199.61,290.422 1860.6,150 1500,150 1139.4,150 800.387,290.422 545.406,545.41 290.426,800.391 150,1139.4 150,1500 c 0,360.6 140.426,699.61 395.406,954.59 C 800.387,2709.57 1139.4,2850 1500,2850 c 360.6,0 699.61,-140.43 954.59,-395.41 C 2709.57,2199.61 2850,1860.6 2850,1500 2850,1139.4 2709.57,800.391 2454.59,545.41" style="fill-opacity: 1; fill-rule: nonzero; stroke: none; fill: rgb(255, 255, 255);" id="path14"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 900 900" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="g10" transform="matrix(3, 0, 0, -3, 0.000095, 900)" style="">
|
||||
<g id="g12" transform="scale(0.1)">
|
||||
<path d="M 865.406,1290.7 H 2134.6 c 59.53,0.02 107.74,48.23 107.78,107.78 v 856.11 c -0.04,59.54 -48.25,107.75 -107.78,107.77 H 865.406 c -59.547,0 -107.765,-48.23 -107.773,-107.77 v -856.11 c 0.008,-59.55 48.246,-107.76 107.773,-107.78 z m 44.539,932.28 H 2090.06 v -792.9 H 909.945 Z M 2243.95,1224.92 c -7.1,21.62 -50.95,38.81 -98.06,38.81 H 854.117 c -47.109,0 -90.976,-17.19 -98.058,-38.81 L 594.824,734.219 c -10.738,-32.676 28.688,-96.582 88.266,-96.582 h 1633.82 c 59.59,0 99.02,63.906 88.26,96.582 z m -61.7,-277.342 h -84.36 l -12.18,45.957 h 82 z m -33.88,107.072 13.7,-43.3 H 2081 l -11.48,43.3 z m -68.91,-107.072 h -99.42 l -9.74,45.957 h 96.99 z m 48.74,170.822 14.53,-45.94 h -77.93 l -12.16,45.94 z m -65.64,-107.05 h -96.03 l -9.17,43.3 h 93.73 z m -100.72,-63.772 h -99.61 l -7.32,45.957 h 97.18 z m 72.37,170.822 12.16,-45.94 h -92.8 l -9.73,45.94 z m -85.89,-107.05 h -96.23 l -6.89,43.3 h 93.93 z m -22.69,107.05 9.73,-45.94 h -92.98 l -7.31,45.94 z m -81.45,-170.822 h -99.75 l -4.88,45.957 h 97.34 z m -10.14,63.772 h -96.37 l -4.6,43.3 h 94.09 z m -17.01,107.05 7.31,-45.94 h -93.14 l -4.87,45.94 z m -90.51,-170.822 h -99.86 l -2.44,45.957 h 97.43 z m -14.74,-204.961 h -423.55 l 33,115.84 h 357.55 z m 7.98,268.733 h -96.49 l -2.29,43.3 h 94.19 z m -11.34,107.05 4.86,-45.94 h -93.24 l -2.44,45.94 z m -199.51,0 h 90.86 l 2.43,-45.94 h -93.29 z m 0,-63.75 h 94.23 l 2.3,-43.3 h -96.53 z m 0,-61.115 h 97.48 l 2.42,-45.957 h -99.9 z M 1400.25,1118.4 h 90.86 v -45.94 h -93.3 z m -3.39,-63.75 h 94.25 l -0.01,-43.3 h -96.53 z m -3.23,-61.115 h 97.47 v -45.957 h -99.91 z M 1291.6,1118.4 h 90.81 l -2.44,-45.94 h -93.24 z m -6.76,-63.75 h 94.19 l -2.3,-43.3 h -96.48 z m 90.95,-61.115 -2.44,-45.957 h -99.85 l 4.86,45.957 z M 1182.98,1118.4 h 90.71 l -4.87,-45.94 h -93.14 z m -10.13,-63.75 h 94.08 l -4.59,-43.3 h -96.38 z m 87.6,-61.115 -4.87,-45.957 h -99.76 l 7.31,45.957 z M 1074.38,1118.4 h 90.56 l -7.3,-45.94 h -93 z m 80.42,-63.75 -6.88,-43.3 h -96.23 l 9.18,43.3 z m -9.71,-61.115 -7.31,-45.957 h -99.6 l 9.73,45.957 z M 965.813,1118.4 h 90.357 l -9.73,-45.94 h -92.803 z m 76.847,-63.75 -9.18,-43.3 h -96.039 l 11.481,43.3 z m -12.95,-61.115 -9.75,-45.957 h -99.413 l 12.18,45.957 z M 871.801,1118.4 h 75.578 l -12.176,-45.94 h -77.937 z m -20.164,-63.75 h 78.855 l -11.476,-43.3 H 837.93 Z m -19.34,-61.115 h 81.996 l -12.18,-45.957 H 817.758 Z M 2316.91,686.797 H 683.09 c -20.805,0 -35.766,19.394 -39.766,30.703 H 2356.68 c -3.98,-11.309 -18.95,-30.703 -39.77,-30.703 z M 1500,3000 C 671.57,3000 0,2328.43 0,1500 0,671.57 671.57,0 1500,0 c 828.43,0 1500,671.57 1500,1500 0,828.43 -671.57,1500 -1500,1500 z M 2454.59,545.41 C 2199.61,290.422 1860.6,150 1500,150 1139.4,150 800.387,290.422 545.406,545.41 290.426,800.391 150,1139.4 150,1500 c 0,360.6 140.426,699.61 395.406,954.59 C 800.387,2709.57 1139.4,2850 1500,2850 c 360.6,0 699.61,-140.43 954.59,-395.41 C 2709.57,2199.61 2850,1860.6 2850,1500 2850,1139.4 2709.57,800.391 2454.59,545.41" style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path14"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
21
workspaces/base-workspace/mkdocs/docs/stylesheets/extra.css
Normal file
|
@ -0,0 +1,21 @@
|
|||
[data-md-color-scheme="workspace"] {
|
||||
--md-primary-fg-color: #2A2D2E;
|
||||
--md-primary-fg-color--light: #2A2D2E;
|
||||
--md-primary-fg-color--dark: #2A2D2E;
|
||||
--md-accent-fg-color: #E77260;
|
||||
|
||||
--md-default-bg-color: #E9EAE6;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="workspace-dark"] {
|
||||
--md-primary-fg-color: #3C3C3C;
|
||||
--md-primary-fg-color--light: #3C3C3C;
|
||||
--md-primary-fg-color--dark: #3C3C3C;
|
||||
--md-accent-fg-color: #E77260;
|
||||
|
||||
--md-default-bg-color: #1E1E1E;
|
||||
--md-default-fg-color--light: #9CDCFE;
|
||||
--md-typeset-color: #9CDCFE;
|
||||
--md-typeset-a-color: #9CDCFE;
|
||||
}
|
||||
|
|
@ -5,9 +5,9 @@
|
|||
nav:
|
||||
- Home: README.md
|
||||
- My apps: pages/my-apps.md
|
||||
- About: about.md
|
||||
- Docs: https://docs.alnoda.org/base-workspace/
|
||||
|
||||
|
||||
# ===========================================================
|
||||
# CONFIGURATION
|
||||
# ===========================================================
|
||||
|
@ -23,26 +23,22 @@ edit_uri: ""
|
|||
|
||||
theme:
|
||||
name: 'material'
|
||||
favicon: 'assets/favicon.ico'
|
||||
logo: 'assets/Alnoda-logo.svg'
|
||||
favicon: 'assets/laptop-circle.svg'
|
||||
logo: 'assets/laptop-circle-white.svg'
|
||||
custom_dir: overrides
|
||||
icon:
|
||||
repo: fontawesome/brands/git-alt
|
||||
repo: fontawesome/brands/github
|
||||
features:
|
||||
- navigation.instant
|
||||
palette:
|
||||
- scheme: default
|
||||
- scheme: workspace
|
||||
toggle:
|
||||
icon: material/toggle-switch-off-outline
|
||||
name: Switch to light mode
|
||||
primary: brown
|
||||
accent: deep orange
|
||||
- scheme: slate
|
||||
toggle:
|
||||
icon: material/toggle-switch
|
||||
icon: material/brightness-7
|
||||
name: Switch to dark mode
|
||||
primary: orange
|
||||
accent: red
|
||||
- scheme: workspace-dark
|
||||
toggle:
|
||||
icon: material/brightness-4
|
||||
name: Switch to light mode
|
||||
|
||||
extra:
|
||||
# Link to open when your logo is clicked
|
||||
|
@ -50,21 +46,14 @@ extra:
|
|||
host_url: http://docs.alnoda.org
|
||||
|
||||
plugins:
|
||||
- search
|
||||
# Enable Macros and jinja2 templates
|
||||
- macros:
|
||||
module_name: macros/helpers
|
||||
|
||||
extra_css:
|
||||
- stylesheets/extra.css
|
||||
|
||||
extra_javascript:
|
||||
- javascripts/config.js
|
||||
- https://polyfill.io/v3/polyfill.min.js?features=es6
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,26 +1,23 @@
|
|||
ARG docker_registry=docker.io/alnoda
|
||||
ARG image_tag=2.2
|
||||
ARG image_tag=3.0
|
||||
|
||||
FROM ${docker_registry}/base-workspace:${image_tag}
|
||||
FROM ${docker_registry}/base-devspace:${image_tag}
|
||||
|
||||
USER root
|
||||
|
||||
COPY supervisord-codeserver.conf /etc/supervisord/
|
||||
|
||||
COPY ./mkdocs/mkdocs.yml /home/docs/mkdocs.yml
|
||||
COPY ./mkdocs/helpers.py /home/docs/macros
|
||||
COPY ./mkdocs/IDE.jpg /home/docs/docs/assets/home/
|
||||
COPY ./mkdocs/README.md /home/docs/docs/README.md
|
||||
COPY ./mkdocs/ /home/docs/
|
||||
|
||||
RUN echo "------------------------------------------------------ code-server" \
|
||||
&& apt-get install -y build-essential pkg-config \
|
||||
&& mkdir -p -m 777 /opt/codeserver \
|
||||
&& mkdir -p /opt/codeserver \
|
||||
&& cd /opt/codeserver && nodeenv --node=16.15.0 --npm=1.0.10 env \
|
||||
&& cd /opt/codeserver && . env/bin/activate && npm install -g yarn && yarn global add code-server@4.4.0 \
|
||||
&& mkdir -p -m 777 /home/project \
|
||||
&& mkdir -p -m 777 /opt/codeserver/data \
|
||||
&& mkdir -p -m 777 mkdir /opt/vscode/extensions \
|
||||
&& mkdir -p -m 777 /var/log/codeserver \
|
||||
&& mkdir -p /home/project \
|
||||
&& mkdir /opt/codeserver/data \
|
||||
&& mkdir -p mkdir /opt/vscode/extensions \
|
||||
&& mkdir -p /var/log/codeserver \
|
||||
&& echo "------------------------------------------------------ utils" \
|
||||
&& rm -rf /home/abc/utils || true \
|
||||
&& git clone https://github.com/bluxmit/alnoda-workspaces /tmp/alnoda-workspaces \
|
||||
|
@ -29,6 +26,7 @@ RUN echo "------------------------------------------------------ code-server" \
|
|||
&& echo "------------------------------------------------------ user" \
|
||||
&& chown -R abc /home/project \
|
||||
&& chown -R abc /opt/codeserver \
|
||||
&& chown -R abc /var/log/codeserver \
|
||||
&& chown -R abc /opt/vscode \
|
||||
&& chown -R abc /home/docs \
|
||||
&& chown -R abc /home/abc/utils \
|
||||
|
|
|
@ -1,14 +1,7 @@
|
|||
<p align="center">
|
||||
<img src="../../img/Alnoda-white.svg" alt="Alnoda logo" width="150">
|
||||
</p>
|
||||
|
||||
# Code-server workspace
|
||||
General-purpose dockerized development environment. Fully isolated inside a docker container.
|
||||
Includes code editor, terminal, scheduler and filebrowser.
|
||||
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/codeserver-workspace/img/codeserver-collage-sm.jpg" alt="Collage" width="750">
|
||||
</p>
|
||||
General-purpose containerized isolated development environment.
|
||||
Includes code editor, terminal, filebrowser and git manager.
|
||||
|
||||
## Why this images
|
||||
|
||||
|
@ -25,28 +18,23 @@ and open [localhost:8020](http://localhost:8020) in browser.
|
|||
|
||||
## Features
|
||||
|
||||
- Workspace own UI. Launch all workspace tools from one place. Customize to your yown needs, include docs.
|
||||
- [**Code-server**](https://github.com/cdr/code-server) - open source version of popular Visual Studio Code IDE. Codeserver has
|
||||
VS-Code extensions and works in browser.
|
||||
- [**Terminal**](https://github.com/tsl0922/ttyd) - secure browser-based terminal.
|
||||
- [**FileBrowser**](https://github.com/filebrowser/filebrowser) - manage files and folders inside the workspace, and exchange data between local environment and the workspace
|
||||
- [**Cronicle**](https://github.com/jhuckaby/Cronicle) - task scheduler and runner, with a web based front-end UI. It handles both scheduled, repeating and on-demand jobs, targeting any number of worker servers, with real-time stats and live log viewer.
|
||||
- [**Static File Server**](https://github.com/vercel/serve) - view any static html sites as easy as if you do it on your local machine. Serve static websites easily.
|
||||
- [**Ungit**](https://github.com/FredrikNoren/ungit) - rings user friendliness to git without sacrificing the versatility of it.
|
||||
- [**MkDocs**](https://squidfunk.github.io/mkdocs-material/) - create awesome documentation for your project with only markdown.
|
||||
- [**Midnight Commander**](https://midnight-commander.org/) - Feature rich visual file manager with internal text viewer and editor.
|
||||
- [**Process Monitor**](https://htop.dev/) - Monitor running process and resource utilization.
|
||||
- **Ubuntu 20.4** with the following CLI apps
|
||||
- [Zsh](https://www.zsh.org/), [Oh my Zsh](https://ohmyz.sh/)
|
||||
- Python 3, Pip
|
||||
- Node/nodeenv
|
||||
- curl, wget, telnet, jq
|
||||
- **Git:** git, git-flow, lazygit
|
||||
- **File browsers:** mc, xplr
|
||||
- **File browsers:** mc
|
||||
- **Text editors:** nano, vim, mcedit
|
||||
- **System monitors:** ncdu, htop, glances, vizex
|
||||
- **Process Control:** supervisord
|
||||
- **Job scheduler:** cron
|
||||
- **Terminal multiplexer:** tmux
|
||||
|
||||
## Docs
|
||||
|
||||
|
@ -55,12 +43,3 @@ See our guides
|
|||
- [**project docs**](https://docs.alnoda.org/)
|
||||
- [**getting started**](https://docs.alnoda.org/get-started/common-features/)
|
||||
|
||||
## Demo
|
||||
|
||||
<div align="center" style="font-style: italic;">
|
||||
Demo: Code-server workspace
|
||||
</div>
|
||||
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/codeserver-workspace/img/codeserver-wid-demo.gif" alt="WID demo" width="900">
|
||||
</p>
|
68
workspaces/codeserver-workspace/mkdocs/.gitignore
vendored
Normal file
|
@ -0,0 +1,68 @@
|
|||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
env/
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*,cover
|
||||
.hypothesis/
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# PyBuilder
|
||||
target/
|
||||
|
||||
# IPython Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# pyenv
|
||||
.python-version
|
||||
|
||||
# virtualenv
|
||||
venv/
|
||||
ENV/
|
||||
|
||||
# MkDocs documentation
|
||||
site/
|
|
@ -33,7 +33,7 @@
|
|||
min-height: 170px;
|
||||
}
|
||||
.tool-caption{
|
||||
font-family: Roboto, Helvetica, sans-serif;
|
||||
font-family: inherit;
|
||||
text-align: center;
|
||||
margin-top: 10px;
|
||||
font-size: 1.2rem;
|
||||
|
@ -45,7 +45,7 @@
|
|||
line-height: 1.5;
|
||||
}
|
||||
.tool-description{
|
||||
font-family: Helvetica, sans-serif;
|
||||
font-family: inherit;
|
||||
text-align: center;
|
||||
margin-top: 10px;
|
||||
font-size: 0.7rem;
|
||||
|
@ -75,35 +75,11 @@
|
|||
"image": "assets/home/Filebrowser.png",
|
||||
"description": "Browse, upload and download files and folders to and from the Workspace"
|
||||
},
|
||||
{
|
||||
"env": "CRONICLE_URL",
|
||||
"name": "Cronicle",
|
||||
"image": "assets/home/Cronicle.jpg",
|
||||
"description": "Schedule jobs, manage schedules, observe and monitor executions (user/pass - admin/admin)"
|
||||
},
|
||||
{
|
||||
"env": "UNGIT_URL",
|
||||
"name": "Ungit",
|
||||
"image": "assets/home/Ungit.jpg",
|
||||
"description": "Manage Git repositories and work flow using beautiful UI"
|
||||
},
|
||||
{
|
||||
"env": "STATICFS_URL",
|
||||
"name": "Static File Server",
|
||||
"image": "assets/home/Static-server.png",
|
||||
"description": "Serve any static websites like a breeze"
|
||||
},
|
||||
{
|
||||
"env": "MC_URL",
|
||||
"name": "M.Commander",
|
||||
"image": "assets/home/MC.jpg",
|
||||
"description": "Feature rich visual file manager with internal text viewer and editor"
|
||||
},
|
||||
{
|
||||
"env": "HTOP_URL",
|
||||
"name": "Resource monitor",
|
||||
"image": "assets/home/Htop.jpg",
|
||||
"description": "Monitor running process and resource utilization"
|
||||
}
|
||||
]
|
||||
%}
|
2
workspaces/codeserver-workspace/mkdocs/docs/about.md
Normal file
|
@ -0,0 +1,2 @@
|
|||
General-purpose containerized isolated development environment.
|
||||
Includes code editor, terminal, filebrowser and git manager.
|
|
@ -0,0 +1,70 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1280" height="1024" viewBox="0 0 10000 9600" xml:space="preserve">
|
||||
<desc>Created with Fabric.js 3.6.3</desc>
|
||||
<defs>
|
||||
</defs>
|
||||
<g transform="matrix(2,0,0,2,640,512)" id="background-logo" >
|
||||
</g>
|
||||
<g transform="matrix(2,0,0,2,640,416.3)" id="logo-logo" >
|
||||
<g transform="matrix(18.9,0,0,24.4,-502.2,-1009.3)" style="" paint-order="stroke" >
|
||||
<g transform="matrix(0.2,0,0,-0.2,0,-61.6)" >
|
||||
<path style="fill: rgb(64, 50, 44); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-1625,-1745)" d="M 3062 1050.1 c -466.3 107.3 -950.8 107.3 -1417.1 0 c -16.2 -3.7 -26.6 -18.2 -23.3 -32.1 c 3.4 -13.9 19 -22.1 34.9 -18.4 c 458.6 105.5 935.2 105.5 1393.9 0 c 15.9 -3.7 31.5 4.5 34.9 18.4 c 3.4 13.9 -7 28.4 -23.3 32.1" stroke-linecap="round" />
|
||||
</g>
|
||||
<g transform="matrix(0.2,0,0,-0.2,-95.7,12.6)" >
|
||||
<path style="fill: rgb(64, 50, 44); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-1210,-1423.3)" d="M 1847.7 878.7 c 0 52.1 44.1 94.1 97 90.6 c 48.2 -3.2 84.6 -45.5 84.6 -93.8 V 490.5 c 0 -14.3 11.6 -25.9 25.9 -25.9 c 14.3 0 25.9 11.6 25.9 25.9 v 384 c 0 76.7 -58.8 142.8 -135.5 146.6 c -81.9 4 -149.8 -61.4 -149.8 -142.5 V 490.5 c 0 -14.3 11.6 -25.9 25.9 -25.9 c 14.3 0 25.9 11.6 25.9 25.9 v 388.2" stroke-linecap="round" />
|
||||
</g>
|
||||
<g transform="matrix(0.2,0,0,-0.2,-111.1,21.9)" >
|
||||
<path style="fill: rgb(81, 173, 229); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-1143.2,-1383.2)" d="M 1861.3 912.4 v -419.2 c 0 -5.8 4.7 -10.4 10.4 -10.4 c 5.7 0 10.4 4.7 10.4 10.4 v 419.2 c 0 5.8 -4.6 10.4 -10.4 10.4 c -5.7 0 -10.4 -4.7 -10.4 -10.4" stroke-linecap="round" />
|
||||
</g>
|
||||
<g transform="matrix(0.2,0,0,-0.2,-103.4,18.6)" >
|
||||
<path style="fill: rgb(81, 173, 229); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-1176.6,-1397.2)" d="M 1894.7 940.4 v -447.2 c 0 -5.8 4.7 -10.5 10.4 -10.5 c 5.7 0 10.4 4.7 10.4 10.5 v 447.2 c 0 5.8 -4.6 10.4 -10.4 10.4 c -5.7 0 -10.4 -4.7 -10.4 -10.4" stroke-linecap="round" />
|
||||
</g>
|
||||
<g transform="matrix(0.2,0,0,-0.2,-95.7,17.5)" >
|
||||
<path style="fill: rgb(81, 173, 229); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-1210,-1401.8)" d="M 1928.1 949.5 v -456.1 c 0 -5.9 4.6 -10.6 10.4 -10.6 c 5.7 0 10.4 4.8 10.4 10.6 v 456.1 c 0 5.9 -4.6 10.7 -10.4 10.7 c -5.7 0 -10.4 -4.8 -10.4 -10.7" stroke-linecap="round" />
|
||||
</g>
|
||||
<g transform="matrix(0.2,0,0,-0.2,-88,18.6)" >
|
||||
<path style="fill: rgb(81, 173, 229); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-1243.4,-1397.2)" d="M 1961.5 939.8 v -445.9 c 0 -6.1 4.6 -11.1 10.4 -11.1 c 5.7 0 10.4 5 10.4 11.1 v 445.9 c 0 6.1 -4.7 11.1 -10.4 11.1 c -5.7 0 -10.4 -5 -10.4 -11.1" stroke-linecap="round" />
|
||||
</g>
|
||||
<g transform="matrix(0.2,0,0,-0.2,-80.3,21.9)" >
|
||||
<path style="fill: rgb(81, 173, 229); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-1276.8,-1383.2)" d="M 1994.9 912.4 v -419.2 c 0 -5.8 4.6 -10.4 10.4 -10.4 c 5.7 0 10.4 4.7 10.4 10.4 v 419.2 c 0 5.8 -4.7 10.4 -10.4 10.4 c -5.7 0 -10.4 -4.7 -10.4 -10.4" stroke-linecap="round" />
|
||||
</g>
|
||||
<g transform="matrix(0.2,0,0,-0.2,0,12.6)" >
|
||||
<path style="fill: rgb(64, 50, 44); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-1625,-1423.3)" d="M 2262.7 878.7 c 0 52.1 44.1 94.1 97 90.6 c 48.2 -3.2 84.6 -45.5 84.6 -93.8 V 490.5 c 0 -14.3 11.6 -25.9 25.9 -25.9 c 14.3 0 25.9 11.6 25.9 25.9 v 384 c 0 76.7 -58.8 142.8 -135.5 146.6 c -81.9 4 -149.8 -61.4 -149.8 -142.5 V 490.5 c 0 -14.3 11.6 -25.9 25.9 -25.9 c 14.3 0 25.9 11.6 25.9 25.9 v 388.2" stroke-linecap="round" />
|
||||
</g>
|
||||
<g transform="matrix(0.2,0,0,-0.2,-15.4,21.9)" >
|
||||
<path style="fill: rgb(191, 27, 44); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-1558.2,-1383.2)" d="M 2276.3 912.4 v -419.2 c 0 -5.8 4.7 -10.4 10.4 -10.4 c 5.7 0 10.4 4.7 10.4 10.4 v 419.2 c 0 5.8 -4.6 10.4 -10.4 10.4 c -5.7 0 -10.4 -4.7 -10.4 -10.4" stroke-linecap="round" />
|
||||
</g>
|
||||
<g transform="matrix(0.2,0,0,-0.2,-7.7,18.6)" >
|
||||
<path style="fill: rgb(191, 27, 44); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-1591.6,-1397.2)" d="M 2309.7 940.4 v -447.2 c 0 -5.8 4.7 -10.5 10.4 -10.5 c 5.7 0 10.4 4.7 10.4 10.5 v 447.2 c 0 5.8 -4.6 10.4 -10.4 10.4 c -5.7 0 -10.4 -4.7 -10.4 -10.4" stroke-linecap="round" />
|
||||
</g>
|
||||
<g transform="matrix(0.2,0,0,-0.2,0,17.5)" >
|
||||
<path style="fill: rgb(191, 27, 44); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-1625,-1401.8)" d="M 2343.1 949.5 v -456.1 c 0 -5.9 4.6 -10.6 10.4 -10.6 c 5.7 0 10.4 4.8 10.4 10.6 v 456.1 c 0 5.9 -4.6 10.7 -10.4 10.7 c -5.7 0 -10.4 -4.8 -10.4 -10.7" stroke-linecap="round" />
|
||||
</g>
|
||||
<g transform="matrix(0.2,0,0,-0.2,7.7,18.6)" >
|
||||
<path style="fill: rgb(191, 27, 44); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-1658.4,-1397.2)" d="M 2376.5 939.8 v -445.9 c 0 -6.1 4.6 -11.1 10.4 -11.1 c 5.7 0 10.4 5 10.4 11.1 v 445.9 c 0 6.1 -4.7 11.1 -10.4 11.1 c -5.7 0 -10.4 -5 -10.4 -11.1" stroke-linecap="round" />
|
||||
</g>
|
||||
<g transform="matrix(0.2,0,0,-0.2,15.4,21.9)" >
|
||||
<path style="fill: rgb(191, 27, 44); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-1691.8,-1383.2)" d="M 2409.9 912.4 v -419.2 c 0 -5.8 4.6 -10.4 10.4 -10.4 c 5.7 0 10.4 4.7 10.4 10.4 v 419.2 c 0 5.8 -4.7 10.4 -10.4 10.4 c -5.7 0 -10.4 -4.7 -10.4 -10.4" stroke-linecap="round" />
|
||||
</g>
|
||||
<g transform="matrix(0.2,0,0,-0.2,95.7,12.6)" >
|
||||
<path style="fill: rgb(64, 50, 44); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-2040,-1423.3)" d="M 2677.7 878.7 c 0 52.1 44.1 94.1 97 90.6 c 48.2 -3.2 84.6 -45.5 84.6 -93.8 V 490.5 c 0 -14.3 11.6 -25.9 25.9 -25.9 c 14.3 0 25.9 11.6 25.9 25.9 v 384 c 0 76.7 -58.8 142.8 -135.5 146.6 c -81.9 4 -149.8 -61.4 -149.8 -142.5 V 490.5 c 0 -14.3 11.6 -25.9 25.9 -25.9 c 14.3 0 25.9 11.6 25.9 25.9 v 388.2" stroke-linecap="round" />
|
||||
</g>
|
||||
<g transform="matrix(0.2,0,0,-0.2,80.3,21.9)" >
|
||||
<path style="fill: rgb(128, 204, 40); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-1973.2,-1383.2)" d="M 2691.3 912.4 v -419.2 c 0 -5.8 4.7 -10.4 10.4 -10.4 c 5.7 0 10.4 4.7 10.4 10.4 v 419.2 c 0 5.8 -4.6 10.4 -10.4 10.4 c -5.7 0 -10.4 -4.7 -10.4 -10.4" stroke-linecap="round" />
|
||||
</g>
|
||||
<g transform="matrix(0.2,0,0,-0.2,88,18.6)" >
|
||||
<path style="fill: rgb(128, 204, 40); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-2006.6,-1397.2)" d="M 2724.7 940.4 v -447.2 c 0 -5.8 4.7 -10.5 10.4 -10.5 c 5.7 0 10.4 4.7 10.4 10.5 v 447.2 c 0 5.8 -4.6 10.4 -10.4 10.4 c -5.7 0 -10.4 -4.7 -10.4 -10.4" stroke-linecap="round" />
|
||||
</g>
|
||||
<g transform="matrix(0.2,0,0,-0.2,95.7,17.5)" >
|
||||
<path style="fill: rgb(128, 204, 40); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-2040,-1401.8)" d="M 2758.1 949.5 v -456.1 c 0 -5.9 4.6 -10.6 10.4 -10.6 c 5.7 0 10.4 4.8 10.4 10.6 v 456.1 c 0 5.9 -4.6 10.7 -10.4 10.7 c -5.7 0 -10.4 -4.8 -10.4 -10.7" stroke-linecap="round" />
|
||||
</g>
|
||||
<g transform="matrix(0.2,0,0,-0.2,103.4,18.6)" >
|
||||
<path style="fill: rgb(128, 204, 40); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-2073.4,-1397.2)" d="M 2791.5 939.8 v -445.9 c 0 -6.1 4.6 -11.1 10.4 -11.1 c 5.7 0 10.4 5 10.4 11.1 v 445.9 c 0 6.1 -4.7 11.1 -10.4 11.1 c -5.7 0 -10.4 -5 -10.4 -11.1" stroke-linecap="round" />
|
||||
</g>
|
||||
<g transform="matrix(0.2,0,0,-0.2,111.1,21.9)" >
|
||||
<path style="fill: rgb(128, 204, 40); fill-rule: nonzero; stroke: none; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: miter; stroke-dasharray: none; stroke-dashoffset: 0; stroke-miterlimit: 4; opacity: 1" paint-order="stroke" transform="translate(-2106.8,-1383.2)" d="M 2824.8 912.4 v -419.2 c 0 -5.8 4.6 -10.4 10.4 -10.4 c 5.7 0 10.4 4.7 10.4 10.4 v 419.2 c 0 5.8 -4.7 10.4 -10.4 10.4 c -5.7 0 -10.4 -4.7 -10.4 -10.4" stroke-linecap="round" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 11 KiB |
BIN
workspaces/codeserver-workspace/mkdocs/docs/assets/favicon.ico
Normal file
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 250 KiB |
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 124 KiB |
BIN
workspaces/codeserver-workspace/mkdocs/docs/assets/home/Htop.jpg
Normal file
After Width: | Height: | Size: 142 KiB |
Before Width: | Height: | Size: 306 KiB After Width: | Height: | Size: 306 KiB |
BIN
workspaces/codeserver-workspace/mkdocs/docs/assets/home/MC.jpg
Normal file
After Width: | Height: | Size: 108 KiB |
Before Width: | Height: | Size: 652 KiB After Width: | Height: | Size: 652 KiB |
Before Width: | Height: | Size: 169 KiB After Width: | Height: | Size: 169 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 155 KiB |
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 900 900" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="g10" transform="matrix(3, 0, 0, -3, 0.000095, 900)" style="">
|
||||
<g id="g12" transform="scale(0.1)">
|
||||
<path d="M 1500 3000 C 671.57 3000 0 2328.43 0 1500 C 0 671.57 671.57 0 1500 0 C 2328.43 0 3000 671.57 3000 1500 C 3000 2328.43 2328.43 3000 1500 3000 Z M 2454.59 545.41 C 2199.61 290.422 1860.6 150 1500 150 C 1139.4 150 800.387 290.422 545.406 545.41 C 290.426 800.391 150 1139.4 150 1500 C 150 1860.6 290.426 2199.61 545.406 2454.59 C 800.387 2709.57 1139.4 2850 1500 2850 C 1860.6 2850 2199.61 2709.57 2454.59 2454.59 C 2709.57 2199.61 2850 1860.6 2850 1500 C 2850 1139.4 2709.57 800.391 2454.59 545.41" style="fill-opacity: 1; fill-rule: nonzero; stroke: none; fill: rgb(255, 255, 255);" id="path14"/>
|
||||
</g>
|
||||
</g>
|
||||
<path d="M 577.733 100 L 413.29 283.961 L 300.781 409.808 L 138.716 263.28 L 100 287.767 L 100 617.463 L 134.754 644.256 L 303.122 491.866 L 577.733 800 L 700 740.967 L 700 161.752 L 577.733 100 Z M 153.123 539.593 L 153.123 359.989 L 228.031 450.002 L 153.123 539.593 Z M 554.503 577.9 L 400.001 450.002 L 554.503 321.68 L 554.503 577.9 Z" style="fill: rgb(255, 255, 255);"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 900 900" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="g10" transform="matrix(3, 0, 0, -3, 0.000095, 900)" style="">
|
||||
<g id="g12" transform="scale(0.1)">
|
||||
<path d="M 1500 3000 C 671.57 3000 0 2328.43 0 1500 C 0 671.57 671.57 0 1500 0 C 2328.43 0 3000 671.57 3000 1500 C 3000 2328.43 2328.43 3000 1500 3000 Z M 2454.59 545.41 C 2199.61 290.422 1860.6 150 1500 150 C 1139.4 150 800.387 290.422 545.406 545.41 C 290.426 800.391 150 1139.4 150 1500 C 150 1860.6 290.426 2199.61 545.406 2454.59 C 800.387 2709.57 1139.4 2850 1500 2850 C 1860.6 2850 2199.61 2709.57 2454.59 2454.59 C 2709.57 2199.61 2850 1860.6 2850 1500 C 2850 1139.4 2709.57 800.391 2454.59 545.41" style="fill-opacity: 1; fill-rule: nonzero; stroke: none;" id="path14"/>
|
||||
</g>
|
||||
</g>
|
||||
<path d="M 577.733 100 L 413.29 283.961 L 300.781 409.808 L 138.716 263.28 L 100 287.767 L 100 617.463 L 134.754 644.256 L 303.122 491.866 L 577.733 800 L 700 740.967 L 700 161.752 L 577.733 100 Z M 153.123 539.593 L 153.123 359.989 L 228.031 450.002 L 153.123 539.593 Z M 554.503 577.9 L 400.001 450.002 L 554.503 321.68 L 554.503 577.9 Z" style=""/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
|
@ -0,0 +1,16 @@
|
|||
window.MathJax = {
|
||||
tex: {
|
||||
inlineMath: [["\\(", "\\)"]],
|
||||
displayMath: [["\\[", "\\]"]],
|
||||
processEscapes: true,
|
||||
processEnvironments: true
|
||||
},
|
||||
options: {
|
||||
ignoreHtmlClass: ".*|",
|
||||
processHtmlClass: "arithmatex"
|
||||
}
|
||||
};
|
||||
|
||||
document$.subscribe(() => {
|
||||
MathJax.typesetPromise()
|
||||
})
|
100
workspaces/codeserver-workspace/mkdocs/docs/pages/my-apps.md
Normal file
|
@ -0,0 +1,100 @@
|
|||
<style>
|
||||
/* These styles apply only to this page! */
|
||||
.md-content__button {
|
||||
display: none;
|
||||
}
|
||||
.md-sidebar--secondary{
|
||||
display: none !important;
|
||||
}
|
||||
.md-typeset h1 {
|
||||
line-height: 0;
|
||||
margin: 0;
|
||||
margin-left: -9999px;
|
||||
}
|
||||
.quickstart-wrapper {
|
||||
min-width: 300px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
padding-left: -50px;
|
||||
column-gap: 50px;
|
||||
row-gap: 50px;
|
||||
}
|
||||
.quickstart-wrapper > div {
|
||||
flex: 300px;
|
||||
max-width: 300px;
|
||||
}
|
||||
.tool-img{
|
||||
box-shadow: rgba(0, 0, 0, 0.24) 0px 5px 5px;
|
||||
border-radius: 5px;
|
||||
min-width: 300px;
|
||||
max-width: 300px;
|
||||
max-height: 170px;
|
||||
min-height: 170px;
|
||||
}
|
||||
.tool-caption{
|
||||
font-family: Roboto, Helvetica, sans-serif;
|
||||
text-align: center;
|
||||
margin-top: 10px;
|
||||
font-size: 1.2rem;
|
||||
font-weight: bold;
|
||||
|
||||
/* font-size: 1.25em;
|
||||
font-weight: 400; */
|
||||
letter-spacing: -.02em;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.tool-description{
|
||||
font-family: Helvetica, sans-serif;
|
||||
text-align: center;
|
||||
margin-top: 10px;
|
||||
font-size: 0.7rem;
|
||||
font-style: oblique;
|
||||
/* font-weight: bold; */
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
{%
|
||||
set tools = [
|
||||
{
|
||||
"env": "PORT_8038",
|
||||
"name": "Port 8038",
|
||||
"image": "port-8038.png",
|
||||
"description": "My app running on port 8038"
|
||||
},
|
||||
{
|
||||
"env": "PORT_8039",
|
||||
"name": "Port 8039",
|
||||
"image": "port-8039.png",
|
||||
"description": "My app running on port 8039"
|
||||
},
|
||||
{
|
||||
"env": "PORT_8040",
|
||||
"name": "Port 8040",
|
||||
"image": "port-8040.png",
|
||||
"description": "My app running on port 8040"
|
||||
}
|
||||
]
|
||||
%}
|
||||
|
||||
|
||||
<div class="quickstart-wrapper">
|
||||
{% for tool in tools %}
|
||||
{% set tool_url = get_tool_url(tool.env) %}
|
||||
<div>
|
||||
<a href="{{ tool_url }}" target="_blank" rel="noopener noreferrer">
|
||||
<img src="{{ tool.image }}" class="tool-img"/>
|
||||
</a>
|
||||
<a href="{{ tool_url }}">
|
||||
<div class="tool-caption">{{ tool.name }}</div>
|
||||
</a>
|
||||
<div class="tool-description">{{ tool.description }}</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 288 KiB |
After Width: | Height: | Size: 264 KiB |
After Width: | Height: | Size: 208 KiB |
|
@ -0,0 +1,19 @@
|
|||
[data-md-color-scheme="codeserver"] {
|
||||
--md-primary-fg-color: #271647;
|
||||
--md-primary-fg-color--light: #271647;
|
||||
--md-primary-fg-color--dark: #271647;
|
||||
--md-accent-fg-color: #44DA88;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="codeserver-dark"] {
|
||||
--md-primary-fg-color: #2b3ac4;
|
||||
--md-primary-fg-color--light: #2b3ac4;
|
||||
--md-primary-fg-color--dark: #2b3ac4;
|
||||
--md-accent-fg-color: #44DA88;
|
||||
|
||||
--md-default-bg-color: #2E303E;
|
||||
--md-default-fg-color--light: #E9EBFC;
|
||||
--md-typeset-color: #E9EBFC;
|
||||
--md-typeset-a-color: #E9EBFC;
|
||||
}
|
||||
|
|
@ -7,13 +7,9 @@ import os
|
|||
port_increments = {
|
||||
"DOCS_URL": 0,
|
||||
"FILEBROWSER_URL": 1,
|
||||
"STATICFS_URL": 2,
|
||||
"CRONICLE_URL": 3,
|
||||
"UNGIT_URL": 4,
|
||||
"IDE_URL": 5,
|
||||
"TERMINAL_URL": 6,
|
||||
"MC_URL": 7,
|
||||
"HTOP_URL": 8,
|
||||
"PORT_8038": 18,
|
||||
"PORT_8039": 19,
|
||||
"PORT_8040": 20
|
|
@ -5,6 +5,7 @@
|
|||
nav:
|
||||
- Home: README.md
|
||||
- My apps: pages/my-apps.md
|
||||
- About: about.md
|
||||
- Docs: https://docs.alnoda.org/codeserver-workspace/
|
||||
|
||||
|
||||
|
@ -12,7 +13,7 @@ nav:
|
|||
# CONFIGURATION
|
||||
# ===========================================================
|
||||
|
||||
site_name: My workspace
|
||||
site_name: Codeserver workspace
|
||||
repo_url: https://github.com/bluxmit/alnoda-workspaces
|
||||
site_url: https://docs.alnoda.org
|
||||
edit_uri: ""
|
||||
|
@ -23,26 +24,22 @@ edit_uri: ""
|
|||
|
||||
theme:
|
||||
name: 'material'
|
||||
favicon: 'assets/favicon.ico'
|
||||
logo: 'assets/Alnoda-logo.svg'
|
||||
favicon: 'assets/workspace-circle.svg'
|
||||
logo: 'assets/workspace-circle-white.svg'
|
||||
custom_dir: overrides
|
||||
icon:
|
||||
repo: fontawesome/brands/git-alt
|
||||
repo: fontawesome/brands/github
|
||||
features:
|
||||
- navigation.instant
|
||||
palette:
|
||||
- scheme: default
|
||||
- scheme: codeserver
|
||||
toggle:
|
||||
icon: material/toggle-switch-off-outline
|
||||
name: Switch to light mode
|
||||
primary: brown
|
||||
accent: deep orange
|
||||
- scheme: slate
|
||||
toggle:
|
||||
icon: material/toggle-switch
|
||||
icon: material/brightness-7
|
||||
name: Switch to dark mode
|
||||
primary: orange
|
||||
accent: red
|
||||
- scheme: codeserver-dark
|
||||
toggle:
|
||||
icon: material/brightness-4
|
||||
name: Switch to light mode
|
||||
|
||||
extra:
|
||||
# Link to open when your logo is clicked
|
||||
|
@ -50,11 +47,12 @@ extra:
|
|||
host_url: http://docs.alnoda.org
|
||||
|
||||
plugins:
|
||||
- search
|
||||
# Enable Macros and jinja2 templates
|
||||
- macros:
|
||||
module_name: macros/helpers
|
||||
|
||||
extra_css:
|
||||
- stylesheets/extra.css
|
||||
|
||||
extra_javascript:
|
||||
- javascripts/config.js
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
ARG docker_registry=docker.io/alnoda
|
||||
ARG image_tag=2.2
|
||||
ARG image_tag=3.0
|
||||
|
||||
FROM ${docker_registry}/ide-workspace:${image_tag}
|
||||
USER root
|
||||
|
@ -8,6 +8,10 @@ USER root
|
|||
COPY settings.json /home/abc/.theia/settings.json
|
||||
|
||||
COPY ./mkdocs/mkdocs.yml /home/docs/mkdocs.yml
|
||||
COPY ./mkdocs/osearch-circle.svg /home/docs/docs/assets/
|
||||
COPY ./mkdocs/osearch-circle-white.svg /home/docs/docs/assets/
|
||||
COPY ./mkdocs/extra.css /home/docs/docs/stylesheets/
|
||||
COPY ./mkdocs/about.md /home/docs/docs/about.md
|
||||
|
||||
RUN apt-get -y update \
|
||||
# && echo "------------------------------------------------------ utils" \
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
<p align="center">
|
||||
<img src="../../img/Alnoda-white.svg" alt="Alnoda logo" width="150">
|
||||
<img src="./img/osearch-circle.svg" alt="Opensearch logo" width="150">
|
||||
</p>
|
||||
|
||||
# Elasticsearch workspace
|
||||
Several Elasticsearch CLI tools in a containerized dev/admin workspace.
|
||||
|
||||
Containerized environment to interact, manage and administer Opensearch and Elasticsearch cluster.
|
||||
|
||||
## Why this images
|
||||
|
||||
|
@ -28,7 +29,7 @@ and open [localhost:8020](http://localhost:8020) in browser.
|
|||
- [esbulk](https://github.com/miku/esbulk) - fast parallel command line bulk loading utility for Elasticsearch.
|
||||
- [vulcanizer](https://github.com/github/vulcanizer) - cli for interacting with an Elasticsearch cluster.
|
||||
|
||||
**Dev tools:**
|
||||
**Tools:**
|
||||
|
||||
- [**Eclipse Theia**](https://theia-ide.org/docs/) - open source version of popular Visual Studio Code IDE. Theia is trully open-source, has
|
||||
VS-Code extensions and works in browser. This means it can run inside a docker container on local machine or in cloud. A lot of beautiful color themes and many common plugins are already installed to save time.
|
||||
|
@ -41,19 +42,18 @@ VS-Code extensions and works in browser. This means it can run inside a docker c
|
|||
- [**Midnight Commander**](https://midnight-commander.org/) - Feature rich visual file manager with internal text viewer and editor.
|
||||
- [**Process Monitor**](https://htop.dev/) - Monitor running process and resource utilization.
|
||||
- Quicklaunch UI with getting started tutorial
|
||||
|
||||
Image is built from **Ubuntu 20.4** with the additional CLI apps
|
||||
|
||||
- [Zsh](https://www.zsh.org/), [Oh my Zsh](https://ohmyz.sh/)
|
||||
- Python 3, Pip
|
||||
- Node/nodeenv
|
||||
- curl, wget, telnet, jq
|
||||
- **Git:** git, git-flow, lazygit
|
||||
- **File browsers:** mc, xplr
|
||||
- **Text editors:** nano, vim, mcedit
|
||||
- **System monitors:** ncdu, htop, glances, vizex
|
||||
- **Process Control:** supervisord
|
||||
- **Job scheduler:** cron
|
||||
- **Ubuntu 20.4** with the following CLI apps
|
||||
- [Zsh](https://www.zsh.org/), [Oh my Zsh](https://ohmyz.sh/)
|
||||
- Python 3, Pip
|
||||
- Node/nodeenv
|
||||
- curl, wget, telnet, jq
|
||||
- **Git:** git, git-flow
|
||||
- **File browsers:** mc, xplr
|
||||
- **Text editors:** nano, vim, mcedit
|
||||
- **System monitors:** ncdu, htop, glances, vizex
|
||||
- **Process Control:** supervisord
|
||||
- **Job scheduler:** cron
|
||||
- **Terminal multiplexer:** tmux
|
||||
|
||||
## Docs
|
||||
|
||||
|
|
31
workspaces/elasticsearch-workspace/img/osearch-circle.svg
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 900 900" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="g10" transform="matrix(3, 0, 0, -3, 0, 900)" style="">
|
||||
<g id="g12" transform="scale(0.1)">
|
||||
<path d="M 1500 3000 C 671.57 3000 0 2328.43 0 1500 C 0 671.57 671.57 0 1500 0 C 2328.43 0 3000 671.57 3000 1500 C 3000 2328.43 2328.43 3000 1500 3000 Z M 2454.59 545.41 C 2199.61 290.422 1860.6 150 1500 150 C 1139.4 150 800.387 290.422 545.406 545.41 C 290.426 800.391 150 1139.4 150 1500 C 150 1860.6 290.426 2199.61 545.406 2454.59 C 800.387 2709.57 1139.4 2850 1500 2850 C 1860.6 2850 2199.61 2709.57 2454.59 2454.59 C 2709.57 2199.61 2850 1860.6 2850 1500 C 2850 1139.4 2709.57 800.391 2454.59 545.41" style="fill-opacity: 1; fill-rule: nonzero; stroke: none;" id="path14"/>
|
||||
<title>Go icon</title>
|
||||
<title>Elixir icon</title>
|
||||
<title>R icon</title>
|
||||
<title>OpenSearch logo</title>
|
||||
<desc>Search engine software fork of Elasticsearch</desc>
|
||||
<path d="M 2298.118 761.167 C 2391.98 939.127 2482.814 1176.47 2464.942 1508.733 C 2427.923 2196.924 1891.492 2719.04 1384.969 2662.47 C 1186.68 2640.321 983.042 2452.472 1001.122 2116.043 C 1008.979 1969.863 1070.561 1883.566 1170.673 1817.22 C 1265.907 1754.037 1388.292 1714.074 1527.031 1668.748 C 1694.59 1613.942 1888.987 1552.399 2038.386 1424.481 C 2217.463 1271.149 2339.845 1093.373 2298.118 761.167 Z" style=""/>
|
||||
<path d="M 728.141 2232.641 C 636.14 2055.198 547.172 1818.642 564.683 1487.521 C 600.915 801.532 1126.518 281.132 1622.849 337.517 C 1817.133 359.611 2016.617 546.835 1998.9 882.147 C 1991.203 1027.895 1930.872 1113.916 1832.817 1180.046 C 1739.463 1242.965 1619.55 1282.853 1483.619 1328.03 C 1319.447 1382.619 1128.967 1443.94 982.593 1571.44 C 807.166 1724.285 687.212 1901.459 728.141 2232.641 Z" style=""/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<rect id="_Transparent_Rectangle_" data-name="<Transparent Rectangle>" class="cls-1" width="800" height="800" style="fill: none;" y="60.148" x="43.806"/>
|
||||
</svg>
|
After Width: | Height: | Size: 3 KiB |
1
workspaces/elasticsearch-workspace/mkdocs/about.md
Normal file
|
@ -0,0 +1 @@
|
|||
Containerized environment to interact, manage and administer Opensearch and Elasticsearch cluster.
|
19
workspaces/elasticsearch-workspace/mkdocs/extra.css
Normal file
|
@ -0,0 +1,19 @@
|
|||
[data-md-color-scheme="opensearch"] {
|
||||
--md-primary-fg-color: #003B5C;
|
||||
--md-accent-fg-color: #00A3E0;
|
||||
|
||||
--md-default-fg-color--light: #003B5C;
|
||||
--md-default-bg-color: #F5F7F7;
|
||||
}
|
||||
|
||||
[data-md-color-scheme="elasticsearch-dark"] {
|
||||
--md-primary-fg-color: #176655;
|
||||
--md-accent-fg-color: #FEC514;
|
||||
|
||||
--md-default-bg-color: #343741;
|
||||
--md-default-fg-color--light: #9CDCFE;
|
||||
--md-typeset-color: #9CDCFE;
|
||||
--md-typeset-a-color: #9CDCFE;
|
||||
}
|
||||
|
||||
|
|
@ -5,9 +5,9 @@
|
|||
nav:
|
||||
- Home: README.md
|
||||
- My apps: pages/my-apps.md
|
||||
- About: about.md
|
||||
- Docs: https://docs.alnoda.org/elasticsearch-workspace/
|
||||
|
||||
|
||||
# ===========================================================
|
||||
# CONFIGURATION
|
||||
# ===========================================================
|
||||
|
@ -23,26 +23,25 @@ edit_uri: ""
|
|||
|
||||
theme:
|
||||
name: 'material'
|
||||
favicon: 'assets/favicon.ico'
|
||||
logo: 'assets/Alnoda-logo.svg'
|
||||
favicon: 'assets/osearch-circle.svg'
|
||||
logo: 'assets/osearch-circle-white.svg'
|
||||
custom_dir: overrides
|
||||
font:
|
||||
text: Ruda
|
||||
icon:
|
||||
repo: fontawesome/brands/git-alt
|
||||
repo: fontawesome/brands/github
|
||||
features:
|
||||
- navigation.instant
|
||||
palette:
|
||||
- scheme: default
|
||||
- scheme: opensearch
|
||||
toggle:
|
||||
icon: material/toggle-switch-off-outline
|
||||
name: Switch to light mode
|
||||
primary: red
|
||||
accent: red
|
||||
- scheme: slate
|
||||
toggle:
|
||||
icon: material/toggle-switch
|
||||
icon: material/brightness-7
|
||||
name: Switch to dark mode
|
||||
primary: red
|
||||
accent: red
|
||||
- scheme: elasticsearch-dark
|
||||
toggle:
|
||||
icon: material/brightness-4
|
||||
name: Switch to light mode
|
||||
|
||||
|
||||
extra:
|
||||
# Link to open when your logo is clicked
|
||||
|
@ -50,21 +49,14 @@ extra:
|
|||
host_url: http://docs.alnoda.org
|
||||
|
||||
plugins:
|
||||
- search
|
||||
# Enable Macros and jinja2 templates
|
||||
- macros:
|
||||
module_name: macros/helpers
|
||||
|
||||
extra_css:
|
||||
- stylesheets/extra.css
|
||||
|
||||
extra_javascript:
|
||||
- javascripts/config.js
|
||||
- https://polyfill.io/v3/polyfill.min.js?features=es6
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 900 900" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="g10" transform="matrix(3, 0, 0, -3, 0, 900)" style="">
|
||||
<g id="g12" transform="scale(0.1)">
|
||||
<path d="M 1500 3000 C 671.57 3000 0 2328.43 0 1500 C 0 671.57 671.57 0 1500 0 C 2328.43 0 3000 671.57 3000 1500 C 3000 2328.43 2328.43 3000 1500 3000 Z M 2454.59 545.41 C 2199.61 290.422 1860.6 150 1500 150 C 1139.4 150 800.387 290.422 545.406 545.41 C 290.426 800.391 150 1139.4 150 1500 C 150 1860.6 290.426 2199.61 545.406 2454.59 C 800.387 2709.57 1139.4 2850 1500 2850 C 1860.6 2850 2199.61 2709.57 2454.59 2454.59 C 2709.57 2199.61 2850 1860.6 2850 1500 C 2850 1139.4 2709.57 800.391 2454.59 545.41" style="fill-opacity: 1; fill-rule: nonzero; stroke: none; fill: rgb(255, 255, 255);" id="path14"/>
|
||||
<title>Go icon</title>
|
||||
<title>Elixir icon</title>
|
||||
<title>R icon</title>
|
||||
<title>OpenSearch logo</title>
|
||||
<desc>Search engine software fork of Elasticsearch</desc>
|
||||
<path d="M 2298.118 761.167 C 2391.98 939.127 2482.814 1176.47 2464.942 1508.733 C 2427.923 2196.924 1891.492 2719.04 1384.969 2662.47 C 1186.68 2640.321 983.042 2452.472 1001.122 2116.043 C 1008.979 1969.863 1070.561 1883.566 1170.673 1817.22 C 1265.907 1754.037 1388.292 1714.074 1527.031 1668.748 C 1694.59 1613.942 1888.987 1552.399 2038.386 1424.481 C 2217.463 1271.149 2339.845 1093.373 2298.118 761.167 Z" style="fill: rgb(255, 255, 255);"/>
|
||||
<path d="M 728.141 2232.641 C 636.14 2055.198 547.172 1818.642 564.683 1487.521 C 600.915 801.532 1126.518 281.132 1622.849 337.517 C 1817.133 359.611 2016.617 546.835 1998.9 882.147 C 1991.203 1027.895 1930.872 1113.916 1832.817 1180.046 C 1739.463 1242.965 1619.55 1282.853 1483.619 1328.03 C 1319.447 1382.619 1128.967 1443.94 982.593 1571.44 C 807.166 1724.285 687.212 1901.459 728.141 2232.641 Z" style="fill: rgb(255, 255, 255);"/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<rect id="_Transparent_Rectangle_" data-name="<Transparent Rectangle>" class="cls-1" width="800" height="800" style="fill: none;" y="60.148" x="43.806"/>
|
||||
</svg>
|
After Width: | Height: | Size: 3.1 KiB |
31
workspaces/elasticsearch-workspace/mkdocs/osearch-circle.svg
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 900 900" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="g10" transform="matrix(3, 0, 0, -3, 0, 900)" style="">
|
||||
<g id="g12" transform="scale(0.1)">
|
||||
<path d="M 1500 3000 C 671.57 3000 0 2328.43 0 1500 C 0 671.57 671.57 0 1500 0 C 2328.43 0 3000 671.57 3000 1500 C 3000 2328.43 2328.43 3000 1500 3000 Z M 2454.59 545.41 C 2199.61 290.422 1860.6 150 1500 150 C 1139.4 150 800.387 290.422 545.406 545.41 C 290.426 800.391 150 1139.4 150 1500 C 150 1860.6 290.426 2199.61 545.406 2454.59 C 800.387 2709.57 1139.4 2850 1500 2850 C 1860.6 2850 2199.61 2709.57 2454.59 2454.59 C 2709.57 2199.61 2850 1860.6 2850 1500 C 2850 1139.4 2709.57 800.391 2454.59 545.41" style="fill-opacity: 1; fill-rule: nonzero; stroke: none;" id="path14"/>
|
||||
<title>Go icon</title>
|
||||
<title>Elixir icon</title>
|
||||
<title>R icon</title>
|
||||
<title>OpenSearch logo</title>
|
||||
<desc>Search engine software fork of Elasticsearch</desc>
|
||||
<path d="M 2298.118 761.167 C 2391.98 939.127 2482.814 1176.47 2464.942 1508.733 C 2427.923 2196.924 1891.492 2719.04 1384.969 2662.47 C 1186.68 2640.321 983.042 2452.472 1001.122 2116.043 C 1008.979 1969.863 1070.561 1883.566 1170.673 1817.22 C 1265.907 1754.037 1388.292 1714.074 1527.031 1668.748 C 1694.59 1613.942 1888.987 1552.399 2038.386 1424.481 C 2217.463 1271.149 2339.845 1093.373 2298.118 761.167 Z" style=""/>
|
||||
<path d="M 728.141 2232.641 C 636.14 2055.198 547.172 1818.642 564.683 1487.521 C 600.915 801.532 1126.518 281.132 1622.849 337.517 C 1817.133 359.611 2016.617 546.835 1998.9 882.147 C 1991.203 1027.895 1930.872 1113.916 1832.817 1180.046 C 1739.463 1242.965 1619.55 1282.853 1483.619 1328.03 C 1319.447 1382.619 1128.967 1443.94 982.593 1571.44 C 807.166 1724.285 687.212 1901.459 728.141 2232.641 Z" style=""/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<rect id="_Transparent_Rectangle_" data-name="<Transparent Rectangle>" class="cls-1" width="800" height="800" style="fill: none;" y="60.148" x="43.806"/>
|
||||
</svg>
|
After Width: | Height: | Size: 3 KiB |
|
@ -1,10 +1,14 @@
|
|||
ARG docker_registry=docker.io/alnoda
|
||||
ARG image_tag=2.2-17
|
||||
ARG image_tag=3.0-17
|
||||
|
||||
FROM ${docker_registry}/java-workspace:${image_tag}
|
||||
USER root
|
||||
|
||||
COPY ./mkdocs/mkdocs.yml /home/docs/mkdocs.yml
|
||||
COPY ./mkdocs/mkdocs.yml /home/docs/mkdocs.yml
|
||||
COPY ./mkdocs/elixir-circle.svg /home/docs/docs/assets/
|
||||
COPY ./mkdocs/elixir-circle-white.svg /home/docs/docs/assets/
|
||||
COPY ./mkdocs/extra.css /home/docs/docs/stylesheets/
|
||||
COPY ./mkdocs/about.md /home/docs/docs/about.md
|
||||
|
||||
RUN apt-get -y update \
|
||||
&& echo "------------------------------------------------------ Erlang requirements" \
|
||||
|
|
|
@ -1,14 +1,11 @@
|
|||
<p align="center">
|
||||
<img src="../../img/Alnoda-white.svg" alt="Alnoda logo" width="150">
|
||||
</p>
|
||||
<img src="./img/elixir-circle.svg" alt="Elixir logo" width="150">
|
||||
</p>
|
||||
|
||||
# Erlang-Elixir workspace
|
||||
# Erlang-elixir workspace
|
||||
|
||||
Docker image with Erlang, Elixir and browser-based VS-Code version.
|
||||
Containerized isolated development environment for Erlang and Elixir programming languages.
|
||||
|
||||
<p align="center">
|
||||
<img src="https://raw.githubusercontent.com/bluxmit/alnoda-workspaces/main/workspaces/codeserver-workspace/img/codeserver-collage-sm.jpg" alt="Collage" width="750">
|
||||
</p>
|
||||
|
||||
## Why this images
|
||||
|
||||
|
@ -32,30 +29,23 @@ and open [localhost:8020](http://localhost:8020) in browser.
|
|||
|
||||
**Dev tools:**
|
||||
|
||||
- [**Code-server**](https://github.com/cdr/code-server) - open source version of popular Visual Studio Code IDE. Codeserver has
|
||||
VS-Code extensions and works in browser.
|
||||
- [**Eclipse Theia**](https://theia-ide.org/docs/) - open source version of popular Visual Studio Code IDE. Theia is trully open-source, has
|
||||
VS-Code extensions and works in browser. This means it can run inside a docker container on local machine or in cloud. A lot of beautiful color themes and many common plugins are already installed to save time.
|
||||
- [**Terminal**](https://github.com/tsl0922/ttyd) - secure browser-based terminal.
|
||||
- [**FileBrowser**](https://github.com/filebrowser/filebrowser) - manage files and folders inside the workspace, and exchange data between local environment and the workspace
|
||||
- [**Cronicle**](https://github.com/jhuckaby/Cronicle) - task scheduler and runner, with a web based front-end UI. It handles both scheduled, repeating and on-demand jobs, targeting any number of worker servers, with real-time stats and live log viewer.
|
||||
- [**Static File Server**](https://github.com/vercel/serve) - view any static html sites as easy as if you do it on your local machine. Serve static websites easily.
|
||||
- [**Ungit**](https://github.com/FredrikNoren/ungit) - rings user friendliness to git without sacrificing the versatility of it.
|
||||
- [**MkDocs**](https://squidfunk.github.io/mkdocs-material/) - create awesome documentation for your project with only markdown.
|
||||
- [**Midnight Commander**](https://midnight-commander.org/) - Feature rich visual file manager with internal text viewer and editor.
|
||||
- [**Process Monitor**](https://htop.dev/) - Monitor running process and resource utilization.
|
||||
- Quicklaunch UI with getting started tutorial
|
||||
|
||||
Image is built from **Ubuntu 20.4** with the additional CLI apps
|
||||
|
||||
- [Zsh](https://www.zsh.org/), [Oh my Zsh](https://ohmyz.sh/)
|
||||
- Python 3, Pip
|
||||
- Node/nodeenv
|
||||
- curl, wget, telnet, jq
|
||||
- **Git:** git, git-flow, lazygit
|
||||
- **File browsers:** mc, xplr
|
||||
- **Text editors:** nano, vim, mcedit
|
||||
- **System monitors:** ncdu, htop, glances, vizex
|
||||
- **Process Control:** supervisord
|
||||
- **Job scheduler:** cron
|
||||
- **Ubuntu 20.4** with the following CLI apps
|
||||
- [Zsh](https://www.zsh.org/), [Oh my Zsh](https://ohmyz.sh/)
|
||||
- Python 3, Pip
|
||||
- Node/nodeenv
|
||||
- curl, wget, telnet, jq
|
||||
- **Git:** git, git-flow, lazygit
|
||||
- **File browsers:** mc
|
||||
- **Text editors:** nano, vim, mcedit
|
||||
- **System monitors:** ncdu, htop, glances, vizex
|
||||
- **Process Control:** supervisord
|
||||
- **Job scheduler:** cron
|
||||
- **Terminal multiplexer:** tmux
|
||||
|
||||
## Docs
|
||||
|
||||
|
|
26
workspaces/erlang-elixir-workspace/img/elixir-circle.svg
Normal file
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<svg viewBox="0 0 900 900" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="g10" transform="matrix(3, 0, 0, -3, 0, 900)" style="">
|
||||
<g id="g12" transform="scale(0.1)">
|
||||
<path d="M 1500 3000 C 671.57 3000 0 2328.43 0 1500 C 0 671.57 671.57 0 1500 0 C 2328.43 0 3000 671.57 3000 1500 C 3000 2328.43 2328.43 3000 1500 3000 Z M 2454.59 545.41 C 2199.61 290.422 1860.6 150 1500 150 C 1139.4 150 800.387 290.422 545.406 545.41 C 290.426 800.391 150 1139.4 150 1500 C 150 1860.6 290.426 2199.61 545.406 2454.59 C 800.387 2709.57 1139.4 2850 1500 2850 C 1860.6 2850 2199.61 2709.57 2454.59 2454.59 C 2709.57 2199.61 2850 1860.6 2850 1500 C 2850 1139.4 2709.57 800.391 2454.59 545.41" style="fill-opacity: 1; fill-rule: nonzero; stroke: none;" id="path14"/>
|
||||
<title>Go icon</title>
|
||||
<title>Elixir icon</title>
|
||||
<path d="M 2199.285 1182.068 C 2199.285 846.027 1934.813 516.977 1499.78 516.977 C 1025.608 516.977 791.235 849.253 791.235 1259.4 C 791.235 1726.003 1142.841 2419.5 1513.881 2660.822 C 1538.917 2677.131 1571.998 2657.148 1569.107 2627.576 C 1566.395 2599.528 1564.95 2571.031 1564.95 2542.356 C 1564.95 2357.13 1622.887 2185.257 1722.041 2043.853 C 1769.224 1972.612 1820.745 1911.498 1881.393 1833.179 C 1966.357 1723.315 2029.267 1662.469 2120.197 1489.072 C 2120.648 1488.176 2121.1 1487.459 2121.553 1486.563 C 2171.355 1395.429 2199.285 1291.929 2199.285 1182.068 Z" style=""/>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
<g transform="matrix(2.18986, 0, 0, 2.141408, 100, 100)" style=""/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.5 KiB |