This commit is contained in:
2026-04-07 14:33:22 +00:00
parent f79a5701d2
commit b07e802f78
2 changed files with 31 additions and 2 deletions

View File

@@ -37,6 +37,27 @@ upsert_env() {
fi
}
read_env_value() {
local key="$1"
local env_file="$2"
if [ ! -f "$env_file" ]; then
return 0
fi
local line
line=$(grep -E "^${key}=" "$env_file" | tail -n 1 || true)
if [ -z "$line" ]; then
return 0
fi
local value="${line#*=}"
value="${value%\"}"
value="${value#\"}"
printf '%s' "$value"
}
# -----------------------------------------------
# 0. Application code is bind-mounted from host
# -----------------------------------------------
@@ -181,9 +202,17 @@ fi
# -----------------------------------------------
ENSURE_INITIAL_ADMIN_ON_EMPTY_DB="${ENSURE_INITIAL_ADMIN_ON_EMPTY_DB:-true}"
INITIAL_ADMIN_NAME_VALUE="${INITIAL_ADMIN_NAME:-$(read_env_value INITIAL_ADMIN_NAME .env)}"
INITIAL_ADMIN_EMAIL_VALUE="${INITIAL_ADMIN_EMAIL:-$(read_env_value INITIAL_ADMIN_EMAIL .env)}"
INITIAL_ADMIN_PASSWORD_VALUE="${INITIAL_ADMIN_PASSWORD:-$(read_env_value INITIAL_ADMIN_PASSWORD .env)}"
if [ "$ENSURE_INITIAL_ADMIN_ON_EMPTY_DB" = "true" ]; then
echo "[*] Ensuring initial administrator account..."
if ! php artisan app:create-initial-admin --from-env --no-interaction; then
if ! php artisan app:create-initial-admin \
--name="$INITIAL_ADMIN_NAME_VALUE" \
--email="$INITIAL_ADMIN_EMAIL_VALUE" \
--password="$INITIAL_ADMIN_PASSWORD_VALUE" \
--no-interaction; then
warn "Initial admin creation failed. Set INITIAL_ADMIN_NAME, INITIAL_ADMIN_EMAIL and INITIAL_ADMIN_PASSWORD."
exit 1
fi