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_TIBI_PREFIX=tibi
PRODUCTION_PATH=/webroots2/customers/<customer-id>/htdocs PRODUCTION_PATH=/webroots2/customers/<customer-id>/htdocs
# Staging
STAGING_PATH=/staging/<org>/<project>/dev
# URLs # URLs
LIVE_URL=http://<subdomain>.<domain>.dock4.basispanel.de # Preview-URL LIVE_URL=http://<subdomain>.<domain>.dock4.basispanel.de # Preview-URL
STAGING_URL=https://dev-<project>.staging.testversion.online 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 - 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` - 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 - `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 - `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 ## 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_TIBI_PREFIX=tibi
PRODUCTION_PATH=/webroots2/customers/_CUSTOMER_ID_/____ PRODUCTION_PATH=/webroots2/customers/_CUSTOMER_ID_/____
STAGING_PATH=/staging/__ORG__/__PROJECT__/dev
LIVE_URL=https://www LIVE_URL=https://www
STAGING_URL=https://dev-__PROJECT_NAME__.staging.testversion.online STAGING_URL=https://dev-__PROJECT_NAME__.staging.testversion.online
CODING_URL=https://__PROJECT_NAME__.code.testversion.online CODING_URL=https://__PROJECT_NAME__.code.testversion.online
+3
View File
@@ -20,6 +20,9 @@ jobs:
- run: | - run: |
git fetch --force --tags git fetch --force --tags
- name: resolve starter defaults
run: ./scripts/ci-starter-defaults.sh
- name: setup node - name: setup node
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
+1 -4
View File
@@ -2,7 +2,7 @@ DOCKER_COMPOSE=docker compose -f docker-compose-local.yml
.DEFAULT_GOAL := help .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 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 $(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 sleep 3
killall chisel 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 # Called from .gitea/workflows/deploy.yml
# Required env: API_BASEDIR, COMPOSE_PROJECT_NAME # 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 # Read .env
set -o allexport set -o allexport
. ./.env . ./.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