- 建立 Gitea Actions CD pipeline (.gitea/workflows/cd.yaml) - 部署模式: rsync Python 檔案至 188 → docker restart (volume mount) - Dockerfile/requirements 變動時自動重建 Docker image - 部署通知: Telegram (開始/成功/失敗) - 健康檢查: https://mo.wooo.work/health (最多 5 次重試) - 同步最新 CLAUDE.md / ADR-008 / memory (2026-04-19) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
84
scripts/archive/init_admin.py
Normal file
84
scripts/archive/init_admin.py
Normal file
@@ -0,0 +1,84 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
初始化管理員帳號腳本
|
||||
|
||||
用於建立系統的第一個管理員帳號。
|
||||
執行方式:python init_admin.py
|
||||
|
||||
預設帳號:admin
|
||||
預設密碼:Wooo@2026! (符合密碼複雜度要求)
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
# 確保專案根目錄在 sys.path
|
||||
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
sys.path.insert(0, BASE_DIR)
|
||||
|
||||
from database.manager import DatabaseManager, get_session
|
||||
from services.user_service import create_initial_admin
|
||||
from database.user_models import User
|
||||
|
||||
|
||||
def main():
|
||||
print("=" * 60)
|
||||
print(" WOOO TECH - 初始化管理員帳號")
|
||||
print("=" * 60)
|
||||
print()
|
||||
|
||||
# 初始化資料庫(確保資料表已建立)
|
||||
print("1. 初始化資料庫...")
|
||||
try:
|
||||
db_manager = DatabaseManager()
|
||||
print(" 資料庫連線成功")
|
||||
except Exception as e:
|
||||
print(f" 資料庫連線失敗: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
# 取得資料庫 session
|
||||
db_session = get_session()
|
||||
|
||||
try:
|
||||
# 檢查是否已有管理員
|
||||
print()
|
||||
print("2. 檢查現有管理員...")
|
||||
existing_admin = db_session.query(User).filter(User.role == User.ROLE_ADMIN).first()
|
||||
|
||||
if existing_admin:
|
||||
print(f" 已存在管理員帳號: {existing_admin.username}")
|
||||
print()
|
||||
print(" 如需重設密碼,請使用用戶管理介面或直接修改資料庫。")
|
||||
print()
|
||||
return
|
||||
|
||||
# 建立管理員
|
||||
print()
|
||||
print("3. 建立管理員帳號...")
|
||||
success, message = create_initial_admin(db_session)
|
||||
|
||||
if success:
|
||||
print(f" {message}")
|
||||
print()
|
||||
print("=" * 60)
|
||||
print(" 管理員帳號建立成功!")
|
||||
print("=" * 60)
|
||||
print()
|
||||
print(" 帳號: admin")
|
||||
print(" 密碼: Wooo@2026!")
|
||||
print()
|
||||
print(" 請登入後立即修改密碼!")
|
||||
print("=" * 60)
|
||||
else:
|
||||
print(f" {message}")
|
||||
|
||||
except Exception as e:
|
||||
print(f" 發生錯誤: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
finally:
|
||||
db_session.close()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user