#!/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."