Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Marzban panel backup restore feature #23

Open
wants to merge 27 commits into
base: master
Choose a base branch
from

Conversation

azavaxhuman
Copy link

  • If a compressed file has a .zip extension:
  1. Files are extracted to /root/restore.
  2. Files are automatically copied to destination directories.
  • If a compressed file has a .7z extension:
  1. Files are extracted to /root/restore.
  2. The user is prompted for the target directory for each file. For specific file types, a default directory is suggested.
  • The feature of keeping or deleting temporary files

@erfjab
Copy link
Owner

erfjab commented Aug 23, 2024

درود و وقتتون بخیر
با اجازه تون من فارسی مینویسم.
در ابتدا بابت مشارکت شما متشکرم. کد خوبی نوشتید فقط نیاز به یه سری تغییرات و ارتقا ها داریم.

@erfjab
Copy link
Owner

erfjab commented Aug 23, 2024

بعد از انتخاب ریستور صفحه رو کامل کلیر کنید. و لیست پنل هارو بیارید.
با یه فانکشن اختصاصی از کاربر آدرس لینک دانلود فایل یا آدرس فایل در مسیر سرور رو سوال کنید و نسبت به نوع دریافتی چک کنید ببينيد لینکه یا آدرس و نسبت بهش چک کنید. اگر لینک بود دانلود کنید به یه آدرس مشخص و اونو ذخیره کنید و اگر آدرس بود اون آدرس رو ذخیره کنید. اینجا به چک های بعدی نیاز داریم
اینکه فایل از نوع فشرده سازی های پشتیبانی شده هست یا نه
آیا فایل رمز دارد؟ اگر دارد اون رمز رو دریافت کنید.
و بعد از چک کردن استخراج فایل به مرحله‌ی بعد میتونید برید.

@erfjab
Copy link
Owner

erfjab commented Aug 23, 2024

در مرحله‌ی بعد نیازی به سوال از کاربر نداریم فقط باید پروسه‌ی ریستور شروع بشه و لاگ ها کامل به کاربر نشون داده بشه.
اگر مرزبان نصب نبود نصب کنیم.
سپس فایل داکر و env زو جایگزین کنیم و ریستارت کنیم.
در فایل داکر چک کنیم اگر تمپلیت خاصی ثبت شده اونم انتقال بدیم.
سپس دایرکتوری certs و templates و فایل دیتابیس SQLite و کانفیگ هسته رو چک کنیم و جایگزین کنیم. اگر در env assest های خاصی ثبت شده اونارو هم جایگزین کنیم. سپس مرزبان رو ریستارت کنیم. پس از ریستارت اگر دیتابیس mysql بود فایل بکاپ mysql که با پسوند.sql ذخیره میشه رو پیدا کنیم و ایمپورت کنیم و سپس دوباره مرزبان رو ریستارت کنیم.

باید همه‌ی این موارد کامل و با جزئیات لاگ شوند و به کاربر نمایش داده بشوند. در آخر وضعیت رو به کاربر اعلام می‌کنیم. ارورهایی که دریافت شد و فایل هایی که انتقال داده شد...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants