feat: bootstrap admin from NAV_ADMIN_USERNAME and NAV_ADMIN_PASSWORD
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+5
-1
@@ -1,9 +1,13 @@
|
||||
# 复制本文件为 .env 后按需修改(.env 勿提交到 Git)
|
||||
# 与 app.py 同目录;程序启动时自动加载。
|
||||
|
||||
# 必填(长期运行):随机字符串,用于会话与 CSRF。可执行: openssl rand -hex 32
|
||||
# 必填(长期运行):随机字符串,用于会话与 CSRF。生成见下方「密钥」说明。
|
||||
# NAV_SECRET_KEY=
|
||||
|
||||
# 仅当数据库里还没有任何用户时生效(首次启动):首个管理员账号
|
||||
# NAV_ADMIN_USERNAME=admin
|
||||
# NAV_ADMIN_PASSWORD=请改成强密码
|
||||
|
||||
# 数据库(默认 SQLite 文件在当前工作目录)
|
||||
# NAV_DATABASE_URL=sqlite:///nav_local.db
|
||||
|
||||
|
||||
@@ -254,12 +254,18 @@ def _group_choices():
|
||||
def _ensure_default_user() -> None:
|
||||
if User.query.count() > 0:
|
||||
return
|
||||
u = User(username="admin")
|
||||
u.set_password("admin123")
|
||||
username = (os.environ.get("NAV_ADMIN_USERNAME") or "admin").strip() or "admin"
|
||||
password = os.environ.get("NAV_ADMIN_PASSWORD") or "admin123"
|
||||
u = User(username=username)
|
||||
u.set_password(password)
|
||||
db.session.add(u)
|
||||
db.session.add(ServiceGroup(name="默认分组", sort_order=0))
|
||||
db.session.commit()
|
||||
print("[nav] 首次运行:默认账号 admin 密码 admin123(仅内网使用,建议自行改库或删用户后重建)")
|
||||
print(
|
||||
f"[nav] 首次运行:已创建管理员「{username}」"
|
||||
"(来自 NAV_ADMIN_USERNAME / NAV_ADMIN_PASSWORD,未设置则为 admin / admin123)。"
|
||||
"生产环境请尽快改为强密码。"
|
||||
)
|
||||
|
||||
|
||||
app = create_app()
|
||||
|
||||
Reference in New Issue
Block a user