1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# Marvel Panel v1.0 — Changelog
Base: BlueKnightNet/Blue-Knight-Panel v5.2.7 → Final: v1.0
---
## English
### Phase 1: BlueKnight → Marvel (Claude)
**Security**
- Login brute-force protection: 8 failed attempts → HTTP 429 (new: `bkLoginBlocked`, `bkLoginFail`, `bkLoginIp`)
- `PANEL_KEY`: optional access key for the panel
- Decoy 404 page for unknown paths (hides the panel)
- `Sec-Fetch-Site` check on setup (CSRF protection)
- Security headers (`X-Robots-Tag`, `Permissions-Policy`) + `robots.txt`
- Silent 500 errors (no stack traces leaked)
- Removed AAAA "no data" message from DoH responses
**Removed**
- Self-update mechanism (`compareVersions`, `updateTarget`, `staleSettings`) — deleted entirely
**Network**
- IPv6 fully disabled (new: `bkV4Only`, `bkIsV6Entry`, `bkV6Host`, `bkV6Url`, `bkOvpnV4`)
**UI**
- 3 styles: Aurora Glass (default), Command Deck, Floating Dock
- Personalization Studio + `Ctrl+K` command palette
- Local QR code generation (`bkQrSvg`) — no external service
- Setup help page (`bkSetupHelpPage`)
### Phase 2: Marvel → v1.0 (Muse)
**New features (all natively integrated into the panel's own tab system)**
- 👥 **User Management** — per-user VLESS with quota (GB) and expiry (days); actions: show link, subscription URL, delete
- 📈 **Traffic Dashboard** — total users/quota/used, per-user progress bars (🟢/🟡/🔴)
- ⚡ **ISP Preset Builder** — Irancell → Fragment+Fingerprint (needs clean IP); MCI → ECH (no clean IP needed)
- 💾 **Backup & Restore** — export/import all panel data as JSON
- 🔗 **Per-user subscriptions** — `/sub/u/:uuid` returns the user's VLESS config; 403 if revoked/expired/over-quota
**Backend**
- New `gwApi` function + `/gw-admin/api/*` routes (Bearer token auth)
- KV schema: `gw:user:<uuid>` → { uuid, name, quotaBytes, usedTotal, expiresAt, revoked, createdAt }
**Removed during development**
- Proxy IP probe tab (added, then removed per user request — no trace in v1.0)
---
## فارسی
### فاز ۱: بلونایت → مارول (Claude)
**امنیت**
- محافظت لاگین: ۸ بار اشتباه → خطای 429
- کلید `PANEL_KEY`: کلید دسترسی اختیاری برای پنل
- صفحهی ۴۰۴ جعلی برای مسیرهای ناشناس (مخفی کردن پنل)
- بررسی `Sec-Fetch-Site` موقع setup (محافظت CSRF)
- هدرهای امنیتی + `robots.txt`
- خطاهای ۵۰۰ بیصدا (بدون لو رفتن جزئیات)
- حذف پیام AAAA از پاسخهای DoH
**حذف شده**
- مکانیزم self-update — کاملاً پاک شد
**شبکه**
- غیرفعالسازی کامل IPv6
**رابط کاربری**
- ۳ استایل: Aurora Glass (پیشفرض)، Command Deck، Floating Dock
- استودیوی شخصیسازی + پالت فرمان `Ctrl+K`
- تولید QR محلی — بدون سرویس خارجی
- صفحهی راهنمای setup
### فاز ۲: مارول → v1.0 (Muse)
**قابلیتهای جدید** (همه بهصورت native توی سیستم تب خود پنل)
- 👥 **مدیریت یوزر** — VLESS اختصاصی با حجم و انقضا؛ عملیات: نمایش لینک، لینک سابسکریپشن، حذف
- 📈 **داشبورد ترافیک** — مجموع یوزرها/حجم/مصرف، نوار پیشرفت هر یوزر (🟢/🟡/🔴)
- ⚡ **ISP Preset Builder** — ایرانسل → Fragment+Fingerprint (IP تمیز لازم داره)؛ همراه اول → ECH (IP لازم نداره)
- 💾 **بکاپ و ریستور** — خروجی/ورودی همهی دادهها بهصورت JSON
- 🔗 **سابسکریپشن per-user** — مسیر `/sub/u/:uuid` کانفیگ یوزر رو برمیگردونه؛ 403 اگه حذف/منقضی/تمامشده باشه
**بکاند**
- تابع `gwApi` + مسیرهای `/gw-admin/api/*` (احراز هویت با توکن)
- ساختار KV: `gw:user:<uuid>`
**حذف شده حین توسعه**
- تب Proxy IP probe (اضافه شد، بعد به خواست کاربر پاک شد — اثری توی v1.0 نیست)