Staging: docker-compose.staging.yml, Makefile-Targets, Seed-Script (18 Mitglieder, Termine, Orte, Beitragsarten)
This commit is contained in:
parent
81f34905cf
commit
a4436d70c2
3 changed files with 379 additions and 0 deletions
69
Makefile
69
Makefile
|
|
@ -11,6 +11,13 @@ CONTAINER_PB := vereinshaus-pocketbase
|
|||
CONTAINER_APP := vereinshaus-app
|
||||
DOCKER := sudo /usr/local/bin/docker
|
||||
|
||||
STAGING_PATH := /volume1/docker/vereinshaus-staging
|
||||
CONTAINER_PB_STAGING := vereinshaus-staging-pocketbase
|
||||
CONTAINER_APP_STAGING:= vereinshaus-staging-app
|
||||
STAGING_PB_URL := http://localhost:8091
|
||||
STAGING_MIGRATIONS := $(STAGING_PATH)/pocketbase/migrations
|
||||
STAGING_HOOKS := $(STAGING_PATH)/pocketbase/data/pb_hooks
|
||||
|
||||
TAR_EXCLUDE := --exclude='.git' \
|
||||
--exclude='./app/node_modules' \
|
||||
--exclude='./app/.svelte-kit' \
|
||||
|
|
@ -133,3 +140,65 @@ shell-pb: check-ssh
|
|||
|
||||
pb-admin:
|
||||
@echo " PocketBase Admin: https://api.vereins.haus/_/"
|
||||
|
||||
# ==============================================================
|
||||
# STAGING
|
||||
# ==============================================================
|
||||
.PHONY: staging-deploy staging-seed staging-logs staging-status staging-stop
|
||||
|
||||
staging-deploy: check-ssh
|
||||
@echo "→ Sync zu DS (Staging)..."
|
||||
@COPYFILE_DISABLE=1 tar czf - $(TAR_EXCLUDE) . | ssh $(DS_HOST) "tar xzf - -C $(STAGING_PATH)/"
|
||||
@echo "→ .env auf DS (Staging)..."
|
||||
@if [ -f .env ]; then \
|
||||
cat .env | ssh $(DS_HOST) "cat > $(STAGING_PATH)/.env"; \
|
||||
fi
|
||||
@echo "→ Hooks synchronisieren (Staging)..."
|
||||
@ssh $(DS_HOST) "mkdir -p $(STAGING_HOOKS)"
|
||||
@if ls $(HOOKS_SRC)/*.pb.js 2>/dev/null | grep -q .; then \
|
||||
for f in $(HOOKS_SRC)/*.pb.js; do \
|
||||
cat "$$f" | ssh $(DS_HOST) "cat > $(STAGING_HOOKS)/$$(basename $$f)"; \
|
||||
done; \
|
||||
fi
|
||||
@echo "→ Migrations synchronisieren (Staging, nur neue)..."
|
||||
@ssh $(DS_HOST) "mkdir -p $(STAGING_MIGRATIONS)"
|
||||
@if ls $(MIGRATIONS_SRC)/*.js 2>/dev/null | grep -q .; then \
|
||||
for f in $(MIGRATIONS_SRC)/*.js; do \
|
||||
fname=$$(basename "$$f"); \
|
||||
if ! ssh $(DS_HOST) "test -f $(STAGING_MIGRATIONS)/$$fname" 2>/dev/null; then \
|
||||
cat "$$f" | ssh $(DS_HOST) "cat > $(STAGING_MIGRATIONS)/$$fname"; \
|
||||
echo " ✓ $$fname"; \
|
||||
fi; \
|
||||
done; \
|
||||
fi
|
||||
@echo "→ Docker rebuild + restart (Staging)..."
|
||||
@ssh $(DS_HOST) " \
|
||||
cd $(STAGING_PATH) && \
|
||||
$(DOCKER) compose -f docker-compose.staging.yml down && \
|
||||
$(DOCKER) compose -f docker-compose.staging.yml build app-staging && \
|
||||
$(DOCKER) compose -f docker-compose.staging.yml up -d"
|
||||
@echo " ✓ Staging bereit."
|
||||
@echo " App: https://staging.vereins.haus"
|
||||
@echo " PocketBase: https://api-staging.vereins.haus/_/"
|
||||
|
||||
staging-seed:
|
||||
@echo "→ Testdaten in Staging einfügen..."
|
||||
@echo " Voraussetzung: PB_EMAIL + PB_PASSWORD in .env gesetzt (Staging-Superuser)"
|
||||
@if [ -f .env ]; then \
|
||||
export $$(grep -v '^#' .env | xargs) && \
|
||||
PB_URL=https://api-staging.vereins.haus node scripts/seed.js; \
|
||||
else \
|
||||
PB_URL=https://api-staging.vereins.haus node scripts/seed.js; \
|
||||
fi
|
||||
|
||||
staging-logs: check-ssh
|
||||
@ssh $(DS_HOST) "$(DOCKER) logs $(CONTAINER_APP_STAGING) --tail=50"
|
||||
|
||||
staging-status: check-ssh
|
||||
@ssh $(DS_HOST) "$(DOCKER) ps \
|
||||
--filter name=vereinshaus-staging \
|
||||
--format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'"
|
||||
|
||||
staging-stop: check-ssh
|
||||
@ssh $(DS_HOST) "cd $(STAGING_PATH) && $(DOCKER) compose -f docker-compose.staging.yml down"
|
||||
@echo " ✓ Staging gestoppt."
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue