مدیریت
بررسی نصب
row-template verify روی 3X-UI، PasarGuard و Rebecca چه چیزهایی را بررسی میکند، هر خطی که چاپ میکند را چطور بخوانید، و کدام نتیجهها خطا و کدام فقط هشدارند.
row-template verify
پس از نصب، پس از هر تغییر و پیش از گزارش مشکل اجرایش کنید. با root اجرایش کنید: با کاربر دیگر نمیتواند config.env یا تنظیمات پنل را بخواند.
verify هرگز صفحه، برندینگ یا پنل شما را تغییر نمیدهد. با root، اول یک کار انجام میدهد: مخزن تمپلیتها را مرتب میکند — طرحهایی که بهروزرسانی قبلی بیرون از dist/templates/ جا گذاشته به داخل برگردانده میشوند، و طرحهایی که نسخهٔ نصبشده دارد اما روی سرور نیستند از همان نسخه (با بررسی چکسام) دانلود میشوند. هیچ چیز دیگری را تغییر نمیدهد.
خواندن نتیجه
هر بررسی یک خط چاپ میکند:
ok— بررسی موفق بود.warn— ارزش اصلاح دارد، اما صفحه کار میکند. هشدارها هرگز فرمان را ناموفق نمیکنند.FAIL— مشکل جدی. فرمان باverification FAILED (…)تمام میشود و با کد1خارج میشود.- خطی بدون برچسب، اطلاعات است؛ مثلاً بررسیای که اینجا قابل اجرا نبود.
خط آخر جمعبندی است:
ok verification passed with no warnings.
warn verification passed with 2 warning(s).
FAIL verification FAILED (1 hard issue(s), 2 warning(s)).
همهٔ بررسیها
فایلها و یکپارچگی
| نتیجه | خط | چه باید کرد |
|---|---|---|
| ok | Install root present: … |
— |
| FAIL | install root missing or is a symlink: … |
نصبکننده را دوباره اجرا کنید. پوشهٔ نصب باید یک پوشهٔ واقعی باشد. |
| ok | Canonical artifact integrity verified. |
— |
| FAIL | canonical artifact missing checksum or does not match it. |
طرح نصبشده تغییر کرده یا خراب شده. برای نصب دوباره row-template update را اجرا کنید. |
| FAIL | canonical artifact missing or unreadable: … |
row-template update را اجرا کنید، یا نصبکننده را دوباره اجرا کنید. |
| ok | Live template is structurally valid and readable. |
— |
| FAIL | live template failed structural validation. / live template missing or unreadable: … |
آن را دوباره بسازید: row-template update، یا برای تعمیر نصبکننده را دوباره اجرا کنید. |
| ok | VERSION present: … |
— |
| FAIL | VERSION file missing or empty. |
برای تعمیر، نصبکننده را دوباره اجرا کنید. |
طرحها
| نتیجه | خط | چه باید کرد |
|---|---|---|
| ok | Template store verified (17 design(s)). |
— |
| FAIL | a template in the store does not match its checksum: … |
یک فایل طرح تغییر کرده؛ پیام نامش را میآورد. برای نصب دوبارهٔ مخزن row-template update را اجرا کنید. |
| warn | template store is incomplete (… of … designs); missing: … |
row-template update را اجرا کنید. |
| warn | templates were found outside the store at …; run 'row-template verify' as root to move them. |
verify را با root اجرا کنید. |
| ok | Template: … |
طرح انتخابشده. |
| ok | Canonical artifact matches the selected template. |
— |
| FAIL | canonical artifact does not match the selected template (…). |
انتخاب ذخیرهشده و طرح نصبشده یکی نیستند. row-template config را اجرا کنید و در هر پرسش Enter بزنید — طرح نصبشده را با انتخاب ذخیرهشده هماهنگ میکند — یا row-template update را اجرا کنید. |
| FAIL | selected template '…' is missing from the template store. |
row-template update را اجرا کنید. |
| FAIL | template store missing or empty; run 'row-template update' to install it. |
verify را با root اجرا کنید، یا row-template update را — ارتقا از 1.1.0 یا 1.2.0 را ببینید. |
پیکربندی و ابزارها
| نتیجه | خط | چه باید کرد |
|---|---|---|
| ok | Config present and readable. |
— |
| — | No config.env (white-label defaults). |
کاری لازم نیست: برندینگی تنظیم نشده. |
| warn | config present but not readable. |
verify را با root اجرا کنید. |
| warn | config.env is other-writable (mode …); tighten to 640. |
مجوز config.env داخل پوشهٔ نصب را با chmod 640 تنظیم کنید. |
| ok | Management library present. |
— |
| warn | management library not found under the install root. |
برای تعمیر، نصبکننده را دوباره اجرا کنید. |
| ok | Installer components present. |
— |
| warn | installer components are missing (lib/transaction.sh, panels/), … |
verify را با root اجرا کنید، یا row-template update را. |
| ok | CLI present: /usr/local/bin/row-template |
— |
| warn | CLI not found or not executable at … |
برای تعمیر، نصبکننده را دوباره اجرا کنید. |
پنل
| نتیجه | خط | چه باید کرد |
|---|---|---|
| ok | 3x-ui … meets the minimum 3.6.0. |
— |
| FAIL | 3x-ui … is below the minimum 3.6.0. |
3X-UI را بهروز کنید. |
| warn | could not determine the 3x-ui version. / 3x-ui installation was not detected. |
مرجع خطاها را ببینید. |
| ok | Panel subThemeDir points at Row-Template. |
— |
| warn | panel subThemeDir is empty; set it to … |
فعال کنید. |
| warn | panel subThemeDir does not point at Row-Template. |
فعال کنید — یا اگر عمداً از پوستهٔ دیگری استفاده میکنید، دست نزنید. |
| — | subThemeDir not checked (sqlite3/DB unavailable). |
برای بررسی آن، sqlite3 را نصب کنید. |
| نتیجه | خط | چه باید کرد |
|---|---|---|
| ok | PasarGuard detected. |
— |
| warn | PasarGuard was not detected on this host. |
verify را روی سرور پنل و با root اجرا کنید. |
| ok | PasarGuard selects the Row-Template page, and the placed page is current. |
— |
| FAIL | PasarGuard's Row-Template page is out of step (see above); … |
خط panel pasarguard: بالای آن را بخوانید، سپس از منوی مدیریت دوباره اعمالش کنید (5 — Activate / Re-apply theme). |
| ok | Live check: the running PasarGuard uses the Row-Template page. |
کانتینرِ در حال اجرا تنظیم را میخواند و صفحه را میبیند. |
| — | Live check skipped (not available for this panel layout). |
نصب از سورس: کانتینری برای پرسیدن نیست. |
| warn | the running PasarGuard does not use the Row-Template page yet; restart the panel. |
pasarguard restart و سپس دوباره بررسی کنید. |
| warn | PasarGuard does not select the Row-Template page; activate it from the manager. |
فعال کنید. |
| warn | the PasarGuard configuration could not be read. |
/opt/pasarguard/.env را بررسی کنید و verify را با root اجرا کنید. |
| warn | panel pasarguard: … admin(s) set their own subscription page (sub_template); … |
کاربران آن ادمینها صفحهٔ خودشان را میبینند. |
| warn | panel pasarguard: the panel's 'disable subscription template' setting is on, … |
مرورگرها اشتراک خام را میگیرند: این تنظیم را در PasarGuard خاموش کنید. |
| نتیجه | خط | چه باید کرد |
|---|---|---|
| ok | Rebecca detected. |
— |
| warn | Rebecca was not detected on this host. |
verify را روی سرور پنل و با root اجرا کنید. |
| FAIL | panel rebecca: this is Rebecca 0.0.x, the Python edition … |
ایمیج Docker مربوط به Rebecca نمیتواند صفحه را ارائه کند: Rebecca نسخهٔ 1.x را با نصبکنندهٔ باینریاش (rebecca-binary.sh) نصب کنید. |
| ok | Rebecca selects the Row-Template page, and the placed page is current. |
— |
| FAIL | Rebecca's Row-Template page is out of step (see above); … |
خط panel rebecca: بالای آن را بخوانید، سپس از منوی مدیریت دوباره اعمالش کنید (5 — Activate / Re-apply theme). |
| — | Live check skipped (not available for this panel layout). |
در Rebecca همیشه: تنظیماتش را در هر درخواست میخواند، پس بررسی بالا همان است که اهمیت دارد. |
| warn | Rebecca does not select the Row-Template page; activate it from the manager. |
فعال کنید، یا اگر عمداً صفحهٔ دیگری انتخاب کردهاید دست نزنید. |
| — | Panel selection not checked (activation is manual here: …) |
MySQL/MariaDB یا نبود sqlite3: خودتان Settings → Subscription → Templates را بررسی کنید. |
| warn | panel rebecca: … admin(s) override the subscription page for their own users; … |
کاربران آن ادمینها صفحهٔ خودشان را میبینند. |
| نتیجه | خط | چه باید کرد |
|---|---|---|
| FAIL | the panel components are missing; run 'row-template update'. |
PasarGuard و Rebecca از طریق فایلهای همراه نصبکننده بررسی میشوند. row-template update را اجرا کنید. |
| warn | leftover staging files found under the install root (possible interrupted update). |
پایین را ببینید. |
بررسیهای زنده
verify یک اشتراک را دو بار بهصورت محلی درخواست میکند — یک بار مانند مرورگر و یک بار مانند اپ VPN. در 3X-UI اشتراکی برای آزمایش را از طریق sqlite3 پیدا میکند؛ در PasarGuard و Rebecca که Row-Template هرگز خودش دنبال لینک اشتراک نمیگردد، این بررسیها فقط وقتی اجرا میشوند که لینکی را در RT_SMOKE_URL بدهید:
RT_SMOKE_URL='https://your-panel.example.com/sub/…' row-template verify
| نتیجه | خط | چه باید کرد |
|---|---|---|
| ok | Live render check: a browser receives Row-Template. |
— |
| warn | live render check: the panel served its built-in page. |
پنل هنوز Row-Template را ارائه نمیکند — فعالسازی را بررسی کنید و پنل را ریاستارت کنید. |
| warn | live render check: the subscription endpoint was unreachable. |
پورت اشتراک بهصورت محلی پاسخ نداد. بررسی کنید پنل در حال اجرا و سرویس اشتراکش فعال باشد. |
| — | Live render check skipped (no test URL available). |
کاری لازم نیست. |
| ok | VPN-client check: normal subscription content is served. |
— |
| warn | VPN-client check: HTML was returned instead of subscription content. |
اپهای VPN بهجای پیکربندی، صفحه را دریافت میکردند. بررسی کنید پراکسی یا CDN جلوی پنل درخواست را بازنویسی نکند. |
لینک اشتراکی را که برای RT_SMOKE_URL به کار میبرید هرگز در گزارش خطا نگذارید.
فایلهای موقت باقیمانده
هر فایلی که Row-Template جایگزین میکند اول با نامی موقت که با .stage. یا .live. شروع میشود نوشته و سپس جایگزین میشود. اگر فرمانی نیمهکاره رها شود — برق سرور برود یا پردازه کشته شود — ممکن است یکی از آنها باقی بماند. این فایلها هرگز استفاده نمیشوند. وقتی هیچ فرمان row-template در حال اجرا نیست، حذفشان بیخطر است (در PasarGuard و Rebecca از /etc/row-template استفاده کنید):
find /etc/3x-ui/sub_templates/row-template -maxdepth 2 \( -name '.stage.*' -o -name '.live.*' \) -print -delete
سپس row-template verify را دوباره اجرا کنید.