Der Proxy trennt nach Host, sobald MARKETING_HOST gesetzt ist: craftvia.de zeigt nur die Produktseiten und leitet Login, Testphase, App und API auf die App-Domain aus AUTH_URL um; www leitet auf die Hauptdomain; auf der App-Domain landet / ohne Sitzung beim Login und Produktseiten gehen zurück zur Website. Interne Aufrufe (Healthcheck) bleiben unverändert. Links bleiben relativ, damit keine Domain im Image steckt. Dazu Test scripts/test-host-routing.ts, Env-Vorlagen mit MARKETING_HOST und Registry, scripts/generate-coolify-env.sh für lokal erzeugte Geheimnisse und DEPLOY.md §2.1. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
46 lines
1.9 KiB
Bash
Executable File
46 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Erzeugt die Env-Datei für den Coolify-Testserver aus .env.coolify.example — mit frischen
|
|
# Geheimnissen, die nur auf diesem Rechner entstehen. Die Datei ist per .gitignore (.env*)
|
|
# vom Repo ausgeschlossen; Inhalt in Coolify unter "Environment Variables" einfügen.
|
|
#
|
|
# ./scripts/generate-coolify-env.sh # schreibt .env.coolify.local
|
|
# APP_DOMAIN=app.craftvia.de MARKETING_HOST=craftvia.de ./scripts/generate-coolify-env.sh
|
|
set -euo pipefail
|
|
|
|
OUT="${1:-.env.coolify.local}"
|
|
APP_DOMAIN="${APP_DOMAIN:-app.craftvia.de}"
|
|
MARKETING_HOST="${MARKETING_HOST:-craftvia.de}"
|
|
|
|
if [ -e "$OUT" ]; then
|
|
echo "$OUT existiert bereits und wird nicht überschrieben (Geheimnisse wären sonst verloren)." >&2
|
|
exit 1
|
|
fi
|
|
|
|
hex() { openssl rand -hex "$1"; }
|
|
DB_PASSWORD="$(hex 24)"
|
|
|
|
sed \
|
|
-e "s|CHANGE_ME_db_password|${DB_PASSWORD}|g" \
|
|
-e "s|^REDIS_PASSWORD=.*|REDIS_PASSWORD=$(hex 24)|" \
|
|
-e "s|^S3_ACCESS_KEY=.*|S3_ACCESS_KEY=GK$(hex 12)|" \
|
|
-e "s|^S3_SECRET_KEY=.*|S3_SECRET_KEY=$(hex 32)|" \
|
|
-e "s|^GARAGE_RPC_SECRET=.*|GARAGE_RPC_SECRET=$(hex 32)|" \
|
|
-e "s|^GARAGE_ADMIN_TOKEN=.*|GARAGE_ADMIN_TOKEN=$(hex 32)|" \
|
|
-e "s|^AUTH_SECRET=.*|AUTH_SECRET=$(openssl rand -base64 32 | tr -d '\n')|" \
|
|
-e "s|^PASSWORD_PEPPER=.*|PASSWORD_PEPPER=$(hex 32)|" \
|
|
-e "s|^AUTH_URL=.*|AUTH_URL=https://${APP_DOMAIN}|" \
|
|
-e "s|^MARKETING_HOST=.*|MARKETING_HOST=${MARKETING_HOST}|" \
|
|
.env.coolify.example > "$OUT"
|
|
|
|
{
|
|
echo ""
|
|
echo "# --- erzeugt von scripts/generate-coolify-env.sh ($(date +%F)) ---"
|
|
echo "MFA_ENC_KEY=$(hex 32)"
|
|
echo "BACKUP_ENC_KEY=$(hex 32)"
|
|
} >> "$OUT"
|
|
chmod 600 "$OUT"
|
|
|
|
echo "Geschrieben: $OUT (nur lokal, Rechte 600)."
|
|
echo "Noch von Hand ergänzen: SMTP_HOST/PORT/SECURE/USER/PASSWORD/FROM, ANTHROPIC_API_KEY, TRIAL_CONTACT_EMAIL."
|
|
echo "Danach sicher ablegen (Passwortmanager) — PASSWORD_PEPPER und MFA_ENC_KEY sind nicht rotierbar."
|