38 lines
940 B
Bash
38 lines
940 B
Bash
#!/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
|