Đăng nhập quản trị
Mật khẩu được đặt trong file .env (ADMIN_PASSWORD).
Bot Discord
Kết nối hiện tại
| Thiết bị | IP | Ext | Kết nối lúc |
|---|
Chưa có extension nào kết nối.
Hướng dẫn nhanh
- Member → Tạo member → Cấp license + Device Key → member dán Device Key vào extension (Profile → Đăng ký profile, tối đa 3 Chrome Profile).
- Member tự thêm Discord Channel ID trong extension (trang Kênh) – Owner không cần cấp quyền từng kênh. Kênh member tự thêm chỉ nhận tin của bot monitor có trong
DISCORD_ALLOWED_BOT_IDS. - Tuỳ chọn: tạo kênh của Owner (trang Kênh) để dùng webhook tuỳ chỉnh (Ingest URL + header
X-Ingest-Key), bật / tắt khẩn cấp một kênh, hoặc cho thiết bị token cũ. Member vẫn phải tự thêm Discord ID của kênh đó. - Dùng mục Jobs → Gửi thử để kiểm tra extension có mở tab không.
Thêm member
Sau khi tạo member, bấm Cấp license để nhận Device Key (mặc định 30 ngày, tối đa 3 Chrome Profile). Member dán Device Key vào extension để đăng ký từng profile.
🛑 Emergency Stop – Auto Checkout
Dừng Auto ngay cho MỌI license (extension kiểm tra với server trước khi gửi đơn; mất kết nối = không gửi). Không ảnh hưởng Manual / Dry Run. Tắt riêng từng license ở nút "Tắt Auto" bên dưới.
Nhật ký (audit)
| Lúc | Ai | Hành động | Đối tượng | IP | Chi tiết |
|---|
Sự kiện checkout
Mọi kết quả do extension của member báo (client báo) – server không xác minh độc lập với Rakuten. Bấm "Xác minh" chỉ khi bạn đã tự kiểm tra (vd. 注文履歴 của member).
| Lúc | Member | Slot | Sự kiện | Trạng thái | Sản phẩm | Mã lỗi | Thời gian | Tin cậy | Owner Webhook |
|---|
Ý định đặt hàng – Owner quản lý (chống đơn trùng)
Mỗi profile + sản phẩm + ngày (giờ Nhật) chỉ được cấp phép MỘT lần. Chỉ Owner giải phóng được, không bao giờ tự động; mọi thao tác ghi audit, lịch sử không bị xoá. Intent ĐÃ GỬI / KHÔNG RÕ: chỉ giải phóng sau khi bạn đã kiểm tra lịch sử đơn Rakuten (注文履歴) của member. Đơn đã xác nhận không giải phóng được.
| Cập nhật | Member | Profile | Sản phẩm | Ngày JST | Trạng thái | Cấp phép lúc | Gửi đơn lúc | Lý do chặn | Lần cấp | Số đơn |
|---|
Thêm thiết bị
Mỗi máy/trình duyệt dùng một token riêng. Token chỉ hiển thị một lần, có thể thu hồi bất kỳ lúc nào.
Danh sách thiết bị
| Tên | Trạng thái | Lần cuối online | Tạo lúc |
|---|
Kênh member tự đăng ký
Mỗi member tự thêm Discord Channel ID trong extension; server chỉ gửi job của kênh mà Chrome Profile đó đã đăng ký và đang bật. Bảng chỉ có ID, số member / profile – không có tên kênh hay keyword của member.
| Discord Channel ID | Nguồn | Member | Profile (bật) | Job gần nhất |
|---|
Chưa có member nào đăng ký kênh.
Giới hạn Admin Beta: chưa có liên kết tài khoản Discord, nên server không xác minh được member có quyền xem kênh Discord họ thêm. Chỉ dùng với admin tin cậy và nguồn monitor được phép chia sẻ.
Kênh của Owner (tuỳ chọn)
Dùng cho webhook tuỳ chỉnh (mỗi kênh có ingest key riêng), bật / tắt khẩn cấp một kênh, hoặc cho thiết bị token cũ. Kênh của Owner nhận cả tin không phải bot. Không cấp quyền cho ai: member vẫn phải tự thêm Discord ID để nhận. Kênh không có Discord ID → Chrome Profile không đăng ký được.
| Bật | Tên | Discord ID | Ingest URL |
|---|
Gửi thử một link
Job gần đây
| Thời gian | Kênh | Tiêu đề | Nguồn | Trạng thái | Thiết bị |
|---|
Chưa có job nào.
Benchmark end-to-end (Chrome thật)
Gửi tuần tự từng job tới trang test nội bộ /bench/page của server này; extension mở tab, đo, rồi tự đóng tab. Không mở website mua hàng, không ghi vào bảng Jobs.
Chưa chạy.
| Chặng | Đồng hồ | n | p50 | p95 | p99 | max |
|---|
Độ trễ job thật (Discord / webhook / admin)
| Chặng | Đồng hồ | n | p50 | p95 | p99 | max |
|---|
Độ ổn định kết nối
"mono" = đo trong cùng process (chính xác). "cross" = so giờ giữa hai máy hoặc với Discord, có sai số do lệch đồng hồ (± RTT/2 sau khi hiệu chỉnh). Mục tiêu: server nhận → Chrome bắt đầu mở tab < 500 ms.
Monitor Collector
Kênh thu thập
Danh sách lấy từ .env (MONITOR_DEBUG_CHANNEL_IDS = chỉ ghi log, MONITOR_COLLECT_DISPATCH_CHANNEL_IDS = ghi log + mở link). Dashboard không thay đổi danh sách này.
| Channel ID | Chế độ | Bot đọc được? | Đã ghi | Lần ghi cuối |
|---|
Lấy lịch sử tin nhắn (backfill)
Lấy tối đa 50 tin gần nhất của một kênh thu thập và ghi vào JSONL. Tin lấy lại không bao giờ mở link. Mỗi kênh cách nhau ít nhất 30 giây.