SSH-Port-Check in Makefile und setup-ds.sh, HTTPS-Clone auf DS

This commit is contained in:
rene 2026-04-12 16:48:19 +02:00
parent e364e43480
commit 4499055b99
2 changed files with 168 additions and 60 deletions

View file

@ -6,12 +6,28 @@
# Konfiguration
DS_HOST := ds
DS_IP := 10.47.11.10
DS_SSH_PORT := 22
DS_PATH := /volume1/docker/ban-yaro
CONTAINER := ban-yaro
GIT_REMOTE := origin
.PHONY: help deploy push pull logs logs-f shell db restart stop status build \
clean-cache dev lint
clean-cache dev lint check-ssh
# ----------------------------------------------------------
# SSH-Prüfung — intern, wird von allen DS-Befehlen genutzt
# ----------------------------------------------------------
check-ssh:
@if ! nc -z -w3 $(DS_IP) $(DS_SSH_PORT) 2>/dev/null; then \
echo ""; \
echo " ✗ DS nicht erreichbar ($(DS_IP):$(DS_SSH_PORT))"; \
echo ""; \
echo " SSH-Port $(DS_SSH_PORT) ist geschlossen oder DS ist offline."; \
echo " → Port in der Fritz!Box / DS-Firewall öffnen, dann erneut versuchen."; \
echo ""; \
exit 1; \
fi
# ----------------------------------------------------------
# Standard: Hilfe anzeigen
@ -41,7 +57,7 @@ help:
# DEPLOY: Git push → DS pull → Rebuild → Neustart
# Das ist der Befehl den du am meisten nutzen wirst.
# ----------------------------------------------------------
deploy:
deploy: check-ssh
@echo "→ Git push..."
@git push $(GIT_REMOTE) main
@echo "→ DS: pull + rebuild + restart..."
@ -63,7 +79,7 @@ push:
# NUR auf DS deployen (ohne neuen Git push)
# z.B. wenn jemand anderes gepusht hat
# ----------------------------------------------------------
pull:
pull: check-ssh
@ssh $(DS_HOST) "cd $(DS_PATH) && \
git pull && \
sudo docker compose down && \
@ -74,7 +90,7 @@ pull:
# Nur neustarten (kein Rebuild, kein Git)
# z.B. nach .env-Änderung
# ----------------------------------------------------------
restart:
restart: check-ssh
@ssh $(DS_HOST) "cd $(DS_PATH) && \
sudo docker compose restart $(CONTAINER) && \
echo '✓ Container neugestartet.'"
@ -82,42 +98,42 @@ restart:
# ----------------------------------------------------------
# Nur bauen (kein Start)
# ----------------------------------------------------------
build:
build: check-ssh
@ssh $(DS_HOST) "cd $(DS_PATH) && \
sudo docker compose build --no-cache"
# ----------------------------------------------------------
# Stoppen
# ----------------------------------------------------------
stop:
stop: check-ssh
@ssh $(DS_HOST) "cd $(DS_PATH) && sudo docker compose down"
# ----------------------------------------------------------
# Status
# ----------------------------------------------------------
status:
status: check-ssh
@ssh $(DS_HOST) "sudo docker ps --filter name=$(CONTAINER) --format \
'table {{.Names}}\t{{.Status}}\t{{.Ports}}'"
# ----------------------------------------------------------
# LOGS
# ----------------------------------------------------------
logs:
logs: check-ssh
@ssh $(DS_HOST) "sudo docker logs $(CONTAINER) --tail=100"
logs-f:
logs-f: check-ssh
@ssh $(DS_HOST) "sudo docker logs $(CONTAINER) -f"
# ----------------------------------------------------------
# SHELL im Container
# ----------------------------------------------------------
shell:
shell: check-ssh
@ssh -t $(DS_HOST) "sudo docker exec -it $(CONTAINER) bash"
# ----------------------------------------------------------
# SQLite direkt öffnen
# ----------------------------------------------------------
db:
db: check-ssh
@ssh -t $(DS_HOST) "sudo docker exec -it $(CONTAINER) \
sqlite3 /data/banyaro.db"