# FreeExile Admin Tool

Hệ thống Monitor và Admin Panel cho server FreeExile, cho phép quản trị viên chỉnh sửa trực tiếp các thông số kinh tế, droprate và danh sách vật phẩm mà không cần sửa code hoặc rebuild server.

## Tính năng

- **Web UI & 2FA**: Giao diện web được bảo vệ bằng mã xác thực 2 bước (TOTP - Google Authenticator).
- **Game Data Editor**: CRUD trực tiếp trên CSDL `game_design_matrix.db` cho phép tinh chỉnh cân bằng game, droprate, thông số party và vật phẩm.
- **Server Monitor**: Giám sát tài nguyên CPU và RAM của máy chủ.

## Cài đặt

1. Đảm bảo đã cài đặt các dependencies (chạy ở thư mục gốc hoặc dùng venv):
   ```bash
   pip install fastapi uvicorn pyotp qrcode jinja2 psutil
   ```

2. Chạy Admin Tool:
   ```bash
   cd tools/admin_tool
   python main.py
   ```

## Đăng nhập (2FA)

- Mặc định, tool sẽ chạy ở địa chỉ: `http://127.0.0.1:9091`
- Khi khởi động lần đầu, màn hình login sẽ hiển thị **TOTP Secret**. Bạn hãy dùng Google Authenticator hoặc Authy nhập mã Secret này để lấy mã xác thực 6 số.
- Để sử dụng một Secret cố định, bạn có thể thiết lập biến môi trường `ADMIN_TOTP_SECRET` trước khi chạy server.

## Kiến trúc

- **Framework**: FastAPI (Web Engine)
- **DB Driver**: sqlite3 native (Direct edit `data/game_design_matrix.db`)
- **Template Engine**: Jinja2 (`templates/`)
- **Authentication**: Cookie session binding + PyOTP 2FA Verify
