accounts/scripts/create-super-admin.sh

48 lines
1.7 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
set -euo pipefail
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/_common.sh"
SUPERADMIN_EMAIL="admin@svc.plus"
SUPERADMIN_USERNAME="${SUPERADMIN_USERNAME:-Admin}"
if [ -z "${SUPERADMIN_PASSWORD:-}" ] || [ "${SUPERADMIN_PASSWORD}" = "ChangeMe" ]; then
if command -v openssl >/dev/null; then
SUPERADMIN_PASSWORD="$(openssl rand -base64 12 | tr -d '\n' | tr '/+' 'Aa' | cut -c1-10)"
else
SUPERADMIN_PASSWORD="$(LC_ALL=C tr -dc 'A-Za-z0-9' </dev/urandom | head -c 10)"
fi
echo "⚠️ 未指定 SUPERADMIN_PASSWORD已生成随机初始密码: ${SUPERADMIN_PASSWORD}"
fi
if psql "${DB_URL}" -Atc "SELECT 1 FROM users WHERE username='${SUPERADMIN_USERNAME}' OR email='${SUPERADMIN_EMAIL}' LIMIT 1" | grep -qx '1'; then
if [ -z "${SUPERADMIN_CURRENT_PASSWORD:-}" ]; then
echo "⚠️ 超级管理员已存在,未提供 SUPERADMIN_CURRENT_PASSWORD跳过更新"
exit 0
fi
go run ./cmd/createadmin/main.go \
--driver postgres \
--dsn "${DB_URL}" \
--username "${SUPERADMIN_USERNAME}" \
--password "${SUPERADMIN_PASSWORD}" \
--email "${SUPERADMIN_EMAIL}" \
--current-password "${SUPERADMIN_CURRENT_PASSWORD}"
echo "✅ 登录信息(仅本次输出)"
echo " 网址https://console.svc.plus/login"
echo " 邮箱admin@svc.plus"
echo " 密码:${SUPERADMIN_PASSWORD}"
exit 0
fi
go run ./cmd/createadmin/main.go \
--driver postgres \
--dsn "${DB_URL}" \
--username "${SUPERADMIN_USERNAME}" \
--password "${SUPERADMIN_PASSWORD}" \
--email "${SUPERADMIN_EMAIL}"
echo "✅ 登录信息(仅本次输出)"
echo " 网址https://console.svc.plus/login"
echo " 邮箱admin@svc.plus"
echo " 密码:${SUPERADMIN_PASSWORD}"