vim workspaces

This commit is contained in:
bluxmit 2022-10-30 18:02:12 +00:00
parent 325eeeccd8
commit d931a697cf
39 changed files with 655 additions and 214 deletions

View file

@ -54,6 +54,7 @@ RUN echo "------------------------------------------------------ blast-radius" \
&& echo "------------------------------------------------------ tflint" \
&& cd /tmp && wget https://github.com/terraform-linters/tflint/releases/download/v0.39.3/tflint_linux_amd64.zip \
&& unzip /tmp/tflint_linux_amd64.zip -d /home/abc/.local/bin \
&& rm /tmp/tflint_linux_amd64.zip \
&& echo "------------------------------------------------------ tfsec" \
&& cd /tmp && curl -Lo /tmp/tfsec https://github.com/aquasecurity/tfsec/releases/download/v1.27.5/tfsec-checkgen-linux-amd64 \
&& chmod +x /tmp/tfsec \

View file

@ -10,6 +10,7 @@ USER abc
# Install workspace tools and applications
RUN sudo apt-get -y update \
&& sudo apt-get install -y socat \
&& sudo apt-get install -y s3fs \
&& echo "------------------------------------------------------ install filebrowser" \
&& cd /tmp && wget https://github.com/filebrowser/filebrowser/releases/download/v2.21.1/linux-amd64-filebrowser.tar.gz \
&& mkdir /tmp/filebrowser \
@ -19,11 +20,12 @@ RUN sudo apt-get -y update \
&& mv /tmp/filebrowser/filebrowser /home/abc/apps/filebrowser/ \
&& rm -rf /tmp/filebrowser \
&& rm /tmp/linux-amd64-filebrowser.tar.gz \
&& echo "------------------------------------------------------ install ungit" \
&& sudo apt-get install -y ssh net-tools --no-install-recommends \
&& mkdir -p /home/abc/apps/ungit \
&& cd /home/abc/apps/ungit && nodeenv --node=12.18.3 --npm=6.0.0 env \
&& cd /home/abc/apps/ungit && . env/bin/activate && npm install -g ungit@1.5.9
&& echo "------------------------------------------------------ install frp" \
&& cd /tmp && wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz \
&& tar xvf /tmp/frp_0.44.0_linux_amd64.tar.gz \
&& mv /tmp/frp_0.44.0_linux_amd64 /home/abc/apps/frp \
&& rm /tmp/frp_0.44.0_linux_amd64.tar.gz \
&& sudo apt-get install -y timelimit
# Copy Filebrowser config (it changes filebrowser standard port and host)
COPY --chown=abc:abc filebrowser.json /home/abc/apps/filebrowser/.filebrowser.json
@ -31,6 +33,6 @@ COPY --chown=abc:abc filebrowser.json /home/abc/apps/filebrowser/.filebrowser.js
# Build Alnoda workspace
COPY --chown=abc:abc workspace /tmp/workspace
RUN echo "------------------------------------------------------ build workspace" \
&& pipx install alnoda-wrk==0.2.17 \
&& pipx install alnoda-wrk==0.2.23 \
&& alnoda-wrk build /tmp/workspace \
&& rm -rf /tmp/workspace

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

View file

@ -4,11 +4,12 @@ name: Base devspace
doc_url: https://github.com/bluxmit/alnoda-workspaces/blob/main/workspaces/base-devspace/README.md
author: bluxmit
version: 4.0
repository: https://github.com/bluxmit/alnoda-workspaces/tree/main/workspaces/base-devspace
description: |
# Base devspace
Basis for other workspaces. This workspace has UI, but does not have code editor (or IDE) up & running.
tags: workspace-ui, filebrowser, ungit
tags: workspace-ui, filebrowser, ungit, ngrok
# optional:
# (Quickstart UI appearance)
@ -39,18 +40,18 @@ pages:
title: Terminal
description: "Full-fledged WEB-based Command Line Interface"
image: terminal.png
- name: Workspace settings
port: 8025
title: Workspace settings
description: "Configure workspace appearance. Start new applicatios and services"
- name: Workspace admin
port: 8024
title: Workspace admin
description: "Configure workspace. Start new applicatios and services. Share workspace."
image: alnoda-admin.png
- name: M.Commander
port: 8026
port: 8025
title: M.Commander
description: Feature rich visual file manager with internal text viewer and editor
image: mc.jpg
- name: Htop
port: 8027
port: 8026
title: Process monitor
description: Monitor running process and resource utilization
image: htop.jpg
@ -63,23 +64,21 @@ start:
cmd: mkdocs serve -a 0.0.0.0:8020
- name: File Browser
cmd: /home/abc/apps/filebrowser/filebrowser -c /home/abc/apps/filebrowser/.filebrowser.json
- name: Ungit
folder: $HOME/apps/ungit
cmd: . env/bin/activate; ungit --port=8024 --ungitBindIp=0.0.0.0 --launchBrowser=false --autoFetch=false --bugtracking=false --authentication=false
- name: Admin
env_vars:
- name: TERM
value: xterm
cmd: ttyd -p 8025 /bin/zsh -c 'alnoda-wrk admin'
cmd: ttyd -p 8024 /bin/zsh -c 'alnoda-wrk admin'
- name: MC
env_vars:
- name: TERM
value: xterm
- name: EDITOR
value: mcedit
cmd: ttyd -p 8026 /bin/zsh -c '/usr/bin/mc'
cmd: ttyd -p 8025 /bin/zsh -c '/usr/bin/mc'
- name: Htop
env_vars:
- name: TERM
value: xterm
cmd: ttyd -p 8027 /bin/zsh -c '/usr/bin/htop'
cmd: ttyd -p 8026 /bin/zsh -c '/usr/bin/htop'

View file

