diff --git a/Makefile b/Makefile index 3d965f4..3a74594 100644 --- a/Makefile +++ b/Makefile @@ -11,15 +11,14 @@ DS_PATH := /volume1/docker/ban-yaro CONTAINER := ban-yaro GIT_REMOTE := origin -# rsync: was NICHT auf die DS übertragen wird -RSYNC_EXCLUDE := --exclude='.git' \ - --exclude='data/' \ - --exclude='backend/venv/' \ - --exclude='backend/__pycache__/' \ - --exclude='backend/*.pyc' \ - --exclude='.env' \ - --exclude='*.db' \ - --exclude='.DS_Store' +# tar: was NICHT auf die DS übertragen wird +TAR_EXCLUDE := --exclude='.git' \ + --exclude='./data' \ + --exclude='./backend/venv' \ + --exclude='./backend/__pycache__' \ + --exclude='./.env' \ + --exclude='./*.db' \ + --exclude='./.DS_Store' .PHONY: help deploy sync push restart build stop status \ logs logs-f shell db dev clean-cache check-ssh @@ -72,8 +71,7 @@ deploy: check-ssh @echo "→ Git push (Backup)..." @git push $(GIT_REMOTE) main @echo "→ Sync zu DS..." - @rsync -az --delete $(RSYNC_EXCLUDE) \ - ./ $(DS_HOST):$(DS_PATH)/ + @tar czf - $(TAR_EXCLUDE) . | ssh $(DS_HOST) "tar xzf - -C $(DS_PATH)/" @echo "→ Docker rebuild + restart..." @ssh $(DS_HOST) " \ cd $(DS_PATH) && \ @@ -91,8 +89,7 @@ deploy: check-ssh # ---------------------------------------------------------- sync: check-ssh @echo "→ Sync zu DS..." - @rsync -az --delete $(RSYNC_EXCLUDE) \ - ./ $(DS_HOST):$(DS_PATH)/ + @tar czf - $(TAR_EXCLUDE) . | ssh $(DS_HOST) "tar xzf - -C $(DS_PATH)/" @echo " ✓ Sync fertig." # ---------------------------------------------------------- diff --git a/scripts/setup-ds.sh b/scripts/setup-ds.sh index 5e09dde..a456ffe 100755 --- a/scripts/setup-ds.sh +++ b/scripts/setup-ds.sh @@ -60,18 +60,17 @@ ok "Verzeichnisse angelegt" # 2. Dateien per rsync übertragen (kein git auf DS nötig) # ---------------------------------------------------------- echo "" -echo "→ Dateien übertragen (rsync)..." +echo "→ Dateien übertragen (tar+ssh)..." -rsync -az --delete \ +cd "${ROOT}" && tar czf - \ --exclude='.git' \ - --exclude='data/' \ - --exclude='backend/venv/' \ - --exclude='backend/__pycache__/' \ - --exclude='backend/*.pyc' \ - --exclude='.env' \ - --exclude='*.db' \ - --exclude='.DS_Store' \ - "${ROOT}/" "${DS_HOST}:${DS_PATH}/" + --exclude='./data' \ + --exclude='./backend/venv' \ + --exclude='./backend/__pycache__' \ + --exclude='./.env' \ + --exclude='./*.db' \ + --exclude='./.DS_Store' \ + . | ssh "$DS_HOST" "tar xzf - -C '${DS_PATH}/'" ok "Dateien übertragen"