From d704b01897b1e9283ff1b7d514ef22cf7f04685a Mon Sep 17 00:00:00 2001
From: Mikei386 <44135113+Mikei386@users.noreply.github.com>
Date: Thu, 24 Sep 2026 21:42:33 +0200
Subject: [PATCH] Remove SSH key mounts and require HTTPS repository bootstrap
---
README.md | 11 +++--------
Startpunkt.sh | 13 +++----------
unraid/CasaDePrompt.xml | 5 ++---
3 files changed, 8 insertions(+), 21 deletions(-)
diff --git a/README.md b/README.md
index a886677..750d107 100644
--- a/README.md
+++ b/README.md
@@ -25,15 +25,10 @@ Eine optionale Sammlung mit sechs Beispielen liegt in `beispiel-prompts.json` un
/mnt/user/appdata/CasaDePrompt/
├── bootstrap/
│ └── Startpunkt.sh
-├── ssh/
-│ ├── athena_key
-│ └── known_hosts
└── data/ # wird dauerhaft gespeichert
```
-`Startpunkt.sh` aus diesem Repository nach `bootstrap/` kopieren. Den SSH-Key `athena_key` und eine **bereits geprüfte** `known_hosts` mit dem Eintrag für `[192.168.1.2]:33` nach `ssh/` kopieren. Auf dem Entwicklungsrechner ist dieser Host bereits bekannt. Private Schlüssel niemals ins Repository committen. Für den dauerhaften Betrieb reicht ein eigener, nur lesender Deploy-Key für dieses Repository; er kann unter dem gleichen Dateinamen gemountet werden.
-
-Die SSH-Dateien sollten nur root zugänglich sein (`chmod 700 ssh`, `chmod 600 ssh/athena_key ssh/known_hosts`). Das Skript prüft den Hostschlüssel strikt; es akzeptiert keine fremden Schlüssel automatisch. Passwortgeschützte Keys benötigen einen Agent und werden von diesem einfachen Bootstrap nicht unterstützt.
+`Startpunkt.sh` aus diesem Repository nach `bootstrap/` kopieren. Der Download erfolgt ausschließlich über HTTPS aus dem öffentlich lesbaren Repository. Keine SSH-Keys oder anderen Git-Zugangsdaten mounten oder kopieren.
### 2. Unraid-Vorlage einspielen
@@ -52,12 +47,12 @@ Vorbelegt sind:
| Image | `python:3.13-alpine` |
| Netzwerk | `bridge` (normales Unraid-Netz über Portfreigabe) |
| Web-Port | Host `8765` → Container `8000` |
-| Repository | `ssh://git@192.168.1.2:33/michael/CasaDePrompt.git` |
+| Repository | `https://git.casaderoll.de/michael/CasaDePrompt.git` |
| Branch | `main` |
| Startbefehl / Post Arguments | `/bin/sh /bootstrap/Startpunkt.sh` |
| App-Benutzer | `99:100` |
-Beim Start installiert das Skript Git/SSH und Python-Pakete, lädt den gewählten Branch bzw. Tag und startet die Anwendung ohne root-Rechte. Dafür benötigt es Zugriff auf dein Git, Alpine-Paketserver und PyPI. Ein Neustart lädt den aktuellen Stand erneut. Bei Download-/Installationsfehlern stoppt es mit einer Meldung, statt eine halb installierte App zu starten. Für reproduzierbare Updates einen Release-Tag in `APP_REF` verwenden.
+Beim Start installiert das Skript Git und Python-Pakete, lädt den gewählten Branch bzw. Tag und startet die Anwendung ohne root-Rechte. Dafür benötigt es Zugriff auf dein Git, Alpine-Paketserver und PyPI. Ein Neustart lädt den aktuellen Stand erneut. Bei Download-/Installationsfehlern stoppt es mit einer Meldung, statt eine halb installierte App zu starten. Für reproduzierbare Updates einen Release-Tag in `APP_REF` verwenden.
### 3. Anmelden
diff --git a/Startpunkt.sh b/Startpunkt.sh
index 6151baa..6a0a327 100755
--- a/Startpunkt.sh
+++ b/Startpunkt.sh
@@ -2,33 +2,26 @@
set -eu
umask 077
export DATA_DIR="${DATA_DIR:-/data}"
-REPO_URL="${REPO_URL:-ssh://git@192.168.1.2:33/michael/CasaDePrompt.git}"
+REPO_URL="${REPO_URL:-https://git.casaderoll.de/michael/CasaDePrompt.git}"
APP_REF="${APP_REF:-main}"
PUID="${PUID:-99}"
PGID="${PGID:-100}"
case "$PUID:$PGID" in *[!0-9:]*|:*|*:) echo 'PUID/PGID müssen numerisch sein.' >&2; exit 1;; esac
if [ "$(id -u)" = 0 ]; then
- apk add --no-cache git openssh-client ca-certificates su-exec
+ apk add --no-cache git ca-certificates su-exec
fi
mkdir -p "$DATA_DIR" /opt/casadeprompt
chmod 755 /opt/casadeprompt
if [ -n "${APP_SOURCE:-}" ]; then
APP_PATH="$APP_SOURCE"
else
+ case "$REPO_URL" in https://*) ;; *) echo "REPO_URL muss HTTPS verwenden." >&2; exit 1;; esac
case "$REPO_URL" in -*) echo 'Ungültige REPO_URL' >&2; exit 1;; esac
case "$APP_REF" in -*) echo 'Ungültige APP_REF' >&2; exit 1;; esac
- if [ -f /run/ssh/athena_key ]; then
- mkdir -p /opt/casa-ssh
- cp /run/ssh/athena_key /opt/casa-ssh/key
- chmod 600 /opt/casa-ssh/key
- [ -f /run/ssh/known_hosts ] || { echo 'Bitte verifizierte known_hosts nach /run/ssh/known_hosts mounten.' >&2; exit 1; }
- export GIT_SSH_COMMAND='ssh -i /opt/casa-ssh/key -o IdentitiesOnly=yes -o BatchMode=yes -o StrictHostKeyChecking=yes -o UserKnownHostsFile=/run/ssh/known_hosts'
- fi
APP_PATH="$(mktemp -d /opt/casadeprompt/release.XXXXXX)"
echo 'Lade CasaDePrompt aus dem Repository …'
git clone --quiet --depth 1 --branch "$APP_REF" -- "$REPO_URL" "$APP_PATH"
rm -rf "$APP_PATH/.git"
- rm -f /opt/casa-ssh/key
fi
[ -f "$APP_PATH/requirements.txt" ] && [ -f "$APP_PATH/atelier/app.py" ] || { echo 'Repository muss die Anwendung im Hauptverzeichnis enthalten.' >&2; exit 1; }
python -m venv /opt/casa-venv
diff --git a/unraid/CasaDePrompt.xml b/unraid/CasaDePrompt.xml
index d13c61d..808f76e 100644
--- a/unraid/CasaDePrompt.xml
+++ b/unraid/CasaDePrompt.xml
@@ -8,15 +8,14 @@
sh
http://192.168.1.2:8765/static/icon.png
http://[IP]:[PORT:8000]/
- Privates Prompt-Archiv mit SQLite, Versionierung, OpenAI-kompatibler KI-Anbindung und MCP. Startpunkt.sh, athena_key und verifizierte known_hosts vor dem Start auf dem NAS ablegen. Keine zusätzliche Datenbank erforderlich.
+ Privates Prompt-Archiv mit SQLite, Versionierung, OpenAI-kompatibler KI-Anbindung und MCP. Startpunkt.sh vor dem Start auf dem NAS ablegen. Keine zusätzliche Datenbank erforderlich.
Productivity:
--restart unless-stopped
/bin/sh /bootstrap/Startpunkt.sh
8765
/mnt/user/appdata/CasaDePrompt/data
/mnt/user/appdata/CasaDePrompt/bootstrap
- /mnt/user/appdata/CasaDePrompt/ssh
- ssh://git@192.168.1.2:33/michael/CasaDePrompt.git
+ https://git.casaderoll.de/michael/CasaDePrompt.git
main
99
100