#!/usr/bin/env bash set -Eeuo pipefail SOURCE_DIR="$(cd "$(dirname "$0")" && pwd)" TARGET_DIR="/opt/docker-infra/fixfin" DATA_DIR="/srv/docker/fixfin/data" if [[ "$EUID" -ne 0 ]]; then echo "Bitte mit sudo starten:" echo " sudo bash install.sh" exit 1 fi command -v docker >/dev/null || { echo "Docker fehlt."; exit 1; } docker compose version >/dev/null || { echo "Docker Compose v2 fehlt."; exit 1; } mkdir -p "$TARGET_DIR" "$DATA_DIR" # Nur Projektdateien kopieren, niemals /opt oder /srv rekursiv löschen. if [[ "$SOURCE_DIR" != "$TARGET_DIR" ]]; then cp -a "$SOURCE_DIR"/. "$TARGET_DIR"/ fi # node:alpine verwendet standardmäßig UID/GID 1000 für 'node'. chown -R 1000:1000 "$DATA_DIR" chmod 750 "$DATA_DIR" cd "$TARGET_DIR" docker compose config >/dev/null docker compose up -d --build echo echo "FixFin läuft." echo "URL: http://DOCKER-SERVER-IP:3080" echo "Daten: $DATA_DIR/finance.json" echo docker compose ps