@ -3,6 +3,10 @@ FROM alnoda/base-devspace:4.0
# Set environmental variables for Code-server
ARG CODESERVER_VERSION="4.7.0"
USER root
RUN echo "fs.inotify.max_user_watches=524288" >> /etc/sysctl.conf
USER abc
# Install Code-server
RUN echo "------------------------------------------------------ code-server" \
&& cd \tmp \
@ -14,9 +18,9 @@ RUN echo "------------------------------------------------------ code-server" \
RUN echo "------------------------------------------------------ common extensions" \
&& code-server --install-extension mhutchie.git-graph \
&& code-server --install-extension redhat.vscode-yaml \
&& code-server --install-extension redhat.vscode-xml \
&& code-server --install-extension mechatroner.rainbow-csv \
&& code-server --install-extension formulahendry.auto-close-tag \
&& code-server --install-extension formulahendry.auto-rename-tag \
&& code-server --install-extension anteprimorac.html-end-tag-labels \
&& code-server --install-extension abusaidm.html-snippets \
&& code-server --install-extension sndst00m.vscode-native-svg-preview \
@ -31,12 +35,14 @@ RUN echo "------------------------------------------------------ common extensio
&& code-server --install-extension wesbos.theme-cobalt2 \
&& code-server --install-extension github.github-vscode-theme \
&& code-server --install-extension armandphilippot.coldark \
&& code-server --install-extension radiolevity.search-lights \
&& code-server --install-extension radiolevity.search-lights
&& code-server --install-extension vladeeg.vscode-theme-vlight \
&& code-server --install-extension akamud.vscode-theme-onelight \
&& code-server --install-extension akamud.vscode-theme-onedark \
&& code-server --install-extension rubjo.ultimate-dark-neo \
&& code-server --install-extension sainnhe.edge \
&& code-server --install-extension lakshitsomani.best-themes-redefined \
&& code-server --install-extension usernamehw.prism \
&& echo "------------------------------------------------------ icons" \
&& code-server --install-extension emroussel.atom-icons \
&& code-server --install-extension laurenttreguier.vscode-simple-icons

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 KiB

View file

@ -24,6 +24,15 @@ styles:
code_text: "#EAB676"
code_background: "#3C3C3C"
pages:
home:
- name: IDE
port: 8021
path: /
title: IDE
description: "Browser-based version of Visual Studio. Develop in any language, install hundreeds of extensions"
image: IDE.jpg
# add applications and services to the start command
start:
- name: Code-server

View file

@ -23,6 +23,10 @@ RUN sudo apt-get -y update \
&& mv /tmp/vulcanizer /home/abc/.local/bin/vulcanizer \
&& rm /tmp/vulcanizer_0.8.0_Linux_i386.tar.gz
# Install codeserver extensions
RUN echo "------------------------------------------------------ common extensions" \
&& code-server --install-extension ria.elastic
# Change default codeserver theme
COPY --chown=abc:abc settings.json /home/abc/.local/share/code-server/User/settings.json

View file

@ -1,37 +1,4 @@
ARG BUILD_IMAGE=node:16.17.0
ARG MAIN_IMAGE=alnoda/java-workspace:4.0-17
################################################################################ BUILD THEIA
FROM ${BUILD_IMAGE}
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y apt-utils \
&& apt-get install -y git \
&& apt-get install -y libsecret-1-dev \
&& mkdir /opt/theia
WORKDIR /opt/theia
ADD elixir_theia_package.json ./package.json
ARG GITHUB_TOKEN
RUN yarn --pure-lockfile && \
NODE_OPTIONS="--max_old_space_size=4096" yarn theia build && \
yarn theia download:plugins && \
yarn --production && \
yarn autoclean --init && \
echo *.ts >> .yarnclean && \
echo *.ts.map >> .yarnclean && \
echo *.spec.* >> .yarnclean && \
yarn autoclean --force && \
yarn cache clean
################################################################################ WORKSPACE IMAGE
FROM ${MAIN_IMAGE}
# Replace Theia with the new build, which includes additional pre-installed extensions
# To do this, the existing Theia folder will be deleted, and new copied from the build stage
ENV THEIA_DIR="/home/abc/apps/theia"
RUN rm -rf $THEIA_DIR \
&& mkdir "$THEIA_DIR" \
&& cd $THEIA_DIR && nodeenv --node=16.17.0 env && . env/bin/activate
# Copy built Theia from the build image
COPY --from=0 --chown=abc:abc /opt/theia $THEIA_DIR
FROM alnoda/java-workspace:4.0-17
RUN sudo apt-get -y update \
&& echo "------------------------------------------------------ Erlang requirements" \
@ -55,6 +22,16 @@ ENV PATH="$PATH:/home/abc/erlang/25.0/bin"
ENV PATH="$PATH:/home/abc/.kiex/bin"
ENV PATH="$PATH:/home/abc/.kiex/elixirs/elixir-1.13.4/bin"
# Install codeserver extensions
RUN echo "------------------------------------------------------ common extensions" \
&& code-server --install-extension erlang-ls.erlang-ls \
&& code-server --install-extension elixir-lsp.elixir-ls \
&& code-server --install-extension pantajoe.vscode-elixir-credo \
&& code-server --install-extension lakshitsomani.best-themes-redefined
# Set default codeserver theme
COPY --chown=abc:abc settings.json /home/abc/.local/share/code-server/User/settings.json
# Build Alnoda workspace
COPY --chown=abc:abc workspace /tmp/workspace
RUN pipx uninstall alnoda-wrk; pipx install alnoda-wrk; alnoda-wrk build /tmp/workspace && rm -rf /tmp/workspace

View file

