Skip to content

Simple shell script to update your rustdesk server running on your uberspace instance

Thanks to the wonderful rustdesk howto, I was able to quickly setup my own rustdesk instance.

With this benefit, I know I have to maintain yet another software so I wrote a dead simple "update_rustdesk.sh" I want to share.

#!/bin/bash
####
# @ref: https://lab.uberspace.de/guide_rustdesk/
# @since: 2025-04-19
# @author: stev leibelt <artodeto@bazzline.net>
####

function _main ()
{
    local CURRENT_WORKING_DIRECTORY
    local INSTALLED_VERSION
    local LOCAL_BASE_PATH
    local VERSION_TO_DOWNLOAD

    CURRENT_WORKING_DIRECTORY=$(pwd)
    # adapt this line
    LOCAL_BASE_PATH="${2:-/home/<string: your_user>/rustdesk}"
    VERSION_TO_DOWNLOAD="${1}"

    if [[ -z "${VERSION_TO_DOWNLOAD}" ]];
    then
        echo ":: Usage"
        echo "   ${0} <string: latest_rustdesk_version> [<string: local_installed_path>"
        echo ""

        return 0
    fi

    if [[ ! -d "${LOCAL_BASE_PATH}" ]];
    then
        echo ":: Error"
        echo "   >>${LOCAL_BASE_PATH}<< is not a directory."
        echo ""

        return 10
    fi

    cd "${LOCAL_BASE_PATH}"

    if [[ ! -f ".current_version" ]];
    then
        echo ":: Error"
        echo "   >>${LOCAL_BASE_PATH}/.current_version<< is not a file."
        echo ""
        cd "${CURRENT_WORKING_DIRECTORY}"

        return 15
    fi

    INSTALLED_VERSION=$(cat ".current_version")

    if [[ "${INSTALLED_VERSION}" == "${VERSION_TO_DOWNLOAD}" ]];
    then
        echo ":: Nothing to do"
        echo "   ${INSTALLED_VERSION} already installed."
        echo ""
        cd "${CURRENT_WORKING_DIRECTORY}"

        return 0
    fi

    if [[ -d "new" ]];
    then
        rm -fr "new"
    fi

    supervisorctl stop rustdesk_hbbr
    supervisorctl stop rustdesk_hbbs

    mkdir -p "new"
    cd new
    if wget "https://github.com/rustdesk/rustdesk-server/releases/download/${VERSION_TO_DOWNLOAD}/rustdesk-server-linux-amd64.zip";
    then
        unzip -j rustdesk-server-linux-amd64.zip

        if [[ ! -f hbbr ]];
        then
            echo ":: Error"
            echo "   >>${LOCAL_BASE_PATH}/new/hbbr is not a file."
            echo ""
            cd "${CURRENT_WORKING_DIRECTORY}"

            return 30
        fi

        if [[ ! -f hbbs ]];
        then
            echo ":: Error"
            echo "   >>${LOCAL_BASE_PATH}/new/hbbs is not a file."
            echo ""
            cd "${CURRENT_WORKING_DIRECTORY}"

            return 32
        fi

        if [[ ! -f rustdesk-utils ]];
        then
            echo ":: Error"
            echo "   >>${LOCAL_BASE_PATH}/new/rustdesk-utils is not a file."
            echo ""
            cd "${CURRENT_WORKING_DIRECTORY}"

            return 34
        fi

        mv ../hbbr ../hbbr.previous
        mv ../hbbs ../hbbs.previous
        mv ../rustdesk-utils ../rustdesk-utils.previous

        mv hbbr ../
        mv hbbs ../
        mv rustdesk-utils ../

        echo "${VERSION_TO_DOWNLOAD}" > ../.current_version

        supervisorctl start rustdesk_hbbs
        supervisorctl start rustdesk_hbbr

        echo "   Switched from >>${INSTALLED_VERSION}<< to >>${VERSION_TO_DOWNLOAD}<<"
    else
        echo ":: Error"
        echo "   wget last exit code ${?}"
        echo ""
        cd "${CURRENT_WORKING_DIRECTORY}"

        return 20
    fi
}

_main "${@}"

You only have to adapt one line, all else should work out of the box.

Die KW 15/2025 im Link-Rückblick

Das erste Mal Nintendo Switch mit E-Shop als Elternteil

Mein Ziel war es ein Spiel, welches es nur im Nintendo-Online-Store gibt, auf die Switch meines Kindes zu kriegen.

Der Weg dort hin erschreckt mich, so dass ich Nintendo nicht als familienfreundliches Unternehmen einstufen kann.

Nachfolgend meine ersten Eindrücke:

  • Die Erstellung eines Kinderkontos ist nicht intuitiv
  • Die Verbindung der Konten mit der Switch ist unglaublich kompliziert und fehleranfällig
  • Die kostenlosen Spiele sind nur dafür da euch zur zum Abschluss einer Online-Mitgliedschaft zu drängen (wodurch weitere Kosten entstehen)
  • Im Online-Shop steht >>Nintendo Switch Online-Funktionen werden unterstützt<<, mehr nicht
    • Ob das gekaufte Spiel überhaupt offline nutz- oder spielbar ist (also auch spaß macht), wird nie klar kommuniziert
    • Ihr kauft förmlich die Katze im Sack
  • Sobald die Konsole Online ist, wird das Kind mit Werbung zugeballert was keiner FSK-Filterung unterliegt
    • Euer Kind ist 6 Jahre alt? Es wird dennoch Werbung für Spiele ab 12 oder 16 angezeigt bekommen
    • Ihr wisst schon, auch solche "Animie"-Spiele für Erwachsene
  • Einfach bezahlen? Ja, ihr werdet dazu gezwungen eine Bezahloption fest zu verknüpfen ... mit der dann das Kind einfach so Spiele aus dem Shop kaufen kann

Damit schießt sich Nintendo bei mir total ins aus. Jegliche Verantwortung wird auf das Kind und die Eltern abgewälzt, auf Kinder, die noch nicht einmal Jugendliche sind. Danke Nintendo, es wird kein weiteres Unterhaltungsinstrument von euch in unserem Haushalt geben.