summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/release-on-tag.yml24
-rw-r--r--README.md17
-rw-r--r--decky_installer.desktop8
-rw-r--r--user_install_script.sh21
4 files changed, 70 insertions, 0 deletions
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}"