@ -1,130 +0,0 @@
{
"private": true,
"theia": {
"frontend": {
"config": {
"applicationName": "Theia JavaScript/TypeScript Example",
"preferences": {
"files.enableTrash": false
}
}
}
},
"dependencies": {
"@theia/callhierarchy": "1.29.0",
"@theia/debug": "1.29.0",
"@theia/editor-preview": "1.29.0",
"@theia/file-search": "1.29.0",
"@theia/getting-started": "1.29.0",
"@theia/git": "1.29.0",
"@theia/markers": "1.29.0",
"@theia/messages": "1.29.0",
"@theia/mini-browser": "1.29.0",
"@theia/navigator": "1.29.0",
"@theia/outline-view": "1.29.0",
"@theia/plugin": "1.29.0",
"@theia/plugin-ext": "1.29.0",
"@theia/plugin-ext-vscode": "1.29.0",
"@theia/preferences": "1.29.0",
"@theia/preview": "1.29.0",
"@theia/search-in-workspace": "1.29.0",
"@theia/terminal": "1.29.0",
"@theia/vsx-registry": "1.29.0"
},
"devDependencies": {
"@theia/cli": "1.29.0"
},
"scripts": {
"preinstall": "node-gyp install"
},
"theiaPluginsDir": "plugins",
"theiaPlugins": {
"vscode-builtin-bat": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/bat-1.39.1-prel.vsix",
"vscode-builtin-clojure": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/clojure-1.39.1-prel.vsix",
"vscode-builtin-coffeescript": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/coffeescript-1.39.1-prel.vsix",
"vscode-builtin-configuration-editing": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/configuration-editing-1.39.1-prel.vsix",
"vscode-builtin-cpp": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/cpp-1.39.1-prel.vsix",
"vscode-builtin-csharp": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/csharp-1.39.1-prel.vsix",
"vscode-builtin-css": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/css-1.39.1-prel.vsix",
"vscode-builtin-debug-auto-launch": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/debug-auto-launch-1.39.1-prel.vsix",
"vscode-builtin-docker": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/docker-1.39.1-prel.vsix",
"vscode-builtin-emmet": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/emmet-1.39.1-prel.vsix",
"vscode-builtin-fsharp": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/fsharp-1.39.1-prel.vsix",
"vscode-builtin-go": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/go-1.39.1-prel.vsix",
"vscode-builtin-groovy": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/groovy-1.39.1-prel.vsix",
"vscode-builtin-grunt": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/grunt-1.39.1-prel.vsix",
"vscode-builtin-gulp": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/gulp-1.39.1-prel.vsix",
"vscode-builtin-handlebars": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/handlebars-1.39.1-prel.vsix",
"vscode-builtin-hlsl": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/hlsl-1.39.1-prel.vsix",
"vscode-builtin-html": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/html-1.39.1-prel.vsix",
"vscode-builtin-html-language-features": "https://open-vsx.org/api/vscode/html-language-features/1.49.0/file/vscode.html-language-features-1.49.0.vsix",
"vscode-builtin-ini": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/ini-1.39.1-prel.vsix",
"vscode-builtin-jake": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/jake-1.39.1-prel.vsix",
"vscode-builtin-java": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/java-1.39.1-prel.vsix",
"vscode-builtin-javascript": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/javascript-1.39.1-prel.vsix",
"vscode-builtin-json": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/json-1.39.1-prel.vsix",
"vscode-builtin-json-language-features": "https://open-vsx.org/api/vscode/json-language-features/1.46.1/file/vscode.json-language-features-1.46.1.vsix",
"vscode-builtin-less": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/less-1.39.1-prel.vsix",
"vscode-builtin-log": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/log-1.39.1-prel.vsix",
"vscode-builtin-lua": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/lua-1.39.1-prel.vsix",
"vscode-builtin-make": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/make-1.39.1-prel.vsix",
"vscode-builtin-markdown": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/markdown-1.39.1-prel.vsix",
"vscode-builtin-merge-conflicts": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/merge-conflict-1.39.1-prel.vsix",
"vscode-builtin-npm": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/npm-1.39.1-prel.vsix",
"vscode-builtin-node-debug": "https://github.com/theia-ide/vscode-node-debug/releases/download/v1.35.3/node-debug-1.35.3.vsix",
"vscode-builtin-node-debug2": "https://github.com/theia-ide/vscode-node-debug2/releases/download/v1.33.0/node-debug2-1.33.0.vsix",
"vscode-builtin-objective-c": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/objective-c-1.39.1-prel.vsix",
"vscode-builtin-perl": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/perl-1.39.1-prel.vsix",
"vscode-builtin-powershell": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/powershell-1.39.1-prel.vsix",
"vscode-builtin-pug": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/pug-1.39.1-prel.vsix",
"vscode-builtin-python": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/python-1.39.1-prel.vsix",
"vscode-builtin-r": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/r-1.39.1-prel.vsix",
"vscode-builtin-razor": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/razor-1.39.1-prel.vsix",
"vscode-builtin-ruby": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/ruby-1.39.1-prel.vsix",
"vscode-builtin-rust": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/rust-1.39.1-prel.vsix",
"vscode-builtin-scss": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/scss-1.39.1-prel.vsix",
"vscode-builtin-shaderlab": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/shaderlab-1.39.1-prel.vsix",
"vscode-builtin-shellscript": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/shellscript-1.39.1-prel.vsix",
"vscode-builtin-sql": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/sql-1.39.1-prel.vsix",
"vscode-builtin-swift": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/swift-1.39.1-prel.vsix",
"vscode-builtin-theme-abyss": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-abyss-1.39.1-prel.vsix",
"vscode-builtin-theme-defaults": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-defaults-1.39.1-prel.vsix",
"vscode-builtin-theme-kimbie-dark": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-kimbie-dark-1.39.1-prel.vsix",
"vscode-builtin-theme-monokai": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-monokai-1.39.1-prel.vsix",
"vscode-builtin-theme-dimmed": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-monokai-dimmed-1.39.1-prel.vsix",
"vscode-builtin-theme-quietlight": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-quietlight-1.39.1-prel.vsix",
"vscode-builtin-theme-red": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-red-1.39.1-prel.vsix",
"vscode-builtin-theme-solarized-dark": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-solarized-dark-1.39.1-prel.vsix",
"vscode-builtin-theme-tomorrow-night-blue": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-tomorrow-night-blue-1.39.1-prel.vsix",
"vscode-builtin-typescript": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/typescript-1.39.1-prel.vsix",
"vscode-builtin-typescript-language-features": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/typescript-language-features-1.39.1-prel.vsix",
"vscode-builtin-vb": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/vb-1.39.1-prel.vsix",
"vscode-builtin-icon-theme-seti": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/vscode-theme-seti-1.39.1-prel.vsix",
"vscode-builtin-xml": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/xml-1.39.1-prel.vsix",
"vscode-builtin-yaml": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/yaml-1.39.1-prel.vsix",
"vscode-editorconfig": "https://github.com/theia-ide/editorconfig-vscode/releases/download/v0.14.4/EditorConfig-0.14.4.vsix",
"vscode-eslint": "https://github.com/theia-ide/vscode-eslint/releases/download/release%2F2.0.15/vscode-eslint-2.0.15.vsix",
"vscode-python": "https://open-vsx.org/api/ms-python/python/2020.8.105369/file/ms-python.python-2020.8.105369.vsix",
"nadim-vscode.infinity-dark-theme": "https://open-vsx.org/api/nadim-vscode/infinity-dark-theme/1.0.1/file/nadim-vscode.infinity-dark-theme-1.0.1.vsix",
"emroussel.atomize-atom-one-dark-theme": "https://open-vsx.org/api/emroussel/atomize-atom-one-dark-theme/1.5.5/file/emroussel.atomize-atom-one-dark-theme-1.5.5.vsix",
"mhutchie.git-graph": "https://open-vsx.org/api/mhutchie/git-graph/1.30.0/file/mhutchie.git-graph-1.30.0.vsix",
"teabyii.ayu": "https://open-vsx.org/api/teabyii/ayu/0.20.1/file/teabyii.ayu-0.20.1.vsix",
"yurihs.sublime-vscode-theme": "https://open-vsx.org/api/yurihs/sublime-vscode-theme/1.4.1/file/yurihs.sublime-vscode-theme-1.4.1.vsix",
"wesbos.theme-cobalt2": "https://open-vsx.org/api/wesbos/theme-cobalt2/2.1.6/file/wesbos.theme-cobalt2-2.1.6.vsix",
"github.github-vscode-theme": "https://open-vsx.org/api/GitHub/github-vscode-theme/4.1.1/file/GitHub.github-vscode-theme-4.1.1.vsix",
"armandphilippot.coldark": "https://open-vsx.org/api/armandphilippot/coldark/1.2.9/file/armandphilippot.coldark-1.2.9.vsix",
"radiolevity.search-lights": "https://open-vsx.org/api/radiolevity/search-lights/1.10.1/file/radiolevity.search-lights-1.10.1.vsix",
"vladeeg.vscode-theme-vlight": "https://open-vsx.org/api/Vladeeg/vscode-theme-vlight/2.1.0/file/Vladeeg.vscode-theme-vlight-2.1.0.vsix",
"akamud.vscode-theme-onelight": "https://open-vsx.org/api/akamud/vscode-theme-onelight/2.2.3/file/akamud.vscode-theme-onelight-2.2.3.vsix",
"akamud.vscode-theme-onedark": "https://open-vsx.org/api/akamud/vscode-theme-onedark/2.2.3/file/akamud.vscode-theme-onedark-2.2.3.vsix",
"emroussel.atom-icons": "https://open-vsx.org/api/emroussel/atom-icons/1.2.0/file/emroussel.atom-icons-1.2.0.vsix",
"laurenttreguier.vscode-simple-icons": "https://open-vsx.org/api/LaurentTreguier/vscode-simple-icons/1.16.0/file/LaurentTreguier.vscode-simple-icons-1.16.0.vsix",
"technicolor-creamsicle.deepdark-material": "https://open-vsx.org/api/technicolor-creamsicle/deepdark-material/3.3.0/file/technicolor-creamsicle.deepdark-material-3.3.0.vsix",
"rubjo.ultimate-dark-neo": "https://open-vsx.org/api/rubjo/ultimate-dark-neo/0.1.0/file/rubjo.ultimate-dark-neo-0.1.0.vsix",
"sainnhe.edge": "https://open-vsx.org/api/sainnhe/edge/0.1.8/file/sainnhe.edge-0.1.8.vsix",
"erlang-ls.erlang-ls": "https://open-vsx.org/api/erlang-ls/erlang-ls/0.0.36/file/erlang-ls.erlang-ls-0.0.36.vsix",
"elixir-lsp.elixir-ls": "https://open-vsx.org/api/elixir-lsp/elixir-ls/0.11.0/file/elixir-lsp.elixir-ls-0.11.0.vsix"
}
}

