#!/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."