Files
hoerdle/scripts/migration-prepare-target.sh
Hördle Bot 1c7bfdf421 Ops: add Proxmox migration tooling and runbook
Add end-to-end migration scripts for inventory, precopy, cutover, smoke tests, rollback, and post-migration checks. Include an operational runbook and Proxmox env template to move Hördle behind Nginx Proxy Manager while preserving persistent volumes safely.
2026-04-25 09:46:52 +00:00

73 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
# Dieses Skript auf dem ZIEL-LXC ausfuehren.
# Es richtet die Ordnerstruktur und Preflight-Checks fuer den Hördle-Betrieb ein.
APP_DIR="${APP_DIR:-/opt/hoerdle}"
APP_USER="${APP_USER:-docker}"
APP_GROUP="${APP_GROUP:-docker}"
echo "== Prepare target LXC for Hördle =="
echo "APP_DIR=$APP_DIR"
echo "APP_USER=$APP_USER"
echo
require_cmd() {
if ! command -v "$1" >/dev/null 2>&1; then
echo "Fehlend: $1"
exit 1
fi
}
require_cmd docker
if ! docker compose version >/dev/null 2>&1; then
echo "docker compose Plugin fehlt."
exit 1
fi
echo "-- Docker Version --"
docker --version
docker compose version
echo
echo "-- Verzeichnisse vorbereiten --"
mkdir -p "$APP_DIR"/{data,public/uploads,logs,backups}
chown -R "$APP_USER:$APP_GROUP" "$APP_DIR"
chmod 755 "$APP_DIR"
chmod 755 "$APP_DIR/data" "$APP_DIR/public" "$APP_DIR/public/uploads"
echo "Ordner vorbereitet."
echo
echo "-- Speichercheck --"
df -h "$APP_DIR"
echo
echo "-- Netzwerkcheck --"
if ! docker network inspect hoerdle_default >/dev/null 2>&1; then
echo "Docker-Netzwerk hoerdle_default fehlt, wird erstellt."
docker network create hoerdle_default >/dev/null
fi
echo "Netzwerk hoerdle_default bereit."
echo
echo "-- .env Vorlage --"
if [ ! -f "$APP_DIR/.env" ]; then
if [ -f "$APP_DIR/.env.proxmox.example" ]; then
cp "$APP_DIR/.env.proxmox.example" "$APP_DIR/.env"
echo ".env aus .env.proxmox.example erstellt."
elif [ -f "$APP_DIR/.env.example" ]; then
cp "$APP_DIR/.env.example" "$APP_DIR/.env"
echo ".env aus .env.example erstellt."
else
echo "Keine Env-Vorlage gefunden. Bitte .env manuell erstellen."
fi
else
echo ".env existiert bereits, kein Override."
fi
echo
echo "-- Abschluss --"
echo "Target-LXC vorbereitet. Nächster Schritt: Daten-Vorabkopie aus der Quelle."