View file

@ -0,0 +1,4 @@
{
"workbench.colorTheme": "Best Themes - Palenight",
"git-graph.maxDepthOfRepoSearch": 3
}

View file

@ -21,7 +21,6 @@ styles:
light:
primary: "#604270"
accent: "#07B6AB"
subtitle: "#c9af06"
background: "#FFFFFF"
text: "#604270"
dark:
@ -29,7 +28,6 @@ styles:
accent: "#07B6AB"
background: "#232834"
title: "#83698E"
subtitle: "#604270"
text: "#FFFFFF"
code_text: "#000000"
code_background: "#F0F0F0"

View file

@ -8,14 +8,20 @@ RUN cd /tmp && curl -LO https://go.dev/dl/go1.18.2.linux-amd64.tar.gz \
# Set environmental variables
ENV PATH="$PATH:/home/abc/go/bin"
ENV GOPATH="/home/abc/go"
ENV GOROOT="/home/abc/go"
RUN go install -v github.com/ramya-rao-a/go-outline@latest \
&& go install -v golang.org/x/tools/gopls@latest
&& go install -v golang.org/x/tools/gopls@latest \
&& go get -v golang.org/x/tools/cmd/goimports \
&& go get -v github.com/uudashr/gopkgs/v2/cmd/gopkgs \
&& go get -v github.com/stamblerre/gocode
# Install additional codeserver extensions
RUN echo "------------------------------------------------------ extensions" \
&& code-server --install-extension golang.go \
&& code-server --install-extension tonsky.theme-alabaster
&& code-server --install-extension ms-vscode.Go \
&& code-server --install-extension tonsky.theme-alabaster \
&& code-server --install-extension CoenraadS.bracket-pair-colorizer-2
# Change default codeserver theme
COPY --chown=abc:abc settings.json /home/abc/.local/share/code-server/User/settings.json

View file

@ -2,6 +2,8 @@
"workbench.colorTheme": "Alabaster",
"git-graph.maxDepthOfRepoSearch": 3,
"gopls": {
"experimentalWorkspaceModule": true
}
"experimentalWorkspaceModule": true,
"ui.semanticTokens": true
},
"go.formatTool": "goreturns"
}

View file

@ -31,6 +31,10 @@ RUN echo "------------------------------------------------------ extensions" \
&& code-server --install-extension christian-kohler.npm-intellisense \
&& code-server --install-extension xabikos.JavaScriptSnippets \
&& code-server --install-extension kumar-harsh.graphql-for-vscode
wix.vscode-import-cost
vscode.typescript-language-features
christian-kohler.path-intellisense
rangav.vscode-thunder-client
# Change default codeserver theme
COPY --chown=abc:abc settings.json /home/abc/.local/share/code-server/User/settings.json

View file

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 2 KiB

View file

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 2 KiB

View file

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

View file

@ -1,4 +1,4 @@
FROM lnoda/ansible-terraform-workspace:4.0
FROM alnoda/ansible-terraform-workspace:4.0
RUN sudo apt-get -y update \
&& echo "------------------------------------------------------ Kubectl" \
@ -32,6 +32,9 @@ RUN echo "------------------------------------------------------ kubespray" \
&& pip install -r /home/project/kubespray/requirements-2.12.txt \
&& echo "------------------------------------------------------ Kube-shell" \
&& pipx install kube-shell \
&& echo "------------------------------------------------------ Kubescape" \
&& chmod 0750 /home/abc/.nix-profile/bin/ \
&& curl -s https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash \
&& echo "------------------------------------------------------ Krew" \
&& mkdir /tmp/krew \
&& cd /tmp/krew && wget https://github.com/kubernetes-sigs/krew/releases/download/v0.4.3/krew-linux_amd64.tar.gz \
@ -44,6 +47,9 @@ RUN echo "------------------------------------------------------ kubespray" \
&& echo '[ -f ~/.kubectl_aliases ] && source ~/.kubectl_aliases' >> /home/abc/.zshrc \
&& mkdir -p /home/abc/.ssh
# https://github.com/bloodorangeio/octant-helm
ENV OCTANT_DISABLE_OPEN_BROWSER=1 \
OCTANT_LISTENER_ADDR=0.0.0.0:8035

