#!/bin/sh # Creates .env from .env.example with freshly generated secrets. # Usage: ./scripts/init-env.sh [admin-email] set -e cd "$(dirname "$0")/.." if [ -f .env ]; then echo ".env existiert bereits – nichts geändert." >&2 exit 1 fi rand() { head -c "$1" /dev/urandom | base64 | tr -d '\n/+=' ; } secret_key=$(rand 48) db_password=$(rand 32) admin_password=$(rand 18) admin_email=${1:-} sed -e "s|^SECRET_KEY=.*|SECRET_KEY=${secret_key}|" \ -e "s|^POSTGRES_PASSWORD=.*|POSTGRES_PASSWORD=${db_password}|" \ -e "s|^ADMIN_EMAIL=.*|ADMIN_EMAIL=${admin_email}|" \ -e "s|^ADMIN_PASSWORD=.*|ADMIN_PASSWORD=${admin_password}|" \ .env.example > .env chmod 600 .env echo ".env angelegt. Bitte APP_BASE_URL prüfen." if [ -n "$admin_email" ]; then echo "Admin: ${admin_email} / Passwort: ${admin_password}" echo "Nach dem ersten Start kann ADMIN_PASSWORD aus .env entfernt werden." else echo "Hinweis: ADMIN_EMAIL ist leer – trage sie in .env ein, bevor du startest." fi