From ca97ea028ff875aa902e0c45689042b3fe2b57be Mon Sep 17 00:00:00 2001 From: ah-admin Date: Fri, 2 Oct 2026 10:19:58 +0200 Subject: [PATCH] =?UTF-8?q?deploy.sh:=20Deployment-Skript=20(Pageant/plink?= =?UTF-8?q?=20oder=20SSH-Schl=C3=BCssel)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy.sh | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 deploy.sh diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 0000000..f4afb27 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash +# Hocks Mieterportal – Deployment auf hocks.eu +# +# SSH-Auth: Pageant (plink) oder OpenSSH-Schlüssel ~/.ssh/hocks_deploy. +# Aufruf: ./deploy.sh +set -euo pipefail + +SERVER="${SERVER:-hocks.eu}" +SSH_PORT="${SSH_PORT:-38592}" +SSH_USER="${SSH_USER:-root}" +REMOTE_DIR="/opt/mieterportal" +REPO="https://git.hocks.eu/ah-admin/Mieterportal.git" +IMAGE="mieterportal:latest" + +run() { # run + local cmd="$1" + if command -v plink >/dev/null 2>&1 || [ -f "/c/Program Files/PuTTY/plink.exe" ]; then + local PLINK="${PLINK:-$(command -v plink || echo '/c/Program Files/PuTTY/plink.exe')}" + "$PLINK" -ssh -P "$SSH_PORT" -agent -batch "${SSH_USER}@${SERVER}" "$cmd" + else + ssh -p "$SSH_PORT" -i ~/.ssh/hocks_deploy -o BatchMode=yes \ + -o StrictHostKeyChecking=accept-new "${SSH_USER}@${SERVER}" "$cmd" + fi +} + +echo "==> Verbindung zu ${SSH_USER}@${SERVER}:${SSH_PORT} testen" +run "docker --version" + +echo "==> Repository auf dem Server aktualisieren (${REMOTE_DIR})" +run "mkdir -p ${REMOTE_DIR} && cd ${REMOTE_DIR} && \ + (git rev-parse --git-dir >/dev/null 2>&1 || git clone ${REPO} .) && \ + git fetch origin && git reset --hard origin/main" + +echo "==> Docker-Image bauen" +run "cd ${REMOTE_DIR} && docker build -t ${IMAGE} ." + +echo "==> Container ersetzen" +run "docker rm -f mieterportal 2>/dev/null || true" +run "cd ${REMOTE_DIR} && docker compose up -d" + +echo "==> Status" +run "docker ps --filter name=mieterportal --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'" +echo "Fertig. Portal läuft auf dem Server (Routing: mieterportal.hocks.eu)."