View file

@ -24,7 +24,6 @@ styles:
light:
primary: "#0B0438"
accent: "#B8610B"
subtitle: "#7747A7"
background: "#F0F0F0"
title: "#303030"
code_text: "#FFFFFF"
@ -34,7 +33,6 @@ styles:
accent: "#B8610B"
background: "#00031C"
title: "#E3EAF2"
subtitle: "#E3EAF2"
text: "#E3EAF2"
code_text: "#000000"
code_background: "#F0F0F0"

View file

@ -0,0 +1,34 @@
FROM alnoda/base-devspace:4.0
RUN echo "------------------------------------------------------ nvim" \
&& cd /tmp && wget https://github.com/neovim/neovim/releases/download/v0.8.0/nvim-linux64.tar.gz \
&& tar -xzf nvim-linux64.tar.gz \
&& mv /tmp/nvim-linux64 /home/abc/apps/nvim \
&& mkdir /home/abc/.config/nvim/ \
&& echo "------------------------------------------------------ vim-plug" \
&& sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' \
&& mkdir /home/abc/.config/nvim/plugged
COPY --chown=abc:abc init.vim /home/abc/.config/nvim/init.vim
ENV PATH="$PATH:/home/abc/apps/nvim/bin"
RUN echo "------------------------------------------------------ create node environment" \
&& mkdir /home/abc/apps/nvim-nodeenv \
&& cd /home/abc/apps/nvim-nodeenv && nodeenv --node=18.9.0 env && . env/bin/activate \
&& echo "------------------------------------------------------ install nvim plugins" \
&& nvim --headless +PlugInstall +qall \
&& echo "------------------------------------------------------ providers" \
&& python3 -m pip install --user --upgrade pynvim \
&& nvim --headless -c 'CocInstall -sync coc-json coc-pyright coc-tsserver coc-go coc-java coc-html|q'
# Build Alnoda workspace
COPY --chown=abc:abc workspace /tmp/workspace
RUN echo "------------------------------------------------------ build workspace" \
&& pipx install alnoda-wrk \
&& alnoda-wrk build /tmp/workspace \
&& rm -rf /tmp/workspace
# https://github.com/AstroNvim/AstroNvim
# https://www.lunarvim.org/docs/installation
# https://neovimcraft.com/

View file

@ -0,0 +1,203 @@
set nocompatible " disable compatibility to old-time vi
set showmatch " show matching
set ignorecase " case insensitive
set hlsearch " highlight search
set incsearch " incremental search
set tabstop=4 " number of columns occupied by a tab
set softtabstop=4 " see multiple spaces as tabstops so <BS> does the right thing
set expandtab " converts tabs to white space
set shiftwidth=4 " width for autoindents
set autoindent " indent a new line the same amount as the line just typed
set number " add line numbers
set wildmode=longest,list " get bash-like tab completions
set cc=80 " set an 80 column border for good coding style
filetype plugin indent on "allow auto-indenting depending on file type
syntax on " syntax highlighting
set mouse=a " enable mouse click
set clipboard=unnamedplus " using system clipboard
filetype plugin on
set cursorline " highlight current cursorline
set ttyfast " Speed up scrolling in Vim
" set spell " enable spell check (may need to download language package)
" set noswapfile " disable creating swap file
" set backupdir=~/.cache/vim " Directory to store backup files.
" Plugins will be downloaded under the specified directory.
call plug#begin('/home/abc/.config/nvim/plugged')
" Declare the list of plugins.
Plug 'tpope/vim-sensible'
Plug 'junegunn/seoul256.vim'
Plug 'dracula/vim'
Plug 'SirVer/ultisnips'
Plug 'honza/vim-snippets'
Plug 'scrooloose/nerdtree'
Plug 'preservim/nerdcommenter'
Plug 'mhinz/vim-startify'
Plug 'gennaro-tedesco/nvim-jqx'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'sheerun/vim-polyglot'
" fugitive.vim: A Git wrapper so awesome, it should be illegal
Plug 'tpope/vim-fugitive'
" A light and configurable statusline/tabline plugin for Vim
Plug 'itchyny/lightline.vim'
" Vim plugin, insert or delete brackets, parens, quotes in pair
Plug 'ntk148v/auto-pairs'
" Multiple cursors plugin for vim/neovim
Plug 'mg979/vim-visual-multi', {'branch': 'master'}
" List ends here. Plugins become visible to Vim after this call.
call plug#end()
" Start NERDTree when Vim is started without file arguments.
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists('s:std_in') | NERDTree | endif
autocmd BufEnter NERD_tree_* | execute 'normal R'
if (has("termguicolors"))
set termguicolors
endif
syntax enable
colorscheme dracula
" set splitright
" set splitbelow
hi! EndOfBuffer ctermbg=bg ctermfg=bg guibg=bg guifg=bg
" Use tab for trigger completion with characters ahead and navigate.
" NOTE: There's always complete item selected by default, you may want to enable
" no select by `"suggest.noselect": true` in your configuration file.
" NOTE: Use command ':verbose imap <tab>' to make sure tab is not mapped by
" other plugin before putting this into your config.
inoremap <silent><expr> <TAB>
\ coc#pum#visible() ? coc#pum#next(1) :
\ CheckBackspace() ? "\<Tab>" :
\ coc#refresh()
inoremap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"
" Make <CR> to accept selected completion item or notify coc.nvim to format
" <C-g>u breaks current undo, please make your own choice.
inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm()
\: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
function! CheckBackspace() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
" Use <c-space> to trigger completion.
if has('nvim')
inoremap <silent><expr> <c-space> coc#refresh()
else
inoremap <silent><expr> <c-@> coc#refresh()
endif
" Use `[g` and `]g` to navigate diagnostics
" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list.
nmap <silent> [g <Plug>(coc-diagnostic-prev)
nmap <silent> ]g <Plug>(coc-diagnostic-next)
" GoTo code navigation.
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
" Use K to show documentation in preview window.
nnoremap <silent> K :call ShowDocumentation()<CR>
function! ShowDocumentation()
if CocAction('hasProvider', 'hover')
call CocActionAsync('doHover')
else
call feedkeys('K', 'in')
endif
endfunction
" Highlight the symbol and its references when holding the cursor.
autocmd CursorHold * silent call CocActionAsync('highlight')
" Symbol renaming.
nmap <leader>rn <Plug>(coc-rename)
" Formatting selected code.
xmap <leader>f <Plug>(coc-format-selected)
nmap <leader>f <Plug>(coc-format-selected)
augroup mygroup
autocmd!
" Setup formatexpr specified filetype(s).
autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
" Update signature help on jump placeholder.
autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
augroup end
" Applying codeAction to the selected region.
" Example: `<leader>aap` for current paragraph
xmap <leader>a <Plug>(coc-codeaction-selected)
nmap <leader>a <Plug>(coc-codeaction-selected)
" Remap keys for applying codeAction to the current buffer.
nmap <leader>ac <Plug>(coc-codeaction)
" Apply AutoFix to problem on the current line.
nmap <leader>qf <Plug>(coc-fix-current)
" Run the Code Lens action on the current line.
nmap <leader>cl <Plug>(coc-codelens-action)
" Map function and class text objects
" NOTE: Requires 'textDocument.documentSymbol' support from the language server.
xmap if <Plug>(coc-funcobj-i)
omap if <Plug>(coc-funcobj-i)
xmap af <Plug>(coc-funcobj-a)
omap af <Plug>(coc-funcobj-a)
xmap ic <Plug>(coc-classobj-i)
omap ic <Plug>(coc-classobj-i)
xmap ac <Plug>(coc-classobj-a)
omap ac <Plug>(coc-classobj-a)
" Remap <C-f> and <C-b> for scroll float windows/popups.
if has('nvim-0.4.0') || has('patch-8.2.0750')
nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
endif
" Use CTRL-S for selections ranges.
" Requires 'textDocument/selectionRange' support of language server.
nmap <silent> <C-s> <Plug>(coc-range-select)
xmap <silent> <C-s> <Plug>(coc-range-select)
" Add `:Format` command to format current buffer.
command! -nargs=0 Format :call CocActionAsync('format')
" Add `:Fold` command to fold current buffer.
command! -nargs=? Fold :call CocAction('fold', <f-args>)
" Add `:OR` command for organize imports of the current buffer.
command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport')
" Add (Neo)Vim's native statusline support.
" NOTE: Please see `:h coc-status` for integrations with external plugins that
" provide custom statusline: lightline.vim, vim-airline.
set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')}
" Mappings for CoCList
" Show all diagnostics.
nnoremap <silent><nowait> <space>a :<C-u>CocList diagnostics<cr>
" Manage extensions.
nnoremap <silent><nowait> <space>e :<C-u>CocList extensions<cr>
" Show commands.
nnoremap <silent><nowait> <space>c :<C-u>CocList commands<cr>
" Find symbol of current document.
nnoremap <silent><nowait> <space>o :<C-u>CocList outline<cr>
" Search workspace symbols.
nnoremap <silent><nowait> <space>s :<C-u>CocList -I symbols<cr>
" Do default action for next item.
nnoremap <silent><nowait> <space>j :<C-u>CocNext<CR>
" Do default action for previous item.
nnoremap <silent><nowait> <space>k :<C-u>CocPrev<CR>
" Resume latest coc list.
nnoremap <silent><nowait> <space>p :<C-u>CocListResume<CR>

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

