Skip to content

دیتابیس ​

دیتابیس مرجع حقیقت است: وضعیت کرنل هر دو ثانیه از روی آن ساخته می‌شود. یکی از دو موتور است:

  • SQLite، پیش‌فرض: یک فایل، /var/lib/wui/wui.db، که تا پنل اجراست فایل‌های -wal و -shm هم کنارش هستند. فقط کاربر خود پنل می‌تواند آن را بخواند.
  • PostgreSQL: موقع نصب با --db postgres انتخاب می‌شود، یا بعداً از w-ui ← 25. اطلاعات اتصال در /etc/wui/db.env است. CI هر دو را نصب و آزمایش می‌کند.

در هر دو حالت، بکاپ همه چیز را با خود دارد و روی پنلی با هر کدام از دو موتور بازگردانی می‌شود.

جدول‌ها ​

جدولچه چیزی را نگه می‌دارد
adminsمالک، مدیران پنل و نمایندگان: هش bcrypt، عامل دوم، و سقف نماینده.
admin_interfacesاینکه هر نماینده کدام تونل‌ها را می‌تواند بفروشد.
settingsهمه‌ی تنظیمات پنل به شکل key / value (panel.*، sub.*، routing.*، engine.*، notify.*).
nodesهمین پنل و پنل‌هایی که مدیریت می‌کند.
interfacesتونل‌ها: کلیدها، ساب‌نت، پورت، حالت، پارامترهای AmneziaWG، مرجع و گواهی سرور OpenVPN، و تنظیمات خاص هر پروتکل.
clientsمشتری‌ها: سقف حجم، انقضا، کاربران (device_limit)، تمدید، وضعیت، توکن اشتراک، شناسه‌ی تلگرام.
accountsیک ردیف برای هر دستگاه مشتری: کلید یا اطلاعات ورودش، آدرسش و آخرین handshake.
account_endpointsهر دستگاه آخرین بار از کجا دیده شده، برای تشخیص اشتراک‌گذاری.
sharing_eventsسابقه‌ی اشتراک‌گذاری: هر باری که دستگاهی از چند جا استفاده شده یا کنار گذاشته شده، که بعد از حذف مشتری هم می‌ماند.
traffic_samplesسابقه‌ی مصرف.
ip_leasesتخصیص آدرس‌ها.
groups، client_groupsگروه‌ها، و اینکه چه کسی در هر کدام است.
hosts، outbounds، outbound_subs، balancers، routing_rulesهمان چیزی که صفحه‌هایشان نشان می‌دهند.
api_tokensهش توکن‌های صادرشده.

کلید امضای نشست‌ها در دیتابیس نیست؛ در /var/lib/wui/keys/ است.

دیدن داخل دیتابیس ​

bash
apt install sqlite3
sqlite3 /var/lib/wui/wui.db '.tables'
sqlite3 -header /var/lib/wui/wui.db 'select id,name,status,quota_bytes,used_bytes from clients;'

خواندن آزاد است. فقط وقتی پنل متوقف است و فقط اگر می‌دانید چرا، در آن بنویسید: پنل هر چه را آنجا بگذارید اعمال می‌کند.

بکاپ ​

بکاپ‌های زمان‌بندی‌شده در /var/backups/wui/ نوشته می‌شوند. تنظیمات ← پشتیبان‌گیری تعیین می‌کند هر چند وقت یک بار و چند تا نگه داشته شوند، و ربات تلگرام می‌تواند هر کدام را دریافت کند. بازگردانی را از پنل یا منو انجام دهید، هیچ‌وقت با باز کردن دستی آرشیو: نمای کلی ← بکاپ و بازگردانی ← انتخاب فایل، یا منوی w-ui backup و گزینه‌ی 2. بکاپ و بازگردانی را ببینید.

انتقال به سرور دیگر ​

روی سرور جدید نصب کنید و یک بکاپ را آنجا بازگردانی کنید. اینترفیس‌ها با همان کلیدها و پورت‌ها بالا می‌آیند، پس وقتی DNS یا آدرس اندپوینت به سرور جدید اشاره کند، کانفیگ مشتری‌ها کار می‌کند. انتقال پنل به سرور دیگر را ببینید.

Released under the AGPL-3.0 License.