From f5b06e10aa0515f12df4f88004fe8ed031c58d3a Mon Sep 17 00:00:00 2001 From: tranch Date: Thu, 22 Jan 2026 00:42:42 +0800 Subject: feat: introduce Decky Installer mirror files Add initial setup for the mirrored Decky Installer. Includes the install script, desktop file, and GitHub release workflow. The script modifies the official installer to use a custom mirror host. --- .github/workflows/release-on-tag.yml | 24 ++++++++++++++++++++++++ README.md | 17 +++++++++++++++++ decky_installer.desktop | 8 ++++++++ user_install_script.sh | 21 +++++++++++++++++++++ 4 files changed, 70 insertions(+) create mode 100644 .github/workflows/release-on-tag.yml create mode 100644 README.md create mode 100644 decky_installer.desktop create mode 100644 user_install_script.sh diff --git a/.github/workflows/release-on-tag.yml b/.github/workflows/release-on-tag.yml new file mode 100644 index 0000000..f91b30f --- /dev/null +++ b/.github/workflows/release-on-tag.yml @@ -0,0 +1,24 @@ +name: Release on Tag + +on: + push: + tags: + - "*" + +jobs: + release: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Create GitHub release + uses: softprops/action-gh-release@v2 + with: + name: ${{ github.ref_name }} + tag_name: ${{ github.ref_name }} + files: | + user_install_script.sh + decky_installer.desktop diff --git a/README.md b/README.md new file mode 100644 index 0000000..3dda5ed --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# Decky Installer + +A local mirror version of the Decky Installer for Steam Deck. This repository allows users to install Decky plugins without relying on the official Decky Installer servers. + +## Features + +- Local hosting of Decky Installer files +- Easy installation of Decky plugins +- No dependency on external servers + +## Usage + +1. Download the `user_install_script.sh` or the `decky_installer.desktop` file from the releases section. +2. Place the downloaded file in a convenient location on your Steam Deck. +3. Run the script or launch the desktop file to start the Decky Installer. + + diff --git a/decky_installer.desktop b/decky_installer.desktop new file mode 100644 index 0000000..939f84a --- /dev/null +++ b/decky_installer.desktop @@ -0,0 +1,8 @@ +#!/usr/bin/env xdg-open +[Desktop Entry] +Name=Install Decky +Exec=sh -c 'rm -f /tmp/user_install_script.sh; if curl -S -s -L -o /tmp/user_install_script.sh --connect-timeout 60 https://__DECKY_MIRROR_HOST__/AeroCore-IO/decky-installer/releases/latest/download/user_install_script.sh; then bash /tmp/user_install_script.sh; else echo "Something went wrong, please report this if it is a bug"; read -r; fi' +Icon=steamdeck-gaming-return +Terminal=true +Type=Application +StartupNotify=false diff --git a/user_install_script.sh b/user_install_script.sh new file mode 100644 index 0000000..689c9fc --- /dev/null +++ b/user_install_script.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Hardcoded mirror host for GitHub/API/RAW substitutions +DECKY_MIRROR_HOST="__DECKY_MIRROR_HOST__" + +# Download the official installer script, rewrite domains to the mirror, then execute. +# This keeps the original installer logic intact while swapping network endpoints. +tmp_script="/tmp/decky_user_install_script.sh" + +if ! curl -fsSL "https://${DECKY_MIRROR_HOST}/SteamDeckHomebrew/decky-installer/releases/latest/download/user_install_script.sh" \ + | sed -E \ + -e "s#github\.com#${DECKY_MIRROR_HOST}#g" \ + -e "s#api\.github\.com#api.${DECKY_MIRROR_HOST}#g" \ + -e "s#raw\.githubusercontent\.com/([^/]+)/([^/]+)/([^/]+)/#${DECKY_MIRROR_HOST}/\1/\2/plain/#g" \ + > "${tmp_script}"; then + echo "Failed to download or rewrite the official installer script." >&2 + exit 1 +fi + +bash "${tmp_script}" -- cgit v1.2.3