View file

@ -0,0 +1,108 @@
---
# mandatory
name: Neovim workspace
doc_url: https://github.com/bluxmit/alnoda-workspaces/blob/main/workspaces/neovim-workspace/README.md
author: bluxmit
version: 4.0
repository: https://github.com/bluxmit/alnoda-workspaces/tree/main/workspaces/neovim-workspace
description: |
Workspace with hyperextensible Vim-based text editor
styles:
colors:
light:
code_text: "#282A36"
code_background: "#252525"
dark:
code_text: "#EAB676"
code_background: "#3C3C3C"
styles:
font: Roboto # chose any from https://fonts.google.com/
colors:
light:
primary: "#282A36"
accent: "#FF79C6"
background: "#F5F7F7"
dark:
primary: "#424450"
accent: "#45C368"
background: "#282A36"
title: "#F1FA8C"
text: "#D368A8"
common_colors:
header: "#FFFFFF"
nav: "#eab676"
pages:
home:
- name: Editor
port: 8021
path: /
title: Code editor
description: "Vim-based code editor - Neovim"
image: neovim.jpg
- name: M.Commander
port: 8025
title: M.Commander
description: Feature rich visual file manager with internal text viewer and editor
image: mc.jpg
start:
- name: Neovim
folder: /home/
cmd: ttyd -p 8021 /bin/zsh -c 'cd /home/abc/apps/nvim-nodeenv && . env/bin/activate && cd /home && nvim'
cheatsheet:
Neoim:
- cmd: i
description: enter insert mode, allows editing file
- cmd: Esc
description: exit insert mode, enter visual (command) mode
- cmd: mouse double click
description: toggle between insert/visual modes
- cmd: y
description: copy (yank) selected text
- cmd: p
description: paste copied (yank) text
- cmd: d
description: delete selected lines
- cmd: :te
description: open terminal
- cmd: u
description: undo all changes in the last insert mode
- cmd: 2u
description: undo all changes done in 2 last insert modes
- cmd: Ctrl + r
description: redo (undone changes)
- cmd: :w
description: save file changes
- cmd: :wq
description: save and exit
- cmd: :q
description: close
- cmd: :q!
description: trash all changes
- cmd: m
description: create/delete files and folders (if focused on file tree)
- cmd: u
description: set filetree to one level above (if focused on file tree)
- cmd: t
description: open the selected file in a new fullscreen tab (if focused on file tree)
- cmd: i
description: open the selected file in a horizontal split window (if focused on file tree)
- cmd: s
description: open the selected file in a vertical split window (if focused on file tree)
- cmd: I (Shift + i)
description: show hidden files (if focused on file tree)
- cmd: :G
description: manage Git repository
links:
Developer help:
- url: "https://spacevim.org/"
name: "SpaceVim"
description: "SpaceVim community website"

View file

@ -14,15 +14,13 @@ RUN echo "------------------------------------------------------ node, npm" \
&& nvm alias default $NODE_VERSION \
&& nvm use default
# ENV NODE_PATH $NVM_DIR/v$NODE_VERSION/lib/node_modules
# ENV PATH $NVM_DIR/v$NODE_VERSION/bin:$PATH
# Install additional codeserver extensions
RUN echo "------------------------------------------------------ extensions" \
&& code-server --install-extension bradlc.vscode-tailwindcss \
&& code-server --install-extension anseki.vscode-color \
&& code-server --install-extension christian-kohler.npm-intellisense \
&& code-server --install-extension xabikos.JavaScriptSnippets \
&& code-server --install-extension dbaeumer.vscode-eslint \
&& code-server --install-extension kumar-harsh.graphql-for-vscode
# Change default codeserver theme

View file

@ -27,6 +27,11 @@ RUN echo "------------------------------------------------------ PHP " \
&& find /home -type d | xargs -I{} chown -R abc {} \
&& find /home -type f | xargs -I{} chown abc {}
pwarchol.vscode-php-file-link
rangav.vscode-thunder-client
USER abc

View file

@ -10,17 +10,20 @@ RUN pip install -r /home/abc/installed-python-packages/python-requirements.txt \
&& apt-get install -y graphviz \
&& apt-get install -y python3-pydotplus \
&& echo "------------------------------------------------------ utils" \
&& echo "alias python-report='/home/abc/utils/python-report.sh'" >> /home/abc/.zshrc \
&& chmod +x /home/abc/utils/python-report.sh && chown abc /home/abc/utils/python-report.sh \
&& echo "------------------------------------------------------ user" \
&& 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 {}
&& pipx install visidata
# Install additional codeserver extensions
RUN echo "------------------------------------------------------ extensions" \
&& code-server --install-extension jolaleye.horizon-theme-vscode \
&& code-server --install-extension eamodio.gitlens
&& code-server --install-extension ms-python.python \
&& code-server --install-extension samuelcolvin.jinjahtml \
&& code-server --install-extension KevinRose.vsc-python-indent \
&& code-server --install-extension janisdd.vscode-edit-csv \
&& code-server --install-extension GrapeCity.gc-excelviewer \
&& code-server --install-extension eamodio.gitlens \
&& code-server --install-extension TabNine.tabnine-vscode
# Change default codeserver theme
COPY --chown=abc:abc settings.json /home/abc/.local/share/code-server/User/settings.json

View file

@ -14,13 +14,24 @@ RUN curl -sSL https://install.python-poetry.org | python3 -
# Add poetry to the $PATH
ENV PATH="$HOME/.poetry/bin:${PATH}"
RUN echo "------------------------------------------------------ Pyenv" \
&& sudo apt-get install -y libedit-dev \
&& sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \
&& sudo apt-get install -y llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl \
&& curl https://pyenv.run | bash \
&& echo 'eval "$(pyenv init -)"' >> /home/abc/.zshrc
ENV PYENV_ROOT="/home/abc/.pyenv"
ENV PATH="$PYENV_ROOT/bin:$PATH"
# Install additional codeserver extensions
RUN echo "------------------------------------------------------ extensions" \
&& code-server --install-extension eamodio.gitlens
&& code-server --install-extension ms-python.python \
&& code-server --install-extension samuelcolvin.jinjahtml
# Change default codeserver theme
COPY --chown=abc:abc settings.json /home/abc/.local/share/code-server/User/settings.json
# Build Alnoda workspace
COPY --chown=abc:abc workspace /tmp/workspace
RUN pipx uninstall alnoda-wrk; pipx install alnoda-wrk==0.2.16; alnoda-wrk build /tmp/workspace && rm -rf /tmp/workspace
RUN pipx uninstall alnoda-wrk; pipx install alnoda-wrk; alnoda-wrk build /tmp/workspace && rm -rf /tmp/workspace

View file

@ -8,7 +8,7 @@ description: |
# Python workspace
Containerized isolated development environment for Python projects.
tags: python, pip, ipython, poetry, pylint, pytest
tags: python, pip, ipython, poetry, pyenv, pylint, pytest
# UI icons
logo: python-circle-white.svg

View file

@ -0,0 +1,24 @@
FROM alnoda/base-devspace:4.0
RUN echo "------------------------------------------------------ nvim" \
&& cd /tmp && wget https://github.com/neovim/neovim/releases/download/v0.8.0/nvim-linux64.tar.gz \
&& tar -xzf nvim-linux64.tar.gz \
&& mv /tmp/nvim-linux64 /home/abc/apps/nvim \
&& python -m pip install pynvim \
&& echo "------------------------------------------------------ spacevim" \
&& curl -sLf https://spacevim.org/install.sh | bash \
&& pip install --user pynvim \
&& pip install --user jedi \
&& mkdir -p /home/abc/.local/state/nvim/shada/ \
&& touch /home/abc/.local/state/nvim/shada/main.shada
ENV PATH="$PATH:/home/abc/apps/nvim/bin"
COPY --chown=abc:abc init.toml /home/abc/.SpaceVim.d/init.toml
# Build Alnoda workspace
COPY --chown=abc:abc workspace /tmp/workspace
RUN echo "------------------------------------------------------ build workspace" \
&& pipx install alnoda-wrk \
&& alnoda-wrk build /tmp/workspace \
&& rm -rf /tmp/workspace

View file

