پرش به مطلب اصلی

دستورهای مفید

مجموعه‌ای از دستورها برای بهره‌برداری روزمره از XLADA. اگر خلاف آن گفته نشده باشد، نمونه‌ها روی سرور پنل و از دایرکتوری /opt/xlada اجرا می‌شوند، جایی که فایل docker-compose.yml قرار دارد.

سرویس‌ها در یک فایل compose توصیف شده‌اند: xpanel (پنل)، xpanel-db (PostgreSQL)، xpanel-redis (Valkey) و xpanel-subpage اختیاری (صفحه اشتراک). پورت‌های پنل و صفحه اشتراک به 127.0.0.1 مقید شده‌اند — nginx آن‌ها را به بیرون ارائه می‌دهد.

پنل​

cd /opt/xlada

docker compose ps # وضعیت سرویس‌های xpanel، xpanel-db، xpanel-redis
docker compose logs -f xpanel # لاگ‌های پنل به‌صورت زنده
docker compose logs --tail=100 xpanel-db
docker compose restart xpanel # راه‌اندازی مجدد فقط پنل
docker compose up -d # اعمال تغییرات .env

همان لاگ‌ها را بدون compose می‌توان به‌راحتی مستقیم دید:

docker logs -f xpanel
docker logs --since 30m xpanel

راه‌اندازی مجدد کامل استک بدون از دست رفتن داده:

docker compose down && docker compose up -d
خطر

هرگز پرچم -v را به docker compose down اضافه نکنید: والیوم‌ها را همراه با پایگاه داده و همه کاربران حذف می‌کند. ترتیب به‌روزرسانی ایمن — در بخش به‌روزرسانی.

عملیات اضطراری (مثلاً بازنشانی رمز عبور سوپرادمین) را CLI پنل انجام می‌دهد:

docker exec -it xpanel cli

فهرست کامل — در بخش Rescue CLI.

توجه

پس از ویرایش .env دستور docker compose up -d را اجرا کنید: compose کانتینرهای تغییرکرده را از نو می‌سازد و متغیرها را دوباره می‌خواند. دستور docker compose restart محیط را دوباره نمی‌خواند — اگر METRICS_USER یا دامنه‌ها را تغییر داده‌اید، این کافی نیست.

سرویس‌های داخلی​

پنل داده‌ها را در PostgreSQL و کش را در Valkey نگه می‌دارد. بررسی هر دو:

docker exec -it xpanel-db pg_isready -U xpanel -d xpanel
docker exec -it xpanel-redis valkey-cli ping

پاسخ‌های مورد انتظار — accepting connections و PONG.

پایگاه داده​

دامپ گرفتن پیش از به‌روزرسانی یا ویرایش دستی — تنها راه مطمئن برای بازگردانی است. دامپ درون کانتینر گرفته می‌شود، بنابراین نیازی به نصب pg_dump و psql روی هاست نیست و فایل backup-...sql در دایرکتوری جاری ایجاد می‌شود.

docker exec xpanel-db pg_dump -U xpanel xpanel > backup-$(date +%F).sql

بازیابی:

docker exec -i xpanel-db psql -U xpanel -d xpanel < backup-2026-01-01.sql

کنسول تعاملی:

docker exec -it xpanel-db psql -U xpanel -d xpanel
کارپرس‌وجو
تعداد کاربرانSELECT count(*) FROM users;
اندازه پایگاه دادهSELECT pg_size_pretty(pg_database_size('xpanel'));
آخرین رکوردهای ممیزیSELECT * FROM admin_audit_log LIMIT 10;
توجه

فیلترهای مربوط به مدیر و نتیجه را برای ژورنال اقدامات راحت‌تر می‌توان در رابط کاربری دید — صفحه Audit Log — نه در psql.

نود​

نود یک کانتینر جداگانه روی سرور پروکسی است، بنابراین دستورها همان‌جا اجرا می‌شوند، جایی که نود اجرا شده است:

docker logs -f xpanel-node # لاگ نود و بررسی SECRET_KEY
docker exec -it xpanel-node xlogs # لاگ‌های Xray-core
docker exec -it xpanel-node cli --clear-logs

پاک‌سازی لاگ‌های Xray را می‌توان از پنل هم اجرا کرد: صفحه Logs، بخش «Node system logs». نود چرخش فایل را انجام می‌دهد، بدون راه‌اندازی مجدد Xray — اتصال‌های فعال قطع نمی‌شوند. جزئیات — در بخش نصب نود.

پورت‌ها​

ss -tlnp | grep -E ':(3000|3001|3010|2222)\b' # چه چیزی به پورت‌های XLADA گوش می‌دهد
nc -vz 203.0.113.10 2222 # NODE_PORT از سرور پنل

بررسی پنل به‌صورت محلی و از بیرون:

curl -sI http://127.0.0.1:3000
curl -s -o /dev/null -w '%{http_code}\n' https://panel.example.com/api/auth/status

لازم نیست پورت 2222 را به کل اینترنت باز کنید: یک قاعده firewall روی IP پنل کافی است. برعکس، پورت‌های پروکسی با پیکربندی Xray تعیین می‌شوند و باید برای کلاینت‌ها باز باشند.

نکته

NODE_PORT را از سرور پنل بررسی کنید، نه از مرورگر: پنل خودش به نود متصل می‌شود و در دسترس بودن پورت از اینترنت هیچ چیزی را اثبات نمی‌کند.

گواهی‌ها​

certbot certificates # چه چیزی صادر شده و تا چه تاریخی
certbot renew --dry-run # بررسی تمدید خودکار
certbot --nginx -d panel.example.com # صدور گواهی
systemctl list-timers | grep certbot # آیا تایمر تمدید فعال است

پس از ویرایش پیکربندی nginx همیشه سینتکس را بررسی کنید:

nginx -t && systemctl reload nginx

متریک‌ها​

متریک‌های Prometheus روی 127.0.0.1:3001 و پشت basic auth ارائه می‌شوند. نام کاربری و رمز عبور از همان متغیرهای METRICS_USER و METRICS_PASS گرفته می‌شوند که هنگام راه‌اندازی پنل استفاده می‌شوند:

source /opt/xlada/.env
curl -s http://127.0.0.1:3001/metrics -u "$METRICS_USER:$METRICS_PASS" | head
هشدار

پورت 3001 نباید به بیرون باز باشد. اگر متریک‌ها را یک Prometheus خارجی جمع می‌کند، آن را از طریق تونل SSH یا یک پروکسی جداگانه به 127.0.0.1:3001 هدایت کنید، نه اینکه پورت را در firewall باز کنید.

گام‌های بعدی​