diff --git a/ci-scripts/template-vars.yaml b/ci-scripts/template-vars.yaml
index c64c1bb..9e58364 100644
--- a/ci-scripts/template-vars.yaml
+++ b/ci-scripts/template-vars.yaml
@@ -396,6 +396,15 @@ multiImages:
- src/ubuntu/install/langpacks/**
- src/ubuntu/install/cleanup/**
- src/alpine/install/**
+ - name: alpine-321-desktop
+ singleapp: false
+ base: core-alpine-321
+ dockerfile: dockerfile-kasm-alpine-321-desktop
+ changeFiles:
+ - dockerfile-kasm-alpine-321-desktop
+ - src/ubuntu/install/langpacks/**
+ - src/ubuntu/install/cleanup/**
+ - src/alpine/install/**
- name: brave
singleapp: true
base: core-ubuntu-focal
diff --git a/dockerfile-kasm-alpine-321-desktop b/dockerfile-kasm-alpine-321-desktop
new file mode 100644
index 0000000..ca32934
--- /dev/null
+++ b/dockerfile-kasm-alpine-321-desktop
@@ -0,0 +1,55 @@
+ARG BASE_TAG="develop"
+ARG BASE_IMAGE="core-alpine-321"
+FROM kasmweb/$BASE_IMAGE:$BASE_TAG
+
+USER root
+
+ENV DISTRO=alpine321
+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 \
+ /alpine/install/chromium/install_chromium.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-fedora-39-desktop b/dockerfile-kasm-fedora-39-desktop
index 2e73fc9..c0c0efa 100644
--- a/dockerfile-kasm-fedora-39-desktop
+++ b/dockerfile-kasm-fedora-39-desktop
@@ -25,8 +25,8 @@ 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 \
+ /oracle/install/terraform/install_terraform.sh \
/ubuntu/install/thunderbird/install_thunderbird.sh \
/ubuntu/install/slack/install_slack.sh \
/ubuntu/install/cleanup/cleanup.sh"
diff --git a/docs/alpine-321-desktop/README.md b/docs/alpine-321-desktop/README.md
new file mode 100644
index 0000000..3631713
--- /dev/null
+++ b/docs/alpine-321-desktop/README.md
@@ -0,0 +1,7 @@
+# About This Image
+
+This Image contains a browser-accessible Alpine 3.21 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/alpine-321-desktop/demo.txt b/docs/alpine-321-desktop/demo.txt
new file mode 100644
index 0000000..0b606c7
--- /dev/null
+++ b/docs/alpine-321-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/alpine-321-desktop/description.txt b/docs/alpine-321-desktop/description.txt
new file mode 100644
index 0000000..048d733
--- /dev/null
+++ b/docs/alpine-321-desktop/description.txt
@@ -0,0 +1 @@
+Alpine 3.21 desktop for Kasm Workspaces
diff --git a/src/alpine/install/terraform/install_terraform.sh b/src/alpine/install/terraform/install_terraform.sh
index bab7b3e..81bb08c 100644
--- a/src/alpine/install/terraform/install_terraform.sh
+++ b/src/alpine/install/terraform/install_terraform.sh
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
set -ex
-if grep -q v3.19 /etc/os-release || grep -q v3.20 /etc/os-release; then
+if grep -q v3.19 /etc/os-release || grep -q v3.20 /etc/os-release || grep -q v3.21 /etc/os-release; then
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing/ \
opentofu
else
diff --git a/src/oracle/install/terraform/install_terraform.sh b/src/oracle/install/terraform/install_terraform.sh
index aaf0147..abc837a 100644
--- a/src/oracle/install/terraform/install_terraform.sh
+++ b/src/oracle/install/terraform/install_terraform.sh
@@ -1,13 +1,10 @@
#!/usr/bin/env bash
set -ex
-
ARCH=$(arch | sed 's/aarch64/arm64/g' | sed 's/x86_64/amd64/g')
-
if [ "${ARCH}" == "arm64" ] ; then
echo "Terraform for arm64 currently not supported, skipping install"
exit 0
fi
-
if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|rhel9|almalinux9|almalinux8) ]]; then
dnf config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
dnf install -y terraform
diff --git a/src/ubuntu/install/slack/install_slack.sh b/src/ubuntu/install/slack/install_slack.sh
index 63119d6..8c69d23 100644
--- a/src/ubuntu/install/slack/install_slack.sh
+++ b/src/ubuntu/install/slack/install_slack.sh
@@ -22,8 +22,8 @@ if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|rhel9|almalinux9|
dnf clean all
fi
elif [[ "${DISTRO}" == "opensuse" ]]; then
- wget https://slack.com/gpg/slack_pubkey_20230710.gpg
- rpm --import slack_pubkey_20230710.gpg
+ wget https://slack.com/gpg/slack_pubkey_20240822.gpg
+ rpm --import slack_pubkey_20240822.gpg
zypper install -yn slack-${version}-0.1.el8.x86_64.rpm
if [ -z ${SKIP_CLEAN+x} ]; then
zypper clean --all
diff --git a/src/ubuntu/install/thunderbird/install_thunderbird.sh b/src/ubuntu/install/thunderbird/install_thunderbird.sh
index 4b1b0fd..a36a21a 100644
--- a/src/ubuntu/install/thunderbird/install_thunderbird.sh
+++ b/src/ubuntu/install/thunderbird/install_thunderbird.sh
@@ -47,6 +47,9 @@ if [[ "${DISTRO}" == "fedora39" ]]; then
elif [[ "${DISTRO}" == "fedora40" ]]; then
cp /usr/share/applications/org.mozilla.thunderbird.desktop $HOME/Desktop/
chmod +x $HOME/Desktop/org.mozilla.thunderbird.desktop
+elif [[ "${DISTRO}" == "opensuse" ]]; then
+ cp /usr/share/applications/thunderbird-esr.desktop $HOME/Desktop/
+ chmod +x $HOME/Desktop/thunderbird-esr.desktop
else
cp /usr/share/applications/thunderbird.desktop $HOME/Desktop/
chmod +x $HOME/Desktop/thunderbird.desktop