diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 92563ea..2447ae6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -11,7 +11,7 @@ variables:
BASE_TAG: "develop"
USE_PRIVATE_IMAGES: 0
KASM_RELEASE: "1.14.0"
- TEST_INSTALLER: "https://kasm-static-content.s3.amazonaws.com/kasm_release_1.14.0.7f3582.tar.gz"
+ TEST_INSTALLER: "https://kasmweb-build-artifacts.s3.amazonaws.com/kasm_backend/1e99090dadb026f1e37e34e53334da20061bc21c/kasm_workspaces_feature_tester-1.15-pre-release_1.15.0.1e9909.tar.gz"
before_script:
- export SANITIZED_BRANCH="$(echo $CI_COMMIT_REF_NAME | sed -r 's#^release/##' | sed 's/\//_/g')"
diff --git a/ci-scripts/app-layer.sh b/ci-scripts/app-layer.sh
new file mode 100644
index 0000000..7c29633
--- /dev/null
+++ b/ci-scripts/app-layer.sh
@@ -0,0 +1,89 @@
+#! /bin/bash
+
+# Ingest cli variables
+## Parse input ##
+NAME=$1
+TYPE=$2
+BASE=$3
+IS_ROLLING=$4
+
+# Determine if this is a private or public build
+if [[ "${CI_COMMIT_REF_NAME}" == release/* ]] || [[ "${CI_COMMIT_REF_NAME}" == "develop" ]]; then
+ ENDPOINT="${NAME}"
+ APPS="kasm-apps"
+else
+ ENDPOINT="${NAME}-private"
+ APPS="kasm-apps-private"
+fi
+
+# Determine if this is a rolling build
+if [[ "${CI_PIPELINE_SOURCE}" == "schedule" ]] || [[ "${IS_ROLLING}" == "true" ]]; then
+ SANITIZED_BRANCH=${SANITIZED_BRANCH}-rolling
+fi
+
+# Create workspace and base dockerfile
+mkdir -p applayer
+cd applayer
+echo "FROM scratch" > Dockerfile
+echo "ADD ./layer.tar /" >> Dockerfile
+
+# Clean up layer tar to not include overlay info
+clean_tar () {
+ mkdir cleantar
+ tar xf layer.tar -C cleantar/ --exclude="**.wh**"
+ rm layer.tar
+ cd cleantar
+ tar -cf layer.tar *
+ mv layer.tar ../
+ cd ..
+ rm -Rf cleantar/
+}
+
+# Multi arch
+if [ "${TYPE}" == "multi" ]; then
+ for ARCH in x86_64 aarch64; do
+ # Create image tarballs
+ docker save -o $ARCH.tar ${ORG_NAME}/${ENDPOINT}:${ARCH}-${SANITIZED_BRANCH}
+ # Pull out the layer we are looking for
+ mkdir $ARCH
+ mv $ARCH.tar $ARCH
+ cd $ARCH
+ tar xf $ARCH.tar
+ LAYER_FOLDER=$(du -sk * |sort -nr | sed '3q;d' | awk '{print $2}')
+ mv $LAYER_FOLDER/layer.tar ../
+ cd ../
+ rm -Rf $ARCH
+ clean_tar
+ # build the image based on this single layer
+ docker build -t ${ORG_NAME}/${APPS}:${ARCH}-${BASE}-${NAME}-${SANITIZED_BRANCH} .
+ docker push ${ORG_NAME}/${APPS}:${ARCH}-${BASE}-${NAME}-${SANITIZED_BRANCH}
+ rm -f layer.tar
+ done
+ # Manifest
+ docker manifest push --purge ${ORG_NAME}/${APPS}:${BASE}-${NAME}-${SANITIZED_BRANCH} || :
+ docker manifest create ${ORG_NAME}/${APPS}:${BASE}-${NAME}-${SANITIZED_BRANCH} ${ORG_NAME}/${APPS}:x86_64-${BASE}-${NAME}-${SANITIZED_BRANCH} ${ORG_NAME}/${APPS}:aarch64-${BASE}-${NAME}-${SANITIZED_BRANCH}
+ docker manifest annotate ${ORG_NAME}/${APPS}:${BASE}-${NAME}-${SANITIZED_BRANCH} ${ORG_NAME}/${APPS}:aarch64-${BASE}-${NAME}-${SANITIZED_BRANCH} --os linux --arch arm64 --variant v8
+ docker manifest push --purge ${ORG_NAME}/${APPS}:${BASE}-${NAME}-${SANITIZED_BRANCH}
+# Single arch
+else
+ # Create image tarballs
+ docker save -o image.tar ${ORG_NAME}/${ENDPOINT}:${SANITIZED_BRANCH}
+ # Pull out the layer we are looking for
+ mkdir image
+ mv image.tar image
+ cd image
+ tar xf image.tar
+ LAYER_FOLDER=$(du -sk * |sort -nr | sed '3q;d' | awk '{print $2}')
+ mv $LAYER_FOLDER/layer.tar ../
+ cd ../
+ rm -Rf image
+ clean_tar
+ # build the image based on this single layer
+ docker build -t ${ORG_NAME}/${APPS}:${BASE}-${NAME}-${SANITIZED_BRANCH} .
+ docker push ${ORG_NAME}/${APPS}:${BASE}-${NAME}-${SANITIZED_BRANCH}
+ rm -f layer.tar
+fi
+
+# Cleanup
+cd ..
+rm -Rf applayer
diff --git a/ci-scripts/gitlab-ci.template b/ci-scripts/gitlab-ci.template
index 24548ff..1e75051 100644
--- a/ci-scripts/gitlab-ci.template
+++ b/ci-scripts/gitlab-ci.template
@@ -137,8 +137,9 @@ manifest_{{ IMAGE.name }}:
stage: manifest
when: always
script:
- - apk add bash
- - bash ci-scripts/manifest.sh "{{ IMAGE.name }}" "multi"
+ - apk add bash tar
+ - bash ci-scripts/manifest.sh "{{ IMAGE.name }}" "multi"{% if IMAGE.singleapp %}
+ - bash ci-scripts/app-layer.sh "{{ IMAGE.name }}" "multi" "{{ IMAGE.base }}"{% endif %}
{% if FILE_LIMITS %}only:
changes:
{% for FILE in files %}- {{ FILE }}
@@ -162,8 +163,9 @@ manifest_{{ IMAGE.name }}:
stage: manifest
when: always
script:
- - apk add bash
- - bash ci-scripts/manifest.sh "{{ IMAGE.name }}" "single"
+ - apk add bash tar
+ - bash ci-scripts/manifest.sh "{{ IMAGE.name }}" "single"{% if IMAGE.singleapp %}
+ - bash ci-scripts/app-layer.sh "{{ IMAGE.name }}" "single" "{{ IMAGE.base }}"{% endif %}
{% if FILE_LIMITS %}only:
changes:
{% for FILE in files %}- {{ FILE }}
diff --git a/ci-scripts/template-vars.yaml b/ci-scripts/template-vars.yaml
index 916dd74..34dde71 100644
--- a/ci-scripts/template-vars.yaml
+++ b/ci-scripts/template-vars.yaml
@@ -5,12 +5,14 @@ files: &UNIVERSAL_CHANGE_FILES
multiImages:
- name: audacity
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-audacity
changeFiles:
- dockerfile-kasm-audacity
- src/ubuntu/install/audacity/**
- name: chromium
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-chromium
changeFiles:
@@ -19,24 +21,28 @@ multiImages:
- src/ubuntu/install/chromium/**
- src/ubuntu/install/certificates/**
- name: deluge
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-deluge
changeFiles:
- dockerfile-kasm-deluge
- src/ubuntu/install/deluge/**
- name: doom
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-doom
changeFiles:
- dockerfile-kasm-doom
- src/ubuntu/install/doom/**
- name: filezilla
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-filezilla
changeFiles:
- dockerfile-kasm-filezilla
- src/ubuntu/install/filezilla/**
- name: firefox
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-firefox
changeFiles:
@@ -45,18 +51,21 @@ multiImages:
- src/ubuntu/install/firefox/**
- src/ubuntu/install/certificates/**
- name: gimp
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-gimp
changeFiles:
- dockerfile-kasm-gimp
- src/ubuntu/install/gimp/**
- name: inkscape
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-inkscape
changeFiles:
- dockerfile-kasm-inkscape
- src/ubuntu/install/inkscape/**
- name: java-dev
+ singleapp: false
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-java-dev
changeFiles:
@@ -70,6 +79,7 @@ multiImages:
- src/ubuntu/install/chrome/**
- src/ubuntu/install/eclipse/**
- name: libre-office
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-libre-office
changeFiles:
@@ -84,6 +94,7 @@ multiImages:
- src/ubuntu/install/nessus/**
- src/ubuntu/install/cleanup/**
- name: opensuse-15-desktop
+ singleapp: false
base: core-opensuse-15
dockerfile: dockerfile-kasm-opensuse-15-desktop
changeFiles:
@@ -99,6 +110,7 @@ multiImages:
- src/ubuntu/install/slack/**
- src/opensuse/install/**
- name: oracle-8-desktop
+ singleapp: false
base: core-oracle-8
dockerfile: dockerfile-kasm-oracle-8-desktop
changeFiles:
@@ -112,33 +124,43 @@ multiImages:
- src/ubuntu/install/chromium/**
- src/ubuntu/install/slack/**
- name: pinta
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-pinta
changeFiles:
- dockerfile-kasm-pinta
- src/ubuntu/install/pinta/**
- name: qbittorrent
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-qbittorrent
changeFiles:
- dockerfile-kasm-qbittorrent
- src/ubuntu/install/qbittorrent/**
+ - name: redroid
+ singleapp: false
+ base: core-ubuntu-jammy
+ dockerfile: dockerfile-kasm-redroid
+ changeFiles:
+ - dockerfile-kasm-redroid
+ - src/ubuntu/install/redroid/**
+ - src/ubuntu/install/android_studio/**
+ - src/ubuntu/install/misc/**
+ - src/ubuntu/install/sublime_text/**
+ - src/ubuntu/install/vs_code/**
+ - src/ubuntu/install/chrome/**
+ - src/ubuntu/install/chromium/**
+ - src/ubuntu/install/tools/**
+ - src/ubuntu/install/cleanup/**
- name: remmina
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-remmina
changeFiles:
- dockerfile-kasm-remmina
- src/ubuntu/install/remmina/**
- - name: slack
- base: core-ubuntu-focal
- dockerfile: dockerfile-kasm-slack
- changeFiles:
- - dockerfile-kasm-slack
- - src/ubuntu/install/slack/**
- - src/ubuntu/install/chrone/**
- - src/ubuntu/install/tools/**
- - src/ubuntu/install/cleanup/**
- name: spiderfoot
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-spiderfoot
changeFiles:
@@ -148,18 +170,21 @@ multiImages:
- src/ubuntu/install/tools/**
- src/ubuntu/install/cleanup/**
- name: sublime-text
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-sublime-text
changeFiles:
- dockerfile-kasm-sublime-text
- src/ubuntu/install/sublime_text/**
- name: telegram
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-telegram
changeFiles:
- dockerfile-kasm-telegram
- src/ubuntu/install/telegram/**
- name: terminal
+ singleapp: false
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-terminal
changeFiles:
@@ -168,12 +193,14 @@ multiImages:
- src/ubuntu/install/ansible/**
- src/ubuntu/install/terminal/**
- name: thunderbird
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-thunderbird
changeFiles:
- dockerfile-kasm-thunderbird
- src/ubuntu/install/thunderbird/**
- name: tor-browser
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-tor-browser
changeFiles:
@@ -181,6 +208,7 @@ multiImages:
- src/ubuntu/install/gtk/**
- src/ubuntu/install/torbrowser/**
- name: ubuntu-focal-desktop
+ singleapp: false
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-ubuntu-focal-desktop
changeFiles:
@@ -207,6 +235,7 @@ multiImages:
- src/ubuntu/install/chrome/**
- src/ubuntu/install/slack/**
- name: ubuntu-focal-desktop-vpn
+ singleapp: false
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-ubuntu-focal-desktop-vpn
changeFiles:
@@ -234,6 +263,7 @@ multiImages:
- src/ubuntu/install/slack/**
- src/ubuntu/install/vpn/**
- name: ubuntu-jammy-desktop
+ singleapp: false
base: core-ubuntu-jammy
dockerfile: dockerfile-kasm-ubuntu-jammy-desktop
changeFiles:
@@ -260,18 +290,21 @@ multiImages:
- src/ubuntu/install/chrome/**
- src/ubuntu/install/slack/**
- name: vlc
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-vlc
changeFiles:
- dockerfile-kasm-vlc
- src/ubuntu/install/vlc/**
- name: vs-code
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-vs-code
changeFiles:
- dockerfile-kasm-vs-code
- src/ubuntu/install/vs_code/**
- name: almalinux-8-desktop
+ singleapp: false
base: core-almalinux-8
dockerfile: dockerfile-kasm-almalinux-8-desktop
changeFiles:
@@ -285,6 +318,7 @@ multiImages:
- src/ubuntu/install/chromium/**
- src/ubuntu/install/slack/**
- name: almalinux-9-desktop
+ singleapp: false
base: core-almalinux-9
dockerfile: dockerfile-kasm-almalinux-9-desktop
changeFiles:
@@ -297,6 +331,7 @@ multiImages:
- src/ubuntu/install/chromium/**
- src/ubuntu/install/slack/**
- name: alpine-317-desktop
+ singleapp: false
base: core-alpine-317
dockerfile: dockerfile-kasm-alpine-317-desktop
changeFiles:
@@ -305,6 +340,7 @@ multiImages:
- src/ubuntu/install/cleanup/**
- src/alpine/install/**
- name: alpine-318-desktop
+ singleapp: false
base: core-alpine-318
dockerfile: dockerfile-kasm-alpine-318-desktop
changeFiles:
@@ -312,7 +348,17 @@ multiImages:
- src/ubuntu/install/langpacks/**
- src/ubuntu/install/cleanup/**
- src/alpine/install/**
+ - name: alpine-319-desktop
+ singleapp: false
+ base: core-alpine-319
+ dockerfile: dockerfile-kasm-alpine-319-desktop
+ changeFiles:
+ - dockerfile-kasm-alpine-319-desktop
+ - src/ubuntu/install/langpacks/**
+ - src/ubuntu/install/cleanup/**
+ - src/alpine/install/**
- name: brave
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-brave
changeFiles:
@@ -320,6 +366,7 @@ multiImages:
- src/ubuntu/install/gtk/**
- src/ubuntu/install/brave/**
- name: debian-bullseye-desktop
+ singleapp: false
base: core-debian-bullseye
dockerfile: dockerfile-kasm-debian-bullseye-desktop
changeFiles:
@@ -344,6 +391,7 @@ multiImages:
- src/ubuntu/install/chrome/**
- src/ubuntu/install/slack/**
- name: debian-bookworm-desktop
+ singleapp: false
base: core-debian-bookworm
dockerfile: dockerfile-kasm-debian-bookworm-desktop
changeFiles:
@@ -368,6 +416,7 @@ multiImages:
- src/ubuntu/install/chrome/**
- src/ubuntu/install/slack/**
- name: fedora-37-desktop
+ singleapp: false
base: core-fedora-37
dockerfile: dockerfile-kasm-fedora-37-desktop
changeFiles:
@@ -380,6 +429,7 @@ multiImages:
- src/ubuntu/install/chromium/**
- src/ubuntu/install/slack/**
- name: fedora-38-desktop
+ singleapp: false
base: core-fedora-38
dockerfile: dockerfile-kasm-fedora-38-desktop
changeFiles:
@@ -391,7 +441,21 @@ multiImages:
- src/ubuntu/install/cleanup/**
- src/ubuntu/install/chromium/**
- src/ubuntu/install/slack/**
+ - name: fedora-39-desktop
+ singleapp: false
+ base: core-fedora-39
+ dockerfile: dockerfile-kasm-fedora-39-desktop
+ changeFiles:
+ - dockerfile-kasm-fedora-39-desktop
+ - src/oracle/install/**
+ - src/ubuntu/install/thunderbird/**
+ - src/ubuntu/install/remmina/**
+ - src/ubuntu/install/firefox/**
+ - src/ubuntu/install/cleanup/**
+ - src/ubuntu/install/chromium/**
+ - src/ubuntu/install/slack/**
- name: kali-rolling-desktop
+ singleapp: false
base: core-kali-rolling
dockerfile: dockerfile-kasm-kali-rolling-desktop
changeFiles:
@@ -400,12 +464,14 @@ multiImages:
- src/ubuntu/install/cleanup/**
- src/ubuntu/install/chromium/**
- name: minetest
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-minetest
changeFiles:
- dockerfile-kasm-minetest
- src/ubuntu/install/minetest/**
- name: oracle-9-desktop
+ singleapp: false
base: core-oracle-9
dockerfile: dockerfile-kasm-oracle-9-desktop
changeFiles:
@@ -417,22 +483,25 @@ multiImages:
- src/ubuntu/install/cleanup/**
- src/ubuntu/install/chromium/**
- src/ubuntu/install/slack/**
- - name: parrotos-5-desktop
- base: core-parrotos-5
- dockerfile: dockerfile-kasm-parrotos-5-desktop
+ - name: parrotos-6-desktop
+ singleapp: false
+ base: core-parrotos-6
+ dockerfile: dockerfile-kasm-parrotos-6-desktop
changeFiles:
- - dockerfile-kasm-parrotos-5-desktop
+ - dockerfile-kasm-parrotos-6-desktop
- src/ubuntu/install/parrot/**
- src/ubuntu/install/firefox/**
- src/ubuntu/install/cleanup/**
- src/ubuntu/install/chromium/**
- name: retroarch
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-retroarch
changeFiles:
- dockerfile-kasm-retroarch
- src/ubuntu/install/retroarch/**
- name: rockylinux-8-desktop
+ singleapp: false
base: core-rockylinux-8
dockerfile: dockerfile-kasm-rockylinux-8-desktop
changeFiles:
@@ -446,6 +515,7 @@ multiImages:
- src/ubuntu/install/chromium/**
- src/ubuntu/install/slack/**
- name: rockylinux-9-desktop
+ singleapp: false
base: core-rockylinux-9
dockerfile: dockerfile-kasm-rockylinux-9-desktop
changeFiles:
@@ -458,12 +528,14 @@ multiImages:
- src/ubuntu/install/chromium/**
- src/ubuntu/install/slack/**
- name: super-tux-kart
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-super-tux-kart
changeFiles:
- dockerfile-kasm-super-tux-kart
- src/ubuntu/install/super_tux_kart/**
- name: ubuntu-focal-dind
+ singleapp: false
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-ubuntu-focal-dind
changeFiles:
@@ -477,6 +549,7 @@ multiImages:
- src/ubuntu/install/chromium/**
- src/ubuntu/install/chrome/**
- name: ubuntu-focal-dind-rootless
+ singleapp: false
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-ubuntu-focal-dind-rootless
changeFiles:
@@ -490,6 +563,7 @@ multiImages:
- src/ubuntu/install/chromium/**
- src/ubuntu/install/chrome/**
- name: ubuntu-jammy-dind
+ singleapp: false
base: core-ubuntu-jammy
dockerfile: dockerfile-kasm-ubuntu-jammy-dind
changeFiles:
@@ -503,6 +577,7 @@ multiImages:
- src/ubuntu/install/chromium/**
- src/ubuntu/install/chrome/**
- name: ubuntu-jammy-dind-rootless
+ singleapp: false
base: core-ubuntu-jammy
dockerfile: dockerfile-kasm-ubuntu-jammy-dind-rootless
changeFiles:
@@ -517,6 +592,7 @@ multiImages:
- src/ubuntu/install/chromium/**
- src/ubuntu/install/chrome/**
- name: vivaldi
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-vivaldi
changeFiles:
@@ -526,18 +602,21 @@ multiImages:
- src/ubuntu/install/vivaldi/**
singleImages:
- name: atom
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-atom
changeFiles:
- dockerfile-kasm-atom
- src/ubuntu/install/atom/**
- name: blender
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-blender
changeFiles:
- dockerfile-kasm-blender
- src/ubuntu/install/blender/**
- name: centos-7-desktop
+ singleapp: false
base: core-centos-7
dockerfile: dockerfile-kasm-centos-7-desktop
changeFiles:
@@ -547,6 +626,7 @@ singleImages:
- src/ubuntu/install/cleanup/**
- src/ubuntu/install/chrome/**
- name: chrome
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-chrome
changeFiles:
@@ -555,6 +635,7 @@ singleImages:
- src/ubuntu/install/certificates/**
- src/ubuntu/install/chrome/**
- name: desktop
+ singleapp: false
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-desktop
changeFiles:
@@ -563,6 +644,7 @@ singleImages:
- src/ubuntu/install/certificates/**
- src/ubuntu/install/chrome/**
- name: desktop-deluxe
+ singleapp: false
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-desktop-deluxe
changeFiles:
@@ -585,12 +667,14 @@ singleImages:
- src/ubuntu/install/ansible/**
- src/ubuntu/install/chrome/**
- name: discord
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-discord
changeFiles:
- dockerfile-kasm-discord
- src/ubuntu/install/discord/**
- name: edge
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-edge
changeFiles:
@@ -598,6 +682,7 @@ singleImages:
- src/ubuntu/install/gtk/**
- src/ubuntu/install/edge/**
- name: hunchly
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-hunchly
changeFiles:
@@ -605,12 +690,14 @@ singleImages:
- src/ubuntu/install/chrome/**
- src/ubuntu/install/hunchly/**
- name: insomnia
+ singleapp: true
base: core-ubuntu-jammy
dockerfile: dockerfile-kasm-insomnia
changeFiles:
- dockerfile-kasm-insomnia
- src/ubuntu/install/insomnia/**
- name: maltego
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-maltego
changeFiles:
@@ -618,11 +705,13 @@ singleImages:
- src/ubuntu/install/maltego/**
- src/ubuntu/install/firefox/**
- name: only-office
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-only-office
changeFiles:
- dockerfile-kasm-only-office
- name: oracle-7-desktop
+ singleapp: false
base: core-oracle-7
dockerfile: dockerfile-kasm-oracle-7-desktop
changeFiles:
@@ -634,6 +723,7 @@ singleImages:
- src/ubuntu/install/cleanup/**
- src/ubuntu/install/chrome/**
- name: postman
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-postman
changeFiles:
@@ -641,6 +731,7 @@ singleImages:
- src/ubuntu/install/chrome/**
- src/ubuntu/install/postman/**
- name: remnux-focal-desktop
+ singleapp: false
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-remnux-focal-desktop
changeFiles:
@@ -648,18 +739,31 @@ singleImages:
- src/ubuntu/install/firefox/**
- src/ubuntu/install/remnux/**
- name: signal
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-signal
changeFiles:
- dockerfile-kasm-signal
- src/ubuntu/install/signal/**
+ - name: slack
+ singleapp: true
+ base: core-ubuntu-focal
+ dockerfile: dockerfile-kasm-slack
+ changeFiles:
+ - dockerfile-kasm-slack
+ - src/ubuntu/install/slack/**
+ - src/ubuntu/install/chrome/**
+ - src/ubuntu/install/tools/**
+ - src/ubuntu/install/cleanup/**
- name: steam
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-steam
changeFiles:
- dockerfile-kasm-steam
- src/ubuntu/install/steam/**
- name: tracelabs
+ singleapp: false
base: core-kali-rolling
dockerfile: dockerfile-kasm-tracelabs
changeFiles:
@@ -668,6 +772,7 @@ singleImages:
- src/ubuntu/install/firefox/**
- src/ubuntu/install/tracelabs/**
- name: unityhub
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-unityhub
changeFiles:
@@ -676,6 +781,7 @@ singleImages:
- src/ubuntu/install/chrome/**
- src/ubuntu/install/unityhub/**
- name: zoom
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-zoom
changeFiles:
@@ -683,6 +789,7 @@ singleImages:
- src/ubuntu/install/zoom/**
- src/ubuntu/install/chrome/**
- name: zsnes
+ singleapp: true
base: core-ubuntu-focal
dockerfile: dockerfile-kasm-zsnes
changeFiles:
diff --git a/ci-scripts/test.sh b/ci-scripts/test.sh
index c107d31..1bfe94f 100755
--- a/ci-scripts/test.sh
+++ b/ci-scripts/test.sh
@@ -188,7 +188,7 @@ ssh \
ready_check
# Pull tester image
-docker pull ${ORG_NAME}/kasm-tester:1.14.2
+docker pull ${ORG_NAME}/kasm-tester:1.15.0
# Run test
cp /root/.ssh/id_rsa $(dirname ${CI_PROJECT_DIR})/sshkey
@@ -210,7 +210,7 @@ docker run --rm \
-e REPO=workspaces-images \
-e AUTOMATED=true \
-v $(dirname ${CI_PROJECT_DIR})/sshkey:/sshkey:ro ${SLIM_FLAG} \
- kasmweb/kasm-tester:1.14.2
+ kasmweb/kasm-tester:1.15.0
# Shutdown Instances
turnoff
diff --git a/dockerfile-kasm-almalinux-8-desktop b/dockerfile-kasm-almalinux-8-desktop
index ce09479..1667fd5 100644
--- a/dockerfile-kasm-almalinux-8-desktop
+++ b/dockerfile-kasm-almalinux-8-desktop
@@ -39,7 +39,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-almalinux-9-desktop b/dockerfile-kasm-almalinux-9-desktop
index 94511bd..3884d5f 100644
--- a/dockerfile-kasm-almalinux-9-desktop
+++ b/dockerfile-kasm-almalinux-9-desktop
@@ -37,7 +37,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-alpine-317-desktop b/dockerfile-kasm-alpine-317-desktop
index 91aee5c..8f398d0 100644
--- a/dockerfile-kasm-alpine-317-desktop
+++ b/dockerfile-kasm-alpine-317-desktop
@@ -14,10 +14,9 @@ ENV SKIP_CLEAN=true \
INST_DIR=$STARTUPDIR/install \
INST_SCRIPTS="/alpine/install/tools/install_tools_deluxe.sh \
/alpine/install/misc/install_tools.sh \
- /alpine/install/chromium/install_chromium.sh \
/alpine/install/firefox/install_firefox.sh \
/alpine/install/remmina/install_remmina.sh \
- /alpine/install/gimp/gimp/install_gimp.sh \
+ /alpine/install/gimp/install_gimp.sh \
/alpine/install/ansible/install_ansible.sh \
/alpine/install/terraform/install_terraform.sh \
/alpine/install/thunderbird/install_thunderbird.sh \
@@ -38,7 +37,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-alpine-318-desktop b/dockerfile-kasm-alpine-318-desktop
index 561560f..0653dfa 100644
--- a/dockerfile-kasm-alpine-318-desktop
+++ b/dockerfile-kasm-alpine-318-desktop
@@ -14,10 +14,9 @@ ENV SKIP_CLEAN=true \
INST_DIR=$STARTUPDIR/install \
INST_SCRIPTS="/alpine/install/tools/install_tools_deluxe.sh \
/alpine/install/misc/install_tools.sh \
- /alpine/install/chromium/install_chromium.sh \
/alpine/install/firefox/install_firefox.sh \
/alpine/install/remmina/install_remmina.sh \
- /alpine/install/gimp/gimp/install_gimp.sh \
+ /alpine/install/gimp/install_gimp.sh \
/alpine/install/ansible/install_ansible.sh \
/alpine/install/terraform/install_terraform.sh \
/alpine/install/thunderbird/install_thunderbird.sh \
@@ -38,7 +37,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-alpine-319-desktop b/dockerfile-kasm-alpine-319-desktop
new file mode 100644
index 0000000..71645e7
--- /dev/null
+++ b/dockerfile-kasm-alpine-319-desktop
@@ -0,0 +1,54 @@
+ARG BASE_TAG="develop"
+ARG BASE_IMAGE="core-alpine-319"
+FROM kasmweb/$BASE_IMAGE:$BASE_TAG
+
+USER root
+
+ENV DISTRO=alpine319
+ENV HOME /home/kasm-default-profile
+ENV STARTUPDIR /dockerstartup
+WORKDIR $HOME
+
+### Envrionment config
+ENV SKIP_CLEAN=true \
+ INST_DIR=$STARTUPDIR/install \
+ INST_SCRIPTS="/alpine/install/tools/install_tools_deluxe.sh \
+ /alpine/install/misc/install_tools.sh \
+ /alpine/install/firefox/install_firefox.sh \
+ /alpine/install/remmina/install_remmina.sh \
+ /alpine/install/gimp/install_gimp.sh \
+ /alpine/install/ansible/install_ansible.sh \
+ /alpine/install/terraform/install_terraform.sh \
+ /alpine/install/thunderbird/install_thunderbird.sh \
+ /alpine/install/audacity/install_audacity.sh \
+ /alpine/install/blender/install_blender.sh \
+ /alpine/install/geany/install_geany.sh \
+ /alpine/install/inkscape/install_inkscape.sh \
+ /alpine/install/libre_office/install_libre_office.sh \
+ /alpine/install/pinta/install_pinta.sh \
+ /alpine/install/obs/install_obs.sh \
+ /alpine/install/filezilla/install_filezilla.sh \
+ /ubuntu/install/langpacks/install_langpacks.sh \
+ /ubuntu/install/cleanup/cleanup.sh"
+
+# Copy install scripts
+COPY ./src/ $INST_DIR
+
+# Run installations
+RUN \
+ for SCRIPT in $INST_SCRIPTS; do \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
+ done && \
+ $STARTUPDIR/set_user_permission.sh $HOME && \
+ rm -f /etc/X11/xinit/Xclients && \
+ chown 1000:0 $HOME && \
+ mkdir -p /home/kasm-user && \
+ chown -R 1000:0 /home/kasm-user && \
+ rm -Rf ${INST_DIR}
+
+# Userspace Runtime
+ENV HOME /home/kasm-user
+WORKDIR $HOME
+USER 1000
+
+CMD ["--tail-log"]
diff --git a/dockerfile-kasm-atom b/dockerfile-kasm-atom
index 6575782..2118cb4 100644
--- a/dockerfile-kasm-atom
+++ b/dockerfile-kasm-atom
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-audacity b/dockerfile-kasm-audacity
index 72b703f..7e15c35 100644
--- a/dockerfile-kasm-audacity
+++ b/dockerfile-kasm-audacity
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-blender b/dockerfile-kasm-blender
index 452a200..0afb290 100644
--- a/dockerfile-kasm-blender
+++ b/dockerfile-kasm-blender
@@ -20,7 +20,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-brave b/dockerfile-kasm-brave
index c3e4133..b036393 100644
--- a/dockerfile-kasm-brave
+++ b/dockerfile-kasm-brave
@@ -17,7 +17,7 @@ RUN bash $INST_SCRIPTS/brave/install_brave.sh && rm -rf $INST_SCRIPTS/brave/
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
# Security modifications
diff --git a/dockerfile-kasm-centos-7-desktop b/dockerfile-kasm-centos-7-desktop
index c449465..3265ef5 100644
--- a/dockerfile-kasm-centos-7-desktop
+++ b/dockerfile-kasm-centos-7-desktop
@@ -25,7 +25,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-chrome b/dockerfile-kasm-chrome
index eee86f2..4d917cd 100644
--- a/dockerfile-kasm-chrome
+++ b/dockerfile-kasm-chrome
@@ -17,7 +17,7 @@ RUN bash $INST_SCRIPTS/chrome/install_chrome.sh && rm -rf $INST_SCRIPTS/chrome/
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
# Security modifications
diff --git a/dockerfile-kasm-chromium b/dockerfile-kasm-chromium
index 0b10095..5c336ef 100644
--- a/dockerfile-kasm-chromium
+++ b/dockerfile-kasm-chromium
@@ -16,7 +16,7 @@ RUN bash $INST_SCRIPTS/chromium/install_chromium.sh && rm -rf $INST_SCRIPTS/chro
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
# Security modifications
diff --git a/dockerfile-kasm-debian-bookworm-desktop b/dockerfile-kasm-debian-bookworm-desktop
index f284e7a..9e289e5 100644
--- a/dockerfile-kasm-debian-bookworm-desktop
+++ b/dockerfile-kasm-debian-bookworm-desktop
@@ -41,7 +41,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-debian-bullseye-desktop b/dockerfile-kasm-debian-bullseye-desktop
index 1b4794e..ef3c4b7 100644
--- a/dockerfile-kasm-debian-bullseye-desktop
+++ b/dockerfile-kasm-debian-bullseye-desktop
@@ -41,7 +41,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-deluge b/dockerfile-kasm-deluge
index 1ffa754..b4c5007 100644
--- a/dockerfile-kasm-deluge
+++ b/dockerfile-kasm-deluge
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-desktop b/dockerfile-kasm-desktop
index ec45dcf..2ae404c 100644
--- a/dockerfile-kasm-desktop
+++ b/dockerfile-kasm-desktop
@@ -11,7 +11,7 @@ WORKDIR $HOME
######### Customize Container Here ###########
# Add Kasm Branding
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN cp /usr/share/extra/icons/icon_kasm.png /usr/share/extra/icons/icon_default.png
RUN sed -i 's/ubuntu-mono-dark/elementary-xfce/g' $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml
diff --git a/dockerfile-kasm-desktop-deluxe b/dockerfile-kasm-desktop-deluxe
index 2102f58..89ec569 100644
--- a/dockerfile-kasm-desktop-deluxe
+++ b/dockerfile-kasm-desktop-deluxe
@@ -15,7 +15,7 @@ ENV INST_SCRIPTS $STARTUPDIR/install
ENV DONT_PROMPT_WSL_INSTALL "No_Prompt_please"
# Add Kasm Branding
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN cp /usr/share/extra/icons/icon_kasm.png /usr/share/extra/icons/icon_default.png
RUN sed -i 's/ubuntu-mono-dark/elementary-xfce/g' $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml
diff --git a/dockerfile-kasm-discord b/dockerfile-kasm-discord
index fc084c8..0ba3203 100644
--- a/dockerfile-kasm-discord
+++ b/dockerfile-kasm-discord
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
diff --git a/dockerfile-kasm-doom b/dockerfile-kasm-doom
index 4589f65..3003fc3 100644
--- a/dockerfile-kasm-doom
+++ b/dockerfile-kasm-doom
@@ -20,7 +20,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-edge b/dockerfile-kasm-edge
index ba13eac..1381cc4 100644
--- a/dockerfile-kasm-edge
+++ b/dockerfile-kasm-edge
@@ -17,7 +17,7 @@ RUN bash $INST_SCRIPTS/edge/install_edge.sh && rm -rf $INST_SCRIPTS/edge/
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
ENV KASM_RESTRICTED_FILE_CHOOSER=1
diff --git a/dockerfile-kasm-fedora-37-desktop b/dockerfile-kasm-fedora-37-desktop
index 7444df1..4ea8511 100644
--- a/dockerfile-kasm-fedora-37-desktop
+++ b/dockerfile-kasm-fedora-37-desktop
@@ -25,7 +25,6 @@ ENV SKIP_CLEAN=true \
/oracle/install/gimp/install_gimp.sh \
/oracle/install/zoom/install_zoom.sh \
/oracle/install/ansible/install_ansible.sh \
- /oracle/install/terraform/install_terraform.sh \
/oracle/install/telegram/install_telegram.sh \
/ubuntu/install/thunderbird/install_thunderbird.sh \
/ubuntu/install/slack/install_slack.sh \
@@ -37,7 +36,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-fedora-38-desktop b/dockerfile-kasm-fedora-38-desktop
index 677b5d1..577bdde 100644
--- a/dockerfile-kasm-fedora-38-desktop
+++ b/dockerfile-kasm-fedora-38-desktop
@@ -4,7 +4,7 @@ FROM kasmweb/$BASE_IMAGE:$BASE_TAG
USER root
-ENV DISTRO=fedora37
+ENV DISTRO=fedora38
ENV HOME /home/kasm-default-profile
ENV STARTUPDIR /dockerstartup
WORKDIR $HOME
@@ -37,7 +37,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-fedora-39-desktop b/dockerfile-kasm-fedora-39-desktop
new file mode 100644
index 0000000..2e73fc9
--- /dev/null
+++ b/dockerfile-kasm-fedora-39-desktop
@@ -0,0 +1,54 @@
+ARG BASE_TAG="develop"
+ARG BASE_IMAGE="core-fedora-39"
+FROM kasmweb/$BASE_IMAGE:$BASE_TAG
+
+USER root
+
+ENV DISTRO=fedora39
+ENV HOME /home/kasm-default-profile
+ENV STARTUPDIR /dockerstartup
+WORKDIR $HOME
+
+### Envrionment config
+ENV SKIP_CLEAN=true \
+ KASM_RX_HOME=$STARTUPDIR/kasmrx \
+ DONT_PROMPT_WSL_INSTALL="No_Prompt_please" \
+ INST_DIR=$STARTUPDIR/install \
+ INST_SCRIPTS="/oracle/install/tools/install_tools_deluxe.sh \
+ /oracle/install/misc/install_tools.sh \
+ /ubuntu/install/chromium/install_chromium.sh \
+ /ubuntu/install/firefox/install_firefox.sh \
+ /oracle/install/sublime_text/install_sublime_text.sh \
+ /oracle/install/vs_code/install_vs_code.sh \
+ /ubuntu/install/remmina/install_remmina.sh \
+ /oracle/install/only_office/install_only_office.sh \
+ /oracle/install/gimp/install_gimp.sh \
+ /oracle/install/zoom/install_zoom.sh \
+ /oracle/install/ansible/install_ansible.sh \
+ /oracle/install/terraform/install_terraform.sh \
+ /oracle/install/telegram/install_telegram.sh \
+ /ubuntu/install/thunderbird/install_thunderbird.sh \
+ /ubuntu/install/slack/install_slack.sh \
+ /ubuntu/install/cleanup/cleanup.sh"
+
+# Copy install scripts
+COPY ./src/ $INST_DIR
+
+# Run installations
+RUN \
+ for SCRIPT in $INST_SCRIPTS; do \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
+ done && \
+ $STARTUPDIR/set_user_permission.sh $HOME && \
+ rm -f /etc/X11/xinit/Xclients && \
+ chown 1000:0 $HOME && \
+ mkdir -p /home/kasm-user && \
+ chown -R 1000:0 /home/kasm-user && \
+ rm -Rf ${INST_DIR}
+
+# Userspace Runtime
+ENV HOME /home/kasm-user
+WORKDIR $HOME
+USER 1000
+
+CMD ["--tail-log"]
diff --git a/dockerfile-kasm-filezilla b/dockerfile-kasm-filezilla
index c6027d3..daf6308 100644
--- a/dockerfile-kasm-filezilla
+++ b/dockerfile-kasm-filezilla
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-firefox b/dockerfile-kasm-firefox
index 1b9661c..ca69d58 100644
--- a/dockerfile-kasm-firefox
+++ b/dockerfile-kasm-firefox
@@ -18,7 +18,7 @@ RUN bash $INST_SCRIPTS/firefox/install_firefox.sh && rm -rf $INST_SCRIPTS/firefo
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
# Security modifications
diff --git a/dockerfile-kasm-gimp b/dockerfile-kasm-gimp
index 0ae0c98..40cefb0 100644
--- a/dockerfile-kasm-gimp
+++ b/dockerfile-kasm-gimp
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-inkscape b/dockerfile-kasm-inkscape
index a5570b6..3140c99 100644
--- a/dockerfile-kasm-inkscape
+++ b/dockerfile-kasm-inkscape
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-insomnia b/dockerfile-kasm-insomnia
index 4519345..49f5e6d 100644
--- a/dockerfile-kasm-insomnia
+++ b/dockerfile-kasm-insomnia
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-kali-rolling-desktop b/dockerfile-kasm-kali-rolling-desktop
index 1e1e75e..6bb3153 100644
--- a/dockerfile-kasm-kali-rolling-desktop
+++ b/dockerfile-kasm-kali-rolling-desktop
@@ -24,7 +24,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-libre-office b/dockerfile-kasm-libre-office
index 87b7f67..eb837a0 100644
--- a/dockerfile-kasm-libre-office
+++ b/dockerfile-kasm-libre-office
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-maltego b/dockerfile-kasm-maltego
index a4dfc6d..3558a06 100644
--- a/dockerfile-kasm-maltego
+++ b/dockerfile-kasm-maltego
@@ -25,7 +25,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
diff --git a/dockerfile-kasm-minetest b/dockerfile-kasm-minetest
index 1af465c..82c8b43 100644
--- a/dockerfile-kasm-minetest
+++ b/dockerfile-kasm-minetest
@@ -20,7 +20,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-only-office b/dockerfile-kasm-only-office
index b7e655d..c8db558 100644
--- a/dockerfile-kasm-only-office
+++ b/dockerfile-kasm-only-office
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-opensuse-15-desktop b/dockerfile-kasm-opensuse-15-desktop
index 92cb9bd..cedbe50 100644
--- a/dockerfile-kasm-opensuse-15-desktop
+++ b/dockerfile-kasm-opensuse-15-desktop
@@ -39,7 +39,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-oracle-7-desktop b/dockerfile-kasm-oracle-7-desktop
index 53c32fe..2e2b513 100644
--- a/dockerfile-kasm-oracle-7-desktop
+++ b/dockerfile-kasm-oracle-7-desktop
@@ -25,7 +25,6 @@ ENV SKIP_CLEAN=true \
/oracle/install/gimp/install_gimp.sh \
/oracle/install/zoom/install_zoom.sh \
/oracle/install/ansible/install_ansible.sh \
- /oracle/install/terraform/install_terraform.sh \
/oracle/install/telegram/install_telegram.sh \
/ubuntu/install/thunderbird/install_thunderbird.sh \
/ubuntu/install/cleanup/cleanup.sh"
@@ -36,7 +35,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-oracle-8-desktop b/dockerfile-kasm-oracle-8-desktop
index 7b95ebe..fcf4264 100644
--- a/dockerfile-kasm-oracle-8-desktop
+++ b/dockerfile-kasm-oracle-8-desktop
@@ -39,7 +39,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-oracle-9-desktop b/dockerfile-kasm-oracle-9-desktop
index 170e531..0e5b2d2 100644
--- a/dockerfile-kasm-oracle-9-desktop
+++ b/dockerfile-kasm-oracle-9-desktop
@@ -38,7 +38,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-parrotos-5-desktop b/dockerfile-kasm-parrotos-6-desktop
similarity index 87%
rename from dockerfile-kasm-parrotos-5-desktop
rename to dockerfile-kasm-parrotos-6-desktop
index fba3f79..729ca05 100644
--- a/dockerfile-kasm-parrotos-5-desktop
+++ b/dockerfile-kasm-parrotos-6-desktop
@@ -1,5 +1,5 @@
ARG BASE_TAG="develop"
-ARG BASE_IMAGE="core-parrotos-5"
+ARG BASE_IMAGE="core-parrotos-6"
FROM kasmweb/$BASE_IMAGE:$BASE_TAG
USER root
@@ -15,6 +15,7 @@ ENV DEBIAN_FRONTEND=noninteractive \
INST_DIR=$STARTUPDIR/install \
INST_SCRIPTS="/ubuntu/install/parrot/install_parrot.sh \
/ubuntu/install/chromium/install_chromium.sh \
+ /ubuntu/install/vs_code/install_vs_code.sh \
/ubuntu/install/firefox/install_firefox.sh \
/ubuntu/install/cleanup/cleanup.sh"
@@ -24,7 +25,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-pinta b/dockerfile-kasm-pinta
index 6b41251..c29de9e 100644
--- a/dockerfile-kasm-pinta
+++ b/dockerfile-kasm-pinta
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-postman b/dockerfile-kasm-postman
index 0ba9a28..4af4509 100644
--- a/dockerfile-kasm-postman
+++ b/dockerfile-kasm-postman
@@ -25,7 +25,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
diff --git a/dockerfile-kasm-qbittorrent b/dockerfile-kasm-qbittorrent
index 4dfd5cd..01834ca 100644
--- a/dockerfile-kasm-qbittorrent
+++ b/dockerfile-kasm-qbittorrent
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-realvnc-vncviewer b/dockerfile-kasm-realvnc-vncviewer
index 6a32009..a6b8ab7 100644
--- a/dockerfile-kasm-realvnc-vncviewer
+++ b/dockerfile-kasm-realvnc-vncviewer
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-redroid b/dockerfile-kasm-redroid
new file mode 100644
index 0000000..69ff1eb
--- /dev/null
+++ b/dockerfile-kasm-redroid
@@ -0,0 +1,55 @@
+ARG BASE_TAG="develop"
+ARG BASE_IMAGE="core-ubuntu-jammy"
+FROM kasmweb/$BASE_IMAGE:$BASE_TAG
+USER root
+
+ENV HOME /home/kasm-default-profile
+ENV STARTUPDIR /dockerstartup
+WORKDIR $HOME
+
+### Envrionment config
+ENV DEBUG=false \
+ DEBIAN_FRONTEND=noninteractive \
+ SKIP_CLEAN=true \
+ KASM_RX_HOME=$STARTUPDIR/kasmrx \
+ DONT_PROMPT_WSL_INSTALL="No_Prompt_please" \
+ INST_DIR=$STARTUPDIR/install \
+ INST_SCRIPTS="/ubuntu/install/dind/install_dind.sh \
+ /ubuntu/install/tools/install_tools_deluxe.sh \
+ /ubuntu/install/misc/install_tools.sh \
+ /ubuntu/install/chrome/install_chrome.sh \
+ /ubuntu/install/chromium/install_chromium.sh \
+ /ubuntu/install/sublime_text/install_sublime_text.sh \
+ /ubuntu/install/vs_code/install_vs_code.sh \
+ /ubuntu/install/redroid/install_redroid.sh \
+ /ubuntu/install/android_studio/install_android_studio.sh \
+ /ubuntu/install/cleanup/cleanup.sh"
+
+# Startup Scripts
+COPY ./src/ubuntu/install/redroid/custom_startup.sh $STARTUPDIR/custom_startup.sh
+RUN chmod 755 $STARTUPDIR/custom_startup.sh
+COPY ./src/ubuntu/install/dind/dockerd.conf /etc/supervisor/conf.d/
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
+
+# Copy install scripts
+COPY ./src/ $INST_DIR
+
+# Run installations
+RUN \
+ for SCRIPT in $INST_SCRIPTS; do \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
+ done && \
+ $STARTUPDIR/set_user_permission.sh $HOME && \
+ rm -f /etc/X11/xinit/Xclients && \
+ chown 1000:0 $HOME && \
+ mkdir -p /home/kasm-user && \
+ chown -R 1000:0 /home/kasm-user && \
+ rm -Rf ${INST_DIR}
+
+
+# Userspace Runtime
+ENV HOME /home/kasm-user
+WORKDIR $HOME
+USER 1000
+
+CMD ["--tail-log"]
diff --git a/dockerfile-kasm-remmina b/dockerfile-kasm-remmina
index a36dc24..721ccc4 100644
--- a/dockerfile-kasm-remmina
+++ b/dockerfile-kasm-remmina
@@ -25,7 +25,7 @@ RUN chown -R 1000:1000 $HOME/.config/remmina/
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-remnux-focal-desktop b/dockerfile-kasm-remnux-focal-desktop
index e570f62..6134d39 100644
--- a/dockerfile-kasm-remnux-focal-desktop
+++ b/dockerfile-kasm-remnux-focal-desktop
@@ -11,7 +11,7 @@ WORKDIR $HOME
######### Customize Container Here ###########
# Add Background
-ADD /src/common/resources/images/bg_remnux.png /usr/share/extra/backgrounds/bg_default.png
+ADD /src/common/resources/images/bg_remnux.png /usr/share/backgrounds/bg_default.png
# Install Remnux Utils
COPY ./src/ubuntu/install/remnux $INST_SCRIPTS/remnux/
diff --git a/dockerfile-kasm-retroarch b/dockerfile-kasm-retroarch
index 7659ead..0bc2a9f 100644
--- a/dockerfile-kasm-retroarch
+++ b/dockerfile-kasm-retroarch
@@ -20,7 +20,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-rockylinux-8-desktop b/dockerfile-kasm-rockylinux-8-desktop
index d895089..c2481c2 100644
--- a/dockerfile-kasm-rockylinux-8-desktop
+++ b/dockerfile-kasm-rockylinux-8-desktop
@@ -39,7 +39,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-rockylinux-9-desktop b/dockerfile-kasm-rockylinux-9-desktop
index 38f7ed9..92d9907 100644
--- a/dockerfile-kasm-rockylinux-9-desktop
+++ b/dockerfile-kasm-rockylinux-9-desktop
@@ -37,7 +37,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-signal b/dockerfile-kasm-signal
index 03a82bb..2468b12 100644
--- a/dockerfile-kasm-signal
+++ b/dockerfile-kasm-signal
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
diff --git a/dockerfile-kasm-slack b/dockerfile-kasm-slack
index 20e8fbc..785f5c3 100644
--- a/dockerfile-kasm-slack
+++ b/dockerfile-kasm-slack
@@ -24,7 +24,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-spiderfoot b/dockerfile-kasm-spiderfoot
index 775424e..6c453f4 100644
--- a/dockerfile-kasm-spiderfoot
+++ b/dockerfile-kasm-spiderfoot
@@ -15,7 +15,7 @@ ENV DEBIAN_FRONTEND=noninteractive \
KASM_RX_HOME=$STARTUPDIR/kasmrx \
DONT_PROMPT_WSL_INSTALL="No_Prompt_please" \
INST_DIR=$STARTUPDIR/install \
- INST_SCRIPTS="/ubuntu/install/tools/install_tools.sh \
+ INST_SCRIPTS="/ubuntu/install/tools/install_tools_deluxe.sh \
/ubuntu/install/firefox/install_firefox.sh \
/ubuntu/install/spiderfoot/install_spiderfoot.sh \
/ubuntu/install/cleanup/cleanup.sh"
@@ -23,7 +23,7 @@ ENV DEBIAN_FRONTEND=noninteractive \
# Copy install scripts
COPY ./src/ $INST_DIR
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
COPY ./src/ubuntu/install/spiderfoot/custom_startup.sh $STARTUPDIR/custom_startup.sh
RUN chmod +x $STARTUPDIR/custom_startup.sh
RUN chmod 755 $STARTUPDIR/custom_startup.sh
@@ -31,7 +31,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-steam b/dockerfile-kasm-steam
index 612e525..54c7dda 100644
--- a/dockerfile-kasm-steam
+++ b/dockerfile-kasm-steam
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-sublime-text b/dockerfile-kasm-sublime-text
index f735299..d833711 100644
--- a/dockerfile-kasm-sublime-text
+++ b/dockerfile-kasm-sublime-text
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
diff --git a/dockerfile-kasm-super-tux-kart b/dockerfile-kasm-super-tux-kart
index 1e57596..0132a47 100644
--- a/dockerfile-kasm-super-tux-kart
+++ b/dockerfile-kasm-super-tux-kart
@@ -1,5 +1,5 @@
ARG BASE_TAG="develop"
-ARG BASE_IMAGE="core-ubuntu-jammy"
+ARG BASE_IMAGE="core-ubuntu-focal"
FROM kasmweb/$BASE_IMAGE:$BASE_TAG
USER root
@@ -19,7 +19,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-teams b/dockerfile-kasm-teams
index 59af37c..c9e1b60 100644
--- a/dockerfile-kasm-teams
+++ b/dockerfile-kasm-teams
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
diff --git a/dockerfile-kasm-telegram b/dockerfile-kasm-telegram
index b40f1ca..fbb6e42 100644
--- a/dockerfile-kasm-telegram
+++ b/dockerfile-kasm-telegram
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
diff --git a/dockerfile-kasm-terminal b/dockerfile-kasm-terminal
index 0bbaa26..cc62b43 100644
--- a/dockerfile-kasm-terminal
+++ b/dockerfile-kasm-terminal
@@ -35,7 +35,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
diff --git a/dockerfile-kasm-thunderbird b/dockerfile-kasm-thunderbird
index cdc1974..9fd2e61 100644
--- a/dockerfile-kasm-thunderbird
+++ b/dockerfile-kasm-thunderbird
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-tor-browser b/dockerfile-kasm-tor-browser
index 350d39f..1312a2e 100644
--- a/dockerfile-kasm-tor-browser
+++ b/dockerfile-kasm-tor-browser
@@ -17,7 +17,7 @@ RUN bash $INST_SCRIPTS/torbrowser/install_torbrowser.sh && rm -rf $INST_SCRIPTS
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
# Security modifications
diff --git a/dockerfile-kasm-ubuntu-focal-desktop b/dockerfile-kasm-ubuntu-focal-desktop
index 2e35329..12fd841 100644
--- a/dockerfile-kasm-ubuntu-focal-desktop
+++ b/dockerfile-kasm-ubuntu-focal-desktop
@@ -42,7 +42,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-ubuntu-focal-desktop-vpn b/dockerfile-kasm-ubuntu-focal-desktop-vpn
index e7b4800..14d265d 100644
--- a/dockerfile-kasm-ubuntu-focal-desktop-vpn
+++ b/dockerfile-kasm-ubuntu-focal-desktop-vpn
@@ -43,7 +43,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-ubuntu-focal-dind b/dockerfile-kasm-ubuntu-focal-dind
index 41e302f..e02fd6c 100644
--- a/dockerfile-kasm-ubuntu-focal-dind
+++ b/dockerfile-kasm-ubuntu-focal-dind
@@ -34,7 +34,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-ubuntu-focal-dind-rootless b/dockerfile-kasm-ubuntu-focal-dind-rootless
index fcb38be..4731ef3 100644
--- a/dockerfile-kasm-ubuntu-focal-dind-rootless
+++ b/dockerfile-kasm-ubuntu-focal-dind-rootless
@@ -49,7 +49,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-ubuntu-jammy-desktop b/dockerfile-kasm-ubuntu-jammy-desktop
index e6da26a..8758d49 100644
--- a/dockerfile-kasm-ubuntu-jammy-desktop
+++ b/dockerfile-kasm-ubuntu-jammy-desktop
@@ -42,7 +42,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-ubuntu-jammy-dind b/dockerfile-kasm-ubuntu-jammy-dind
index 5e9f394..e03eca4 100644
--- a/dockerfile-kasm-ubuntu-jammy-dind
+++ b/dockerfile-kasm-ubuntu-jammy-dind
@@ -34,7 +34,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-ubuntu-jammy-dind-rootless b/dockerfile-kasm-ubuntu-jammy-dind-rootless
index 06fd7b4..d1522b4 100644
--- a/dockerfile-kasm-ubuntu-jammy-dind-rootless
+++ b/dockerfile-kasm-ubuntu-jammy-dind-rootless
@@ -49,7 +49,7 @@ COPY ./src/ $INST_DIR
# Run installations
RUN \
for SCRIPT in $INST_SCRIPTS; do \
- bash ${INST_DIR}${SCRIPT}; \
+ bash ${INST_DIR}${SCRIPT} || exit 1; \
done && \
$STARTUPDIR/set_user_permission.sh $HOME && \
rm -f /etc/X11/xinit/Xclients && \
diff --git a/dockerfile-kasm-vivaldi b/dockerfile-kasm-vivaldi
index 2f62747..0881b3f 100644
--- a/dockerfile-kasm-vivaldi
+++ b/dockerfile-kasm-vivaldi
@@ -17,7 +17,7 @@ RUN bash $INST_SCRIPTS/vivaldi/install_vivaldi.sh && rm -rf $INST_SCRIPTS/vival
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
# Security modifications
diff --git a/dockerfile-kasm-vlc b/dockerfile-kasm-vlc
index d65a563..cd040cb 100644
--- a/dockerfile-kasm-vlc
+++ b/dockerfile-kasm-vlc
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
diff --git a/dockerfile-kasm-vmware-horizon b/dockerfile-kasm-vmware-horizon
index 71c81e7..0edf67c 100644
--- a/dockerfile-kasm-vmware-horizon
+++ b/dockerfile-kasm-vmware-horizon
@@ -20,7 +20,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-vs-code b/dockerfile-kasm-vs-code
index 76a0c29..64d75c6 100644
--- a/dockerfile-kasm-vs-code
+++ b/dockerfile-kasm-vs-code
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-zoom b/dockerfile-kasm-zoom
index d210f78..4cb9c8a 100644
--- a/dockerfile-kasm-zoom
+++ b/dockerfile-kasm-zoom
@@ -23,7 +23,7 @@ RUN bash $INST_SCRIPTS/chrome/install_chrome.sh && rm -rf $INST_SCRIPTS/chrome/
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/dockerfile-kasm-zsnes b/dockerfile-kasm-zsnes
index 9444eb3..548d481 100644
--- a/dockerfile-kasm-zsnes
+++ b/dockerfile-kasm-zsnes
@@ -21,7 +21,7 @@ RUN chmod 755 $STARTUPDIR/custom_startup.sh
# Update the desktop environment to be optimized for a single application
RUN cp $HOME/.config/xfce4/xfconf/single-application-xfce-perchannel-xml/* $HOME/.config/xfce4/xfconf/xfce-perchannel-xml/
-RUN cp /usr/share/extra/backgrounds/bg_kasm.png /usr/share/extra/backgrounds/bg_default.png
+RUN cp /usr/share/backgrounds/bg_kasm.png /usr/share/backgrounds/bg_default.png
RUN apt-get remove -y xfce4-panel
######### End Customizations ###########
diff --git a/docs/alpine-319-desktop/README.md b/docs/alpine-319-desktop/README.md
new file mode 100644
index 0000000..aa37479
--- /dev/null
+++ b/docs/alpine-319-desktop/README.md
@@ -0,0 +1,7 @@
+# About This Image
+
+This Image contains a browser-accessible Alpine 3.19 Desktop with various productivity and development apps installed.
+
+![Screenshot][Image_Screenshot]
+
+[Image_Screenshot]: https://info.kasmweb.com/hubfs/dockerhub/image-screenshots/alpine-317-desktop.png "Image Screenshot"
diff --git a/docs/parrotos-5-desktop/demo.txt b/docs/alpine-319-desktop/demo.txt
similarity index 100%
rename from docs/parrotos-5-desktop/demo.txt
rename to docs/alpine-319-desktop/demo.txt
diff --git a/docs/alpine-319-desktop/description.txt b/docs/alpine-319-desktop/description.txt
new file mode 100644
index 0000000..ea19919
--- /dev/null
+++ b/docs/alpine-319-desktop/description.txt
@@ -0,0 +1 @@
+Alpine 3.19 desktop for Kasm Workspaces
diff --git a/docs/fedora-39-desktop/README.md b/docs/fedora-39-desktop/README.md
new file mode 100644
index 0000000..5f371a0
--- /dev/null
+++ b/docs/fedora-39-desktop/README.md
@@ -0,0 +1,7 @@
+# About This Image
+
+This Image contains a browser-accessible Fedora 39 Desktop with various productivity and development apps installed.
+
+![Screenshot][Image_Screenshot]
+
+[Image_Screenshot]: https://info.kasmweb.com/hubfs/dockerhub/image-screenshots/fedora-37-desktop.png "Image Screenshot"
diff --git a/docs/fedora-39-desktop/demo.txt b/docs/fedora-39-desktop/demo.txt
new file mode 100644
index 0000000..0b606c7
--- /dev/null
+++ b/docs/fedora-39-desktop/demo.txt
@@ -0,0 +1,9 @@
+# Live Demo
+
+
+
+**Launch a real-time demo in a new browser window:** Live Demo.
+
+
+
+∗*Note: Demo is limited to 3 minutes and has upload/downloads restricted for security purposes.*
diff --git a/docs/fedora-39-desktop/description.txt b/docs/fedora-39-desktop/description.txt
new file mode 100644
index 0000000..a649ce6
--- /dev/null
+++ b/docs/fedora-39-desktop/description.txt
@@ -0,0 +1 @@
+Fedora 39 desktop for Kasm Workspaces
diff --git a/docs/parrotos-5-desktop/description.txt b/docs/parrotos-5-desktop/description.txt
deleted file mode 100644
index fd1f48a..0000000
--- a/docs/parrotos-5-desktop/description.txt
+++ /dev/null
@@ -1 +0,0 @@
-Parrot OS 5 desktop for Kasm Workspaces
diff --git a/docs/parrotos-5-desktop/README.md b/docs/parrotos-6-desktop/README.md
similarity index 78%
rename from docs/parrotos-5-desktop/README.md
rename to docs/parrotos-6-desktop/README.md
index 4397b12..1fd23ff 100644
--- a/docs/parrotos-5-desktop/README.md
+++ b/docs/parrotos-6-desktop/README.md
@@ -1,6 +1,6 @@
# About This Image
-This Image contains a browser-accessible Parrot OS 5 Desktop with various productivity and development apps installed.
+This Image contains a browser-accessible Parrot OS 6 Desktop with various productivity and development apps installed.
![Screenshot][Image_Screenshot]
diff --git a/docs/parrotos-6-desktop/demo.txt b/docs/parrotos-6-desktop/demo.txt
new file mode 100644
index 0000000..0b606c7
--- /dev/null
+++ b/docs/parrotos-6-desktop/demo.txt
@@ -0,0 +1,9 @@
+# Live Demo
+
+
+
+**Launch a real-time demo in a new browser window:** Live Demo.
+
+
+
+∗*Note: Demo is limited to 3 minutes and has upload/downloads restricted for security purposes.*
diff --git a/docs/parrotos-6-desktop/description.txt b/docs/parrotos-6-desktop/description.txt
new file mode 100644
index 0000000..0779e1e
--- /dev/null
+++ b/docs/parrotos-6-desktop/description.txt
@@ -0,0 +1 @@
+Parrot OS 6 desktop for Kasm Workspaces
diff --git a/docs/redroid/README.md b/docs/redroid/README.md
new file mode 100644
index 0000000..564b635
--- /dev/null
+++ b/docs/redroid/README.md
@@ -0,0 +1,58 @@
+# About This Image
+
+This experimental image contains a browser-accessible version of [Redroid](https://github.com/remote-android/redroid-doc).
+redroid (Remote-Android) is a multi-arch, GPU enabled, Android in Cloud solution.
+
+The image utilizes Docker in Docker (DinD) to automate launching Redroid and [scrcpy docs](https://github.com/Genymobile/scrcpy).
+
+![Screenshot][Image_Screenshot]
+
+[Image_Screenshot]: https://f.hubspotusercontent30.net/hubfs/5856039/dockerhub/image-screenshots/redroid.png "Image Screenshot"
+## Host Dependencies
+
+This image requires the "binder_linux" host level kernel modules installed and enabled.
+
+Below is an example for installing binder_linux on Ubuntu 22.04 LTS host
+```
+sudo apt install linux-modules-extra-`uname -r`
+sudo modprobe binder_linux devices="binder,hwbinder,vndbinder"
+```
+See [Redroid Docs](https://github.com/remote-android/redroid-doc?tab=readme-ov-file#getting-started) for more details.
+
+
+## Container Permissions
+
+Using this container requires the `--privileged` flag to power both the Docker in Docker processes and the permissions
+needed by the redroid containers
+
+```
+sudo docker run --rm -it --privileged --shm-size=512m -p 6901:6901 -e VNC_PW=password kasmweb/redroid:develop
+```
+
+## Example for installing binder_linux on Ubuntu 22.04 LTS host
+```
+sudo apt install linux-modules-extra-`uname -r`
+sudo modprobe binder_linux devices="binder,hwbinder,vndbinder"
+```
+
+The left ALT key is mapped as the hotkey for scrcpy
+
+- Alt+R - rotate the android device
+- Alt+F - fullscreen the android device
+- Alt+Up/Alt+Down - Increase the volume of the device
+
+See [scrcpy docs](https://github.com/Genymobile/scrcpy) for more details.
+
+
+
+# Environment Variables
+
+* `REDROID_GPU_GUEST_MODE` - Used to instruct redroid to utilize GPU rendering. Options are `auto`, `guest`, and `host`
+* `REDROID_FPS` - Set the maximum FPS for redroid and scrcpy.
+* `REDROID_WIDTH` - Set the desired width of the redroid device.
+* `REDROID_HEIGHT` - Set the desired height of the redroid device.
+* `REDROID_DPI` - Set the desired DPI of the redroid device.
+* `REDROID_SHOW_CONSOLE` - Display the scrcpy console after launching the redroid device.
+* `REDROID_DISABLE_AUTOSTART` - If set to "1", the container will not automatically pull and start the redroid container and scrcpy.
+* `REDROID_DISABLE_HOST_CHECKS` - If set to "1", the container will not check for the presence of required host level kernel modules.
+* `ANDROID_VERSION` - The version of android (redroid) image to automatically load. Options are `14.0.0`, `13.0.0` (Default), `12.0.0`, `11.0.0`, `10.0.0`, `9.0.0`, `8.1.0`.
diff --git a/docs/redroid/demo.txt b/docs/redroid/demo.txt
new file mode 100644
index 0000000..152a949
--- /dev/null
+++ b/docs/redroid/demo.txt
@@ -0,0 +1,9 @@
+# Live Demo
+
+
+
+**Launch a real-time demo in a new browser window:** Live Demo.
+
+
+
+∗*Note: Demo is limited to 3 minutes and has upload/downloads restricted for security purposes.*
diff --git a/docs/redroid/description.txt b/docs/redroid/description.txt
new file mode 100644
index 0000000..0a86cd8
--- /dev/null
+++ b/docs/redroid/description.txt
@@ -0,0 +1 @@
+Redroid (Remote-Android) for Kasm Workspaces
diff --git a/src/alpine/install/terraform/install_terraform.sh b/src/alpine/install/terraform/install_terraform.sh
index 804757f..1a917ce 100644
--- a/src/alpine/install/terraform/install_terraform.sh
+++ b/src/alpine/install/terraform/install_terraform.sh
@@ -1,5 +1,10 @@
#!/usr/bin/env bash
set -ex
-apk add --no-cache \
- terraform
+if grep -q v3.19 /etc/os-release; then
+ apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing/ \
+ opentofu
+else
+ apk add --no-cache \
+ terraform
+fi
diff --git a/src/opensuse/install/terraform/install_terraform.sh b/src/opensuse/install/terraform/install_terraform.sh
index 57428c1..36892ea 100644
--- a/src/opensuse/install/terraform/install_terraform.sh
+++ b/src/opensuse/install/terraform/install_terraform.sh
@@ -6,8 +6,7 @@ zypper install -yn \
terraform-provider-aws \
terraform-provider-azurerm \
terraform-provider-google \
- terraform-provider-kubernetes \
- terraform-provider-openstack
+ terraform-provider-kubernetes
if [ -z ${SKIP_CLEAN+x} ]; then
zypper clean --all
fi
diff --git a/src/oracle/install/ansible/install_ansible.sh b/src/oracle/install/ansible/install_ansible.sh
index cc6f992..d07cd32 100644
--- a/src/oracle/install/ansible/install_ansible.sh
+++ b/src/oracle/install/ansible/install_ansible.sh
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
set -ex
-if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38) ]]; then
+if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38|fedora39) ]]; then
dnf install -y ansible
if [ -z ${SKIP_CLEAN+x} ]; then
dnf clean all
diff --git a/src/oracle/install/gimp/install_gimp.sh b/src/oracle/install/gimp/install_gimp.sh
index 5a83349..83b370e 100644
--- a/src/oracle/install/gimp/install_gimp.sh
+++ b/src/oracle/install/gimp/install_gimp.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
set -ex
-if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38) ]]; then
+if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38|fedora39) ]]; then
dnf install -y gimp
if [ -z ${SKIP_CLEAN+x} ]; then
dnf clean all
diff --git a/src/oracle/install/libre_office/install_libre_office.sh b/src/oracle/install/libre_office/install_libre_office.sh
index 3cc5e58..bf40005 100644
--- a/src/oracle/install/libre_office/install_libre_office.sh
+++ b/src/oracle/install/libre_office/install_libre_office.sh
@@ -7,7 +7,7 @@ if [ "$ARCH" == "amd64" ] ; then
exit 0
fi
-if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38) ]]; then
+if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38|fedora39) ]]; then
dnf install -y \
libreoffice-core \
libreoffice-writer \
diff --git a/src/oracle/install/only_office/install_only_office.sh b/src/oracle/install/only_office/install_only_office.sh
index 73e20a0..67bdfe8 100644
--- a/src/oracle/install/only_office/install_only_office.sh
+++ b/src/oracle/install/only_office/install_only_office.sh
@@ -8,7 +8,7 @@ if [ "$ARCH" == "arm64" ] ; then
fi
curl -L -o only_office.rpm "https://download.onlyoffice.com/install/desktop/editors/linux/onlyoffice-desktopeditors.$(arch).rpm"
-if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38) ]]; then
+if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38|fedora39) ]]; then
dnf localinstall -y only_office.rpm
if [ -z ${SKIP_CLEAN+x} ]; then
dnf clean all
diff --git a/src/oracle/install/slack/install_slack.sh b/src/oracle/install/slack/install_slack.sh
index 09e5ab4..589efe7 100644
--- a/src/oracle/install/slack/install_slack.sh
+++ b/src/oracle/install/slack/install_slack.sh
@@ -21,7 +21,7 @@ version=4.12.2
# This path may not be accurate once arm64 support arrives. Specifically I don't know if it will still be under x64
wget -q https://downloads.slack-edge.com/releases/linux/${version}/prod/x64/slack-${version}-0.1.fc21.x86_64.rpm -O slack.rpm
-if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38) ]]; then
+if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38|fedora39) ]]; then
dnf localinstall -y slack.rpm
if [ -z ${SKIP_CLEAN+x} ]; then
dnf clean all
diff --git a/src/oracle/install/sublime_text/install_sublime_text.sh b/src/oracle/install/sublime_text/install_sublime_text.sh
index 3e76aa8..e5d41f8 100644
--- a/src/oracle/install/sublime_text/install_sublime_text.sh
+++ b/src/oracle/install/sublime_text/install_sublime_text.sh
@@ -8,7 +8,7 @@ fi
rpm -v --import https://download.sublimetext.com/sublimehq-rpm-pub.gpg
-if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38) ]]; then
+if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38|fedora39) ]]; then
dnf config-manager --add-repo https://download.sublimetext.com/rpm/stable/$(arch)/sublime-text.repo
dnf install -y sublime-text
if [ -z ${SKIP_CLEAN+x} ]; then
diff --git a/src/oracle/install/terraform/install_terraform.sh b/src/oracle/install/terraform/install_terraform.sh
index 3008849..3d16e87 100644
--- a/src/oracle/install/terraform/install_terraform.sh
+++ b/src/oracle/install/terraform/install_terraform.sh
@@ -14,7 +14,7 @@ if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almali
if [ -z ${SKIP_CLEAN+x} ]; then
dnf clean all
fi
-elif [[ "${DISTRO}" == @(fedora37|fedora38) ]]; then
+elif [[ "${DISTRO}" == @(fedora37|fedora38|fedora39) ]]; then
dnf config-manager --add-repo https://rpm.releases.hashicorp.com/fedora/hashicorp.repo
dnf install -y terraform
if [ -z ${SKIP_CLEAN+x} ]; then
diff --git a/src/oracle/install/vs_code/install_vs_code.sh b/src/oracle/install/vs_code/install_vs_code.sh
index 61a478d..f5d4058 100644
--- a/src/oracle/install/vs_code/install_vs_code.sh
+++ b/src/oracle/install/vs_code/install_vs_code.sh
@@ -3,11 +3,11 @@ set -ex
ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/x64/g')
wget -q https://update.code.visualstudio.com/latest/linux-rpm-${ARCH}/stable -O vs_code.rpm
-if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38) ]]; then
+if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38|fedora39) ]]; then
wget -q https://update.code.visualstudio.com/latest/linux-rpm-${ARCH}/stable -O vs_code.rpm
dnf localinstall -y vs_code.rpm
else
- wget -q https://packages.microsoft.com/yumrepos/vscode/code-1.65.2-1646927812.el7.x86_64.rpm -O vs_code.rpm
+ wget -q https://packages.microsoft.com/yumrepos/vscode/code-1.85.1-1702462241.el7.x86_64.rpm -O vs_code.rpm
yum localinstall -y vs_code.rpm
fi
mkdir -p /usr/share/icons/hicolor/apps
@@ -20,7 +20,7 @@ chown 1000:1000 $HOME/Desktop/code.desktop
rm vs_code.rpm
# Conveniences for python development
-if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38) ]]; then
+if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38|fedora39) ]]; then
dnf install -y python3-setuptools python3-virtualenv
if [ -z ${SKIP_CLEAN+x} ]; then
dnf clean all
diff --git a/src/oracle/install/zoom/install_zoom.sh b/src/oracle/install/zoom/install_zoom.sh
index ec0b52a..8d3ccd1 100644
--- a/src/oracle/install/zoom/install_zoom.sh
+++ b/src/oracle/install/zoom/install_zoom.sh
@@ -8,7 +8,7 @@ fi
wget -q https://zoom.us/client/latest/zoom_$(arch).rpm
-if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38) ]]; then
+if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38|fedora39) ]]; then
dnf localinstall -y zoom_$(arch).rpm
if [ -z ${SKIP_CLEAN+x} ]; then
dnf clean all
diff --git a/src/ubuntu/install/android_studio/install_android_studio.sh b/src/ubuntu/install/android_studio/install_android_studio.sh
new file mode 100644
index 0000000..b8ee382
--- /dev/null
+++ b/src/ubuntu/install/android_studio/install_android_studio.sh
@@ -0,0 +1,45 @@
+#!/usr/bin/env bash
+set -ex
+
+
+ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
+if [ "$ARCH" == "arm64" ] ; then
+ echo "Android studio not supported on arm64, skipping installation"
+ exit 0
+fi
+
+apt-get update
+apt-get install -y libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386 openjdk-18-jdk
+
+# https://developer.android.com/studio/archive
+# curl https://developer.android.com/studio | grep android-studio | grep -i "linux.tar.gz" | grep ide-zips | cut -d '"' -f2
+ANDROID_STUDIO_DOWNLOAD_URL="https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2023.1.1.26/android-studio-2023.1.1.26-linux.tar.gz"
+
+curl -o /tmp/android_studio.tar.gz -L "${ANDROID_STUDIO_DOWNLOAD_URL}"
+
+mkdir -p /opt
+cd /tmp
+tar -zxvf /tmp/android_studio.tar.gz -C /opt/
+rm /tmp/android_studio.tar.gz
+ln -sf /opt/android-studio/bin/studio.sh /bin/android-studio
+chown 1000:1000 /opt/android-studio
+
+
+cat >/usr/share/applications/android-studio.desktop < /etc/apt/sources.list.d/atom.list
@@ -8,5 +9,18 @@ apt-get update
apt-get install -y atom
# Desktop Icon
+sed -i 's#/usr/bin/atom#/usr/bin/atom --no-sandbox#g' /usr/share/applications/atom.desktop
cp /usr/share/applications/atom.desktop $HOME/Desktop/
chmod +x $HOME/Desktop/atom.desktop
+
+# Cleanup for app layer
+chown -R 1000:0 $HOME
+find /usr/share/ -name "icon-theme.cache" -exec rm -f {} \;
+if [ -z ${SKIP_CLEAN+x} ]; then
+ apt-get autoclean
+ rm -rf \
+ /var/lib/apt/lists/* \
+ /var/tmp/* \
+ /tmp/*
+fi
+
diff --git a/src/ubuntu/install/audacity/install_audacity.sh b/src/ubuntu/install/audacity/install_audacity.sh
index 193649a..1b28555 100644
--- a/src/ubuntu/install/audacity/install_audacity.sh
+++ b/src/ubuntu/install/audacity/install_audacity.sh
@@ -1,7 +1,8 @@
#!/usr/bin/env bash
set -ex
-apt-get update
+# Install Audacity
+apt-get update
apt-get install -y audacity
rm -rf \
/var/lib/apt/lists/* \
@@ -12,3 +13,14 @@ mkdir -p $HOME/.audacity-data/
cp /dockerstartup/install/audacity/audacity.cfg $HOME/.audacity-data/
cp /usr/share/applications/audacity.desktop $HOME/Desktop/
chmod +x $HOME/Desktop/audacity.desktop
+
+# Cleanup for app layer
+chown -R 1000:0 $HOME
+find /usr/share/ -name "icon-theme.cache" -exec rm -f {} \;
+if [ -z ${SKIP_CLEAN+x} ]; then
+ apt-get autoclean
+ rm -rf \
+ /var/lib/apt/lists/* \
+ /var/tmp/* \
+ /tmp/*
+fi
diff --git a/src/ubuntu/install/blender/install_blender.sh b/src/ubuntu/install/blender/install_blender.sh
index 89dd7a9..3df7497 100644
--- a/src/ubuntu/install/blender/install_blender.sh
+++ b/src/ubuntu/install/blender/install_blender.sh
@@ -41,3 +41,20 @@ EOF
chmod +x /usr/bin/blender
rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/*
+
+# Desktop icon
+sed -i 's#Icon=blender#Icon=/blender/blender.svg#g' /blender/blender.desktop
+cp /blender/blender.desktop /usr/share/applications/
+cp /usr/share/applications/blender.desktop $HOME/Desktop/
+chmod +x $HOME/Desktop/blender.desktop
+
+# Cleanup for app layer
+chown -R 1000:0 $HOME
+find /usr/share/ -name "icon-theme.cache" -exec rm -f {} \;
+if [ -z ${SKIP_CLEAN+x} ]; then
+ apt-get autoclean
+ rm -rf \
+ /var/lib/apt/lists/* \
+ /var/tmp/* \
+ /tmp/*
+fi
diff --git a/src/ubuntu/install/brave/install_brave.sh b/src/ubuntu/install/brave/install_brave.sh
index 4cce3bf..93b0981 100644
--- a/src/ubuntu/install/brave/install_brave.sh
+++ b/src/ubuntu/install/brave/install_brave.sh
@@ -19,6 +19,7 @@ sed -i 's/-stable//g' /usr/share/applications/brave-browser.desktop
cp /usr/share/applications/brave-browser.desktop $HOME/Desktop/
chown 1000:1000 $HOME/Desktop/brave-browser.desktop
+chmod +x $HOME/Desktop/brave-browser.desktop
mv /usr/bin/brave-browser /usr/bin/brave-browser-orig
cat >/usr/bin/brave-browser <>/usr/bin/x-www-browser <>/etc/brave/policies/managed/default_managed_policy.json </usr/bin/google-chrome < /dev/null;then
+ rm -f \$HOME/.config/google-chrome/Singleton*
+fi
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/google-chrome/Default/Preferences
sed -i 's/"exit_type":"Crashed"/"exit_type":"None"/' ~/.config/google-chrome/Default/Preferences
if [ -f /opt/VirtualGL/bin/vglrun ] && [ ! -z "\${KASM_EGL_CARD}" ] && [ ! -z "\${KASM_RENDERD}" ] && [ -O "\${KASM_RENDERD}" ] && [ -O "\${KASM_EGL_CARD}" ] ; then
@@ -102,3 +105,7 @@ mkdir -p /etc/opt/chrome/policies/managed/
cat >>/etc/opt/chrome/policies/managed/default_managed_policy.json </usr/bin/${REAL_BIN} < /dev/null;then
+ rm -f \$HOME/.config/chromium/Singleton*
+fi
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/chromium/Default/Preferences
sed -i 's/"exit_type":"Crashed"/"exit_type":"None"/' ~/.config/chromium/Default/Preferences
if [ -f /opt/VirtualGL/bin/vglrun ] && [ ! -z "\${KASM_EGL_CARD}" ] && [ ! -z "\${KASM_RENDERD}" ] && [ -O "\${KASM_RENDERD}" ] && [ -O "\${KASM_EGL_CARD}" ] ; then
@@ -121,7 +124,7 @@ if [ "${DISTRO}" != "opensuse" ] && ! grep -q "ID=debian" /etc/os-release && ! g
cp /usr/bin/chromium-browser /usr/bin/chromium
fi
-if [[ "${DISTRO}" == @(centos|oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|opensuse|fedora37|fedora38) ]]; then
+if [[ "${DISTRO}" == @(centos|oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|opensuse|fedora37|fedora38|fedora39) ]]; then
cat >> $HOME/.config/mimeapps.list <>/etc/chromium/policies/managed/default_managed_policy.json <$HOME/.local/share/chocolate-doom/chocolate-doom.cfg </usr/bin/desktop_ready </usr/bin/microsoft-edge-dev </usr/bin/microsoft-edge-stable <>/usr/bin/x-www-browser <"$preferences_file" <>$HOME/.mozilla/firefox/profiles.ini <>$HOME/.mozilla/firefox/profiles.ini </usr/lib/hunchly/Hunchly </usr/share/applications/postman.desktop < /dev/null; then
+ echo "$process_match is running, continuing..."
+ break
+ fi
+ sleep $interval
+ elapsed_time=$((elapsed_time + interval))
+ done
+
+ if ! pgrep -x $process_match > /dev/null
+ then
+ echo "Did not find process $process_match"
+ fi
+
+}
+
+kasm_startup() {
+ if [ -n "$KASM_URL" ] ; then
+ URL=$KASM_URL
+ elif [ -z "$URL" ] ; then
+ URL=$LAUNCH_URL
+ fi
+
+ if [ -z "$DISABLE_CUSTOM_STARTUP" ] || [ -n "$FORCE" ] ; then
+
+ echo "Entering process startup loop"
+ set +x
+ while true
+ do
+ if ! pgrep -x $DOCKER_PGREP > /dev/null
+ then
+ set +e
+ sudo /usr/bin/supervisord -n &
+ set -e
+ if [ "$REDROID_DISABLE_AUTOSTART" == "0" ]; then
+ start_android
+ fi
+ fi
+ if [ "$REDROID_DISABLE_AUTOSTART" == "0" ]; then
+ if ! pgrep -x $SCRCPY_PGREP > /dev/null
+ then
+ start_scrcpy
+ fi
+ fi
+ sleep 1
+ done
+ set -x
+
+ fi
+
+}
+
+/usr/bin/filter_ready
+/usr/bin/desktop_ready
+
+
+if [ "$REDROID_DISABLE_HOST_CHECKS" == "0" ]; then
+ check_modules
+fi
+kasm_startup
diff --git a/src/ubuntu/install/redroid/install_redroid.sh b/src/ubuntu/install/redroid/install_redroid.sh
new file mode 100644
index 0000000..198cf36
--- /dev/null
+++ b/src/ubuntu/install/redroid/install_redroid.sh
@@ -0,0 +1,18 @@
+#!/usr/bin/env bash
+set -ex
+
+ARCH=$(arch | sed 's/x86_64/amd64/g')
+
+apt-get update
+apt-get install -y android-tools-adb android-tools-fastboot \
+ ffmpeg libsdl2-2.0-0 adb wget \
+ gcc git pkg-config meson ninja-build libsdl2-dev \
+ libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev \
+ libswresample-dev libusb-1.0-0 libusb-1.0-0-dev jq
+
+
+mkdir -p /opt/
+cd /opt/
+git clone https://github.com/Genymobile/scrcpy
+cd scrcpy
+./install_release.sh
\ No newline at end of file
diff --git a/src/ubuntu/install/remmina/install_remmina.sh b/src/ubuntu/install/remmina/install_remmina.sh
index f526264..4f649d4 100644
--- a/src/ubuntu/install/remmina/install_remmina.sh
+++ b/src/ubuntu/install/remmina/install_remmina.sh
@@ -1,13 +1,13 @@
#!/usr/bin/env bash
set -ex
-if [[ "${DISTRO}" == @(centos|oracle7|oracle8|oracle9|rockylinux9|rockylinux8|almalinux9|almalinux8|fedora37|fedora38) ]]; then
+if [[ "${DISTRO}" == @(centos|oracle7|oracle8|oracle9|rockylinux9|rockylinux8|almalinux9|almalinux8|fedora37|fedora38|fedora39) ]]; then
if [[ "${DISTRO}" == @(oracle8|rockylinux8|almalinux8) ]]; then
dnf install -y remmina remmina-plugins-rdp remmina-plugins-secret remmina-plugins-spice xdotool
if [ -z ${SKIP_CLEAN+x} ]; then
dnf clean all
fi
- elif [[ "${DISTRO}" == @(rockylinux9|oracle9|almalinux9|fedora37|fedora38) ]]; then
+ elif [[ "${DISTRO}" == @(rockylinux9|oracle9|almalinux9|fedora37|fedora38|fedora39) ]]; then
dnf install -y remmina remmina-plugins-rdp remmina-plugins-secret xdotool
if [ -z ${SKIP_CLEAN+x} ]; then
dnf clean all
@@ -25,7 +25,7 @@ elif [ "${DISTRO}" == "opensuse" ]; then
fi
elif grep -q "ID=debian" /etc/os-release; then
apt-get update
- apt-get install -y remmina remmina-plugin-rdp remmina-plugin-secret remmina-plugin-spice xdotool
+ apt-get install -y remmina remmina-plugin-rdp remmina-plugin-secret xdotool
if [ -z ${SKIP_CLEAN+x} ]; then
apt-get autoclean
rm -rf \
@@ -181,4 +181,7 @@ shareparallel=0
viewmode=4
EOF
+# Cleanup for app layer
+chown -R 1000:0 $HOME
+find /usr/share/ -name "icon-theme.cache" -exec rm -f {} \;
chown -R 1000:1000 $DEFAULT_PROFILE_DIR
diff --git a/src/ubuntu/install/retroarch/install_retroarch.sh b/src/ubuntu/install/retroarch/install_retroarch.sh
index a3d536f..8146131 100644
--- a/src/ubuntu/install/retroarch/install_retroarch.sh
+++ b/src/ubuntu/install/retroarch/install_retroarch.sh
@@ -1,12 +1,17 @@
#!/usr/bin/env bash
set -ex
+
+# Install Retroarch
SCRIPT_PATH="$( cd "$(dirname "$0")" ; pwd -P )"
add-apt-repository -y ppa:libretro/stable
apt-get update
-apt-get install -y retroarch
+apt-get install -y retroarch unzip
+
+# Deskto icon
cp /usr/share/applications/retroarch.desktop $HOME/Desktop/
chmod +x $HOME/Desktop/retroarch.desktop
+# Assets install
mkdir -p $HOME/.config/retroarch/{assets,cores}
cp $SCRIPT_PATH/retroarch.cfg $HOME/.config/retroarch/retroarch.cfg
echo "Downloading Assets"
@@ -44,3 +49,7 @@ if [ -z ${SKIP_CLEAN+x} ]; then
/var/lib/apt/lists/* \
/var/tmp/*
fi
+
+# Cleanup for app layer
+chown -R 1000:0 $HOME
+find /usr/share/ -name "icon-theme.cache" -exec rm -f {} \;
diff --git a/src/ubuntu/install/signal/install_signal.sh b/src/ubuntu/install/signal/install_signal.sh
index f562e68..d955eed 100644
--- a/src/ubuntu/install/signal/install_signal.sh
+++ b/src/ubuntu/install/signal/install_signal.sh
@@ -1,18 +1,29 @@
#!/usr/bin/env bash
set -ex
-ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
+# Install Signal
+ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
if [ "${ARCH}" == "arm64" ] ; then
echo "Signal for arm64 currently not supported, skipping install"
exit 0
fi
-
-
# Signal only releases its desktop app under the xenial release, however it is compatible with all versions of Debian and Ubuntu that we support.
wget -O- https://updates.signal.org/desktop/apt/keys.asc | apt-key add -
echo "deb [arch=${ARCH}] https://updates.signal.org/desktop/apt xenial main" | tee -a /etc/apt/sources.list.d/signal-xenial.list
apt-get update
-
apt-get install -y signal-desktop
+
+# Desktop icon
cp /usr/share/applications/signal-desktop.desktop $HOME/Desktop/
chmod +x $HOME/Desktop/signal-desktop.desktop
+
+# Cleanup for app layer
+chown -R 1000:0 $HOME
+find /usr/share/ -name "icon-theme.cache" -exec rm -f {} \;
+if [ -z ${SKIP_CLEAN+x} ]; then
+ apt-get autoclean
+ rm -rf \
+ /var/lib/apt/lists/* \
+ /var/tmp/* \
+ /tmp/*
+fi
diff --git a/src/ubuntu/install/slack/install_slack.sh b/src/ubuntu/install/slack/install_slack.sh
index 5604f66..632b436 100644
--- a/src/ubuntu/install/slack/install_slack.sh
+++ b/src/ubuntu/install/slack/install_slack.sh
@@ -12,18 +12,27 @@ version=$(curl -q https://slack.com/downloads/linux | grep page-downloads__hero_
echo Detected slack version $version
-if [[ "${DISTRO}" == @(centos|oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38|opensuse) ]]; then
+if [[ "${DISTRO}" == @(centos|oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38|fedora39|opensuse) ]]; then
wget -q https://downloads.slack-edge.com/releases/linux/${version}/prod/x64/slack-${version}-0.1.el8.x86_64.rpm
- if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38) ]]; then
+ if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37|fedora38|fedora39) ]]; then
dnf localinstall -y slack-${version}-0.1.el8.x86_64.rpm
+ if [ -z ${SKIP_CLEAN+x} ]; then
+ dnf clean all
+ fi
elif [[ "${DISTRO}" == "opensuse" ]]; then
wget https://slack.com/gpg/slack_pubkey_20230710.gpg
rpm --import slack_pubkey_20230710.gpg
zypper install -yn slack-${version}-0.1.el8.x86_64.rpm
+ if [ -z ${SKIP_CLEAN+x} ]; then
+ zypper clean --all
+ fi
else
yum localinstall -y slack-${version}-0.1.el8.x86_64.rpm
+ if [ -z ${SKIP_CLEAN+x} ]; then
+ yum clean all
+ fi
fi
rm slack-${version}-0.1.el8.x86_64.rpm
@@ -33,6 +42,13 @@ else
apt-get update
apt-get install -y ./slack-desktop-${version}-${ARCH}.deb
rm slack-desktop-${version}-${ARCH}.deb
+ if [ -z ${SKIP_CLEAN+x} ]; then
+ apt-get autoclean
+ rm -rf \
+ /var/lib/apt/lists/* \
+ /var/tmp/* \
+ /tmp/*
+ fi
fi
@@ -40,3 +56,7 @@ sed -i 's,/usr/bin/slack,/usr/bin/slack --no-sandbox,g' /usr/share/applications/
cp /usr/share/applications/slack.desktop $HOME/Desktop/
chmod +x $HOME/Desktop/slack.desktop
chown 1000:1000 $HOME/Desktop/slack.desktop
+
+# Cleanup for app layer
+chown -R 1000:0 $HOME
+find /usr/share/ -name "icon-theme.cache" -exec rm -f {} \;
diff --git a/src/ubuntu/install/spiderfoot/install_spiderfoot.sh b/src/ubuntu/install/spiderfoot/install_spiderfoot.sh
index fe1c3f2..13a2b69 100644
--- a/src/ubuntu/install/spiderfoot/install_spiderfoot.sh
+++ b/src/ubuntu/install/spiderfoot/install_spiderfoot.sh
@@ -1,17 +1,29 @@
#!/usr/bin/env bash
set -xe
-echo "Install Spiderfoot"
+SPIDERFOOT_VERSION=$(curl -sX GET "https://api.github.com/repos/smicallef/spiderfoot/releases/latest" | awk '/tag_name/{print $4;exit}' FS='[""]')
+
+# Install Spiderfoot
+echo "Install Spiderfoot"
apt-get update
apt-get install -y python3-pip
-
SPIDERFOOT_HOME=$HOME/spiderfoot
-
mkdir -p $SPIDERFOOT_HOME
cd $SPIDERFOOT_HOME
-wget https://github.com/smicallef/spiderfoot/archive/v4.0.tar.gz
-tar zxvf v4.0.tar.gz
-cd spiderfoot-4.0
+wget https://github.com/smicallef/spiderfoot/archive/${SPIDERFOOT_VERSION}.tar.gz
+tar zxvf ${SPIDERFOOT_VERSION}.tar.gz
+rm ${SPIDERFOOT_VERSION}.tar.gz
+cd spiderfoot-*
pip3 install -r requirements.txt
-chown -R 1000:1000 $SPIDERFOOT_HOME
\ No newline at end of file
+# Cleanup for app layer
+chown -R 1000:0 $HOME
+find /usr/share/ -name "icon-theme.cache" -exec rm -f {} \;
+if [ -z ${SKIP_CLEAN+x} ]; then
+ apt-get autoclean
+ rm -rf \
+ /var/lib/apt/lists/* \
+ /var/tmp/* \
+ /tmp/*
+fi
+
diff --git a/src/ubuntu/install/steam/install_steam.sh b/src/ubuntu/install/steam/install_steam.sh
index 2a4f4a5..4a9791b 100644
--- a/src/ubuntu/install/steam/install_steam.sh
+++ b/src/ubuntu/install/steam/install_steam.sh
@@ -1,9 +1,22 @@
#!/usr/bin/env bash
set -ex
+
+# Install Steam
dpkg --add-architecture i386
apt-get update
-
apt-get install -y steam-installer
+
+# Desktop icon
cp /usr/share/applications/steam.desktop $HOME/Desktop/
chmod +x $HOME/Desktop/steam.desktop
-chown 1000:1000 $HOME/Desktop/steam.desktop
+
+# Cleanup for app layer
+chown -R 1000:0 $HOME
+find /usr/share/ -name "icon-theme.cache" -exec rm -f {} \;
+if [ -z ${SKIP_CLEAN+x} ]; then
+ apt-get autoclean
+ rm -rf \
+ /var/lib/apt/lists/* \
+ /var/tmp/* \
+ /tmp/*
+fi
diff --git a/src/ubuntu/install/sublime_text/install_sublime_text.sh b/src/ubuntu/install/sublime_text/install_sublime_text.sh
index c811142..62c36b6 100644
--- a/src/ubuntu/install/sublime_text/install_sublime_text.sh
+++ b/src/ubuntu/install/sublime_text/install_sublime_text.sh
@@ -1,14 +1,25 @@
#!/usr/bin/env bash
set -ex
+# Install Sublime Text
apt-get update
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | apt-key add -
apt-get install -y apt-transport-https
echo "deb https://download.sublimetext.com/ apt/stable/" | tee /etc/apt/sources.list.d/sublime-text.list
apt-get update
-
apt-get install -y sublime-text
+# Desktop icon
cp /usr/share/applications/sublime_text.desktop $HOME/Desktop/
chmod +x $HOME/Desktop/sublime_text.desktop
-chown 1000:1000 $HOME/Desktop/sublime_text.desktop
+
+# Cleanup for app layer
+chown -R 1000:0 $HOME
+find /usr/share/ -name "icon-theme.cache" -exec rm -f {} \;
+if [ -z ${SKIP_CLEAN+x} ]; then
+ apt-get autoclean
+ rm -rf \
+ /var/lib/apt/lists/* \
+ /var/tmp/* \
+ /tmp/*
+fi
diff --git a/src/ubuntu/install/super_tux_kart/install_super_tux_kart.sh b/src/ubuntu/install/super_tux_kart/install_super_tux_kart.sh
index 2d2f6f4..ffe5a19 100644
--- a/src/ubuntu/install/super_tux_kart/install_super_tux_kart.sh
+++ b/src/ubuntu/install/super_tux_kart/install_super_tux_kart.sh
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
set -ex
+
+#
VERSION="1.3"
ARCH=$(uname -m | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
build=64bit
@@ -49,3 +51,14 @@ cat >/usr/bin/desktop_ready </usr/share/applications/telegram.desktop <