chore: STAGING_PATH entfernt, ci-starter-defaults für Template-Staging

- STAGING_PATH aus .env und Makefile (media-sync-local-to-staging) entfernt, Doku bereinigt
- scripts/ci-starter-defaults.sh löst __PLACEHOLDER__ im CI-Workspace auf, dev/master bleiben identisch
This commit is contained in:
2026-10-05 16:40:16 +00:00
parent 0004bc98a1
commit 4ba3cab451
7 changed files with 70 additions and 10 deletions
-3
View File
@@ -87,9 +87,6 @@ PRODUCTION_SERVER=dock4.basehosts.de
PRODUCTION_TIBI_PREFIX=tibi
PRODUCTION_PATH=/webroots2/customers/<customer-id>/htdocs
# Staging
STAGING_PATH=/staging/<org>/<project>/dev
# URLs
LIVE_URL=http://<subdomain>.<domain>.dock4.basispanel.de # Preview-URL
STAGING_URL=https://dev-<project>.staging.testversion.online
+1 -1
View File
@@ -119,7 +119,7 @@ Important:
- if `GET /api/v1/project` with `X-Admin-Token: $ADMIN_TOKEN` returns `permission denied: admin token lacks permission project.read`, that token is not valid for project registration
- create new projects by logging in with `admin` / `admin` in the default starter dev setup and using the returned JWT via `X-Auth-Token`
- `ADMIN_ASSET_VERSION` is required so Nova picks up the current admin bundle
- `PROJECT_NAME`, `TIBI_NAMESPACE`, `PRODUCTION_PATH`, and `STAGING_PATH` should be project-specific before the first deploy
- `PROJECT_NAME`, `TIBI_NAMESPACE`, and `PRODUCTION_PATH` should be project-specific before the first deploy
- `package.json` should no longer advertise the starter repository or default package name once the project is bootstrapped
## Step 4 — Install and start the Docker stack
-2
View File
@@ -15,8 +15,6 @@ PRODUCTION_SERVER=dock4.basehosts.de
PRODUCTION_TIBI_PREFIX=tibi
PRODUCTION_PATH=/webroots2/customers/_CUSTOMER_ID_/____
STAGING_PATH=/staging/__ORG__/__PROJECT__/dev
LIVE_URL=https://www
STAGING_URL=https://dev-__PROJECT_NAME__.staging.testversion.online
CODING_URL=https://__PROJECT_NAME__.code.testversion.online
+3
View File
@@ -20,6 +20,9 @@ jobs:
- run: |
git fetch --force --tags
- name: resolve starter defaults
run: ./scripts/ci-starter-defaults.sh
- name: setup node
uses: actions/setup-node@v4
with:
+1 -4
View File
@@ -2,7 +2,7 @@ DOCKER_COMPOSE=docker compose -f docker-compose-local.yml
.DEFAULT_GOAL := help
.PHONY: init docker-up docker-restart-frontend docker-up-tibi-dev docker-start docker-start-tibi-dev docker-down docker-ps docker-logs yarn-upgrade fix-permissions mongo-sync-master-to-local media-sync-master-to-local mongo-sync-local-to-staging media-sync-local-to-staging test test-e2e test-api test-visual
.PHONY: init docker-up docker-restart-frontend docker-up-tibi-dev docker-start docker-start-tibi-dev docker-down docker-ps docker-logs yarn-upgrade fix-permissions mongo-sync-master-to-local media-sync-master-to-local mongo-sync-local-to-staging test test-e2e test-api test-visual
include ./.env
@@ -92,6 +92,3 @@ mongo-sync-local-to-staging: ## sync mongo from local to staging area
$(DOCKER_COMPOSE) exec -T mongo mongodump --archive --gzip --db=$(TIBI_PREFIX)_$(TIBI_NAMESPACE) | mongorestore --archive --gzip --nsFrom='$(TIBI_PREFIX)_$(TIBI_NAMESPACE).*' --nsTo='$(TIBI_PREFIX)_$(TIBI_NAMESPACE).*' --nsInclude='$(TIBI_PREFIX)_$(TIBI_NAMESPACE).*' --drop
sleep 3
killall chisel
media-sync-local-to-staging: ## sync attachments from local to staging area
sudo rsync -v -az --info=progress2 media $(STAGING_PATH)/
+5
View File
@@ -5,6 +5,11 @@ set -euo pipefail
# Called from .gitea/workflows/deploy.yml
# Required env: API_BASEDIR, COMPOSE_PROJECT_NAME
# Starter template: resolve __PLACEHOLDER__ to CI workspace values (no-op for real projects)
if [ -f ./scripts/ci-starter-defaults.sh ]; then
./scripts/ci-starter-defaults.sh
fi
# Read .env
set -o allexport
. ./.env
+60
View File
@@ -0,0 +1,60 @@
#!/usr/bin/env bash
set -euo pipefail
# CI helper: resolve starter placeholders for staging.
# Called from .gitea/workflows/deploy.yml (before validate/build).
# Keeps placeholders in git (template), patches .env in CI workspace only.
#
# Detection: PROJECT_NAME=__PROJECT_NAME__ or TIBI_NAMESPACE=__TIBI_NAMESPACE__
# Real projects: no-op (already concrete values).
# shellcheck disable=SC1091
set -o allexport
# shellcheck disable=SC1091
. ./.env 2>/dev/null || true
set +o allexport
is_starter="false"
if [ "${PROJECT_NAME:-}" = "__PROJECT_NAME__" ]; then
is_starter="true"
fi
if [ "${TIBI_NAMESPACE:-}" = "__TIBI_NAMESPACE__" ]; then
is_starter="true"
fi
if [ "${is_starter}" != "true" ]; then
echo "ci-starter-defaults: real project (PROJECT_NAME=${PROJECT_NAME:-?}), nothing to do."
exit 0
fi
echo "ci-starter-defaults: starter detected, patching .env for CI workspace only."
PROJECT_NAME="tibi-svelte-starter"
TIBI_NAMESPACE="tibi-svelte-starter"
SENTRY_PROJECT="tibi-svelte-starter"
STAGING_URL="https://dev-tibi-svelte-starter.staging.testversion.online"
CODING_URL="https://tibi-svelte-starter.code.testversion.online"
CODING_TIBIADMIN_URL="https://tibi-svelte-starter-tibiadmin.code.testversion.online"
# Build uses LIVE_URL as originURL/PREVIEW_URL base — point it at staging for the starter
LIVE_URL="${STAGING_URL}"
patch_env() {
key="$1"
val="$2"
if grep -q "^${key}=" .env; then
sed -i 's#^'"${key}"'=.*#'"${key}"'='"${val}"'#g' .env
else
printf '%s=%s\n' "${key}" "${val}" >> .env
fi
}
patch_env "PROJECT_NAME" "${PROJECT_NAME}"
patch_env "TIBI_NAMESPACE" "${TIBI_NAMESPACE}"
patch_env "SENTRY_PROJECT" "${SENTRY_PROJECT}"
patch_env "STAGING_URL" "${STAGING_URL}"
patch_env "CODING_URL" "${CODING_URL}"
patch_env "CODING_TIBIADMIN_URL" "${CODING_TIBIADMIN_URL}"
patch_env "LIVE_URL" "${LIVE_URL}"
echo "______ .env (starter-resolved) ______"
cat .env