@ -0,0 +1,27 @@
- Install [neovim](https://github.com/neovim/neovim)
```
sudo apt-get install -y neovim
```
- Install Spacevim
```
curl -sLf https://spacevim.org/install.sh | bash
```
Enable +python3 and +python support
```
pip install --user pynvim
```
COPY init.toml /home/abc/.SpaceVim.d/init.toml
## Font
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v2.1.0/DroidSansMono.zip
unzip DroidSansMono.zip -d ~/.fonts

View file

@ -0,0 +1,59 @@
[options]
# set spacevim theme. by default colorscheme layer is not loaded,
# if you want to use more colorscheme, please load the colorscheme
# layer
colorscheme = "gruvbox"
colorscheme_bg = "dark"
# Disable guicolors in basic mode, many terminal do not support 24bit
# true colors
enable_guicolors = true
# Disable statusline separator, if you want to use other value, please
# install nerd fonts
statusline_separator = "arrow"
statusline_iseparator = "arrow"
buffer_index_type = 4
enable_tabline_filetype_icon = false
enable_statusline_mode = false
filetree_direction = "left"
guifont = ""
relativenumber = false
# Enable autocomplete layer
[[layers]]
name = 'autocomplete'
auto_completion_return_key_behavior = "complete"
auto_completion_tab_key_behavior = "smart"
[[layers]]
name = 'shell'
default_position = 'bottom'
default_height = 30
[[layers]]
name = "ui"
enable_scrollbar = true
[[layers]]
name = "colorscheme"
[[layers]]
name = "lang#kotlin"
[[layers]]
name = 'lang#c'
enable_clang_syntax_highlight = true
[[layers]]
name = "lang#go"
[[layers]]
name = "lang#python"
[[layers]]
name = 'git'
[[layers]]
name = 'VersionControl'
[[custom_plugins]]
repo = "https://gitlab.com/code-stats/code-stats-vim.git"
merged = false

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 KiB

View file

@ -0,0 +1,81 @@
---
# mandatory
name: SpaceVim workspace
doc_url: https://github.com/bluxmit/alnoda-workspaces/blob/main/workspaces/spacevim-workspace/README.md
author: bluxmit
version: 4.0
repository: https://github.com/bluxmit/alnoda-workspaces/tree/main/workspaces/spacevim-workspace
description: |
Workspace with browser-based SpaceVim IDE
styles:
colors:
light:
code_text: "#EAB676"
code_background: "#252525"
dark:
code_text: "#EAB676"
code_background: "#3C3C3C"
pages:
home:
- name: IDE
port: 8021
path: /
title: IDE
description: "Browser-based full-featured SpaceVim IDE"
image: spacevim.jpg
start:
- name: SpaceVim
folder: /home/
cmd: ttyd -p 8021 /bin/zsh -c 'nvim'
cheatsheet:
SpaceVim:
- cmd: i
description: enter insert mode, allows editing file
- cmd: Esc
description: exit insert mode, enter command mode
- cmd: y
description: copy (yank) selected text
- cmd: p
description: paste copied (yank) text
- cmd: d
description: delete selected lines
- cmd: u
description: undo all changes in the last insert mode
- cmd: 2u
description: undo all changes done in 2 last insert modes
- cmd: Ctrl + r
description: redo (undone changes)
- cmd: Space
description: menu to manage files, windows, togglers, options and more
- cmd: s
description: manage tabs, screens
- cmd: g
description: editor and navigation menu
- cmd: /
description: search in file
- cmd: :w
description: save file changes
- cmd: :wq
description: save and exit
- cmd: :q!
description: trash all changes
- cmd: .
description: show hidden files (if focused on file tree)
- cmd: N
description: create new folder or file (if focused on file tree)
- cmd: r
description: rename folder or file (if focused on file tree)
- cmd: d
description: delete folder or file (if focused on file tree)
links:
Developer help:
- url: "https://spacevim.org/"
name: "SpaceVim"
description: "SpaceVim community website"

View file

@ -6,7 +6,7 @@ COPY zsh-in-docker.sh /tmp/zsh-in-docker.sh
RUN DEBIAN_FRONTEND=noninteractive apt-get -y update \
&& echo "------------------------------------------------------ Common" \
&& apt-get install -y sudo curl wget telnet jq \
&& apt-get install -y sudo curl wget telnet jq dnsutils \
&& apt-get install -y software-properties-common \
&& apt-get install -y zip gzip tar \
&& echo "------------------------------------------------------ User" \
@ -16,8 +16,8 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get -y update \
&& chown -R abc /home/abc \
&& mkdir -p /home/abc/apps \
&& chown -R abc /home/abc/apps \
&& echo "------------------------------------------------------ Nix folder" \
&& mkdir -m 0755 /nix && chown abc /nix \
&& echo "------------------------------------------------------ Nix folder and conf" \
&& mkdir -m 0750 /nix && chown abc /nix \
&& echo "------------------------------------------------------ docker systemctl replacement" \
&& wget https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/master/files/docker/systemctl3.py -O /usr/local/bin/systemctl \
&& chown -R abc /usr/local/bin/systemctl \
@ -34,6 +34,7 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get -y update \
&& echo "# Allow non-admin users to install packages" >> /etc/sudoers \
&& echo "abc ALL = NOPASSWD : /usr/bin/apt, /usr/bin/apt-get, /usr/bin/aptitude, /usr/bin/add-apt-repository, /usr/local/bin/pip, /usr/local/bin/systemctl, /usr/bin/dpkg, /usr/sbin/dpkg-reconfigure" >> /etc/sudoers \
&& chown abc /etc/apt/sources.list.d \
&& chown abc /etc/apt/trusted.gpg.d \
&& echo "------------------------------------------------------ GIT" \
&& apt-get install -y git git-flow \
&& wget -P /tmp https://github.com/jesseduffield/lazygit/releases/download/v0.34/lazygit_0.34_Linux_x86_64.tar.gz \
@ -123,6 +124,7 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get -y update \
&& printf '%s\n%s\n' "export ZSH_DISABLE_COMPFIX=true" "$(cat /home/abc/.zshrc)" > /home/abc/.zshrc \
&& echo "------------------------------------------------------ Code editors" \
&& apt-get install -y nano vim \
&& apt-get install -y tilde \
&& echo "------------------------------------------------------ File browsers: MC" \
&& apt-get install -y mc \
&& echo "------------------------------------------------------ multitasking in a terminal " \
@ -130,7 +132,6 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get -y update \
&& echo "------------------------------------------------------ Sys monitoring: Glances, Vizex" \
&& apt-get install -y ncdu htop \
&& pip install glances==3.2.5 \
&& pip install vizex==2.1.0 \
&& echo "------------------------------------------------------ Web-based terminal" \
&& cd /tmp && wget https://github.com/tsl0922/ttyd/releases/download/1.7.1/ttyd.x86_64 \
&& mv ttyd.x86_64 /usr/bin/ttyd \
@ -165,7 +166,8 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get -y update \
USER abc
RUN echo "------------------------------------------------------ Nix" \
RUN git config --global credential.helper cache \
&& echo "------------------------------------------------------ Nix" \
&& curl -L https://nixos.org/nix/install > /tmp/nix.sh \
&& chmod +x /tmp/nix.sh \
&& sh /tmp/nix.sh --no-daemon \
@ -182,7 +184,7 @@ ENV PATH="/home/abc/.nix-profile/bin:${PATH}"
RUN echo "------------------------------------------------------ after PATH updates" \
&& pipx install rich-cli \
&& echo 'alias p="rich"' >> /home/abc/.zshrc \
&& nix-env -iA cachix -f https://cachix.org/api/v1/install
&& nix-env -iA cachix -f https://cachix.org/api/v1/install
###### ENTRY