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

@@ -11,7 +11,7 @@ RUN_DB_SEED_ON_FIRST_START=true
ENSURE_INITIAL_ADMIN_ON_EMPTY_DB=true ENSURE_INITIAL_ADMIN_ON_EMPTY_DB=true
INITIAL_ADMIN_NAME=Administrator INITIAL_ADMIN_NAME=Administrator
INITIAL_ADMIN_EMAIL=info@termanager.it INITIAL_ADMIN_EMAIL=info@termanager.it
INITIAL_ADMIN_PASSWORD=admin INITIAL_ADMIN_PASSWORD=Password123!
DB_CONNECTION=mysql DB_CONNECTION=mysql
DB_HOST=mariadb DB_HOST=mariadb

View File

@@ -37,6 +37,27 @@ upsert_env() {
fi 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 # 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}" 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 if [ "$ENSURE_INITIAL_ADMIN_ON_EMPTY_DB" = "true" ]; then
echo "[*] Ensuring initial administrator account..." 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." warn "Initial admin creation failed. Set INITIAL_ADMIN_NAME, INITIAL_ADMIN_EMAIL and INITIAL_ADMIN_PASSWORD."
exit 1 exit 1
fi fi