TeamVis Self-Host-Bundle v0.31.0
This commit is contained in:
@@ -144,6 +144,32 @@ create_admin() {
|
|||||||
node "$REPO/scripts/create-admin.mjs" "$ADMIN_EMAIL" --name "$ADMIN_NAME" --role admin
|
node "$REPO/scripts/create-admin.mjs" "$ADMIN_EMAIL" --name "$ADMIN_NAME" --role admin
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# SQL-Literal-Escaping (einfache Anführungszeichen verdoppeln).
|
||||||
|
sqlq() { printf "'%s'" "$(printf '%s' "$1" | sed "s/'/''/g")"; }
|
||||||
|
|
||||||
|
# Admin-Anlage DIREKT in die DB (Modus 2). Vermeidet den Zugriff auf die
|
||||||
|
# öffentliche URL — die ist auf der Host-Maschine wegen Hairpin-NAT / noch
|
||||||
|
# nicht gesetztem DNS oft nicht erreichbar. Braucht nur bcryptjs (für den
|
||||||
|
# Hash, identisch zur App: cost 12) + dbsql.
|
||||||
|
create_admin_db() {
|
||||||
|
ensure_node_deps
|
||||||
|
head "Ersten Admin anlegen ($ADMIN_EMAIL)"
|
||||||
|
local pw pw2 hash
|
||||||
|
while :; do
|
||||||
|
printf 'Passwort (min. 10 Zeichen): '; read -rs pw; printf '\n'
|
||||||
|
if [ "${#pw}" -lt 10 ]; then warn "Mindestens 10 Zeichen."; continue; fi
|
||||||
|
printf 'Passwort wiederholen: '; read -rs pw2; printf '\n'
|
||||||
|
if [ "$pw" != "$pw2" ]; then warn "Passwörter stimmen nicht überein."; continue; fi
|
||||||
|
break
|
||||||
|
done
|
||||||
|
hash="$(node -e "process.stdout.write(require('bcryptjs').hashSync(process.argv[1],12))" "$pw")" \
|
||||||
|
|| die "Hash-Berechnung fehlgeschlagen."
|
||||||
|
printf "insert into public.admin_users (email,password_hash,name,role,must_change_password) values (%s,%s,%s,'admin',true);\n" \
|
||||||
|
"$(sqlq "$ADMIN_EMAIL")" "$(sqlq "$hash")" "$(sqlq "$ADMIN_NAME")" | dbsql \
|
||||||
|
&& ok "Admin angelegt: $ADMIN_EMAIL" \
|
||||||
|
|| die "Admin-Anlage fehlgeschlagen (existiert die E-Mail schon?)."
|
||||||
|
}
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
# MODUS 1 — Bestehende/eigene Supabase
|
# MODUS 1 — Bestehende/eigene Supabase
|
||||||
#######################################################################
|
#######################################################################
|
||||||
@@ -470,7 +496,9 @@ SQL
|
|||||||
( cd "$TARGET" && docker compose up -d )
|
( cd "$TARGET" && docker compose up -d )
|
||||||
ok "Stack läuft."
|
ok "Stack läuft."
|
||||||
|
|
||||||
create_admin "$SITE_URL" "$SERVICE_ROLE_KEY"
|
# Admin direkt in die DB (nicht über die öffentliche URL — die ist auf dem
|
||||||
|
# Host wegen Hairpin-NAT / noch nicht gesetztem DNS oft nicht erreichbar).
|
||||||
|
create_admin_db
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
|||||||
Reference in New Issue
Block a user