From 60cb83e030d75f9b8f0843d0d84a3f8e1e76c9b2 Mon Sep 17 00:00:00 2001 From: Ryan Kuba Date: Fri, 17 Mar 2023 14:12:04 +0000 Subject: [PATCH] Resolve KASM-4025 "Feature/ new images" --- .gitlab-ci.yml | 433 +++++++++++++++--- dockerfile-kasm-almalinux-8-desktop | 92 ++++ dockerfile-kasm-almalinux-9-desktop | 88 ++++ dockerfile-kasm-alpine-317-desktop | 97 ++++ dockerfile-kasm-debian-bullseye-desktop | 101 ++++ dockerfile-kasm-desktop-deluxe | 4 - dockerfile-kasm-fedora-37-desktop | 88 ++++ dockerfile-kasm-kali-rolling-desktop | 35 ++ dockerfile-kasm-opensuse-15-desktop | 4 - dockerfile-kasm-oracle-7-desktop | 6 +- dockerfile-kasm-oracle-8-desktop | 4 - dockerfile-kasm-oracle-9-desktop | 88 ++++ dockerfile-kasm-parrotos-5-desktop | 34 ++ dockerfile-kasm-remnux-focal-desktop | 31 ++ dockerfile-kasm-rockylinux-8-desktop | 92 ++++ dockerfile-kasm-rockylinux-9-desktop | 88 ++++ dockerfile-kasm-tracelabs | 4 + dockerfile-kasm-ubuntu-focal-desktop | 4 - dockerfile-kasm-ubuntu-jammy-desktop | 4 - docs/almalinux-8-desktop/README.md | 7 + docs/almalinux-8-desktop/demo.txt | 9 + docs/almalinux-8-desktop/description.txt | 1 + docs/almalinux-9-desktop/README.md | 7 + docs/almalinux-9-desktop/demo.txt | 9 + docs/almalinux-9-desktop/description.txt | 1 + docs/alpine-317-desktop/README.md | 7 + docs/alpine-317-desktop/demo.txt | 9 + docs/alpine-317-desktop/description.txt | 1 + docs/debian-bullseye-desktop/README.md | 7 + docs/debian-bullseye-desktop/demo.txt | 9 + docs/debian-bullseye-desktop/description.txt | 1 + docs/fedora-37-desktop/README.md | 7 + docs/fedora-37-desktop/demo.txt | 9 + docs/fedora-37-desktop/description.txt | 1 + docs/kali-rolling-desktop/README.md | 7 + docs/kali-rolling-desktop/demo.txt | 9 + docs/kali-rolling-desktop/description.txt | 1 + docs/oracle-9-desktop/README.md | 7 + docs/oracle-9-desktop/demo.txt | 9 + docs/oracle-9-desktop/description.txt | 1 + docs/parrotos-5-desktop/README.md | 7 + docs/parrotos-5-desktop/demo.txt | 9 + docs/parrotos-5-desktop/description.txt | 1 + docs/remnux-focal-desktop/README.md | 7 + docs/remnux-focal-desktop/demo.txt | 9 + docs/remnux-focal-desktop/description.txt | 1 + docs/rockylinux-8-desktop/README.md | 7 + docs/rockylinux-8-desktop/demo.txt | 9 + docs/rockylinux-8-desktop/description.txt | 1 + docs/rockylinux-9-desktop/README.md | 7 + docs/rockylinux-9-desktop/demo.txt | 9 + docs/rockylinux-9-desktop/description.txt | 1 + docs/teams/demo.txt | 4 + src/alpine/install/ansible/install_ansible.sh | 6 + src/alpine/install/audacity/audacity.cfg | 2 + src/alpine/install/audacity/custom_startup.sh | 84 ++++ .../install/audacity/install_audacity.sh | 9 + src/alpine/install/blender/custom_startup.sh | 84 ++++ src/alpine/install/blender/install_blender.sh | 9 + src/alpine/install/chromium/custom_startup.sh | 84 ++++ .../install/chromium/install_chromium.sh | 52 +++ .../install/filezilla/custom_startup.sh | 84 ++++ src/alpine/install/filezilla/filezilla.xml | 139 ++++++ .../install/filezilla/install_filezilla.sh | 9 + src/alpine/install/firefox/custom_startup.sh | 89 ++++ src/alpine/install/firefox/firefox.desktop | 221 +++++++++ src/alpine/install/firefox/install_firefox.sh | 43 ++ src/alpine/install/geany/install_geany.sh | 9 + src/alpine/install/gimp/custom_startup.sh | 84 ++++ src/alpine/install/gimp/install_gimp.sh | 9 + src/alpine/install/inkscape/custom_startup.sh | 84 ++++ .../install/inkscape/install_inkscape.sh | 9 + .../install/libre_office/custom_startup.sh | 85 ++++ .../libre_office/install_libre_office.sh | 11 + src/alpine/install/misc/install_tools.sh | 8 + .../install/obs/install_obs.sh | 11 +- src/alpine/install/pinta/custom_startup.sh | 84 ++++ src/alpine/install/pinta/install_pinta.sh | 9 + src/alpine/install/remmina/custom_startup.sh | 97 ++++ src/alpine/install/remmina/install_remmina.sh | 9 + src/alpine/install/remmina/remmina.pref | 13 + .../install/terraform/install_terraform.sh | 5 + .../install/thunderbird/custom_startup.sh | 84 ++++ .../thunderbird/install_thunderbird.sh | 9 + .../install/tools/install_tools_deluxe.sh | 13 + src/oracle/install/ansible/install_ansible.sh | 2 +- src/oracle/install/gimp/install_gimp.sh | 2 +- .../libre_office/install_libre_office.sh | 2 +- src/oracle/install/obs/install_obs.sh | 2 +- .../only_office/install_only_office.sh | 2 +- src/oracle/install/slack/install_slack.sh | 2 +- .../sublime_text/install_sublime_text.sh | 2 +- .../install/terraform/install_terraform.sh | 6 +- .../install/tools/install_tools_deluxe.sh | 2 +- src/oracle/install/vs_code/install_vs_code.sh | 4 +- src/oracle/install/zoom/install_zoom.sh | 2 +- src/ubuntu/install/ansible/install_ansible.sh | 13 +- src/ubuntu/install/chrome/install_chrome.sh | 7 +- .../install/chromium/install_chromium.sh | 59 ++- src/ubuntu/install/dind/install_dind.sh | 1 + src/ubuntu/install/firefox/install_firefox.sh | 47 +- src/ubuntu/install/kali/install_kali.sh | 32 ++ .../install/nextcloud/install_nextcloud.sh | 5 +- src/ubuntu/install/obs/install_obs.sh | 17 +- src/ubuntu/install/parrot/install_parrot.sh | 34 ++ src/ubuntu/install/remmina/install_remmina.sh | 10 +- src/ubuntu/install/remnux/install_remnux.sh | 21 + .../thunderbird/install_thunderbird.sh | 16 +- .../install/tracelabs/install_tracelabs.sh | 37 +- src/ubuntu/install/vivaldi/install_vivaldi.sh | 10 +- 110 files changed, 3194 insertions(+), 179 deletions(-) create mode 100644 dockerfile-kasm-almalinux-8-desktop create mode 100644 dockerfile-kasm-almalinux-9-desktop create mode 100644 dockerfile-kasm-alpine-317-desktop create mode 100644 dockerfile-kasm-debian-bullseye-desktop create mode 100644 dockerfile-kasm-fedora-37-desktop create mode 100644 dockerfile-kasm-kali-rolling-desktop create mode 100644 dockerfile-kasm-oracle-9-desktop create mode 100644 dockerfile-kasm-parrotos-5-desktop create mode 100644 dockerfile-kasm-remnux-focal-desktop create mode 100644 dockerfile-kasm-rockylinux-8-desktop create mode 100644 dockerfile-kasm-rockylinux-9-desktop create mode 100644 docs/almalinux-8-desktop/README.md create mode 100644 docs/almalinux-8-desktop/demo.txt create mode 100644 docs/almalinux-8-desktop/description.txt create mode 100644 docs/almalinux-9-desktop/README.md create mode 100644 docs/almalinux-9-desktop/demo.txt create mode 100644 docs/almalinux-9-desktop/description.txt create mode 100644 docs/alpine-317-desktop/README.md create mode 100644 docs/alpine-317-desktop/demo.txt create mode 100644 docs/alpine-317-desktop/description.txt create mode 100644 docs/debian-bullseye-desktop/README.md create mode 100644 docs/debian-bullseye-desktop/demo.txt create mode 100644 docs/debian-bullseye-desktop/description.txt create mode 100644 docs/fedora-37-desktop/README.md create mode 100644 docs/fedora-37-desktop/demo.txt create mode 100644 docs/fedora-37-desktop/description.txt create mode 100644 docs/kali-rolling-desktop/README.md create mode 100644 docs/kali-rolling-desktop/demo.txt create mode 100644 docs/kali-rolling-desktop/description.txt create mode 100644 docs/oracle-9-desktop/README.md create mode 100644 docs/oracle-9-desktop/demo.txt create mode 100644 docs/oracle-9-desktop/description.txt create mode 100644 docs/parrotos-5-desktop/README.md create mode 100644 docs/parrotos-5-desktop/demo.txt create mode 100644 docs/parrotos-5-desktop/description.txt create mode 100644 docs/remnux-focal-desktop/README.md create mode 100644 docs/remnux-focal-desktop/demo.txt create mode 100644 docs/remnux-focal-desktop/description.txt create mode 100644 docs/rockylinux-8-desktop/README.md create mode 100644 docs/rockylinux-8-desktop/demo.txt create mode 100644 docs/rockylinux-8-desktop/description.txt create mode 100644 docs/rockylinux-9-desktop/README.md create mode 100644 docs/rockylinux-9-desktop/demo.txt create mode 100644 docs/rockylinux-9-desktop/description.txt create mode 100644 src/alpine/install/ansible/install_ansible.sh create mode 100644 src/alpine/install/audacity/audacity.cfg create mode 100644 src/alpine/install/audacity/custom_startup.sh create mode 100644 src/alpine/install/audacity/install_audacity.sh create mode 100644 src/alpine/install/blender/custom_startup.sh create mode 100644 src/alpine/install/blender/install_blender.sh create mode 100644 src/alpine/install/chromium/custom_startup.sh create mode 100644 src/alpine/install/chromium/install_chromium.sh create mode 100644 src/alpine/install/filezilla/custom_startup.sh create mode 100644 src/alpine/install/filezilla/filezilla.xml create mode 100644 src/alpine/install/filezilla/install_filezilla.sh create mode 100644 src/alpine/install/firefox/custom_startup.sh create mode 100644 src/alpine/install/firefox/firefox.desktop create mode 100644 src/alpine/install/firefox/install_firefox.sh create mode 100644 src/alpine/install/geany/install_geany.sh create mode 100644 src/alpine/install/gimp/custom_startup.sh create mode 100644 src/alpine/install/gimp/install_gimp.sh create mode 100644 src/alpine/install/inkscape/custom_startup.sh create mode 100644 src/alpine/install/inkscape/install_inkscape.sh create mode 100644 src/alpine/install/libre_office/custom_startup.sh create mode 100644 src/alpine/install/libre_office/install_libre_office.sh create mode 100644 src/alpine/install/misc/install_tools.sh rename src/{opensuse => alpine}/install/obs/install_obs.sh (53%) create mode 100644 src/alpine/install/pinta/custom_startup.sh create mode 100644 src/alpine/install/pinta/install_pinta.sh create mode 100644 src/alpine/install/remmina/custom_startup.sh create mode 100644 src/alpine/install/remmina/install_remmina.sh create mode 100644 src/alpine/install/remmina/remmina.pref create mode 100644 src/alpine/install/terraform/install_terraform.sh create mode 100644 src/alpine/install/thunderbird/custom_startup.sh create mode 100644 src/alpine/install/thunderbird/install_thunderbird.sh create mode 100644 src/alpine/install/tools/install_tools_deluxe.sh create mode 100644 src/ubuntu/install/kali/install_kali.sh create mode 100644 src/ubuntu/install/parrot/install_parrot.sh create mode 100644 src/ubuntu/install/remnux/install_remnux.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 24394c5..ecdd707 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,12 +5,14 @@ variables: KASM_RELEASE: "1.12.0" DOCKER_AUTH_CONFIG: ${_DOCKER_AUTH_CONFIG} PLATFORM: "linux/amd64" - ARM_BUILDS: ",chromium,firefox,gimp,remmina,terminal,ubuntu-bionic-desktop,ubuntu-focal-desktop,ubuntu-jammy-desktop,vlc,vs-code,doom,sublime-text,tor-browser,java-dev,telegram,opensuse-15-desktop,oracle-8-desktop,libre-office,thunderbird,audacity,deluge,filezilla,inkscape,pinta,qbittorrent,vivaldi,minetest,retroarch,super-tux-kart," + ARM_BUILDS: ",chromium,firefox,gimp,remmina,terminal,ubuntu-bionic-desktop,ubuntu-focal-desktop,ubuntu-jammy-desktop,vlc,vs-code,doom,sublime-text,tor-browser,java-dev,telegram,opensuse-15-desktop,oracle-8-desktop,libre-office,thunderbird,audacity,deluge,filezilla,inkscape,pinta,qbittorrent,vivaldi,minetest,retroarch,super-tux-kart,ubuntu-focal-dind,ubuntu-focal-dind-rootless,ubuntu-jammy-dind,ubuntu-jammy-dind-rootless,almalinux-8-desktop,almalinux-9-desktop,alpine-317-desktop,debian-bullseye-desktop,fedora-37-desktop,kali-rolling-desktop,oracle-9-desktop,parrotos-5-desktop,rockylinux-8-desktop,rockylinux-9-desktop," CORE_IMAGE_TAG: "develop" CORE_IMAGE: "core-ubuntu-focal" USE_PRIVATE_IMAGES: 0 -# YAML level anchors +###################### +# YAML level anchors # +###################### .MULTI_ARCH_BUILDS: &MULTI_ARCH_BUILDS - audacity - chromium @@ -38,9 +40,23 @@ variables: - vs-code .MULTI_ARCH_BUILDS2: &MULTI_ARCH_BUILDS2 + - almalinux-8-desktop + - almalinux-9-desktop + - alpine-317-desktop + - debian-bullseye-desktop + - fedora-37-desktop + - kali-rolling-desktop - minetest + - oracle-9-desktop + - parrotos-5-desktop - retroarch + - rockylinux-8-desktop + - rockylinux-9-desktop - super-tux-kart + - ubuntu-focal-dind + - ubuntu-focal-dind-rootless + - ubuntu-jammy-dind + - ubuntu-jammy-dind-rootless - vivaldi .SINGLE_ARCH_BUILDS: &SINGLE_ARCH_BUILDS @@ -59,17 +75,86 @@ variables: - only-office - oracle-7-desktop - postman + - remnux-focal-desktop - signal - steam - - teams - tracelabs + - unityhub + - zoom + - zsnes + +.BROWSER_IMAGES: &BROWSER_IMAGES + - brave + - chrome + - chromium + - edge + - firefox + - tor-browser + - vivaldi + +.APP_IMAGES: &APP_IMAGES + - atom + - audacity + - blender + - deluge + - discord + - filezilla + - gimp + - hunchly + - inkscape + - insomnia + - java-dev + - libre-office + - maltego + - only-office + - pinta + - postman + - qbittorrent + - remmina + - signal + - steam + - sublime-text + - telegram + - terminal + - thunderbird + - unityhub + - vlc + - vs-code + - zoom + - zsnes + +.UBUNTU_IMAGES: &UBUNTU_IMAGES + - desktop + - desktop-deluxe + - remnux-focal-desktop + - ubuntu-focal-desktop + - ubuntu-jammy-desktop - ubuntu-focal-dind - ubuntu-focal-dind-rootless - ubuntu-jammy-dind - ubuntu-jammy-dind-rootless - - unityhub - - zoom - - zsnes + +.NON_UBUNTU_IMAGES: &NON_UBUNTU_IMAGES + - almalinux-8-desktop + - almalinux-9-desktop + - alpine-317-desktop + - centos-7-desktop + - debian-bullseye-desktop + - kali-rolling-desktop + - opensuse-15-desktop + - oracle-7-desktop + - oracle-8-desktop + - oracle-9-desktop + - parrotos-5-desktop + - rockylinux-8-desktop + - rockylinux-9-desktop + - tracelabs + +.GAME_IMAGES: &GAME_IMAGES + - doom + - minetest + - retroarch + - super-tux-kart stages: - readme @@ -83,7 +168,9 @@ before_script: - export SANITIZED_BRANCH="$(echo $CI_COMMIT_REF_NAME | sed -r 's#^release/##' | sed 's/\//_/g')" - export SANITIZED_ROLLING_BRANCH=${SANITIZED_BRANCH}-rolling -# Jobs for the develop and release branches. They should push to the private and public repos +############################################################################################### +# Jobs for the develop and release branches. They should push to the private and public repos # +############################################################################################### build_browser_images: stage: build image: ${ORG_NAME}/docker-buildx-private:develop @@ -100,8 +187,16 @@ build_browser_images: - ls docs/$KASM_IMAGE/description.txt # Check for private variable to build against private core images - if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi; - - - docker buildx build --push --platform $BUILD_PLATFORM -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_BRANCH -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE=$CORE_IMAGE --build-arg BASE_TAG=$CORE_IMAGE_TAG -f dockerfile-kasm-$KASM_IMAGE . + - > + docker buildx build --push + --platform $BUILD_PLATFORM + -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH + --build-arg BASE_IMAGE=$CORE_IMAGE + --build-arg BASE_TAG=$CORE_IMAGE_TAG + -f dockerfile-kasm-$KASM_IMAGE . only: - develop - /^release\/.*$/ @@ -111,7 +206,7 @@ build_browser_images: - aws-autoscale parallel: matrix: - - KASM_IMAGE: [chrome, chromium, firefox, tor-browser, edge, brave, vivaldi] + - KASM_IMAGE: *BROWSER_IMAGES build_app_images: stage: build @@ -129,8 +224,16 @@ build_app_images: - ls docs/$KASM_IMAGE/description.txt # Check for private variable to build against private core images - if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi; - - - docker buildx build --push --platform $BUILD_PLATFORM -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_BRANCH -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE=$CORE_IMAGE --build-arg BASE_TAG=$CORE_IMAGE_TAG -f dockerfile-kasm-$KASM_IMAGE . + - > + docker buildx build --push + --platform $BUILD_PLATFORM + -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH + --build-arg BASE_IMAGE=$CORE_IMAGE + --build-arg BASE_TAG=$CORE_IMAGE_TAG + -f dockerfile-kasm-$KASM_IMAGE . only: - develop - /^release\/.*$/ @@ -140,7 +243,7 @@ build_app_images: - aws-autoscale parallel: matrix: - - KASM_IMAGE: [sublime-text, gimp, vs-code, teams, only-office, zoom, signal, steam, postman, insomnia, zsnes, vlc, maltego, telegram, hunchly, java-dev, terminal, remmina, discord, libre-office, thunderbird, atom, audacity, deluge, filezilla, inkscape, pinta, qbittorrent, blender, unityhub] + - KASM_IMAGE: *APP_IMAGES build_ubuntu_desktop_images: stage: build @@ -157,12 +260,22 @@ build_ubuntu_desktop_images: - ls docs/$KASM_IMAGE/README.md - ls docs/$KASM_IMAGE/description.txt # Check for private variable to build against private core images + - if [[ $KASM_IMAGE =~ 'remnux-focal-desktop' ]]; then CORE_IMAGE=core-remnux-focal; fi - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-desktop' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-dind' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-dind-rootless' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi + # Check for private variable to build against private core images - if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi; - - - docker buildx build --push --platform $BUILD_PLATFORM -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_BRANCH -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE=$CORE_IMAGE --build-arg BASE_TAG=$CORE_IMAGE_TAG -f dockerfile-kasm-$KASM_IMAGE . + - > + docker buildx build --push + --platform $BUILD_PLATFORM + -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH + --build-arg BASE_IMAGE=$CORE_IMAGE + --build-arg BASE_TAG=$CORE_IMAGE_TAG + -f dockerfile-kasm-$KASM_IMAGE . only: - develop - /^release\/.*$/ @@ -172,7 +285,7 @@ build_ubuntu_desktop_images: - aws-autoscale parallel: matrix: - - KASM_IMAGE: [desktop, desktop-deluxe, ubuntu-focal-desktop, ubuntu-jammy-desktop, ubuntu-focal-dind, ubuntu-focal-dind-rootless, ubuntu-jammy-dind, ubuntu-jammy-dind-rootless] + - KASM_IMAGE: *UBUNTU_IMAGES build_non_ubuntu: stage: build @@ -189,16 +302,33 @@ build_non_ubuntu: - ls docs/$KASM_IMAGE/README.md - ls docs/$KASM_IMAGE/description.txt # Set base image based on kasm_image variable + - if [[ $KASM_IMAGE =~ 'almalinux-8-desktop' ]]; then CORE_IMAGE=core-almalinux-8; fi + - if [[ $KASM_IMAGE =~ 'almalinux-9-desktop' ]]; then CORE_IMAGE=core-almalinux-9; fi + - if [[ $KASM_IMAGE =~ 'alpine-317-desktop' ]]; then CORE_IMAGE=core-alpine-317; fi - if [[ $KASM_IMAGE =~ 'centos-7-desktop' ]]; then CORE_IMAGE=core-centos-7; fi - - if [[ $KASM_IMAGE =~ 'tracelabs' ]]; then CORE_IMAGE=core-kali-rolling; fi + - if [[ $KASM_IMAGE =~ 'debian-bullseye-desktop' ]]; then CORE_IMAGE=core-debian-bullseye; fi + - if [[ $KASM_IMAGE =~ 'fedora-37-desktop' ]]; then CORE_IMAGE=core-fedora-37; fi + - if [[ $KASM_IMAGE =~ 'kali-rolling-desktop' ]]; then CORE_IMAGE=core-kali-rolling; fi + - if [[ $KASM_IMAGE =~ 'opensuse-15-desktop' ]]; then CORE_IMAGE=core-opensuse-15; fi - if [[ $KASM_IMAGE =~ 'oracle-7-desktop' ]]; then CORE_IMAGE=core-oracle-7; fi - if [[ $KASM_IMAGE =~ 'oracle-8-desktop' ]]; then CORE_IMAGE=core-oracle-8; fi - - if [[ $KASM_IMAGE =~ 'opensuse-15-desktop' ]]; then CORE_IMAGE=core-opensuse-15; fi - - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-desktop' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi + - if [[ $KASM_IMAGE =~ 'oracle-9-desktop' ]]; then CORE_IMAGE=core-oracle-9; fi + - if [[ $KASM_IMAGE =~ 'parrotos-5-desktop' ]]; then CORE_IMAGE=core-parrotos-5; fi + - if [[ $KASM_IMAGE =~ 'rockylinux-8-desktop' ]]; then CORE_IMAGE=core-rockylinux-8; fi + - if [[ $KASM_IMAGE =~ 'rockylinux-9-desktop' ]]; then CORE_IMAGE=core-rockylinux-9; fi + - if [[ $KASM_IMAGE =~ 'tracelabs' ]]; then CORE_IMAGE=core-kali-rolling; fi # Check for private variable to build against private core images - if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi; - - - docker buildx build --push --platform $BUILD_PLATFORM -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_BRANCH -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE=$CORE_IMAGE --build-arg BASE_TAG=$CORE_IMAGE_TAG -f dockerfile-kasm-$KASM_IMAGE . + - > + docker buildx build --push + --platform $BUILD_PLATFORM + -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH + --build-arg BASE_IMAGE=$CORE_IMAGE + --build-arg BASE_TAG=$CORE_IMAGE_TAG + -f dockerfile-kasm-$KASM_IMAGE . only: - develop - /^release\/.*$/ @@ -208,7 +338,44 @@ build_non_ubuntu: - aws-autoscale parallel: matrix: - - KASM_IMAGE: [centos-7-desktop, tracelabs, opensuse-15-desktop, oracle-7-desktop, oracle-8-desktop] + - KASM_IMAGE: *NON_UBUNTU_IMAGES + +build_fedora_37: + stage: build + script: + - > + docker build + -t ${ORG_NAME}/fedora-37-desktop:$(arch)-$SANITIZED_BRANCH + -f dockerfile-kasm-fedora-37-desktop . + - docker push ${ORG_NAME}/fedora-37-desktop:$(arch)-$SANITIZED_BRANCH + only: + - develop + - /^release\/.*$/ + except: + - schedules + tags: + - ${TAG} + parallel: + matrix: + - TAG: [ aws-autoscale, aws-autoscale-arm64 ] + +manifest_fedora_37: + stage: manifest + script: + - docker pull ${ORG_NAME}/fedora-37-desktop:x86_64-$SANITIZED_BRANCH + - docker pull ${ORG_NAME}/fedora-37-desktop:aarch64-$SANITIZED_BRANCH + - "docker manifest push --purge ${ORG_NAME}/fedora-37-desktop:$SANITIZED_BRANCH || :" + - docker manifest create ${ORG_NAME}/fedora-37-desktop:$SANITIZED_BRANCH ${ORG_NAME}/fedora-37-desktop:x86_64-$SANITIZED_BRANCH ${ORG_NAME}/fedora-37-desktop:aarch64-$SANITIZED_BRANCH + - docker manifest annotate ${ORG_NAME}/fedora-37-desktop:$SANITIZED_BRANCH ${ORG_NAME}/fedora-37-desktop:aarch64-$SANITIZED_BRANCH --os linux --arch arm64 --variant v8 + - docker manifest push --purge ${ORG_NAME}/fedora-37-desktop:$SANITIZED_BRANCH + only: + - develop + - /^release\/.*$/ + except: + - schedules + needs: [ build_fedora_37 ] + tags: + - aws-autoscale build_games: stage: build @@ -226,8 +393,16 @@ build_games: - ls docs/$KASM_IMAGE/description.txt # Check for private variable to build against private core images - if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi; - - - docker buildx build --push --platform $BUILD_PLATFORM -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_BRANCH -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE=$CORE_IMAGE --build-arg BASE_TAG=$CORE_IMAGE_TAG -f dockerfile-kasm-$KASM_IMAGE . + - > + docker buildx build --push + --platform $BUILD_PLATFORM + -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH + --build-arg BASE_IMAGE=$CORE_IMAGE + --build-arg BASE_TAG=$CORE_IMAGE_TAG + -f dockerfile-kasm-$KASM_IMAGE . only: - develop - /^release\/.*$/ @@ -237,9 +412,11 @@ build_games: - aws-autoscale parallel: matrix: - - KASM_IMAGE: [doom, minetest, retroarch, super-tux-kart] + - KASM_IMAGE: *GAME_IMAGES -# These jobs should run on the feature/bugfix branches - anything that is not the develop or release branches. It should only push images to the private repos +################################################################################################################################################################ +# These jobs should run on the feature/bugfix branches - anything that is not the develop or release branches. It should only push images to the private repos # +################################################################################################################################################################ build_multi_arch_dev: stage: build image: ${ORG_NAME}/docker-buildx-private:develop @@ -248,12 +425,24 @@ build_multi_arch_dev: - ls docs/$KASM_IMAGE/README.md - ls docs/$KASM_IMAGE/description.txt # Set core image names + - if [[ $KASM_IMAGE =~ 'almalinux-8-desktop' ]]; then CORE_IMAGE=core-almalinux-8; fi + - if [[ $KASM_IMAGE =~ 'almalinux-9-desktop' ]]; then CORE_IMAGE=core-almalinux-9; fi + - if [[ $KASM_IMAGE =~ 'alpine-317-desktop' ]]; then CORE_IMAGE=core-alpine-317; fi - if [[ $KASM_IMAGE =~ 'centos-7-desktop' ]]; then CORE_IMAGE=core-centos-7; fi - - if [[ $KASM_IMAGE =~ 'tracelabs' ]]; then CORE_IMAGE=core-kali-rolling; fi + - if [[ $KASM_IMAGE =~ 'debian-bullseye-desktop' ]]; then CORE_IMAGE=core-debian-bullseye; fi + - if [[ $KASM_IMAGE =~ 'fedora-37-desktop' ]]; then CORE_IMAGE=core-fedora-37; fi + - if [[ $KASM_IMAGE =~ 'kali-rolling-desktop' ]]; then CORE_IMAGE=core-kali-rolling; fi + - if [[ $KASM_IMAGE =~ 'opensuse-15-desktop' ]]; then CORE_IMAGE=core-opensuse-15; fi - if [[ $KASM_IMAGE =~ 'oracle-7-desktop' ]]; then CORE_IMAGE=core-oracle-7; fi - if [[ $KASM_IMAGE =~ 'oracle-8-desktop' ]]; then CORE_IMAGE=core-oracle-8; fi - - if [[ $KASM_IMAGE =~ 'opensuse-15-desktop' ]]; then CORE_IMAGE=core-opensuse-15; fi + - if [[ $KASM_IMAGE =~ 'oracle-9-desktop' ]]; then CORE_IMAGE=core-oracle-9; fi + - if [[ $KASM_IMAGE =~ 'parrotos-5-desktop' ]]; then CORE_IMAGE=core-parrotos-5; fi + - if [[ $KASM_IMAGE =~ 'rockylinux-8-desktop' ]]; then CORE_IMAGE=core-rockylinux-8; fi + - if [[ $KASM_IMAGE =~ 'rockylinux-9-desktop' ]]; then CORE_IMAGE=core-rockylinux-9; fi + - if [[ $KASM_IMAGE =~ 'tracelabs' ]]; then CORE_IMAGE=core-kali-rolling; fi - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-desktop' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi + - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-dind-rootless' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi + - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-dind' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi # Check for private variable to build against private core images - if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi; - > @@ -281,12 +470,24 @@ build_multi_arch_dev2: - ls docs/$KASM_IMAGE/README.md - ls docs/$KASM_IMAGE/description.txt # Set core image names + - if [[ $KASM_IMAGE =~ 'almalinux-8-desktop' ]]; then CORE_IMAGE=core-almalinux-8; fi + - if [[ $KASM_IMAGE =~ 'almalinux-9-desktop' ]]; then CORE_IMAGE=core-almalinux-9; fi + - if [[ $KASM_IMAGE =~ 'alpine-317-desktop' ]]; then CORE_IMAGE=core-alpine-317; fi - if [[ $KASM_IMAGE =~ 'centos-7-desktop' ]]; then CORE_IMAGE=core-centos-7; fi - - if [[ $KASM_IMAGE =~ 'tracelabs' ]]; then CORE_IMAGE=core-kali-rolling; fi + - if [[ $KASM_IMAGE =~ 'debian-bullseye-desktop' ]]; then CORE_IMAGE=core-debian-bullseye; fi + - if [[ $KASM_IMAGE =~ 'fedora-37-desktop' ]]; then CORE_IMAGE=core-fedora-37; fi + - if [[ $KASM_IMAGE =~ 'kali-rolling-desktop' ]]; then CORE_IMAGE=core-kali-rolling; fi + - if [[ $KASM_IMAGE =~ 'opensuse-15-desktop' ]]; then CORE_IMAGE=core-opensuse-15; fi - if [[ $KASM_IMAGE =~ 'oracle-7-desktop' ]]; then CORE_IMAGE=core-oracle-7; fi - if [[ $KASM_IMAGE =~ 'oracle-8-desktop' ]]; then CORE_IMAGE=core-oracle-8; fi - - if [[ $KASM_IMAGE =~ 'opensuse-15-desktop' ]]; then CORE_IMAGE=core-opensuse-15; fi + - if [[ $KASM_IMAGE =~ 'oracle-9-desktop' ]]; then CORE_IMAGE=core-oracle-9; fi + - if [[ $KASM_IMAGE =~ 'parrotos-5-desktop' ]]; then CORE_IMAGE=core-parrotos-5; fi + - if [[ $KASM_IMAGE =~ 'rockylinux-8-desktop' ]]; then CORE_IMAGE=core-rockylinux-8; fi + - if [[ $KASM_IMAGE =~ 'rockylinux-9-desktop' ]]; then CORE_IMAGE=core-rockylinux-9; fi + - if [[ $KASM_IMAGE =~ 'tracelabs' ]]; then CORE_IMAGE=core-kali-rolling; fi - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-desktop' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi + - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-dind-rootless' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi + - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-dind' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi # Check for private variable to build against private core images - if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi; - > @@ -317,11 +518,7 @@ build_single_arch_dev: - if [[ $KASM_IMAGE =~ 'centos-7-desktop' ]]; then CORE_IMAGE=core-centos-7; fi - if [[ $KASM_IMAGE =~ 'tracelabs' ]]; then CORE_IMAGE=core-kali-rolling; fi - if [[ $KASM_IMAGE =~ 'oracle-7-desktop' ]]; then CORE_IMAGE=core-oracle-7; fi - - if [[ $KASM_IMAGE =~ 'oracle-8-desktop' ]]; then CORE_IMAGE=core-oracle-8; fi - - if [[ $KASM_IMAGE =~ 'opensuse-15-desktop' ]]; then CORE_IMAGE=core-opensuse-15; fi - - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-desktop' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi - - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-dind' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi - - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-dind-rootless' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi + - if [[ $KASM_IMAGE =~ 'remnux-focal-desktop' ]]; then CORE_IMAGE=core-remnux-focal; fi # Check for private variable to build against private core images - if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi; - > @@ -343,7 +540,7 @@ build_single_arch_dev: test_multi_arch_dev: stage: test script: - - docker pull kasmweb/kasm-tester:1.12.0 + - docker pull kasmweb/kasm-tester:1.13.0 - > docker run --rm --privileged -e KASM_PORT=443 @@ -360,7 +557,7 @@ test_multi_arch_dev: -e S3_BUCKET=kasm-ci -e COMMIT=${CI_COMMIT_SHA} -e REPO=workspaces-images - kasmweb/kasm-tester:1.12.0 + kasmweb/kasm-tester:1.13.0 except: - develop - /^release\/.*$/ @@ -375,7 +572,7 @@ test_multi_arch_dev: test_multi_arch_dev2: stage: test script: - - docker pull kasmweb/kasm-tester:1.12.0 + - docker pull kasmweb/kasm-tester:1.13.0 - > docker run --rm --privileged -e KASM_PORT=443 @@ -392,7 +589,7 @@ test_multi_arch_dev2: -e S3_BUCKET=kasm-ci -e COMMIT=${CI_COMMIT_SHA} -e REPO=workspaces-images - kasmweb/kasm-tester:1.12.0 + kasmweb/kasm-tester:1.13.0 except: - develop - /^release\/.*$/ @@ -407,7 +604,7 @@ test_multi_arch_dev2: test_single_arch_dev: stage: test script: - - docker pull kasmweb/kasm-tester:1.12.0 + - docker pull kasmweb/kasm-tester:1.13.0 - > docker run --rm --privileged -e KASM_PORT=443 @@ -424,7 +621,7 @@ test_single_arch_dev: -e S3_BUCKET=kasm-ci -e COMMIT=${CI_COMMIT_SHA} -e REPO=workspaces-images - kasmweb/kasm-tester:1.12.0 + kasmweb/kasm-tester:1.13.0 except: - develop - /^release\/.*$/ @@ -520,7 +717,9 @@ link_tests_multi_arch_dev2: - ARCH: [ aarch64, x86_64 ] KASM_IMAGE: *MULTI_ARCH_BUILDS2 -# These jobs are for the "rolling" release of the images. They should only run for scheduled jobs and should only push the rolling tags +######################################################################################################################################### +# These jobs are for the "rolling" release of the images. They should only run for scheduled jobs and should only push the rolling tags # +######################################################################################################################################### build_schedules_browser_images: image: ${ORG_NAME}/docker-buildx-private:develop stage: build @@ -537,17 +736,23 @@ build_schedules_browser_images: - ls docs/$KASM_IMAGE/description.txt # Check for private variable to build against private core images - if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE-IMAGE-private; fi; - # Equivalent to docker build and docker push. Builds amd64 natively uses qemu for arm64. # The only way to push multiple architectures to the same tag is to use buildx. - - docker buildx build --push --platform $BUILD_PLATFORM -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE=$CORE_IMAGE --build-arg BASE_TAG="$SANITIZED_ROLLING_BRANCH" -f dockerfile-kasm-$KASM_IMAGE . + - > + docker buildx build --push + --platform $BUILD_PLATFORM + -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH + --build-arg BASE_IMAGE=$CORE_IMAGE + --build-arg BASE_TAG="$SANITIZED_ROLLING_BRANCH" + -f dockerfile-kasm-$KASM_IMAGE . only: - schedules tags: - aws-autoscale parallel: matrix: - - KASM_IMAGE: [chrome, chromium, firefox, tor-browser, edge, brave, vivaldi] + - KASM_IMAGE: *BROWSER_IMAGES build_schedules_app_images: image: ${ORG_NAME}/docker-buildx-private:develop @@ -565,17 +770,23 @@ build_schedules_app_images: - ls docs/$KASM_IMAGE/description.txt # Check for private variable to build against private core images - if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi; - # Equivalent to docker build and docker push. Builds amd64 natively uses qemu for arm64. # The only way to push multiple architectures to the same tag is to use buildx. - - docker buildx build --push --platform $BUILD_PLATFORM -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE=$CORE_IMAGE --build-arg BASE_TAG="$SANITIZED_ROLLING_BRANCH" -f dockerfile-kasm-$KASM_IMAGE . + - > + docker buildx build --push + --platform $BUILD_PLATFORM + -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH + --build-arg BASE_IMAGE=$CORE_IMAGE + --build-arg BASE_TAG="$SANITIZED_ROLLING_BRANCH" + -f dockerfile-kasm-$KASM_IMAGE . only: - schedules tags: - aws-autoscale parallel: matrix: - - KASM_IMAGE: [sublime-text, gimp, vs-code, teams, only-office, zoom, signal, steam, postman, insomnia, zsnes, vlc, maltego, telegram, hunchly, java-dev, terminal, remmina, discord, libre-office, thunderbird, atom, audacity, deluge, filezilla, inkscape, pinta, qbittorrent, blender, unityhub] + - KASM_IMAGE: *APP_IMAGES build_schedules_ubuntu_desktop_images: image: ${ORG_NAME}/docker-buildx-private:develop @@ -591,22 +802,30 @@ build_schedules_ubuntu_desktop_images: # Ensure readme and description files are present - ls docs/$KASM_IMAGE/README.md - ls docs/$KASM_IMAGE/description.txt - # Check for private variable to build against private core images + # Set base image based on kasm_image variable + - if [[ $KASM_IMAGE =~ 'remnux-focal-desktop' ]]; then CORE_IMAGE=core-remnux-focal; fi - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-desktop' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-dind' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi - if [[ $KASM_IMAGE =~ 'ubuntu-jammy-dind-rootless' ]]; then CORE_IMAGE=core-ubuntu-jammy; fi + # Check for private variable to build against private core images - if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi; - # Equivalent to docker build and docker push. Builds amd64 natively uses qemu for arm64. # The only way to push multiple architectures to the same tag is to use buildx. - - docker buildx build --push --platform $BUILD_PLATFORM -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE=$CORE_IMAGE --build-arg BASE_TAG="$SANITIZED_ROLLING_BRANCH" -f dockerfile-kasm-$KASM_IMAGE . + - > + docker buildx build --push + --platform $BUILD_PLATFORM + -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH + --build-arg BASE_IMAGE=$CORE_IMAGE + --build-arg BASE_TAG="$SANITIZED_ROLLING_BRANCH" + -f dockerfile-kasm-$KASM_IMAGE . only: - schedules tags: - aws-autoscale parallel: matrix: - - KASM_IMAGE: [desktop, desktop-deluxe, ubuntu-focal-desktop, ubuntu-jammy-desktop, ubuntu-focal-dind, ubuntu-focal-dind-rootless, ubuntu-jammy-dind, ubuntu-jammy-dind-rootless] + - KASM_IMAGE: *UBUNTU_IMAGES build_schedules_non_ubuntu: image: ${ORG_NAME}/docker-buildx-private:develop @@ -623,24 +842,71 @@ build_schedules_non_ubuntu: - ls docs/$KASM_IMAGE/README.md - ls docs/$KASM_IMAGE/description.txt # Set base image based on kasm_image variable + - if [[ $KASM_IMAGE =~ 'almalinux-8-desktop' ]]; then CORE_IMAGE=core-almalinux-8; fi + - if [[ $KASM_IMAGE =~ 'almalinux-9-desktop' ]]; then CORE_IMAGE=core-almalinux-9; fi + - if [[ $KASM_IMAGE =~ 'alpine-317-desktop' ]]; then CORE_IMAGE=core-alpine-317; fi - if [[ $KASM_IMAGE =~ 'centos-7-desktop' ]]; then CORE_IMAGE=core-centos-7; fi - - if [[ $KASM_IMAGE =~ 'tracelabs' ]]; then CORE_IMAGE=core-kali-rolling; fi + - if [[ $KASM_IMAGE =~ 'debian-bullseye-desktop' ]]; then CORE_IMAGE=core-debian-bullseye; fi + - if [[ $KASM_IMAGE =~ 'fedora-37-desktop' ]]; then CORE_IMAGE=core-fedora-37; fi + - if [[ $KASM_IMAGE =~ 'kali-rolling-desktop' ]]; then CORE_IMAGE=core-kali-rolling; fi + - if [[ $KASM_IMAGE =~ 'opensuse-15-desktop' ]]; then CORE_IMAGE=core-opensuse-15; fi - if [[ $KASM_IMAGE =~ 'oracle-7-desktop' ]]; then CORE_IMAGE=core-oracle-7; fi - if [[ $KASM_IMAGE =~ 'oracle-8-desktop' ]]; then CORE_IMAGE=core-oracle-8; fi - - if [[ $KASM_IMAGE =~ 'opensuse-15-desktop' ]]; then CORE_IMAGE=core-opensuse-15; fi + - if [[ $KASM_IMAGE =~ 'oracle-9-desktop' ]]; then CORE_IMAGE=core-oracle-9; fi + - if [[ $KASM_IMAGE =~ 'parrotos-5-desktop' ]]; then CORE_IMAGE=core-parrotos-5; fi + - if [[ $KASM_IMAGE =~ 'rockylinux-8-desktop' ]]; then CORE_IMAGE=core-rockylinux-8; fi + - if [[ $KASM_IMAGE =~ 'rockylinux-9-desktop' ]]; then CORE_IMAGE=core-rockylinux-9; fi + - if [[ $KASM_IMAGE =~ 'tracelabs' ]]; then CORE_IMAGE=core-kali-rolling; fi # Check for private variable to build against private core images - if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi; - # Equivalent to docker build and docker push. Builds amd64 natively uses qemu for arm64. # The only way to push multiple architectures to the same tag is to use buildx. - - docker buildx build --push --platform $BUILD_PLATFORM -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE=$CORE_IMAGE --build-arg BASE_TAG="$SANITIZED_ROLLING_BRANCH" -f dockerfile-kasm-$KASM_IMAGE . + - > + docker buildx build --push + --platform $BUILD_PLATFORM + -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH + --build-arg BASE_IMAGE=$CORE_IMAGE + --build-arg BASE_TAG="$SANITIZED_ROLLING_BRANCH" + -f dockerfile-kasm-$KASM_IMAGE . only: - schedules tags: - aws-autoscale parallel: matrix: - - KASM_IMAGE: [centos-7-desktop, tracelabs, opensuse-15-desktop, oracle-7-desktop, oracle-8-desktop] + - KASM_IMAGE: *NON_UBUNTU_IMAGES + +build_fedora_37_schedules: + stage: build + script: + - > + docker build + -t ${ORG_NAME}/fedora-37-desktop:$(arch)-$SANITIZED_ROLLING_BRANCH + -f dockerfile-kasm-fedora-37-desktop . + - docker push ${ORG_NAME}/fedora-37-desktop:$(arch)-$SANITIZED_ROLLING_BRANCH + only: + - schedules + tags: + - ${TAG} + parallel: + matrix: + - TAG: [ aws-autoscale, aws-autoscale-arm64 ] + +manifest_fedora_37_schedules: + stage: manifest + script: + - docker pull ${ORG_NAME}/fedora-37-desktop:x86_64-$SANITIZED_ROLLING_BRANCH + - docker pull ${ORG_NAME}/fedora-37-desktop:aarch64-$SANITIZED_ROLLING_BRANCH + - "docker manifest push --purge ${ORG_NAME}/fedora-37-desktop:$SANITIZED_ROLLING_BRANCH || :" + - docker manifest create ${ORG_NAME}/fedora-37-desktop:$SANITIZED_ROLLING_BRANCH ${ORG_NAME}/fedora-37-desktop:x86_64-$SANITIZED_ROLLING_BRANCH ${ORG_NAME}/fedora-37-desktop:aarch64-$SANITIZED_ROLLING_BRANCH + - docker manifest annotate ${ORG_NAME}/fedora-37-desktop:$SANITIZED_ROLLING_BRANCH ${ORG_NAME}/fedora-37-desktop:aarch64-$SANITIZED_ROLLING_BRANCH --os linux --arch arm64 --variant v8 + - docker manifest push --purge ${ORG_NAME}/fedora-37-desktop:$SANITIZED_ROLLING_BRANCH + only: + - schedules + needs: [ build_fedora_37_schedules ] + tags: + - aws-autoscale build_schedules_games: image: ${ORG_NAME}/docker-buildx-private:develop @@ -658,18 +924,27 @@ build_schedules_games: - ls docs/$KASM_IMAGE/description.txt # Check for private variable to build against private core images - if [[ $USE_PRIVATE_IMAGES -eq 1 ]]; then CORE_IMAGE=$CORE_IMAGE-private; fi; - # Equivalent to docker build and docker push. Builds amd64 natively uses qemu for arm64. # The only way to push multiple architectures to the same tag is to use buildx. - - docker buildx build --push --platform $BUILD_PLATFORM -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH --build-arg BASE_IMAGE=$CORE_IMAGE --build-arg BASE_TAG="$SANITIZED_ROLLING_BRANCH" -f dockerfile-kasm-$KASM_IMAGE . + - > + docker buildx build --push + --platform $BUILD_PLATFORM + -t ${ORG_NAME}/$KASM_IMAGE:$SANITIZED_ROLLING_BRANCH + -t ${ORG_NAME}/$KASM_IMAGE-private:$SANITIZED_ROLLING_BRANCH + --build-arg BASE_IMAGE=$CORE_IMAGE + --build-arg BASE_TAG="$SANITIZED_ROLLING_BRANCH" + -f dockerfile-kasm-$KASM_IMAGE . only: - schedules tags: - aws-autoscale parallel: matrix: - - KASM_IMAGE: [doom, minetest, retroarch, super-tux-kart] + - KASM_IMAGE: *GAME_IMAGES +############################### +# Readme Updates in Dockerhub # +############################### update_readmes: stage: readme script: @@ -689,6 +964,9 @@ update_readmes: parallel: matrix: - KASM_IMAGE: + - almalinux-8-desktop + - almalinux-9-desktop + - alpine-317-desktop - atom - audacity - blender @@ -696,12 +974,14 @@ update_readmes: - centos-7-desktop - chrome - chromium + - debian-bullseye-desktop - deluge - desktop - desktop-deluxe - discord - doom - edge + - fedora-37-desktop - filezilla - firefox - gimp @@ -709,33 +989,31 @@ update_readmes: - inkscape - insomnia - java-dev - - libre-office + - kali-rolling-desktop + - libre-office - maltego + - minetest - only-office - opensuse-15-desktop - oracle-7-desktop - oracle-8-desktop + - oracle-9-desktop + - parrotos-5-desktop - pinta - postman - qbittorrent - remmina + - retroarch + - rockylinux-8-desktop + - rockylinux-9-desktop - signal - steam - sublime-text + - super-tux-kart - teams - telegram - terminal - thunderbird - - tor-browser - - tracelabs - - ubuntu-focal-desktop - - ubuntu-jammy-desktop - - ubuntu-focal-dind - - ubuntu-focal-dind-rootless - - unityhub - - vlc - - vs-code - - zoom update_readmes2: stage: readme @@ -756,9 +1034,16 @@ update_readmes2: parallel: matrix: - KASM_IMAGE: - - minetest - - retroarch - - super-tux-kart + - tor-browser + - tracelabs + - ubuntu-focal-desktop + - ubuntu-focal-dind + - ubuntu-focal-dind-rootless + - ubuntu-jammy-desktop - ubuntu-jammy-dind - ubuntu-jammy-dind-rootless + - unityhub - vivaldi + - vlc + - vs-code + - zoom diff --git a/dockerfile-kasm-almalinux-8-desktop b/dockerfile-kasm-almalinux-8-desktop new file mode 100644 index 0000000..6c26e4d --- /dev/null +++ b/dockerfile-kasm-almalinux-8-desktop @@ -0,0 +1,92 @@ +ARG BASE_TAG="develop" +ARG BASE_IMAGE="core-almalinux-8" +FROM kasmweb/$BASE_IMAGE:$BASE_TAG + +USER root + +ENV DISTRO=almalinux8 +ENV HOME /home/kasm-default-profile +ENV STARTUPDIR /dockerstartup +WORKDIR $HOME + +### Envrionment config +ENV DEBIAN_FRONTEND noninteractive +ENV KASM_RX_HOME $STARTUPDIR/kasmrx +ENV INST_SCRIPTS $STARTUPDIR/install + + +### Install Tools +COPY ./src/oracle/install/tools $INST_SCRIPTS/tools/ +RUN bash $INST_SCRIPTS/tools/install_tools_deluxe.sh && rm -rf $INST_SCRIPTS/tools/ + +# Install Utilities +COPY ./src/oracle/install/misc $INST_SCRIPTS/misc/ +RUN bash $INST_SCRIPTS/misc/install_tools.sh && rm -rf $INST_SCRIPTS/misc/ + +# Install Chromium +COPY ./src/ubuntu/install/chromium $INST_SCRIPTS/chromium/ +RUN bash $INST_SCRIPTS/chromium/install_chromium.sh && rm -rf $INST_SCRIPTS/chromium/ + +# Install Firefox +COPY ./src/ubuntu/install/firefox/ $INST_SCRIPTS/firefox/ +COPY ./src/ubuntu/install/firefox/firefox.desktop $HOME/Desktop/ +RUN bash $INST_SCRIPTS/firefox/install_firefox.sh && rm -rf $INST_SCRIPTS/firefox/ + +### Install Sublime Text +COPY ./src/oracle/install/sublime_text $INST_SCRIPTS/sublime_text/ +RUN bash $INST_SCRIPTS/sublime_text/install_sublime_text.sh && rm -rf $INST_SCRIPTS/sublime_text/ + +### Install NextCloud +COPY ./src/ubuntu/install/nextcloud $INST_SCRIPTS/nextcloud/ +RUN bash $INST_SCRIPTS/nextcloud/install_nextcloud.sh && rm -rf $INST_SCRIPTS/nextcloud/ + +### Install Remmina +COPY ./src/ubuntu/install/remmina $INST_SCRIPTS/remmina/ +RUN bash $INST_SCRIPTS/remmina/install_remmina.sh && rm -rf $INST_SCRIPTS/remmina/ + +### Install Only Office +COPY ./src/oracle/install/only_office $INST_SCRIPTS/only_office/ +RUN bash $INST_SCRIPTS/only_office/install_only_office.sh && rm -rf $INST_SCRIPTS/only_office/ + +### Install GIMP +COPY ./src/oracle/install/gimp $INST_SCRIPTS/gimp/ +RUN bash $INST_SCRIPTS/gimp/install_gimp.sh && rm -rf $INST_SCRIPTS/gimp/ + +### Install Zoom +COPY ./src/oracle/install/zoom $INST_SCRIPTS/zoom/ +RUN bash $INST_SCRIPTS/zoom/install_zoom.sh && rm -rf $INST_SCRIPTS/zoom/ + +### Install OBS Studio +COPY ./src/oracle/install/obs $INST_SCRIPTS/obs/ +RUN bash $INST_SCRIPTS/obs/install_obs.sh && rm -rf $INST_SCRIPTS/obs/ + +### Install Ansible +COPY ./src/oracle/install/ansible $INST_SCRIPTS/ansible/ +RUN bash $INST_SCRIPTS/ansible/install_ansible.sh && rm -rf $INST_SCRIPTS/ansible/ + +### Install Terraform +COPY ./src/oracle/install/terraform $INST_SCRIPTS/terraform/ +RUN bash $INST_SCRIPTS/terraform/install_terraform.sh && rm -rf $INST_SCRIPTS/terraform/ + +### Install Telegram +COPY ./src/oracle/install/telegram $INST_SCRIPTS/telegram/ +RUN bash $INST_SCRIPTS/telegram/install_telegram.sh && rm -rf $INST_SCRIPTS/telegram/ + +### Install Thunderbird +COPY ./src/ubuntu/install/thunderbird $INST_SCRIPTS/thunderbird/ +RUN bash $INST_SCRIPTS/thunderbird/install_thunderbird.sh && rm -rf $INST_SCRIPTS/thunderbird/ + +#ADD ./src/common/scripts $STARTUPDIR +RUN $STARTUPDIR/set_user_permission.sh $HOME + +RUN rm -f /etc/X11/xinit/Xclients + +RUN chown 1000:0 $HOME + +ENV HOME /home/kasm-user +WORKDIR $HOME +RUN mkdir -p $HOME && chown -R 1000:0 $HOME + +USER 1000 + +CMD ["--tail-log"] diff --git a/dockerfile-kasm-almalinux-9-desktop b/dockerfile-kasm-almalinux-9-desktop new file mode 100644 index 0000000..a50e0c9 --- /dev/null +++ b/dockerfile-kasm-almalinux-9-desktop @@ -0,0 +1,88 @@ +ARG BASE_TAG="develop" +ARG BASE_IMAGE="core-alamalinux-9" +FROM kasmweb/$BASE_IMAGE:$BASE_TAG + +USER root + +ENV DISTRO=almalinux9 +ENV HOME /home/kasm-default-profile +ENV STARTUPDIR /dockerstartup +WORKDIR $HOME + +### Envrionment config +ENV DEBIAN_FRONTEND noninteractive +ENV KASM_RX_HOME $STARTUPDIR/kasmrx +ENV INST_SCRIPTS $STARTUPDIR/install + + +### Install Tools +COPY ./src/oracle/install/tools $INST_SCRIPTS/tools/ +RUN bash $INST_SCRIPTS/tools/install_tools_deluxe.sh && rm -rf $INST_SCRIPTS/tools/ + +# Install Utilities +COPY ./src/oracle/install/misc $INST_SCRIPTS/misc/ +RUN bash $INST_SCRIPTS/misc/install_tools.sh && rm -rf $INST_SCRIPTS/misc/ + +# Install Chromium +COPY ./src/ubuntu/install/chromium $INST_SCRIPTS/chromium/ +RUN bash $INST_SCRIPTS/chromium/install_chromium.sh && rm -rf $INST_SCRIPTS/chromium/ + +# Install Firefox +COPY ./src/ubuntu/install/firefox/ $INST_SCRIPTS/firefox/ +COPY ./src/ubuntu/install/firefox/firefox.desktop $HOME/Desktop/ +RUN bash $INST_SCRIPTS/firefox/install_firefox.sh && rm -rf $INST_SCRIPTS/firefox/ + +### Install Sublime Text +COPY ./src/oracle/install/sublime_text $INST_SCRIPTS/sublime_text/ +RUN bash $INST_SCRIPTS/sublime_text/install_sublime_text.sh && rm -rf $INST_SCRIPTS/sublime_text/ + +### Install Visual Studio Code +COPY ./src/oracle/install/vs_code $INST_SCRIPTS/vs_code/ +RUN bash $INST_SCRIPTS/vs_code/install_vs_code.sh && rm -rf $INST_SCRIPTS/vs_code/ + +### Install Remmina +COPY ./src/ubuntu/install/remmina $INST_SCRIPTS/remmina/ +RUN bash $INST_SCRIPTS/remmina/install_remmina.sh && rm -rf $INST_SCRIPTS/remmina/ + +### Install Only Office +COPY ./src/oracle/install/only_office $INST_SCRIPTS/only_office/ +RUN bash $INST_SCRIPTS/only_office/install_only_office.sh && rm -rf $INST_SCRIPTS/only_office/ + +### Install GIMP +COPY ./src/oracle/install/gimp $INST_SCRIPTS/gimp/ +RUN bash $INST_SCRIPTS/gimp/install_gimp.sh && rm -rf $INST_SCRIPTS/gimp/ + +### Install Zoom +COPY ./src/oracle/install/zoom $INST_SCRIPTS/zoom/ +RUN bash $INST_SCRIPTS/zoom/install_zoom.sh && rm -rf $INST_SCRIPTS/zoom/ + +### Install Ansible +COPY ./src/oracle/install/ansible $INST_SCRIPTS/ansible/ +RUN bash $INST_SCRIPTS/ansible/install_ansible.sh && rm -rf $INST_SCRIPTS/ansible/ + +### Install Terraform +COPY ./src/oracle/install/terraform $INST_SCRIPTS/terraform/ +RUN bash $INST_SCRIPTS/terraform/install_terraform.sh && rm -rf $INST_SCRIPTS/terraform/ + +### Install Telegram +COPY ./src/oracle/install/telegram $INST_SCRIPTS/telegram/ +RUN bash $INST_SCRIPTS/telegram/install_telegram.sh && rm -rf $INST_SCRIPTS/telegram/ + +### Install Thunderbird +COPY ./src/ubuntu/install/thunderbird $INST_SCRIPTS/thunderbird/ +RUN bash $INST_SCRIPTS/thunderbird/install_thunderbird.sh && rm -rf $INST_SCRIPTS/thunderbird/ + +#ADD ./src/common/scripts $STARTUPDIR +RUN $STARTUPDIR/set_user_permission.sh $HOME + +RUN rm -f /etc/X11/xinit/Xclients + +RUN chown 1000:0 $HOME + +ENV HOME /home/kasm-user +WORKDIR $HOME +RUN mkdir -p $HOME && chown -R 1000:0 $HOME + +USER 1000 + +CMD ["--tail-log"] diff --git a/dockerfile-kasm-alpine-317-desktop b/dockerfile-kasm-alpine-317-desktop new file mode 100644 index 0000000..05b013c --- /dev/null +++ b/dockerfile-kasm-alpine-317-desktop @@ -0,0 +1,97 @@ +ARG BASE_TAG="develop" +ARG BASE_IMAGE="core-alpine-317" +FROM kasmweb/$BASE_IMAGE:$BASE_TAG + +USER root + +ENV DISTRO=alpine317 +ENV HOME /home/kasm-default-profile +ENV STARTUPDIR /dockerstartup +WORKDIR $HOME + +### Envrionment config +ENV INST_SCRIPTS $STARTUPDIR/install + +### Install Tools +COPY ./src/alpine/install/tools $INST_SCRIPTS/tools/ +RUN bash $INST_SCRIPTS/tools/install_tools_deluxe.sh && rm -rf $INST_SCRIPTS/tools/ + +# Install Utilities +COPY ./src/alpine/install/misc $INST_SCRIPTS/misc/ +RUN bash $INST_SCRIPTS/misc/install_tools.sh && rm -rf $INST_SCRIPTS/misc/ + +# Install Chromium +COPY ./src/alpine/install/chromium $INST_SCRIPTS/chromium/ +RUN bash $INST_SCRIPTS/chromium/install_chromium.sh && rm -rf $INST_SCRIPTS/chromium/ + +# Install Firefox +COPY ./src/alpine/install/firefox/ $INST_SCRIPTS/firefox/ +COPY ./src/alpine/install/firefox/firefox.desktop $HOME/Desktop/ +RUN bash $INST_SCRIPTS/firefox/install_firefox.sh && rm -rf $INST_SCRIPTS/firefox/ + +### Install Remmina +COPY ./src/alpine/install/remmina $INST_SCRIPTS/remmina/ +RUN bash $INST_SCRIPTS/remmina/install_remmina.sh && rm -rf $INST_SCRIPTS/remmina/ + +### Install GIMP +COPY ./src/alpine/install/gimp $INST_SCRIPTS/gimp/ +RUN bash $INST_SCRIPTS/gimp/install_gimp.sh && rm -rf $INST_SCRIPTS/gimp/ + +### Install Ansible +COPY ./src/alpine/install/ansible $INST_SCRIPTS/ansible/ +RUN bash $INST_SCRIPTS/ansible/install_ansible.sh && rm -rf $INST_SCRIPTS/ansible/ + +### Install Terraform +COPY ./src/alpine/install/terraform $INST_SCRIPTS/terraform/ +RUN bash $INST_SCRIPTS/terraform/install_terraform.sh && rm -rf $INST_SCRIPTS/terraform/ + +### Install Thunderbird +COPY ./src/alpine/install/thunderbird $INST_SCRIPTS/thunderbird/ +RUN bash $INST_SCRIPTS/thunderbird/install_thunderbird.sh && rm -rf $INST_SCRIPTS/thunderbird/ + +### Install Audacity +COPY ./src/alpine/install/audacity $INST_SCRIPTS/audacity/ +RUN bash $INST_SCRIPTS/audacity/install_audacity.sh && rm -rf $INST_SCRIPTS/audacity/ + +### Install Blender +COPY ./src/alpine/install/blender $INST_SCRIPTS/blender/ +RUN bash $INST_SCRIPTS/blender/install_blender.sh && rm -rf $INST_SCRIPTS/blender/ + +### Install Geany +COPY ./src/alpine/install/geany $INST_SCRIPTS/geany/ +RUN bash $INST_SCRIPTS/geany/install_geany.sh && rm -rf $INST_SCRIPTS/geany/ + +### Install Inkscape +COPY ./src/alpine/install/inkscape $INST_SCRIPTS/inkscape/ +RUN bash $INST_SCRIPTS/inkscape/install_inkscape.sh && rm -rf $INST_SCRIPTS/inkscape/ + +### Install LibreOffice +COPY ./src/alpine/install/libre_office $INST_SCRIPTS/libre_office/ +RUN bash $INST_SCRIPTS/libre_office/install_libre_office.sh && rm -rf $INST_SCRIPTS/libre_office/ + +### Install Pinta +COPY ./src/alpine/install/pinta $INST_SCRIPTS/pinta/ +RUN bash $INST_SCRIPTS/pinta/install_pinta.sh && rm -rf $INST_SCRIPTS/pinta/ + +### Install OBS +COPY ./src/alpine/install/obs $INST_SCRIPTS/obs/ +RUN bash $INST_SCRIPTS/obs/install_obs.sh && rm -rf $INST_SCRIPTS/obs/ + +### Install Filezilla +COPY ./src/alpine/install/filezilla $INST_SCRIPTS/filezilla/ +RUN bash $INST_SCRIPTS/filezilla/install_filezilla.sh && rm -rf $INST_SCRIPTS/filezilla/ + +#ADD ./src/common/scripts $STARTUPDIR +RUN $STARTUPDIR/set_user_permission.sh $HOME + +RUN rm -f /etc/X11/xinit/Xclients + +RUN chown 1000:0 $HOME + +ENV HOME /home/kasm-user +WORKDIR $HOME +RUN mkdir -p $HOME && chown -R 1000:0 $HOME + +USER 1000 + +CMD ["--tail-log"] diff --git a/dockerfile-kasm-debian-bullseye-desktop b/dockerfile-kasm-debian-bullseye-desktop new file mode 100644 index 0000000..64cffc3 --- /dev/null +++ b/dockerfile-kasm-debian-bullseye-desktop @@ -0,0 +1,101 @@ +ARG BASE_TAG="develop" +ARG BASE_IMAGE="core-debian-bullseye" +FROM kasmweb/$BASE_IMAGE:$BASE_TAG + +USER root + +ENV HOME /home/kasm-default-profile +ENV STARTUPDIR /dockerstartup +WORKDIR $HOME + +### Envrionment config +ENV DEBIAN_FRONTEND noninteractive +ENV KASM_RX_HOME $STARTUPDIR/kasmrx +ENV INST_SCRIPTS $STARTUPDIR/install + + +### Install Tools +COPY ./src/ubuntu/install/tools $INST_SCRIPTS/tools/ +RUN bash $INST_SCRIPTS/tools/install_tools_deluxe.sh && rm -rf $INST_SCRIPTS/tools/ + +# Install Utilities +COPY ./src/ubuntu/install/misc $INST_SCRIPTS/misc/ +RUN bash $INST_SCRIPTS/misc/install_tools.sh && rm -rf $INST_SCRIPTS/misc/ + +# Install Google Chrome +COPY ./src/ubuntu/install/chrome $INST_SCRIPTS/chrome/ +RUN bash $INST_SCRIPTS/chrome/install_chrome.sh && rm -rf $INST_SCRIPTS/chrome/ + +# Install Chromium +COPY ./src/ubuntu/install/chromium $INST_SCRIPTS/chromium/ +RUN if [ "$(uname -m)" = "aarch64" ]; then bash $INST_SCRIPTS/chromium/install_chromium.sh; fi && rm -rf $INST_SCRIPTS/chromium/ + +# Install Firefox +COPY ./src/ubuntu/install/firefox/ $INST_SCRIPTS/firefox/ +COPY ./src/ubuntu/install/firefox/firefox.desktop $HOME/Desktop/ +RUN bash $INST_SCRIPTS/firefox/install_firefox.sh && rm -rf $INST_SCRIPTS/firefox/ + +### Install Sublime Text +COPY ./src/ubuntu/install/sublime_text $INST_SCRIPTS/sublime_text/ +RUN bash $INST_SCRIPTS/sublime_text/install_sublime_text.sh && rm -rf $INST_SCRIPTS/sublime_text/ + +### Install Visual Studio Code +COPY ./src/ubuntu/install/vs_code $INST_SCRIPTS/vs_code/ +RUN bash $INST_SCRIPTS/vs_code/install_vs_code.sh && rm -rf $INST_SCRIPTS/vs_code/ + +### Install Remmina +COPY ./src/ubuntu/install/remmina $INST_SCRIPTS/remmina/ +RUN bash $INST_SCRIPTS/remmina/install_remmina.sh && rm -rf $INST_SCRIPTS/remmina/ + +### Install Only Office +COPY ./src/ubuntu/install/only_office $INST_SCRIPTS/only_office/ +RUN bash $INST_SCRIPTS/only_office/install_only_office.sh && rm -rf $INST_SCRIPTS/only_office/ + +### Install Signal +COPY ./src/ubuntu/install/signal $INST_SCRIPTS/signal/ +RUN bash $INST_SCRIPTS/signal/install_signal.sh && rm -rf $INST_SCRIPTS/signal/ + +### Install GIMP +COPY ./src/ubuntu/install/gimp $INST_SCRIPTS/gimp/ +RUN bash $INST_SCRIPTS/gimp/install_gimp.sh && rm -rf $INST_SCRIPTS/gimp/ + +### Install Zoom +COPY ./src/ubuntu/install/zoom $INST_SCRIPTS/zoom/ +RUN bash $INST_SCRIPTS/zoom/install_zoom.sh && rm -rf $INST_SCRIPTS/zoom/ + +### Install OBS Studio +COPY ./src/ubuntu/install/obs $INST_SCRIPTS/obs/ +RUN bash $INST_SCRIPTS/obs/install_obs.sh && rm -rf $INST_SCRIPTS/obs/ + +### Install Ansible +COPY ./src/ubuntu/install/ansible $INST_SCRIPTS/ansible/ +RUN bash $INST_SCRIPTS/ansible/install_ansible.sh && rm -rf $INST_SCRIPTS/ansible/ + +### Install Terraform +COPY ./src/ubuntu/install/terraform $INST_SCRIPTS/terraform/ +RUN bash $INST_SCRIPTS/terraform/install_terraform.sh && rm -rf $INST_SCRIPTS/terraform/ + +### Install Telegram +COPY ./src/ubuntu/install/telegram $INST_SCRIPTS/telegram/ +RUN bash $INST_SCRIPTS/telegram/install_telegram.sh && rm -rf $INST_SCRIPTS/telegram/ + +### Install Thunderbird +COPY ./src/ubuntu/install/thunderbird $INST_SCRIPTS/thunderbird/ +RUN bash $INST_SCRIPTS/thunderbird/install_thunderbird.sh && rm -rf $INST_SCRIPTS/thunderbird/ + +# Install Gamepad Testing Utils +COPY ./src/ubuntu/install/gamepad_utils $INST_SCRIPTS/gamepad_utils/ +RUN bash $INST_SCRIPTS/gamepad_utils/install_gamepad_utils.sh && rm -rf $INST_SCRIPTS/gamepad_utils/ + +#ADD ./src/common/scripts $STARTUPDIR +RUN $STARTUPDIR/set_user_permission.sh $HOME + +RUN chown 1000:0 $HOME + +ENV HOME /home/kasm-user +WORKDIR $HOME +RUN mkdir -p $HOME && chown -R 1000:0 $HOME + +USER 1000 + +CMD ["--tail-log"] diff --git a/dockerfile-kasm-desktop-deluxe b/dockerfile-kasm-desktop-deluxe index 12e5c33..02cebe0 100644 --- a/dockerfile-kasm-desktop-deluxe +++ b/dockerfile-kasm-desktop-deluxe @@ -54,10 +54,6 @@ RUN bash $INST_SCRIPTS/nextcloud/install_nextcloud.sh && rm -rf $INST_SCRIPTS/n COPY ./src/ubuntu/install/remmina $INST_SCRIPTS/remmina/ RUN bash $INST_SCRIPTS/remmina/install_remmina.sh && rm -rf $INST_SCRIPTS/remmina/ -### Install Teams -COPY ./src/ubuntu/install/teams $INST_SCRIPTS/teams/ -RUN bash $INST_SCRIPTS/teams/install_teams.sh && rm -rf $INST_SCRIPTS/teams/ - ### Install Only Office COPY ./src/ubuntu/install/only_office $INST_SCRIPTS/only_office/ RUN bash $INST_SCRIPTS/only_office/install_only_office.sh && rm -rf $INST_SCRIPTS/only_office/ diff --git a/dockerfile-kasm-fedora-37-desktop b/dockerfile-kasm-fedora-37-desktop new file mode 100644 index 0000000..d85948e --- /dev/null +++ b/dockerfile-kasm-fedora-37-desktop @@ -0,0 +1,88 @@ +ARG BASE_TAG="develop" +ARG BASE_IMAGE="core-fedora-37" +FROM kasmweb/$BASE_IMAGE:$BASE_TAG + +USER root + +ENV DISTRO=fedora37 +ENV HOME /home/kasm-default-profile +ENV STARTUPDIR /dockerstartup +WORKDIR $HOME + +### Envrionment config +ENV DEBIAN_FRONTEND noninteractive +ENV KASM_RX_HOME $STARTUPDIR/kasmrx +ENV INST_SCRIPTS $STARTUPDIR/install + + +### Install Tools +COPY ./src/oracle/install/tools $INST_SCRIPTS/tools/ +RUN bash $INST_SCRIPTS/tools/install_tools_deluxe.sh && rm -rf $INST_SCRIPTS/tools/ + +# Install Utilities +COPY ./src/oracle/install/misc $INST_SCRIPTS/misc/ +RUN bash $INST_SCRIPTS/misc/install_tools.sh && rm -rf $INST_SCRIPTS/misc/ + +# Install Chromium +COPY ./src/ubuntu/install/chromium $INST_SCRIPTS/chromium/ +RUN bash $INST_SCRIPTS/chromium/install_chromium.sh && rm -rf $INST_SCRIPTS/chromium/ + +# Install Firefox +COPY ./src/ubuntu/install/firefox/ $INST_SCRIPTS/firefox/ +COPY ./src/ubuntu/install/firefox/firefox.desktop $HOME/Desktop/ +RUN bash $INST_SCRIPTS/firefox/install_firefox.sh && rm -rf $INST_SCRIPTS/firefox/ + +### Install Sublime Text +COPY ./src/oracle/install/sublime_text $INST_SCRIPTS/sublime_text/ +RUN bash $INST_SCRIPTS/sublime_text/install_sublime_text.sh && rm -rf $INST_SCRIPTS/sublime_text/ + +### Install Visual Studio Code +COPY ./src/oracle/install/vs_code $INST_SCRIPTS/vs_code/ +RUN bash $INST_SCRIPTS/vs_code/install_vs_code.sh && rm -rf $INST_SCRIPTS/vs_code/ + +### Install Remmina +COPY ./src/ubuntu/install/remmina $INST_SCRIPTS/remmina/ +RUN bash $INST_SCRIPTS/remmina/install_remmina.sh && rm -rf $INST_SCRIPTS/remmina/ + +### Install Only Office +COPY ./src/oracle/install/only_office $INST_SCRIPTS/only_office/ +RUN bash $INST_SCRIPTS/only_office/install_only_office.sh && rm -rf $INST_SCRIPTS/only_office/ + +### Install GIMP +COPY ./src/oracle/install/gimp $INST_SCRIPTS/gimp/ +RUN bash $INST_SCRIPTS/gimp/install_gimp.sh && rm -rf $INST_SCRIPTS/gimp/ + +### Install Zoom +COPY ./src/oracle/install/zoom $INST_SCRIPTS/zoom/ +RUN bash $INST_SCRIPTS/zoom/install_zoom.sh && rm -rf $INST_SCRIPTS/zoom/ + +### Install Ansible +COPY ./src/oracle/install/ansible $INST_SCRIPTS/ansible/ +RUN bash $INST_SCRIPTS/ansible/install_ansible.sh && rm -rf $INST_SCRIPTS/ansible/ + +### Install Terraform +COPY ./src/oracle/install/terraform $INST_SCRIPTS/terraform/ +RUN bash $INST_SCRIPTS/terraform/install_terraform.sh && rm -rf $INST_SCRIPTS/terraform/ + +### Install Telegram +COPY ./src/oracle/install/telegram $INST_SCRIPTS/telegram/ +RUN bash $INST_SCRIPTS/telegram/install_telegram.sh && rm -rf $INST_SCRIPTS/telegram/ + +### Install Thunderbird +COPY ./src/ubuntu/install/thunderbird $INST_SCRIPTS/thunderbird/ +RUN bash $INST_SCRIPTS/thunderbird/install_thunderbird.sh && rm -rf $INST_SCRIPTS/thunderbird/ + +#ADD ./src/common/scripts $STARTUPDIR +RUN $STARTUPDIR/set_user_permission.sh $HOME + +RUN rm -f /etc/X11/xinit/Xclients + +RUN chown 1000:0 $HOME + +ENV HOME /home/kasm-user +WORKDIR $HOME +RUN mkdir -p $HOME && chown -R 1000:0 $HOME + +USER 1000 + +CMD ["--tail-log"] diff --git a/dockerfile-kasm-kali-rolling-desktop b/dockerfile-kasm-kali-rolling-desktop new file mode 100644 index 0000000..6a06744 --- /dev/null +++ b/dockerfile-kasm-kali-rolling-desktop @@ -0,0 +1,35 @@ +ARG BASE_TAG="develop" +ARG BASE_IMAGE="core-kali-rolling" +FROM kasmweb/$BASE_IMAGE:$BASE_TAG +USER root + +ENV HOME /home/kasm-default-profile +ENV STARTUPDIR /dockerstartup +ENV INST_SCRIPTS $STARTUPDIR/install +WORKDIR $HOME + +######### Customize Container Here ########### + + +# Install Kali utils +COPY ./src/ubuntu/install/kali $INST_SCRIPTS/kali/ +RUN bash $INST_SCRIPTS/kali/install_kali.sh && rm -rf $INST_SCRIPTS/kali/ + +# Install Chromium +COPY ./src/ubuntu/install/chromium $INST_SCRIPTS/chromium/ +RUN bash $INST_SCRIPTS/chromium/install_chromium.sh && rm -rf $INST_SCRIPTS/chromium/ + +# Install Firefox +COPY ./src/ubuntu/install/firefox/ $INST_SCRIPTS/firefox/ +RUN bash $INST_SCRIPTS/firefox/install_firefox.sh && rm -rf $INST_SCRIPTS/firefox/ + +######### End Customizations ########### + +RUN chown 1000:0 $HOME +RUN $STARTUPDIR/set_user_permission.sh $HOME + +ENV HOME /home/kasm-user +WORKDIR $HOME +RUN mkdir -p $HOME && chown -R 1000:0 $HOME + +USER 1000 diff --git a/dockerfile-kasm-opensuse-15-desktop b/dockerfile-kasm-opensuse-15-desktop index c55e7eb..a020298 100644 --- a/dockerfile-kasm-opensuse-15-desktop +++ b/dockerfile-kasm-opensuse-15-desktop @@ -76,10 +76,6 @@ RUN bash $INST_SCRIPTS/telegram/install_telegram.sh && rm -rf $INST_SCRIPTS/tel COPY ./src/ubuntu/install/thunderbird $INST_SCRIPTS/thunderbird/ RUN bash $INST_SCRIPTS/thunderbird/install_thunderbird.sh && rm -rf $INST_SCRIPTS/thunderbird/ -### Install Teams -COPY ./src/opensuse/install/teams $INST_SCRIPTS/teams/ -RUN bash $INST_SCRIPTS/teams/install_teams.sh && rm -rf $INST_SCRIPTS/teams/ - #ADD ./src/common/scripts $STARTUPDIR RUN $STARTUPDIR/set_user_permission.sh $HOME diff --git a/dockerfile-kasm-oracle-7-desktop b/dockerfile-kasm-oracle-7-desktop index f3efca1..d22e93f 100644 --- a/dockerfile-kasm-oracle-7-desktop +++ b/dockerfile-kasm-oracle-7-desktop @@ -4,7 +4,7 @@ FROM kasmweb/$BASE_IMAGE:$BASE_TAG USER root -ENV DISTRO=oracle7 +ENV DISTRO=centos ENV HOME /home/kasm-default-profile ENV STARTUPDIR /dockerstartup WORKDIR $HOME @@ -44,10 +44,6 @@ RUN bash $INST_SCRIPTS/vs_code/install_vs_code.sh && rm -rf $INST_SCRIPTS/vs_co COPY ./src/ubuntu/install/remmina $INST_SCRIPTS/remmina/ RUN bash $INST_SCRIPTS/remmina/install_remmina.sh && rm -rf $INST_SCRIPTS/remmina/ -### Install Teams -COPY ./src/oracle/install/teams $INST_SCRIPTS/teams/ -RUN bash $INST_SCRIPTS/teams/install_teams.sh && rm -rf $INST_SCRIPTS/teams/ - ### Install Only Office COPY ./src/oracle/install/only_office $INST_SCRIPTS/only_office/ RUN bash $INST_SCRIPTS/only_office/install_only_office.sh && rm -rf $INST_SCRIPTS/only_office/ diff --git a/dockerfile-kasm-oracle-8-desktop b/dockerfile-kasm-oracle-8-desktop index bf26cdb..41946f4 100644 --- a/dockerfile-kasm-oracle-8-desktop +++ b/dockerfile-kasm-oracle-8-desktop @@ -51,10 +51,6 @@ RUN bash $INST_SCRIPTS/nextcloud/install_nextcloud.sh && rm -rf $INST_SCRIPTS/n COPY ./src/ubuntu/install/remmina $INST_SCRIPTS/remmina/ RUN bash $INST_SCRIPTS/remmina/install_remmina.sh && rm -rf $INST_SCRIPTS/remmina/ -### Install Teams -COPY ./src/oracle/install/teams $INST_SCRIPTS/teams/ -RUN bash $INST_SCRIPTS/teams/install_teams.sh && rm -rf $INST_SCRIPTS/teams/ - ### Install Only Office COPY ./src/oracle/install/only_office $INST_SCRIPTS/only_office/ RUN bash $INST_SCRIPTS/only_office/install_only_office.sh && rm -rf $INST_SCRIPTS/only_office/ diff --git a/dockerfile-kasm-oracle-9-desktop b/dockerfile-kasm-oracle-9-desktop new file mode 100644 index 0000000..47baed6 --- /dev/null +++ b/dockerfile-kasm-oracle-9-desktop @@ -0,0 +1,88 @@ +ARG BASE_TAG="develop" +ARG BASE_IMAGE="core-oracle-9" +FROM kasmweb/$BASE_IMAGE:$BASE_TAG + +USER root + +ENV DISTRO=oracle9 +ENV HOME /home/kasm-default-profile +ENV STARTUPDIR /dockerstartup +WORKDIR $HOME + +### Envrionment config +ENV DEBIAN_FRONTEND noninteractive +ENV KASM_RX_HOME $STARTUPDIR/kasmrx +ENV INST_SCRIPTS $STARTUPDIR/install + + +### Install Tools +COPY ./src/oracle/install/tools $INST_SCRIPTS/tools/ +RUN bash $INST_SCRIPTS/tools/install_tools_deluxe.sh && rm -rf $INST_SCRIPTS/tools/ + +# Install Utilities +COPY ./src/oracle/install/misc $INST_SCRIPTS/misc/ +RUN bash $INST_SCRIPTS/misc/install_tools.sh && rm -rf $INST_SCRIPTS/misc/ + +# Install Chromium +COPY ./src/ubuntu/install/chromium $INST_SCRIPTS/chromium/ +RUN bash $INST_SCRIPTS/chromium/install_chromium.sh && rm -rf $INST_SCRIPTS/chromium/ + +# Install Firefox +COPY ./src/ubuntu/install/firefox/ $INST_SCRIPTS/firefox/ +COPY ./src/ubuntu/install/firefox/firefox.desktop $HOME/Desktop/ +RUN bash $INST_SCRIPTS/firefox/install_firefox.sh && rm -rf $INST_SCRIPTS/firefox/ + +### Install Sublime Text +COPY ./src/oracle/install/sublime_text $INST_SCRIPTS/sublime_text/ +RUN bash $INST_SCRIPTS/sublime_text/install_sublime_text.sh && rm -rf $INST_SCRIPTS/sublime_text/ + +### Install Visual Studio Code +COPY ./src/oracle/install/vs_code $INST_SCRIPTS/vs_code/ +RUN bash $INST_SCRIPTS/vs_code/install_vs_code.sh && rm -rf $INST_SCRIPTS/vs_code/ + +### Install Remmina +COPY ./src/ubuntu/install/remmina $INST_SCRIPTS/remmina/ +RUN bash $INST_SCRIPTS/remmina/install_remmina.sh && rm -rf $INST_SCRIPTS/remmina/ + +### Install Only Office +COPY ./src/oracle/install/only_office $INST_SCRIPTS/only_office/ +RUN bash $INST_SCRIPTS/only_office/install_only_office.sh && rm -rf $INST_SCRIPTS/only_office/ + +### Install GIMP +COPY ./src/oracle/install/gimp $INST_SCRIPTS/gimp/ +RUN bash $INST_SCRIPTS/gimp/install_gimp.sh && rm -rf $INST_SCRIPTS/gimp/ + +### Install Zoom +COPY ./src/oracle/install/zoom $INST_SCRIPTS/zoom/ +RUN bash $INST_SCRIPTS/zoom/install_zoom.sh && rm -rf $INST_SCRIPTS/zoom/ + +### Install Ansible +COPY ./src/oracle/install/ansible $INST_SCRIPTS/ansible/ +RUN bash $INST_SCRIPTS/ansible/install_ansible.sh && rm -rf $INST_SCRIPTS/ansible/ + +### Install Terraform +COPY ./src/oracle/install/terraform $INST_SCRIPTS/terraform/ +RUN bash $INST_SCRIPTS/terraform/install_terraform.sh && rm -rf $INST_SCRIPTS/terraform/ + +### Install Telegram +COPY ./src/oracle/install/telegram $INST_SCRIPTS/telegram/ +RUN bash $INST_SCRIPTS/telegram/install_telegram.sh && rm -rf $INST_SCRIPTS/telegram/ + +### Install Thunderbird +COPY ./src/ubuntu/install/thunderbird $INST_SCRIPTS/thunderbird/ +RUN bash $INST_SCRIPTS/thunderbird/install_thunderbird.sh && rm -rf $INST_SCRIPTS/thunderbird/ + +#ADD ./src/common/scripts $STARTUPDIR +RUN $STARTUPDIR/set_user_permission.sh $HOME + +RUN rm -f /etc/X11/xinit/Xclients + +RUN chown 1000:0 $HOME + +ENV HOME /home/kasm-user +WORKDIR $HOME +RUN mkdir -p $HOME && chown -R 1000:0 $HOME + +USER 1000 + +CMD ["--tail-log"] diff --git a/dockerfile-kasm-parrotos-5-desktop b/dockerfile-kasm-parrotos-5-desktop new file mode 100644 index 0000000..6ac7b86 --- /dev/null +++ b/dockerfile-kasm-parrotos-5-desktop @@ -0,0 +1,34 @@ +ARG BASE_TAG="develop" +ARG BASE_IMAGE="core-parrotos-5" +FROM kasmweb/$BASE_IMAGE:$BASE_TAG +USER root + +ENV HOME /home/kasm-default-profile +ENV STARTUPDIR /dockerstartup +ENV INST_SCRIPTS $STARTUPDIR/install +WORKDIR $HOME + +######### Customize Container Here ########### + +# Install Parrot utils +COPY ./src/ubuntu/install/parrot $INST_SCRIPTS/parrot/ +RUN bash $INST_SCRIPTS/parrot/install_parrot.sh && rm -rf $INST_SCRIPTS/parrot/ + +# Install Chromium +COPY ./src/ubuntu/install/chromium $INST_SCRIPTS/chromium/ +RUN bash $INST_SCRIPTS/chromium/install_chromium.sh && rm -rf $INST_SCRIPTS/chromium/ + +# Install Firefox +COPY ./src/ubuntu/install/firefox/ $INST_SCRIPTS/firefox/ +RUN bash $INST_SCRIPTS/firefox/install_firefox.sh && rm -rf $INST_SCRIPTS/firefox/ + +######### End Customizations ########### + +RUN chown 1000:0 $HOME +RUN $STARTUPDIR/set_user_permission.sh $HOME + +ENV HOME /home/kasm-user +WORKDIR $HOME +RUN mkdir -p $HOME && chown -R 1000:0 $HOME + +USER 1000 diff --git a/dockerfile-kasm-remnux-focal-desktop b/dockerfile-kasm-remnux-focal-desktop new file mode 100644 index 0000000..d8457d9 --- /dev/null +++ b/dockerfile-kasm-remnux-focal-desktop @@ -0,0 +1,31 @@ +ARG BASE_TAG="develop" +ARG BASE_IMAGE="core-remnux-focal" +FROM kasmweb/$BASE_IMAGE:$BASE_TAG +USER root + +ENV HOME /home/kasm-default-profile +ENV STARTUPDIR /dockerstartup +ENV INST_SCRIPTS $STARTUPDIR/install +WORKDIR $HOME + +######### Customize Container Here ########### + + +# Install Remnux Utils +COPY ./src/ubuntu/install/remnux $INST_SCRIPTS/remnux/ +RUN bash $INST_SCRIPTS/remnux/install_remnux.sh && rm -rf $INST_SCRIPTS/remnux/ + +# Install Firefox +COPY ./src/ubuntu/install/firefox/ $INST_SCRIPTS/firefox/ +RUN bash $INST_SCRIPTS/firefox/install_firefox.sh && rm -rf $INST_SCRIPTS/firefox/ + +######### End Customizations ########### + +RUN chown 1000:0 $HOME +RUN $STARTUPDIR/set_user_permission.sh $HOME + +ENV HOME /home/kasm-user +WORKDIR $HOME +RUN mkdir -p $HOME && chown -R 1000:0 $HOME + +USER 1000 diff --git a/dockerfile-kasm-rockylinux-8-desktop b/dockerfile-kasm-rockylinux-8-desktop new file mode 100644 index 0000000..6e28d40 --- /dev/null +++ b/dockerfile-kasm-rockylinux-8-desktop @@ -0,0 +1,92 @@ +ARG BASE_TAG="develop" +ARG BASE_IMAGE="core-rockylinux-8" +FROM kasmweb/$BASE_IMAGE:$BASE_TAG + +USER root + +ENV DISTRO=rockylinux8 +ENV HOME /home/kasm-default-profile +ENV STARTUPDIR /dockerstartup +WORKDIR $HOME + +### Envrionment config +ENV DEBIAN_FRONTEND noninteractive +ENV KASM_RX_HOME $STARTUPDIR/kasmrx +ENV INST_SCRIPTS $STARTUPDIR/install + + +### Install Tools +COPY ./src/oracle/install/tools $INST_SCRIPTS/tools/ +RUN bash $INST_SCRIPTS/tools/install_tools_deluxe.sh && rm -rf $INST_SCRIPTS/tools/ + +# Install Utilities +COPY ./src/oracle/install/misc $INST_SCRIPTS/misc/ +RUN bash $INST_SCRIPTS/misc/install_tools.sh && rm -rf $INST_SCRIPTS/misc/ + +# Install Chromium +COPY ./src/ubuntu/install/chromium $INST_SCRIPTS/chromium/ +RUN bash $INST_SCRIPTS/chromium/install_chromium.sh && rm -rf $INST_SCRIPTS/chromium/ + +# Install Firefox +COPY ./src/ubuntu/install/firefox/ $INST_SCRIPTS/firefox/ +COPY ./src/ubuntu/install/firefox/firefox.desktop $HOME/Desktop/ +RUN bash $INST_SCRIPTS/firefox/install_firefox.sh && rm -rf $INST_SCRIPTS/firefox/ + +### Install Sublime Text +COPY ./src/oracle/install/sublime_text $INST_SCRIPTS/sublime_text/ +RUN bash $INST_SCRIPTS/sublime_text/install_sublime_text.sh && rm -rf $INST_SCRIPTS/sublime_text/ + +### Install NextCloud +COPY ./src/ubuntu/install/nextcloud $INST_SCRIPTS/nextcloud/ +RUN bash $INST_SCRIPTS/nextcloud/install_nextcloud.sh && rm -rf $INST_SCRIPTS/nextcloud/ + +### Install Remmina +COPY ./src/ubuntu/install/remmina $INST_SCRIPTS/remmina/ +RUN bash $INST_SCRIPTS/remmina/install_remmina.sh && rm -rf $INST_SCRIPTS/remmina/ + +### Install Only Office +COPY ./src/oracle/install/only_office $INST_SCRIPTS/only_office/ +RUN bash $INST_SCRIPTS/only_office/install_only_office.sh && rm -rf $INST_SCRIPTS/only_office/ + +### Install GIMP +COPY ./src/oracle/install/gimp $INST_SCRIPTS/gimp/ +RUN bash $INST_SCRIPTS/gimp/install_gimp.sh && rm -rf $INST_SCRIPTS/gimp/ + +### Install Zoom +COPY ./src/oracle/install/zoom $INST_SCRIPTS/zoom/ +RUN bash $INST_SCRIPTS/zoom/install_zoom.sh && rm -rf $INST_SCRIPTS/zoom/ + +### Install OBS Studio +COPY ./src/oracle/install/obs $INST_SCRIPTS/obs/ +RUN bash $INST_SCRIPTS/obs/install_obs.sh && rm -rf $INST_SCRIPTS/obs/ + +### Install Ansible +COPY ./src/oracle/install/ansible $INST_SCRIPTS/ansible/ +RUN bash $INST_SCRIPTS/ansible/install_ansible.sh && rm -rf $INST_SCRIPTS/ansible/ + +### Install Terraform +COPY ./src/oracle/install/terraform $INST_SCRIPTS/terraform/ +RUN bash $INST_SCRIPTS/terraform/install_terraform.sh && rm -rf $INST_SCRIPTS/terraform/ + +### Install Telegram +COPY ./src/oracle/install/telegram $INST_SCRIPTS/telegram/ +RUN bash $INST_SCRIPTS/telegram/install_telegram.sh && rm -rf $INST_SCRIPTS/telegram/ + +### Install Thunderbird +COPY ./src/ubuntu/install/thunderbird $INST_SCRIPTS/thunderbird/ +RUN bash $INST_SCRIPTS/thunderbird/install_thunderbird.sh && rm -rf $INST_SCRIPTS/thunderbird/ + +#ADD ./src/common/scripts $STARTUPDIR +RUN $STARTUPDIR/set_user_permission.sh $HOME + +RUN rm -f /etc/X11/xinit/Xclients + +RUN chown 1000:0 $HOME + +ENV HOME /home/kasm-user +WORKDIR $HOME +RUN mkdir -p $HOME && chown -R 1000:0 $HOME + +USER 1000 + +CMD ["--tail-log"] diff --git a/dockerfile-kasm-rockylinux-9-desktop b/dockerfile-kasm-rockylinux-9-desktop new file mode 100644 index 0000000..f97cad0 --- /dev/null +++ b/dockerfile-kasm-rockylinux-9-desktop @@ -0,0 +1,88 @@ +ARG BASE_TAG="develop" +ARG BASE_IMAGE="core-rockylinux-9" +FROM kasmweb/$BASE_IMAGE:$BASE_TAG + +USER root + +ENV DISTRO=rockylinux9 +ENV HOME /home/kasm-default-profile +ENV STARTUPDIR /dockerstartup +WORKDIR $HOME + +### Envrionment config +ENV DEBIAN_FRONTEND noninteractive +ENV KASM_RX_HOME $STARTUPDIR/kasmrx +ENV INST_SCRIPTS $STARTUPDIR/install + + +### Install Tools +COPY ./src/oracle/install/tools $INST_SCRIPTS/tools/ +RUN bash $INST_SCRIPTS/tools/install_tools_deluxe.sh && rm -rf $INST_SCRIPTS/tools/ + +# Install Utilities +COPY ./src/oracle/install/misc $INST_SCRIPTS/misc/ +RUN bash $INST_SCRIPTS/misc/install_tools.sh && rm -rf $INST_SCRIPTS/misc/ + +# Install Chromium +COPY ./src/ubuntu/install/chromium $INST_SCRIPTS/chromium/ +RUN bash $INST_SCRIPTS/chromium/install_chromium.sh && rm -rf $INST_SCRIPTS/chromium/ + +# Install Firefox +COPY ./src/ubuntu/install/firefox/ $INST_SCRIPTS/firefox/ +COPY ./src/ubuntu/install/firefox/firefox.desktop $HOME/Desktop/ +RUN bash $INST_SCRIPTS/firefox/install_firefox.sh && rm -rf $INST_SCRIPTS/firefox/ + +### Install Sublime Text +COPY ./src/oracle/install/sublime_text $INST_SCRIPTS/sublime_text/ +RUN bash $INST_SCRIPTS/sublime_text/install_sublime_text.sh && rm -rf $INST_SCRIPTS/sublime_text/ + +### Install Visual Studio Code +COPY ./src/oracle/install/vs_code $INST_SCRIPTS/vs_code/ +RUN bash $INST_SCRIPTS/vs_code/install_vs_code.sh && rm -rf $INST_SCRIPTS/vs_code/ + +### Install Remmina +COPY ./src/ubuntu/install/remmina $INST_SCRIPTS/remmina/ +RUN bash $INST_SCRIPTS/remmina/install_remmina.sh && rm -rf $INST_SCRIPTS/remmina/ + +### Install Only Office +COPY ./src/oracle/install/only_office $INST_SCRIPTS/only_office/ +RUN bash $INST_SCRIPTS/only_office/install_only_office.sh && rm -rf $INST_SCRIPTS/only_office/ + +### Install GIMP +COPY ./src/oracle/install/gimp $INST_SCRIPTS/gimp/ +RUN bash $INST_SCRIPTS/gimp/install_gimp.sh && rm -rf $INST_SCRIPTS/gimp/ + +### Install Zoom +COPY ./src/oracle/install/zoom $INST_SCRIPTS/zoom/ +RUN bash $INST_SCRIPTS/zoom/install_zoom.sh && rm -rf $INST_SCRIPTS/zoom/ + +### Install Ansible +COPY ./src/oracle/install/ansible $INST_SCRIPTS/ansible/ +RUN bash $INST_SCRIPTS/ansible/install_ansible.sh && rm -rf $INST_SCRIPTS/ansible/ + +### Install Terraform +COPY ./src/oracle/install/terraform $INST_SCRIPTS/terraform/ +RUN bash $INST_SCRIPTS/terraform/install_terraform.sh && rm -rf $INST_SCRIPTS/terraform/ + +### Install Telegram +COPY ./src/oracle/install/telegram $INST_SCRIPTS/telegram/ +RUN bash $INST_SCRIPTS/telegram/install_telegram.sh && rm -rf $INST_SCRIPTS/telegram/ + +### Install Thunderbird +COPY ./src/ubuntu/install/thunderbird $INST_SCRIPTS/thunderbird/ +RUN bash $INST_SCRIPTS/thunderbird/install_thunderbird.sh && rm -rf $INST_SCRIPTS/thunderbird/ + +#ADD ./src/common/scripts $STARTUPDIR +RUN $STARTUPDIR/set_user_permission.sh $HOME + +RUN rm -f /etc/X11/xinit/Xclients + +RUN chown 1000:0 $HOME + +ENV HOME /home/kasm-user +WORKDIR $HOME +RUN mkdir -p $HOME && chown -R 1000:0 $HOME + +USER 1000 + +CMD ["--tail-log"] diff --git a/dockerfile-kasm-tracelabs b/dockerfile-kasm-tracelabs index f99e0f5..4c0601c 100644 --- a/dockerfile-kasm-tracelabs +++ b/dockerfile-kasm-tracelabs @@ -15,6 +15,10 @@ WORKDIR $HOME COPY ./src/ubuntu/install/tracelabs $INST_SCRIPTS/tracelabs/ RUN bash $INST_SCRIPTS/tracelabs/install_tracelabs.sh && rm -rf $INST_SCRIPTS/tracelabs/ +# Install Firefox +COPY ./src/ubuntu/install/firefox/ $INST_SCRIPTS/firefox/ +RUN bash $INST_SCRIPTS/firefox/install_firefox.sh && rm -rf $INST_SCRIPTS/firefox/ + ######### End Customizations ########### RUN chown 1000:0 $HOME diff --git a/dockerfile-kasm-ubuntu-focal-desktop b/dockerfile-kasm-ubuntu-focal-desktop index 1dd080d..a3bc136 100644 --- a/dockerfile-kasm-ubuntu-focal-desktop +++ b/dockerfile-kasm-ubuntu-focal-desktop @@ -54,10 +54,6 @@ RUN bash $INST_SCRIPTS/nextcloud/install_nextcloud.sh && rm -rf $INST_SCRIPTS/n COPY ./src/ubuntu/install/remmina $INST_SCRIPTS/remmina/ RUN bash $INST_SCRIPTS/remmina/install_remmina.sh && rm -rf $INST_SCRIPTS/remmina/ -### Install Teams -COPY ./src/ubuntu/install/teams $INST_SCRIPTS/teams/ -RUN bash $INST_SCRIPTS/teams/install_teams.sh && rm -rf $INST_SCRIPTS/teams/ - ### Install Only Office COPY ./src/ubuntu/install/only_office $INST_SCRIPTS/only_office/ RUN bash $INST_SCRIPTS/only_office/install_only_office.sh && rm -rf $INST_SCRIPTS/only_office/ diff --git a/dockerfile-kasm-ubuntu-jammy-desktop b/dockerfile-kasm-ubuntu-jammy-desktop index aaa7581..c4a2a41 100644 --- a/dockerfile-kasm-ubuntu-jammy-desktop +++ b/dockerfile-kasm-ubuntu-jammy-desktop @@ -54,10 +54,6 @@ RUN bash $INST_SCRIPTS/nextcloud/install_nextcloud.sh && rm -rf $INST_SCRIPTS/n COPY ./src/ubuntu/install/remmina $INST_SCRIPTS/remmina/ RUN bash $INST_SCRIPTS/remmina/install_remmina.sh && rm -rf $INST_SCRIPTS/remmina/ -### Install Teams -COPY ./src/ubuntu/install/teams $INST_SCRIPTS/teams/ -RUN bash $INST_SCRIPTS/teams/install_teams.sh && rm -rf $INST_SCRIPTS/teams/ - ### Install Only Office COPY ./src/ubuntu/install/only_office $INST_SCRIPTS/only_office/ RUN bash $INST_SCRIPTS/only_office/install_only_office.sh && rm -rf $INST_SCRIPTS/only_office/ diff --git a/docs/almalinux-8-desktop/README.md b/docs/almalinux-8-desktop/README.md new file mode 100644 index 0000000..9cdd0ab --- /dev/null +++ b/docs/almalinux-8-desktop/README.md @@ -0,0 +1,7 @@ +# About This Image + +This Image contains a browser-accessible AlmaLinux 8 Desktop with various productivity and development apps installed. + +![Screenshot][Image_Screenshot] + +[Image_Screenshot]: https://info.kasmweb.com/hubfs/dockerhub/image-screenshots/alamalinux-8-desktop.png "Image Screenshot" diff --git a/docs/almalinux-8-desktop/demo.txt b/docs/almalinux-8-desktop/demo.txt new file mode 100644 index 0000000..0b606c7 --- /dev/null +++ b/docs/almalinux-8-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/almalinux-8-desktop/description.txt b/docs/almalinux-8-desktop/description.txt new file mode 100644 index 0000000..7409a1f --- /dev/null +++ b/docs/almalinux-8-desktop/description.txt @@ -0,0 +1 @@ +AlmaLinux 8 desktop for Kasm Workspaces diff --git a/docs/almalinux-9-desktop/README.md b/docs/almalinux-9-desktop/README.md new file mode 100644 index 0000000..301860e --- /dev/null +++ b/docs/almalinux-9-desktop/README.md @@ -0,0 +1,7 @@ +# About This Image + +This Image contains a browser-accessible AlmaLinux 9 Desktop with various productivity and development apps installed. + +![Screenshot][Image_Screenshot] + +[Image_Screenshot]: https://info.kasmweb.com/hubfs/dockerhub/image-screenshots/almalinux-9-desktop.png "Image Screenshot" diff --git a/docs/almalinux-9-desktop/demo.txt b/docs/almalinux-9-desktop/demo.txt new file mode 100644 index 0000000..0b606c7 --- /dev/null +++ b/docs/almalinux-9-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/almalinux-9-desktop/description.txt b/docs/almalinux-9-desktop/description.txt new file mode 100644 index 0000000..7cc7229 --- /dev/null +++ b/docs/almalinux-9-desktop/description.txt @@ -0,0 +1 @@ +AlmaLinux 9 desktop for Kasm Workspaces diff --git a/docs/alpine-317-desktop/README.md b/docs/alpine-317-desktop/README.md new file mode 100644 index 0000000..9989c0c --- /dev/null +++ b/docs/alpine-317-desktop/README.md @@ -0,0 +1,7 @@ +# About This Image + +This Image contains a browser-accessible Alpine 3.17 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-317-desktop/demo.txt b/docs/alpine-317-desktop/demo.txt new file mode 100644 index 0000000..0b606c7 --- /dev/null +++ b/docs/alpine-317-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-317-desktop/description.txt b/docs/alpine-317-desktop/description.txt new file mode 100644 index 0000000..bbdabab --- /dev/null +++ b/docs/alpine-317-desktop/description.txt @@ -0,0 +1 @@ +Alpine 3.17 desktop for Kasm Workspaces diff --git a/docs/debian-bullseye-desktop/README.md b/docs/debian-bullseye-desktop/README.md new file mode 100644 index 0000000..b7a35f0 --- /dev/null +++ b/docs/debian-bullseye-desktop/README.md @@ -0,0 +1,7 @@ +# About This Image + +This Image contains a browser-accessible Debian Bullseye Desktop with various productivity and development apps installed. + +![Screenshot][Image_Screenshot] + +[Image_Screenshot]: https://info.kasmweb.com/hubfs/dockerhub/image-screenshots/debian-bullseye-desktop.png "Image Screenshot" diff --git a/docs/debian-bullseye-desktop/demo.txt b/docs/debian-bullseye-desktop/demo.txt new file mode 100644 index 0000000..0b606c7 --- /dev/null +++ b/docs/debian-bullseye-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/debian-bullseye-desktop/description.txt b/docs/debian-bullseye-desktop/description.txt new file mode 100644 index 0000000..f25edb4 --- /dev/null +++ b/docs/debian-bullseye-desktop/description.txt @@ -0,0 +1 @@ +Debian Bullseye desktop for Kasm Workspaces diff --git a/docs/fedora-37-desktop/README.md b/docs/fedora-37-desktop/README.md new file mode 100644 index 0000000..b71943a --- /dev/null +++ b/docs/fedora-37-desktop/README.md @@ -0,0 +1,7 @@ +# About This Image + +This Image contains a browser-accessible Fedora 37 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-37-desktop/demo.txt b/docs/fedora-37-desktop/demo.txt new file mode 100644 index 0000000..0b606c7 --- /dev/null +++ b/docs/fedora-37-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-37-desktop/description.txt b/docs/fedora-37-desktop/description.txt new file mode 100644 index 0000000..1b29538 --- /dev/null +++ b/docs/fedora-37-desktop/description.txt @@ -0,0 +1 @@ +Fedora 37 desktop for Kasm Workspaces diff --git a/docs/kali-rolling-desktop/README.md b/docs/kali-rolling-desktop/README.md new file mode 100644 index 0000000..44f2db9 --- /dev/null +++ b/docs/kali-rolling-desktop/README.md @@ -0,0 +1,7 @@ +# About This Image + +This Image contains a browser-accessible Kali Rolling Desktop with various productivity and development apps installed. + +![Screenshot][Image_Screenshot] + +[Image_Screenshot]: https://info.kasmweb.com/hubfs/dockerhub/image-screenshots/kali-rolling-desktop.png "Image Screenshot" diff --git a/docs/kali-rolling-desktop/demo.txt b/docs/kali-rolling-desktop/demo.txt new file mode 100644 index 0000000..0b606c7 --- /dev/null +++ b/docs/kali-rolling-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/kali-rolling-desktop/description.txt b/docs/kali-rolling-desktop/description.txt new file mode 100644 index 0000000..9750e4b --- /dev/null +++ b/docs/kali-rolling-desktop/description.txt @@ -0,0 +1 @@ +Kali Rolling desktop for Kasm Workspaces diff --git a/docs/oracle-9-desktop/README.md b/docs/oracle-9-desktop/README.md new file mode 100644 index 0000000..9ce7018 --- /dev/null +++ b/docs/oracle-9-desktop/README.md @@ -0,0 +1,7 @@ +# About This Image + +This Image contains a browser-accessible Oracle 9 Desktop with various productivity and development apps installed. + +![Screenshot][Image_Screenshot] + +[Image_Screenshot]: https://info.kasmweb.com/hubfs/dockerhub/image-screenshots/oracle-9-desktop.png "Image Screenshot" diff --git a/docs/oracle-9-desktop/demo.txt b/docs/oracle-9-desktop/demo.txt new file mode 100644 index 0000000..0b606c7 --- /dev/null +++ b/docs/oracle-9-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/oracle-9-desktop/description.txt b/docs/oracle-9-desktop/description.txt new file mode 100644 index 0000000..a3d0730 --- /dev/null +++ b/docs/oracle-9-desktop/description.txt @@ -0,0 +1 @@ +Oracle 9 desktop for Kasm Workspaces diff --git a/docs/parrotos-5-desktop/README.md b/docs/parrotos-5-desktop/README.md new file mode 100644 index 0000000..4397b12 --- /dev/null +++ b/docs/parrotos-5-desktop/README.md @@ -0,0 +1,7 @@ +# About This Image + +This Image contains a browser-accessible Parrot OS 5 Desktop with various productivity and development apps installed. + +![Screenshot][Image_Screenshot] + +[Image_Screenshot]: https://info.kasmweb.com/hubfs/dockerhub/image-screenshots/parrotos-5-desktop.png "Image Screenshot" diff --git a/docs/parrotos-5-desktop/demo.txt b/docs/parrotos-5-desktop/demo.txt new file mode 100644 index 0000000..0b606c7 --- /dev/null +++ b/docs/parrotos-5-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-5-desktop/description.txt b/docs/parrotos-5-desktop/description.txt new file mode 100644 index 0000000..fd1f48a --- /dev/null +++ b/docs/parrotos-5-desktop/description.txt @@ -0,0 +1 @@ +Parrot OS 5 desktop for Kasm Workspaces diff --git a/docs/remnux-focal-desktop/README.md b/docs/remnux-focal-desktop/README.md new file mode 100644 index 0000000..6a74d2a --- /dev/null +++ b/docs/remnux-focal-desktop/README.md @@ -0,0 +1,7 @@ +# About This Image + +This Image contains a browser-accessible Remnux Focal Desktop with various productivity and development apps installed. + +![Screenshot][Image_Screenshot] + +[Image_Screenshot]: https://info.kasmweb.com/hubfs/dockerhub/image-screenshots/remnux-focal-desktop.png "Image Screenshot" diff --git a/docs/remnux-focal-desktop/demo.txt b/docs/remnux-focal-desktop/demo.txt new file mode 100644 index 0000000..0b606c7 --- /dev/null +++ b/docs/remnux-focal-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/remnux-focal-desktop/description.txt b/docs/remnux-focal-desktop/description.txt new file mode 100644 index 0000000..64b3eb1 --- /dev/null +++ b/docs/remnux-focal-desktop/description.txt @@ -0,0 +1 @@ +Remnux Focal desktop for Kasm Workspaces diff --git a/docs/rockylinux-8-desktop/README.md b/docs/rockylinux-8-desktop/README.md new file mode 100644 index 0000000..522be34 --- /dev/null +++ b/docs/rockylinux-8-desktop/README.md @@ -0,0 +1,7 @@ +# About This Image + +This Image contains a browser-accessible Rocky Linux 8 Desktop with various productivity and development apps installed. + +![Screenshot][Image_Screenshot] + +[Image_Screenshot]: https://5856039.fs1.hubspotusercontent-na1.net/hubfs/5856039/dockerhub/image-screenshots/ubuntu_jammy_desktop.png "Image Screenshot" diff --git a/docs/rockylinux-8-desktop/demo.txt b/docs/rockylinux-8-desktop/demo.txt new file mode 100644 index 0000000..0b606c7 --- /dev/null +++ b/docs/rockylinux-8-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/rockylinux-8-desktop/description.txt b/docs/rockylinux-8-desktop/description.txt new file mode 100644 index 0000000..ef81a8c --- /dev/null +++ b/docs/rockylinux-8-desktop/description.txt @@ -0,0 +1 @@ +Rocky Linux 8 desktop for Kasm Workspaces diff --git a/docs/rockylinux-9-desktop/README.md b/docs/rockylinux-9-desktop/README.md new file mode 100644 index 0000000..d6a6d8d --- /dev/null +++ b/docs/rockylinux-9-desktop/README.md @@ -0,0 +1,7 @@ +# About This Image + +This Image contains a browser-accessible Rocky Linux 9 Desktop with various productivity and development apps installed. + +![Screenshot][Image_Screenshot] + +[Image_Screenshot]: https://info.kasmweb.com/hubfs/dockerhub/image-screenshots/rockylinux-8-desktop.png "Image Screenshot" diff --git a/docs/rockylinux-9-desktop/demo.txt b/docs/rockylinux-9-desktop/demo.txt new file mode 100644 index 0000000..0b606c7 --- /dev/null +++ b/docs/rockylinux-9-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/rockylinux-9-desktop/description.txt b/docs/rockylinux-9-desktop/description.txt new file mode 100644 index 0000000..814cc27 --- /dev/null +++ b/docs/rockylinux-9-desktop/description.txt @@ -0,0 +1 @@ +Rocky Linux 9 desktop for Kasm Workspaces diff --git a/docs/teams/demo.txt b/docs/teams/demo.txt index ef3147d..e6df724 100644 --- a/docs/teams/demo.txt +++ b/docs/teams/demo.txt @@ -1,3 +1,7 @@ +# This image is deprecated + +Microsoft has retired Teams for Linux [More Info](https://learn.microsoft.com/en-us/microsoftteams/hardware-requirements-for-the-teams-app#hardware-requirements-for-teams-on-linux) + # Live Demo diff --git a/src/alpine/install/ansible/install_ansible.sh b/src/alpine/install/ansible/install_ansible.sh new file mode 100644 index 0000000..001b613 --- /dev/null +++ b/src/alpine/install/ansible/install_ansible.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +set -ex + +apk add --no-cache \ + ansible \ + python3 diff --git a/src/alpine/install/audacity/audacity.cfg b/src/alpine/install/audacity/audacity.cfg new file mode 100644 index 0000000..bd1c984 --- /dev/null +++ b/src/alpine/install/audacity/audacity.cfg @@ -0,0 +1,2 @@ +[GUI] +ShowSplashScreen=0 diff --git a/src/alpine/install/audacity/custom_startup.sh b/src/alpine/install/audacity/custom_startup.sh new file mode 100644 index 0000000..a18f23d --- /dev/null +++ b/src/alpine/install/audacity/custom_startup.sh @@ -0,0 +1,84 @@ +#!/usr/bin/env bash +set -ex +START_COMMAND="audacity" +PGREP="audacity" +export MAXIMIZE="true" +export MAXIMIZE_NAME="Audacity" +MAXIMIZE_SCRIPT=$STARTUPDIR/maximize_window.sh +DEFAULT_ARGS="" +ARGS=${APP_ARGS:-$DEFAULT_ARGS} + +options=$(getopt -o gau: -l go,assign,url: -n "$0" -- "$@") || exit +eval set -- "$options" + +while [[ $1 != -- ]]; do + case $1 in + -g|--go) GO='true'; shift 1;; + -a|--assign) ASSIGN='true'; shift 1;; + -u|--url) OPT_URL=$2; shift 2;; + *) echo "bad option: $1" >&2; exit 1;; + esac +done +shift + +# Process non-option arguments. +for arg; do + echo "arg! $arg" +done + +FORCE=$2 + +kasm_exec() { + if [ -n "$OPT_URL" ] ; then + URL=$OPT_URL + elif [ -n "$1" ] ; then + URL=$1 + fi + + # Since we are execing into a container that already has the browser running from startup, + # when we don't have a URL to open we want to do nothing. Otherwise a second browser instance would open. + if [ -n "$URL" ] ; then + /usr/bin/filter_ready + /usr/bin/desktop_ready + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $OPT_URL + else + echo "No URL specified for exec command. Doing nothing." + 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 $PGREP > /dev/null + then + /usr/bin/filter_ready + /usr/bin/desktop_ready + set +e + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $URL + set -e + fi + sleep 1 + done + set -x + + fi + +} + +if [ -n "$GO" ] || [ -n "$ASSIGN" ] ; then + kasm_exec +else + kasm_startup +fi diff --git a/src/alpine/install/audacity/install_audacity.sh b/src/alpine/install/audacity/install_audacity.sh new file mode 100644 index 0000000..41a3277 --- /dev/null +++ b/src/alpine/install/audacity/install_audacity.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -ex + +apk add --no-cache \ + audacity + +# Desktop icon +cp /usr/share/applications/audacity.desktop $HOME/Desktop/ +chmod +x $HOME/Desktop/audacity.desktop diff --git a/src/alpine/install/blender/custom_startup.sh b/src/alpine/install/blender/custom_startup.sh new file mode 100644 index 0000000..c4069ba --- /dev/null +++ b/src/alpine/install/blender/custom_startup.sh @@ -0,0 +1,84 @@ +#!/usr/bin/env bash +set -ex +START_COMMAND="blender" +PGREP="blender" +export MAXIMIZE="true" +export MAXIMIZE_NAME="Blender" +MAXIMIZE_SCRIPT=$STARTUPDIR/maximize_window.sh +DEFAULT_ARGS="" +ARGS=${APP_ARGS:-$DEFAULT_ARGS} + +options=$(getopt -o gau: -l go,assign,url: -n "$0" -- "$@") || exit +eval set -- "$options" + +while [[ $1 != -- ]]; do + case $1 in + -g|--go) GO='true'; shift 1;; + -a|--assign) ASSIGN='true'; shift 1;; + -u|--url) OPT_URL=$2; shift 2;; + *) echo "bad option: $1" >&2; exit 1;; + esac +done +shift + +# Process non-option arguments. +for arg; do + echo "arg! $arg" +done + +FORCE=$2 + +kasm_exec() { + if [ -n "$OPT_URL" ] ; then + URL=$OPT_URL + elif [ -n "$1" ] ; then + URL=$1 + fi + + # Since we are execing into a container that already has the browser running from startup, + # when we don't have a URL to open we want to do nothing. Otherwise a second browser instance would open. + if [ -n "$URL" ] ; then + /usr/bin/filter_ready + /usr/bin/desktop_ready + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $OPT_URL + else + echo "No URL specified for exec command. Doing nothing." + 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 $PGREP > /dev/null + then + /usr/bin/filter_ready + /usr/bin/desktop_ready + set +e + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $URL + set -e + fi + sleep 1 + done + set -x + + fi + +} + +if [ -n "$GO" ] || [ -n "$ASSIGN" ] ; then + kasm_exec +else + kasm_startup +fi diff --git a/src/alpine/install/blender/install_blender.sh b/src/alpine/install/blender/install_blender.sh new file mode 100644 index 0000000..b7823f3 --- /dev/null +++ b/src/alpine/install/blender/install_blender.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -ex + +apk add --no-cach \ + blender + +# Desktop icon +cp /usr/share/applications/blender.desktop $HOME/Desktop/ +chmod +x $HOME/Desktop/blender.desktop diff --git a/src/alpine/install/chromium/custom_startup.sh b/src/alpine/install/chromium/custom_startup.sh new file mode 100644 index 0000000..46d284c --- /dev/null +++ b/src/alpine/install/chromium/custom_startup.sh @@ -0,0 +1,84 @@ +#!/usr/bin/env bash +set -ex +START_COMMAND="chromium-browser" +PGREP="chromium" +MAXIMIZE="true" +DEFAULT_ARGS="" + +if [[ $MAXIMIZE == 'true' ]] ; then + DEFAULT_ARGS+=" --start-maximized" +fi +ARGS=${APP_ARGS:-$DEFAULT_ARGS} + +options=$(getopt -o gau: -l go,assign,url: -n "$0" -- "$@") || exit +eval set -- "$options" + +while [[ $1 != -- ]]; do + case $1 in + -g|--go) GO='true'; shift 1;; + -a|--assign) ASSIGN='true'; shift 1;; + -u|--url) OPT_URL=$2; shift 2;; + *) echo "bad option: $1" >&2; exit 1;; + esac +done +shift + +# Process non-option arguments. +for arg; do + echo "arg! $arg" +done + +FORCE=$2 + +kasm_exec() { + if [ -n "$OPT_URL" ] ; then + URL=$OPT_URL + elif [ -n "$1" ] ; then + URL=$1 + fi + + # Since we are execing into a container that already has the browser running from startup, + # when we don't have a URL to open we want to do nothing. Otherwise a second browser instance would open. + if [ -n "$URL" ] ; then + /usr/bin/filter_ready + /usr/bin/desktop_ready + $START_COMMAND $ARGS $OPT_URL + else + echo "No URL specified for exec command. Doing nothing." + 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 $PGREP > /dev/null + then + /usr/bin/filter_ready + /usr/bin/desktop_ready + set +e + $START_COMMAND $ARGS $URL + set -e + fi + sleep 1 + done + set -x + + fi + +} + +if [ -n "$GO" ] || [ -n "$ASSIGN" ] ; then + kasm_exec +else + kasm_startup +fi diff --git a/src/alpine/install/chromium/install_chromium.sh b/src/alpine/install/chromium/install_chromium.sh new file mode 100644 index 0000000..d9871bc --- /dev/null +++ b/src/alpine/install/chromium/install_chromium.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +set -ex + +CHROME_ARGS="--password-store=basic --no-sandbox --ignore-gpu-blocklist --user-data-dir --no-first-run --simulate-outdated-no-au='Tue, 31 Dec 2099 23:59:59 GMT'" + +apk add --no-cache \ + chromium + +if [ "$(arch)" == "x86_64" ]; then + apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing \ + virtualgl +fi + +REAL_BIN=chromium + +cp /usr/share/applications/chromium.desktop $HOME/Desktop/ +chown 1000:1000 $HOME/Desktop/chromium.desktop + +mv /usr/bin/chromium-browser /usr/bin/chromium-browser-orig +cat >/usr/bin/chromium-browser <> $HOME/.config/mimeapps.list <>/etc/chromium/policies/managed/default_managed_policy.json <&2; exit 1;; + esac +done +shift + +# Process non-option arguments. +for arg; do + echo "arg! $arg" +done + +FORCE=$2 + +kasm_exec() { + if [ -n "$OPT_URL" ] ; then + URL=$OPT_URL + elif [ -n "$1" ] ; then + URL=$1 + fi + + # Since we are execing into a container that already has the browser running from startup, + # when we don't have a URL to open we want to do nothing. Otherwise a second browser instance would open. + if [ -n "$URL" ] ; then + /usr/bin/filter_ready + /usr/bin/desktop_ready + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $OPT_URL + else + echo "No URL specified for exec command. Doing nothing." + 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 $PGREP > /dev/null + then + /usr/bin/filter_ready + /usr/bin/desktop_ready + set +e + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $URL + set -e + fi + sleep 1 + done + set -x + + fi + +} + +if [ -n "$GO" ] || [ -n "$ASSIGN" ] ; then + kasm_exec +else + kasm_startup +fi diff --git a/src/alpine/install/filezilla/filezilla.xml b/src/alpine/install/filezilla/filezilla.xml new file mode 100644 index 0000000..fabe9ac --- /dev/null +++ b/src/alpine/install/filezilla/filezilla.xml @@ -0,0 +1,139 @@ + + + + 1 + 0 + 6000 + 7000 + 0 + 0 + + http://ip.filezilla-project.org/ip.php + + 1 + 0 + 20 + 0 + 0 + + + 1 + 2 + 5 + 0 + 1000 + 100 + 0 + 0 + 0 + 0 + 4194304 + 262144 + 0 + 0 + + + + + + 0 + 0 + + 0 + + + + 10 + 0 + 3 + 1 + 1 + 15 + 600 + 2 + 0 + am|asp|bat|c|cfm|cgi|conf|cpp|css|dhtml|diz|h|hpp|htm|html|in|inc|java|js|jsp|lua|m4|mak|md5|nfo|nsi|pas|patch|pem|php|phtml|pl|po|py|qmail|sh|sha1|sha256|sha512|shtml|sql|svg|tcl|tpl|txt|vbs|xhtml|xml|xrc + 1 + 1 + + 0 + 0 + 1 + 7 + + + + 0 + 0 + 0 + 0 + 0 + 3.46.3 + + + 1 + 1 + 0 + 0 + 0 + 1 + 0 + 0 0 + 0 0 + + + 1 + 1 + + 0 + 1 + + 1 + 1 + + default + 125 + 0 + + 1111 + 111111 + 0,1,2,3 + 0,1,2,3,4,5 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + + + 0 + + 1 + 1 + + 1 + _ + 0 + + 0 + 0 + 0 + 0 + 1 + 0 + 1 + + 0 + 0 + + /home/kasm-user/.config/filezilla/ + 0 + 1 + + + + diff --git a/src/alpine/install/filezilla/install_filezilla.sh b/src/alpine/install/filezilla/install_filezilla.sh new file mode 100644 index 0000000..3d5760e --- /dev/null +++ b/src/alpine/install/filezilla/install_filezilla.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -ex + +apk add --no-cache \ + filezilla + +# Desktop icon +cp /usr/share/applications/filezilla.desktop $HOME/Desktop/ +chmod +x $HOME/Desktop/filezilla.desktop diff --git a/src/alpine/install/firefox/custom_startup.sh b/src/alpine/install/firefox/custom_startup.sh new file mode 100644 index 0000000..943d5dd --- /dev/null +++ b/src/alpine/install/firefox/custom_startup.sh @@ -0,0 +1,89 @@ +#!/usr/bin/env bash +set -ex +START_COMMAND="firefox" +PGREP="firefox" +export MAXIMIZE="true" +export MAXIMIZE_NAME="Mozilla Firefox" +MAXIMIZE_SCRIPT=$STARTUPDIR/maximize_window.sh +DEFAULT_ARGS="" +ARGS=${APP_ARGS:-$DEFAULT_ARGS} + +options=$(getopt -o gau: -l go,assign,url: -n "$0" -- "$@") || exit +eval set -- "$options" + +while [[ $1 != -- ]]; do + case $1 in + -g|--go) GO='true'; shift 1;; + -a|--assign) ASSIGN='true'; shift 1;; + -u|--url) OPT_URL=$2; shift 2;; + *) echo "bad option: $1" >&2; exit 1;; + esac +done +shift + +# Process non-option arguments. +for arg; do + echo "arg! $arg" +done + +FORCE=$2 + +# run with vgl if GPU is available +if [ -f /opt/VirtualGL/bin/vglrun ] && [ ! -z "${KASM_EGL_CARD}" ] && [ ! -z "${KASM_RENDERD}" ] && [ -O "${KASM_RENDERD}" ] && [ -O "${KASM_EGL_CARD}" ] ; then + START_COMMAND="/opt/VirtualGL/bin/vglrun -d ${KASM_EGL_CARD} $START_COMMAND" +fi + +kasm_exec() { + if [ -n "$OPT_URL" ] ; then + URL=$OPT_URL + elif [ -n "$1" ] ; then + URL=$1 + fi + + # Since we are execing into a container that already has the browser running from startup, + # when we don't have a URL to open we want to do nothing. Otherwise a second browser instance would open. + if [ -n "$URL" ] ; then + /usr/bin/filter_ready + /usr/bin/desktop_ready + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $OPT_URL + else + echo "No URL specified for exec command. Doing nothing." + 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 $PGREP > /dev/null + then + /usr/bin/filter_ready + /usr/bin/desktop_ready + set +e + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $URL + set -e + fi + sleep 1 + done + set -x + + fi + +} + +if [ -n "$GO" ] || [ -n "$ASSIGN" ] ; then + kasm_exec +else + kasm_startup +fi diff --git a/src/alpine/install/firefox/firefox.desktop b/src/alpine/install/firefox/firefox.desktop new file mode 100644 index 0000000..e836241 --- /dev/null +++ b/src/alpine/install/firefox/firefox.desktop @@ -0,0 +1,221 @@ +[Desktop Entry] +Version=1.0 +Name=Firefox Web Browser +Name[ar]=متصفح الويب فَيَرفُكْس +Name[ast]=Restolador web Firefox +Name[bn]=ফায়ারফক্স ওয়েব ব্রাউজার +Name[ca]=Navegador web Firefox +Name[cs]=Firefox Webový prohlížeč +Name[da]=Firefox - internetbrowser +Name[el]=Περιηγητής Firefox +Name[es]=Navegador web Firefox +Name[et]=Firefoxi veebibrauser +Name[fa]=مرورگر اینترنتی Firefox +Name[fi]=Firefox-selain +Name[fr]=Navigateur Web Firefox +Name[gl]=Navegador web Firefox +Name[he]=דפדפן האינטרנט Firefox +Name[hr]=Firefox web preglednik +Name[hu]=Firefox webböngésző +Name[it]=Firefox Browser Web +Name[ja]=Firefox ウェブ・ブラウザ +Name[ko]=Firefox 웹 브라우저 +Name[ku]=Geroka torê Firefox +Name[lt]=Firefox interneto naršyklė +Name[nb]=Firefox Nettleser +Name[nl]=Firefox webbrowser +Name[nn]=Firefox Nettlesar +Name[no]=Firefox Nettleser +Name[pl]=Przeglądarka WWW Firefox +Name[pt]=Firefox Navegador Web +Name[pt_BR]=Navegador Web Firefox +Name[ro]=Firefox – Navigator Internet +Name[ru]=Веб-браузер Firefox +Name[sk]=Firefox - internetový prehliadač +Name[sl]=Firefox spletni brskalnik +Name[sv]=Firefox webbläsare +Name[tr]=Firefox Web Tarayıcısı +Name[ug]=Firefox توركۆرگۈ +Name[uk]=Веб-браузер Firefox +Name[vi]=Trình duyệt web Firefox +Name[zh_CN]=Firefox 网络浏览器 +Name[zh_TW]=Firefox 網路瀏覽器 +Comment=Browse the World Wide Web +Comment[ar]=تصفح الشبكة العنكبوتية العالمية +Comment[ast]=Restola pela Rede +Comment[bn]=ইন্টারনেট ব্রাউজ করুন +Comment[ca]=Navegueu per la web +Comment[cs]=Prohlížení stránek World Wide Webu +Comment[da]=Surf på internettet +Comment[de]=Im Internet surfen +Comment[el]=Μπορείτε να περιηγηθείτε στο διαδίκτυο (Web) +Comment[es]=Navegue por la web +Comment[et]=Lehitse veebi +Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید +Comment[fi]=Selaa Internetin WWW-sivuja +Comment[fr]=Naviguer sur le Web +Comment[gl]=Navegar pola rede +Comment[he]=גלישה ברחבי האינטרנט +Comment[hr]=Pretražite web +Comment[hu]=A világháló böngészése +Comment[it]=Esplora il web +Comment[ja]=ウェブを閲覧します +Comment[ko]=웹을 돌아 다닙니다 +Comment[ku]=Li torê bigere +Comment[lt]=Naršykite internete +Comment[nb]=Surf på nettet +Comment[nl]=Verken het internet +Comment[nn]=Surf på nettet +Comment[no]=Surf på nettet +Comment[pl]=Przeglądanie stron WWW +Comment[pt]=Navegue na Internet +Comment[pt_BR]=Navegue na Internet +Comment[ro]=Navigați pe Internet +Comment[ru]=Доступ в Интернет +Comment[sk]=Prehliadanie internetu +Comment[sl]=Brskajte po spletu +Comment[sv]=Surfa på webben +Comment[tr]=İnternet'te Gezinin +Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ +Comment[uk]=Перегляд сторінок Інтернету +Comment[vi]=Để duyệt các trang web +Comment[zh_CN]=浏览互联网 +Comment[zh_TW]=瀏覽網際網路 +GenericName=Web Browser +GenericName[ar]=متصفح ويب +GenericName[ast]=Restolador Web +GenericName[bn]=ওয়েব ব্রাউজার +GenericName[ca]=Navegador web +GenericName[cs]=Webový prohlížeč +GenericName[da]=Webbrowser +GenericName[el]=Περιηγητής διαδικτύου +GenericName[es]=Navegador web +GenericName[et]=Veebibrauser +GenericName[fa]=مرورگر اینترنتی +GenericName[fi]=WWW-selain +GenericName[fr]=Navigateur Web +GenericName[gl]=Navegador Web +GenericName[he]=דפדפן אינטרנט +GenericName[hr]=Web preglednik +GenericName[hu]=Webböngésző +GenericName[it]=Browser web +GenericName[ja]=ウェブ・ブラウザ +GenericName[ko]=웹 브라우저 +GenericName[ku]=Geroka torê +GenericName[lt]=Interneto naršyklė +GenericName[nb]=Nettleser +GenericName[nl]=Webbrowser +GenericName[nn]=Nettlesar +GenericName[no]=Nettleser +GenericName[pl]=Przeglądarka WWW +GenericName[pt]=Navegador Web +GenericName[pt_BR]=Navegador Web +GenericName[ro]=Navigator Internet +GenericName[ru]=Веб-браузер +GenericName[sk]=Internetový prehliadač +GenericName[sl]=Spletni brskalnik +GenericName[sv]=Webbläsare +GenericName[tr]=Web Tarayıcı +GenericName[ug]=توركۆرگۈ +GenericName[uk]=Веб-браузер +GenericName[vi]=Trình duyệt Web +GenericName[zh_CN]=网络浏览器 +GenericName[zh_TW]=網路瀏覽器 +Keywords=Internet;WWW;Browser;Web;Explorer +Keywords[ar]=انترنت;إنترنت;متصفح;ويب;وب +Keywords[ast]=Internet;WWW;Restolador;Web;Esplorador +Keywords[ca]=Internet;WWW;Navegador;Web;Explorador;Explorer +Keywords[cs]=Internet;WWW;Prohlížeč;Web;Explorer +Keywords[da]=Internet;Internettet;WWW;Browser;Browse;Web;Surf;Nettet +Keywords[de]=Internet;WWW;Browser;Web;Explorer;Webseite;Site;surfen;online;browsen +Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;Περιηγητής;Firefox;Φιρεφοχ;Ιντερνετ +Keywords[es]=Explorador;Internet;WWW +Keywords[fi]=Internet;WWW;Browser;Web;Explorer;selain;Internet-selain;internetselain;verkkoselain;netti;surffaa +Keywords[fr]=Internet;WWW;Browser;Web;Explorer;Fureteur;Surfer;Navigateur +Keywords[he]=דפדפן;אינטרנט;רשת;אתרים;אתר;פיירפוקס;מוזילה; +Keywords[hr]=Internet;WWW;preglednik;Web +Keywords[hu]=Internet;WWW;Böngésző;Web;Háló;Net;Explorer +Keywords[it]=Internet;WWW;Browser;Web;Navigatore +Keywords[is]=Internet;WWW;Vafri;Vefur;Netvafri;Flakk +Keywords[ja]=Internet;WWW;Web;インターネット;ブラウザ;ウェブ;エクスプローラ +Keywords[nb]=Internett;WWW;Nettleser;Explorer;Web;Browser;Nettside +Keywords[nl]=Internet;WWW;Browser;Web;Explorer;Verkenner;Website;Surfen;Online +Keywords[pt]=Internet;WWW;Browser;Web;Explorador;Navegador +Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorador;Navegador +Keywords[ru]=Internet;WWW;Browser;Web;Explorer;интернет;браузер;веб;файрфокс;огнелис +Keywords[sk]=Internet;WWW;Prehliadač;Web;Explorer +Keywords[sl]=Internet;WWW;Browser;Web;Explorer;Brskalnik;Splet +Keywords[tr]=İnternet;WWW;Tarayıcı;Web;Gezgin;Web sitesi;Site;sörf;çevrimiçi;tara +Keywords[uk]=Internet;WWW;Browser;Web;Explorer;Інтернет;мережа;переглядач;оглядач;браузер;веб;файрфокс;вогнелис;перегляд +Keywords[vi]=Internet;WWW;Browser;Web;Explorer;Trình duyệt;Trang web +Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer;网页;浏览;上网;火狐;Firefox;ff;互联网;网站; +Keywords[zh_TW]=Internet;WWW;Browser;Web;Explorer;網際網路;網路;瀏覽器;上網;網頁;火狐 +Exec=firefox %u +Terminal=false +X-MultipleArgs=false +Type=Application +Icon=/usr/lib/firefox/browser/chrome/icons/default/default128.png +Categories=GNOME;GTK;Network;WebBrowser; +MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall; +StartupNotify=true +Actions=NewWindow;NewPrivateWindow; + +[Desktop Action NewWindow] +Name=Open a New Window +Name[ar]=افتح نافذة جديدة +Name[ast]=Abrir una ventana nueva +Name[bn]=Abrir una ventana nueva +Name[ca]=Obre una finestra nova +Name[cs]=Otevřít nové okno +Name[da]=Åbn et nyt vindue +Name[de]=Ein neues Fenster öffnen +Name[el]=Άνοιγμα νέου παραθύρου +Name[es]=Abrir una ventana nueva +Name[fi]=Avaa uusi ikkuna +Name[fr]=Ouvrir une nouvelle fenêtre +Name[gl]=Abrir unha nova xanela +Name[he]=פתיחת חלון חדש +Name[hr]=Otvori novi prozor +Name[hu]=Új ablak nyitása +Name[it]=Apri una nuova finestra +Name[ja]=新しいウィンドウを開く +Name[ko]=새 창 열기 +Name[ku]=Paceyeke nû veke +Name[lt]=Atverti naują langą +Name[nb]=Åpne et nytt vindu +Name[nl]=Nieuw venster openen +Name[pt]=Abrir nova janela +Name[pt_BR]=Abrir nova janela +Name[ro]=Deschide o fereastră nouă +Name[ru]=Новое окно +Name[sk]=Otvoriť nové okno +Name[sl]=Odpri novo okno +Name[sv]=Öppna ett nytt fönster +Name[tr]=Yeni pencere aç +Name[ug]=يېڭى كۆزنەك ئېچىش +Name[uk]=Відкрити нове вікно +Name[vi]=Mở cửa sổ mới +Name[zh_CN]=新建窗口 +Name[zh_TW]=開啟新視窗 +Exec=firefox -new-window +OnlyShowIn=Unity; + +[Desktop Action NewPrivateWindow] +Name=Open a New Private Window +Name[ar]=افتح نافذة جديدة للتصفح الخاص +Name[ca]=Obre una finestra nova en mode d'incògnit +Name[de]=Ein neues privates Fenster öffnen +Name[es]=Abrir una ventana privada nueva +Name[fi]=Avaa uusi yksityinen ikkuna +Name[fr]=Ouvrir une nouvelle fenêtre de navigation privée +Name[he]=פתיחת חלון גלישה פרטית חדש +Name[hu]=Új privát ablak nyitása +Name[it]=Apri una nuova finestra anonima +Name[nb]=Åpne et nytt privat vindu +Name[ru]=Новое приватное окно +Name[sl]=Odpri novo okno zasebnega brskanja +Name[tr]=Yeni bir pencere aç +Name[uk]=Відкрити нове вікно у потайливому режимі +Name[zh_TW]=開啟新隱私瀏覽視窗 +Exec=firefox -private-window +OnlyShowIn=Unity; diff --git a/src/alpine/install/firefox/install_firefox.sh b/src/alpine/install/firefox/install_firefox.sh new file mode 100644 index 0000000..e7664ff --- /dev/null +++ b/src/alpine/install/firefox/install_firefox.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash +set -xe + +apk add --no-cache \ + firefox + +# Disabling default first run URL +cat >/usr/lib/firefox/browser/defaults/preferences/vendor.js <>$HOME/.mozilla/firefox/profiles.ini <&2; exit 1;; + esac +done +shift + +# Process non-option arguments. +for arg; do + echo "arg! $arg" +done + +FORCE=$2 + +kasm_exec() { + if [ -n "$OPT_URL" ] ; then + URL=$OPT_URL + elif [ -n "$1" ] ; then + URL=$1 + fi + + # Since we are execing into a container that already has the browser running from startup, + # when we don't have a URL to open we want to do nothing. Otherwise a second browser instance would open. + if [ -n "$URL" ] ; then + /usr/bin/filter_ready + /usr/bin/desktop_ready + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $OPT_URL + else + echo "No URL specified for exec command. Doing nothing." + 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 $PGREP > /dev/null + then + /usr/bin/filter_ready + /usr/bin/desktop_ready + set +e + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $URL + set -e + fi + sleep 1 + done + set -x + + fi + +} + +if [ -n "$GO" ] || [ -n "$ASSIGN" ] ; then + kasm_exec +else + kasm_startup +fi diff --git a/src/alpine/install/gimp/install_gimp.sh b/src/alpine/install/gimp/install_gimp.sh new file mode 100644 index 0000000..af74a3d --- /dev/null +++ b/src/alpine/install/gimp/install_gimp.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -ex + +apk add --no-cache \ + gimp + +# Desktop icon +cp /usr/share/applications/gimp.desktop $HOME/Desktop/ +chmod +x $HOME/Desktop/gimp.desktop diff --git a/src/alpine/install/inkscape/custom_startup.sh b/src/alpine/install/inkscape/custom_startup.sh new file mode 100644 index 0000000..7233e41 --- /dev/null +++ b/src/alpine/install/inkscape/custom_startup.sh @@ -0,0 +1,84 @@ +#!/usr/bin/env bash +set -ex +START_COMMAND="inkscape" +PGREP="inkscape" +export MAXIMIZE="true" +export MAXIMIZE_NAME="Inkscape" +MAXIMIZE_SCRIPT=$STARTUPDIR/maximize_window.sh +DEFAULT_ARGS="" +ARGS=${APP_ARGS:-$DEFAULT_ARGS} + +options=$(getopt -o gau: -l go,assign,url: -n "$0" -- "$@") || exit +eval set -- "$options" + +while [[ $1 != -- ]]; do + case $1 in + -g|--go) GO='true'; shift 1;; + -a|--assign) ASSIGN='true'; shift 1;; + -u|--url) OPT_URL=$2; shift 2;; + *) echo "bad option: $1" >&2; exit 1;; + esac +done +shift + +# Process non-option arguments. +for arg; do + echo "arg! $arg" +done + +FORCE=$2 + +kasm_exec() { + if [ -n "$OPT_URL" ] ; then + URL=$OPT_URL + elif [ -n "$1" ] ; then + URL=$1 + fi + + # Since we are execing into a container that already has the browser running from startup, + # when we don't have a URL to open we want to do nothing. Otherwise a second browser instance would open. + if [ -n "$URL" ] ; then + /usr/bin/filter_ready + /usr/bin/desktop_ready + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $OPT_URL + else + echo "No URL specified for exec command. Doing nothing." + 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 $PGREP > /dev/null + then + /usr/bin/filter_ready + /usr/bin/desktop_ready + set +e + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $URL + set -e + fi + sleep 1 + done + set -x + + fi + +} + +if [ -n "$GO" ] || [ -n "$ASSIGN" ] ; then + kasm_exec +else + kasm_startup +fi diff --git a/src/alpine/install/inkscape/install_inkscape.sh b/src/alpine/install/inkscape/install_inkscape.sh new file mode 100644 index 0000000..b8e2922 --- /dev/null +++ b/src/alpine/install/inkscape/install_inkscape.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -ex + +apk add --no-cache \ + inkscape + +# Default settings and desktop icon +cp /usr/share/applications/org.inkscape.Inkscape.desktop $HOME/Desktop/ +chmod +x $HOME/Desktop/org.inkscape.Inkscape.desktop diff --git a/src/alpine/install/libre_office/custom_startup.sh b/src/alpine/install/libre_office/custom_startup.sh new file mode 100644 index 0000000..1db9c9f --- /dev/null +++ b/src/alpine/install/libre_office/custom_startup.sh @@ -0,0 +1,85 @@ +#!/usr/bin/env bash +set -ex +LD_LIBRARY_PATH=:/usr/lib/libreoffice/program:/usr/lib/$(arch)-linux-gnu/ +START_COMMAND="libreoffice" +PGREP="soffice.bin" +export MAXIMIZE="true" +export MAXIMIZE_NAME="LibreOffice" +MAXIMIZE_SCRIPT=$STARTUPDIR/maximize_window.sh +DEFAULT_ARGS="" +ARGS=${APP_ARGS:-$DEFAULT_ARGS} + +options=$(getopt -o gau: -l go,assign,url: -n "$0" -- "$@") || exit +eval set -- "$options" + +while [[ $1 != -- ]]; do + case $1 in + -g|--go) GO='true'; shift 1;; + -a|--assign) ASSIGN='true'; shift 1;; + -u|--url) OPT_URL=$2; shift 2;; + *) echo "bad option: $1" >&2; exit 1;; + esac +done +shift + +# Process non-option arguments. +for arg; do + echo "arg! $arg" +done + +FORCE=$2 + +kasm_exec() { + if [ -n "$OPT_URL" ] ; then + URL=$OPT_URL + elif [ -n "$1" ] ; then + URL=$1 + fi + + # Since we are execing into a container that already has the browser running from startup, + # when we don't have a URL to open we want to do nothing. Otherwise a second browser instance would open. + if [ -n "$URL" ] ; then + /usr/bin/filter_ready + /usr/bin/desktop_ready + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $OPT_URL + else + echo "No URL specified for exec command. Doing nothing." + 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 $PGREP > /dev/null + then + /usr/bin/filter_ready + /usr/bin/desktop_ready + set +e + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $URL + set -e + fi + sleep 1 + done + set -x + + fi + +} + +if [ -n "$GO" ] || [ -n "$ASSIGN" ] ; then + kasm_exec +else + kasm_startup +fi diff --git a/src/alpine/install/libre_office/install_libre_office.sh b/src/alpine/install/libre_office/install_libre_office.sh new file mode 100644 index 0000000..027d6cf --- /dev/null +++ b/src/alpine/install/libre_office/install_libre_office.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +set -ex + +apk add --no-cache \ + libreoffice \ + openjdk8-jre \ + openjdk8-jre-base + +cp /usr/share/applications/libreoffice-startcenter.desktop $HOME/Desktop/ +chown 1000:1000 $HOME/Desktop/libreoffice-startcenter.desktop +chmod +x $HOME/Desktop/libreoffice-startcenter.desktop diff --git a/src/alpine/install/misc/install_tools.sh b/src/alpine/install/misc/install_tools.sh new file mode 100644 index 0000000..f4bba89 --- /dev/null +++ b/src/alpine/install/misc/install_tools.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +set -ex + +apk add --no-cache \ + nano \ + vim \ + xdotool \ + zip diff --git a/src/opensuse/install/obs/install_obs.sh b/src/alpine/install/obs/install_obs.sh similarity index 53% rename from src/opensuse/install/obs/install_obs.sh rename to src/alpine/install/obs/install_obs.sh index a59afba..73a7d9a 100644 --- a/src/opensuse/install/obs/install_obs.sh +++ b/src/alpine/install/obs/install_obs.sh @@ -1,14 +1,9 @@ #!/usr/bin/env bash set -ex -if [ "${DISTRO}" == "oracle8" ]; then - dnf install -y obs-studio - dnf clean all -else - yum install -y obs-studio - yum clean all -fi +apk add --no-cache \ + obs-studio +# Desktop icon cp /usr/share/applications/com.obsproject.Studio.desktop $HOME/Desktop/ chmod +x $HOME/Desktop/com.obsproject.Studio.desktop - diff --git a/src/alpine/install/pinta/custom_startup.sh b/src/alpine/install/pinta/custom_startup.sh new file mode 100644 index 0000000..56901ab --- /dev/null +++ b/src/alpine/install/pinta/custom_startup.sh @@ -0,0 +1,84 @@ +#!/usr/bin/env bash +set -ex +START_COMMAND="pinta" +PGREP="pinta" +export MAXIMIZE="true" +export MAXIMIZE_NAME="Pinta" +MAXIMIZE_SCRIPT=$STARTUPDIR/maximize_window.sh +DEFAULT_ARGS="" +ARGS=${APP_ARGS:-$DEFAULT_ARGS} + +options=$(getopt -o gau: -l go,assign,url: -n "$0" -- "$@") || exit +eval set -- "$options" + +while [[ $1 != -- ]]; do + case $1 in + -g|--go) GO='true'; shift 1;; + -a|--assign) ASSIGN='true'; shift 1;; + -u|--url) OPT_URL=$2; shift 2;; + *) echo "bad option: $1" >&2; exit 1;; + esac +done +shift + +# Process non-option arguments. +for arg; do + echo "arg! $arg" +done + +FORCE=$2 + +kasm_exec() { + if [ -n "$OPT_URL" ] ; then + URL=$OPT_URL + elif [ -n "$1" ] ; then + URL=$1 + fi + + # Since we are execing into a container that already has the browser running from startup, + # when we don't have a URL to open we want to do nothing. Otherwise a second browser instance would open. + if [ -n "$URL" ] ; then + /usr/bin/filter_ready + /usr/bin/desktop_ready + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $OPT_URL + else + echo "No URL specified for exec command. Doing nothing." + 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 $PGREP > /dev/null + then + /usr/bin/filter_ready + /usr/bin/desktop_ready + set +e + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $URL + set -e + fi + sleep 1 + done + set -x + + fi + +} + +if [ -n "$GO" ] || [ -n "$ASSIGN" ] ; then + kasm_exec +else + kasm_startup +fi diff --git a/src/alpine/install/pinta/install_pinta.sh b/src/alpine/install/pinta/install_pinta.sh new file mode 100644 index 0000000..52d6d95 --- /dev/null +++ b/src/alpine/install/pinta/install_pinta.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -ex + +apk add --no-cache \ + pinta + +# Default settings and desktop icon +cp /usr/share/applications/pinta.desktop $HOME/Desktop/ +chmod +x $HOME/Desktop/pinta.desktop diff --git a/src/alpine/install/remmina/custom_startup.sh b/src/alpine/install/remmina/custom_startup.sh new file mode 100644 index 0000000..4bc7833 --- /dev/null +++ b/src/alpine/install/remmina/custom_startup.sh @@ -0,0 +1,97 @@ +#!/usr/bin/env bash +set -ex +START_COMMAND="remmina" +PGREP="remmina" +DEFAULT_ARGS="" +export MAXIMIZE="false" +MAXIMIZE_SCRIPT=$STARTUPDIR/maximize_window.sh +ARGS=${APP_ARGS:-$DEFAULT_ARGS} + +update_profile() { + if [ -n "$REMMINA_OPTIONS" ] && [ -n "$REMMINA_PROFILE" ] ; then + R_OPTIONS="" + for i in ${REMMINA_OPTIONS//,/ } + do + R_OPTIONS="$R_OPTIONS --set-option $i" + done + + remmina --update-profile $REMMINA_PROFILE $R_OPTIONS + unset REMMINA_OPTIONS + fi +} + +options=$(getopt -o gau: -l go,assign,url: -n "$0" -- "$@") || exit +eval set -- "$options" + +while [[ $1 != -- ]]; do + case $1 in + -g|--go) GO='true'; shift 1;; + -a|--assign) ASSIGN='true'; shift 1;; + -u|--url) OPT_URL=$2; shift 2;; + *) echo "bad option: $1" >&2; exit 1;; + esac +done +shift + +# Process non-option arguments. +for arg; do + echo "arg! $arg" +done + +FORCE=$2 + +kasm_exec() { + if [ -n "$OPT_URL" ] ; then + URL=$OPT_URL + elif [ -n "$1" ] ; then + URL=$1 + fi + + # Since we are execing into a container that already has the browser running from startup, + # when we don't have a URL to open we want to do nothing. Otherwise a second browser instance would open. + if [ -n "$URL" ] ; then + /usr/bin/filter_ready + /usr/bin/desktop_ready + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $OPT_URL + else + echo "No URL specified for exec command. Doing nothing." + 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 $PGREP > /dev/null + then + /usr/bin/filter_ready + /usr/bin/desktop_ready + set +e + bash ${MAXIMIZE_SCRIPT} & + update_profile + $START_COMMAND $ARGS $URL $REMMINA_PROFILE + set -e + fi + sleep 1 + done + set -x + + fi + +} + +if [ -n "$GO" ] || [ -n "$ASSIGN" ] ; then + kasm_exec +else + kasm_startup +fi diff --git a/src/alpine/install/remmina/install_remmina.sh b/src/alpine/install/remmina/install_remmina.sh new file mode 100644 index 0000000..7460bd5 --- /dev/null +++ b/src/alpine/install/remmina/install_remmina.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -ex + +apk add --no-cache \ + remmina + +# Desktop icon +cp /usr/share/applications/org.remmina.Remmina.desktop $HOME/Desktop/ +chmod +x $HOME/Desktop/org.remmina.Remmina.desktop diff --git a/src/alpine/install/remmina/remmina.pref b/src/alpine/install/remmina/remmina.pref new file mode 100644 index 0000000..30d44c7 --- /dev/null +++ b/src/alpine/install/remmina/remmina.pref @@ -0,0 +1,13 @@ +[remmina_pref] +disable_tray_icon=true + +[usage_stats] +periodic_usage_stats_permitted=false +periodic_usage_stats_last_sent=0 +periodic_usage_stats_uuid_prefix= + +[remmina_news] +periodic_news_permitted=false +periodic_rmnews_last_get=1617502161 +periodic_rmnews_get_count=2 +periodic_rmnews_uuid_prefix=ONIZ7TTK015NCL diff --git a/src/alpine/install/terraform/install_terraform.sh b/src/alpine/install/terraform/install_terraform.sh new file mode 100644 index 0000000..804757f --- /dev/null +++ b/src/alpine/install/terraform/install_terraform.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +set -ex + +apk add --no-cache \ + terraform diff --git a/src/alpine/install/thunderbird/custom_startup.sh b/src/alpine/install/thunderbird/custom_startup.sh new file mode 100644 index 0000000..130cf9a --- /dev/null +++ b/src/alpine/install/thunderbird/custom_startup.sh @@ -0,0 +1,84 @@ +#!/usr/bin/env bash +set -ex +START_COMMAND="thunderbird" +PGREP="thunderbird" +export MAXIMIZE="true" +export MAXIMIZE_NAME="Mozilla" +MAXIMIZE_SCRIPT=$STARTUPDIR/maximize_window.sh +DEFAULT_ARGS="" +ARGS=${APP_ARGS:-$DEFAULT_ARGS} + +options=$(getopt -o gau: -l go,assign,url: -n "$0" -- "$@") || exit +eval set -- "$options" + +while [[ $1 != -- ]]; do + case $1 in + -g|--go) GO='true'; shift 1;; + -a|--assign) ASSIGN='true'; shift 1;; + -u|--url) OPT_URL=$2; shift 2;; + *) echo "bad option: $1" >&2; exit 1;; + esac +done +shift + +# Process non-option arguments. +for arg; do + echo "arg! $arg" +done + +FORCE=$2 + +kasm_exec() { + if [ -n "$OPT_URL" ] ; then + URL=$OPT_URL + elif [ -n "$1" ] ; then + URL=$1 + fi + + # Since we are execing into a container that already has the browser running from startup, + # when we don't have a URL to open we want to do nothing. Otherwise a second browser instance would open. + if [ -n "$URL" ] ; then + /usr/bin/filter_ready + /usr/bin/desktop_ready + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $OPT_URL + else + echo "No URL specified for exec command. Doing nothing." + 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 $PGREP > /dev/null + then + /usr/bin/filter_ready + /usr/bin/desktop_ready + set +e + bash ${MAXIMIZE_SCRIPT} & + $START_COMMAND $ARGS $URL + set -e + fi + sleep 1 + done + set -x + + fi + +} + +if [ -n "$GO" ] || [ -n "$ASSIGN" ] ; then + kasm_exec +else + kasm_startup +fi diff --git a/src/alpine/install/thunderbird/install_thunderbird.sh b/src/alpine/install/thunderbird/install_thunderbird.sh new file mode 100644 index 0000000..200bc78 --- /dev/null +++ b/src/alpine/install/thunderbird/install_thunderbird.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -ex + +apk add --no-cache \ + thunderbird + +# Desktop icon +cp /usr/share/applications/thunderbird.desktop $HOME/Desktop/ +chmod +x $HOME/Desktop/thunderbird.desktop diff --git a/src/alpine/install/tools/install_tools_deluxe.sh b/src/alpine/install/tools/install_tools_deluxe.sh new file mode 100644 index 0000000..4e7d1d5 --- /dev/null +++ b/src/alpine/install/tools/install_tools_deluxe.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +set -ex + +apk add --no-cache \ + git \ + tmux \ + vlc-qt + +# Desktop icon +cp /usr/share/applications/vlc.desktop $HOME/Desktop/ +chmod +x $HOME/Desktop/vlc.desktop + + diff --git a/src/oracle/install/ansible/install_ansible.sh b/src/oracle/install/ansible/install_ansible.sh index ed287d1..b733e24 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" ]; then +if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37) ]]; then dnf install -y ansible dnf clean all else diff --git a/src/oracle/install/gimp/install_gimp.sh b/src/oracle/install/gimp/install_gimp.sh index 0b4db44..a1ef1ce 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" ]; then +if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37) ]]; then dnf install -y gimp dnf clean all else diff --git a/src/oracle/install/libre_office/install_libre_office.sh b/src/oracle/install/libre_office/install_libre_office.sh index db26fa5..733c7bc 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" ]; then +if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37) ]]; then dnf install -y \ libreoffice-core \ libreoffice-writer \ diff --git a/src/oracle/install/obs/install_obs.sh b/src/oracle/install/obs/install_obs.sh index bee8dbc..6e947da 100644 --- a/src/oracle/install/obs/install_obs.sh +++ b/src/oracle/install/obs/install_obs.sh @@ -7,7 +7,7 @@ if [ "$ARCH" == "arm64" ] ; then exit 0 fi -if [ "${DISTRO}" == "oracle8" ]; then +if [[ "${DISTRO}" == @(oracle8|rockylinux8|almalinux8) ]]; then dnf install -y obs-studio dnf clean all else diff --git a/src/oracle/install/only_office/install_only_office.sh b/src/oracle/install/only_office/install_only_office.sh index 76e368d..4574981 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" ]; then +if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37) ]]; then dnf localinstall -y only_office.rpm dnf clean all else diff --git a/src/oracle/install/slack/install_slack.sh b/src/oracle/install/slack/install_slack.sh index bfade98..7b210a5 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" ]; then +if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37) ]]; then dnf localinstall -y slack.rpm dnf clean all else diff --git a/src/oracle/install/sublime_text/install_sublime_text.sh b/src/oracle/install/sublime_text/install_sublime_text.sh index e348a9a..0f0d01c 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" ]; then +if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37) ]]; then dnf config-manager --add-repo https://download.sublimetext.com/rpm/stable/$(arch)/sublime-text.repo dnf install -y sublime-text dnf clean all diff --git a/src/oracle/install/terraform/install_terraform.sh b/src/oracle/install/terraform/install_terraform.sh index f3827bd..c500dcf 100644 --- a/src/oracle/install/terraform/install_terraform.sh +++ b/src/oracle/install/terraform/install_terraform.sh @@ -8,10 +8,14 @@ if [ "${ARCH}" == "arm64" ] ; then exit 0 fi -if [ "${DISTRO}" == "oracle8" ]; then +if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8) ]]; then dnf config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo dnf install -y terraform dnf clean all +elif [ "${DISTRO}" == "fedora37" ]; then + dnf config-manager --add-repo https://rpm.releases.hashicorp.com/fedora/hashicorp.repo + dnf install -y terraform + dnf clean all else yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo yum install -y terraform diff --git a/src/oracle/install/tools/install_tools_deluxe.sh b/src/oracle/install/tools/install_tools_deluxe.sh index 3910b50..8c852dc 100644 --- a/src/oracle/install/tools/install_tools_deluxe.sh +++ b/src/oracle/install/tools/install_tools_deluxe.sh @@ -2,7 +2,7 @@ set -ex if [ -f /usr/bin/dnf ]; then - dnf install -y vlc git tmux + dnf install -y vlc git tmux xz glibc-locale-source glibc-langpack-en dnf clean all else yum-config-manager --enable ol7_optional_latest diff --git a/src/oracle/install/vs_code/install_vs_code.sh b/src/oracle/install/vs_code/install_vs_code.sh index 292c50b..2ed0973 100644 --- a/src/oracle/install/vs_code/install_vs_code.sh +++ b/src/oracle/install/vs_code/install_vs_code.sh @@ -3,7 +3,7 @@ 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" ]; then +if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37) ]]; then wget -q https://update.code.visualstudio.com/latest/linux-rpm-${ARCH}/stable -O vs_code.rpm dnf localinstall -y vs_code.rpm else @@ -20,7 +20,7 @@ chown 1000:1000 $HOME/Desktop/code.desktop rm vs_code.rpm # Conveniences for python development -if [ "${DISTRO}" == "oracle8" ]; then +if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37) ]]; then dnf install -y python3-setuptools python3-virtualenv dnf clean all else diff --git a/src/oracle/install/zoom/install_zoom.sh b/src/oracle/install/zoom/install_zoom.sh index 70a172d..0072e90 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" ]; then +if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|fedora37) ]]; then dnf localinstall -y zoom_$(arch).rpm dnf clean all else diff --git a/src/ubuntu/install/ansible/install_ansible.sh b/src/ubuntu/install/ansible/install_ansible.sh index 00988b1..e5eba5c 100644 --- a/src/ubuntu/install/ansible/install_ansible.sh +++ b/src/ubuntu/install/ansible/install_ansible.sh @@ -1,7 +1,12 @@ #!/usr/bin/env bash set -ex -apt-get update -apt-get install -y software-properties-common -apt-add-repository --yes --update ppa:ansible/ansible -apt-get install -y ansible \ No newline at end of file +if grep -q "ID=debian" /etc/os-release; then + apt-get update + apt-get install -y ansible +else + apt-get update + apt-get install -y software-properties-common + apt-add-repository --yes --update ppa:ansible/ansible + apt-get install -y ansible +fi diff --git a/src/ubuntu/install/chrome/install_chrome.sh b/src/ubuntu/install/chrome/install_chrome.sh index fa5cdc7..bd9f975 100644 --- a/src/ubuntu/install/chrome/install_chrome.sh +++ b/src/ubuntu/install/chrome/install_chrome.sh @@ -10,13 +10,13 @@ if [ "$ARCH" == "arm64" ] ; then exit 0 fi -if [[ "${DISTRO}" == @(centos|oracle7|oracle8) ]]; then +if [[ "${DISTRO}" == @(centos|oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8) ]]; then if [ ! -z "${CHROME_VERSION}" ]; then wget https://dl.google.com/linux/chrome/rpm/stable/x86_64/google-chrome-stable-${CHROME_VERSION}.x86_64.rpm -O chrome.rpm else wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm -O chrome.rpm fi - if [ "${DISTRO}" == "oracle8" ]; then + if [[ "${DISTRO}" == @(oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8) ]]; then dnf localinstall -y chrome.rpm dnf clean all else @@ -33,7 +33,6 @@ elif [ "${DISTRO}" == "opensuse" ]; then zypper clean --all else apt-get update - apt-get remove -y chromium-browser-l10n chromium-codecs-ffmpeg chromium-browser if [ ! -z "${CHROME_VERSION}" ]; then wget https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${CHROME_VERSION}_amd64.deb -O chrome.deb else @@ -65,7 +64,7 @@ EOL chmod +x /usr/bin/google-chrome cp /usr/bin/google-chrome /usr/bin/chrome -if [[ "${DISTRO}" == @(centos|oracle7|oracle8|opensuse) ]]; then +if [[ "${DISTRO}" == @(centos|oracle8|rockylinux9|rockylinux8|oracle9|almalinux9|almalinux8|opensuse) ]]; then cat >> $HOME/.config/mimeapps.list </usr/bin/chromium-browser </usr/bin/${REAL_BIN} <> $HOME/.config/mimeapps.list < /etc/apt/preferences.d/mozilla-firefox fi apt-get install -y firefox p11-kit-modules +elif grep -q "ID=debian" /etc/os-release || grep -q "ID=kali" /etc/os-release || grep -q "ID=parrot" /etc/os-release; then + echo \ + "deb http://deb.debian.org/debian/ unstable main contrib non-free" >> \ + /etc/apt/sources.list +cat > /etc/apt/preferences.d/99pin-unstable <>$HOME/.mozilla/firefox/profiles.ini <>$HOME/.mozilla/firefox/profiles.ini < /usr/bin/blueman-applet +rm -f /usr/share/xfce4/panel/plugins/power-manager-plugin.desktop +rm -rf \ + /var/lib/apt/lists/* \ + /var/tmp/* \ + /tmp/* +rm -Rf /root +mkdir -p /root rm -rf /tmp/tlosint-live diff --git a/src/ubuntu/install/vivaldi/install_vivaldi.sh b/src/ubuntu/install/vivaldi/install_vivaldi.sh index decd2d8..44e84e2 100644 --- a/src/ubuntu/install/vivaldi/install_vivaldi.sh +++ b/src/ubuntu/install/vivaldi/install_vivaldi.sh @@ -8,7 +8,15 @@ wget -qO- https://repo.vivaldi.com/archive/linux_signing_key.pub | gpg --dearmor echo "deb [signed-by=/usr/share/keyrings/vivaldi-browser.gpg arch=$(dpkg --print-architecture)] https://repo.vivaldi.com/archive/deb/ stable main" > /etc/apt/sources.list.d/vivaldi-archive.list apt-get update && apt-get install -y vivaldi-stable mkdir -p /var/opt/vivaldi -/opt/vivaldi/update-ffmpeg +set +e +for i in {1..120}; do + /opt/vivaldi/update-ffmpeg + if [ $? -eq 0 ]; then + break + fi + sleep 1 +done +set -e # Add Desktop Icon cp /usr/share/applications/vivaldi-stable.desktop $HOME/Desktop/