Marzban به پاسارگارد
این راهنما برای نسخههای beta-3
و پایینتر Marzban هست.
این راهنما بهتون کمک میکنه تا اطلاعات، تنظیمات و اکانتهای کاربریتون رو از Marzban به پاسارگارد منتقل کنید، بدون اینکه چیزی از دست بره.
پیشنیازها
⚠️ مهم: همیشه قبل از شروع فرآیند مهاجرت، یه بکآپ کامل از اطلاعاتتون داشته باشید.
- مطمئن شید که به سرورتون دسترسی root دارید.
- یه بکآپ از نصب فعلی Marzban داشته باشید.
- چک کنید که Docker و Docker Compose نصب باشن.
مراحل مهاجرت
1. سرویسهای Marzban رو متوقف کنید
اول از همه، همه کانتینرهای در حال اجرای Marzban رو متوقف کنید:
دستورات توقف سرویس
cd /opt/marzban
docker compose down
2. اسم پوشه اصلی رو عوض کنید
اسم پوشه اصلی Marzban رو به PasarGuard تغییر بدید:
دستور تغییر نام پوشه
sudo mv /opt/marzban /opt/pasarguard
3. اسم پوشه دیتا رو عوض کنید
اسم پوشه دیتا رو هم تغییر بدید:
دستور تغییر نام پوشه دیتا
sudo mv /var/lib/marzban /var/lib/pasarguard
4. اسم پوشه MySQL رو عوض کنید (اگه استفاده میکنید)
اگه از MySQL استفاده میکنید و یه پوشه اختصاصی برای دیتابیس Marzban دارید:
دستور تغییر نام پوشه MySQL
sudo mv /var/lib/mysql/marzban /var/lib/mysql/pasarguard
5. متغیرهای محیطی رو بهروز کنید
برید به پوشه جدید PasarGuard و فایل محیطی رو بهروز کنید:
cd /opt/pasarguard
همه مسیرهای اشاره شده تو فایل .env
رو با یه دستور ساده بهروز کنید:
sudo sed -i 's|/var/lib/marzban|/var/lib/pasarguard|g' .env
اگه از نسخه قدیمی (0.8.4 یا پایینتر) استفاده میکنید، باید درایور SQL رو هم تغییر بدید:
بهروزرسانی درایور SQLite
❌ قدیمی
SQLALCHEMY_DATABASE_URL = "sqlite:///db.sqlite3"
✅ جدید
SQLALCHEMY_DATABASE_URL = "sqlite+aiosqlite:///db.sqlite3"
بهروزرسانی درایور MySQL
❌ قدیمی
SQLALCHEMY_DATABASE_URL = "mysql+pymysql://root:DB_PASSWORD@127.0.0.1/pasarguard"
✅ جدید
SQLALCHEMY_DATABASE_URL = "mysql+asyncmy://root:DB_PASSWORD@127.0.0.1/pasarguard"
6. فایل Docker Compose رو بهروز کنید
فایل docker-compose.yml
رو برای نشون دادن مسیرهای جدید بهروز کنید. باید این فایل رو دستی ویرایش کنید:
sudo nano docker-compose.yml
تغییرات Docker Compose
اینجا یه مقایسه هست که تغییرات لازم رو نشون میده:
❌ قبل (Marzban)
services:
marzban:
image: gozargah/marzban:latest
restart: always
env_file: .env
network_mode: host
volumes:
- /var/lib/marzban:/var/lib/marzban
depends_on:
- mysql
mysql:
image: mysql:lts
restart: always
env_file: .env
network_mode: host
command: --bind-address=127.0.0.1 --mysqlx-bind-address=127.0.0.1 --disable-log-bin
environment:
MYSQL_DATABASE: marzban
volumes:
- /var/lib/mysql/marzban:/var/lib/mysql
✅ بعد (PasarGuard)
services:
pasarguard:
image: pasarguard/panel:latest
restart: always
env_file: .env
network_mode: host
volumes:
- /var/lib/pasarguard:/var/lib/pasarguard
depends_on:
- mysql
mysql:
image: mysql:lts
restart: always
env_file: .env
network_mode: host
command: --bind-address=127.0.0.1 --mysqlx-bind-address=127.0.0.1 --disable-log-bin
environment:
MYSQL_DATABASE: marzban
volumes:
- /var/lib/mysql/pasarguard:/var/lib/mysql
خلاصه تغییرات کلیدی:
بخش | قبل | بعد |
---|---|---|
اسم سرویس | marzban | pasarguard |
ایمیج Docker | gozargah/marzban:latest | pasarguard/panel:latest |
ولوم برنامه | /var/lib/marzban:/var/lib/marzban | /var/lib/pasarguard:/var/lib/pasarguard |
ولوم MySQL | /var/lib/mysql/marzban:/var/lib/mysql | /var/lib/mysql/pasarguard:/var/lib/mysql |
7. دسترسیهای فایل رو بهروز کنید
مطمئن شید که دسترسیهای لازم برای پوشههای جدید رو دارید:
دستورات بهروزرسانی دسترسی
sudo chown -R $USER:$USER /opt/pasarguard
sudo chmod -R 755 /opt/pasarguard
8. اسکریپت مدیریت پاسارگارد رو نصب کنید
اسکریپت مدیریت پاسارگارد رو برای مدیریت راحتتر نصب کنید:
دستور نصب اسکریپت
sudo bash -c "$(curl -sL https://github.com/PasarGuard/scripts/raw/main/pasarguard.sh)" @ install-script
این اسکریپت دستورات کاربردی برای مدیریت نصب پاسارگارد بهتون میده.
9. پاسارگارد رو راهاندازی کنید
حالا پاسارگارد رو با تنظیمات جدید راهاندازی کنید:
دستور راهاندازی
pasarguard up
10. مهاجرت رو بررسی کنید
چک کنید که همه سرویسها درست کار میکنن:
دستورات بررسی
pasarguard status
آدرس پنلتون رو باز کنید تا مطمئن شید همه چی اوکیه.
عیبیابی
مشکلات رایج
💡 نکته: بیشتر مشکلات با بررسی دسترسیهای فایل و تنظیمات مسیرها حل میشن.
1. اجازه دسترسی ندارید (Permission Denied) مطمئن شید که دستورات رو با دسترسیهای مناسب (sudo در صورت نیاز) اجرا میکنید.
2. مشکلات اتصال به دیتابیس اگه از MySQL استفاده میکنید، چک کنید که مسیرهای دیتابیس و اطلاعات ورود درست بهروز شده باشن.
3. تداخل پورتها مطمئن شید که هیچ سرویس دیگهای از همون پورتها استفاده نمیکنه.
4. متغیرهای محیطی گم شده
دوباره چک کنید که همه متغیرهای محیطی تو فایل .env
درست بهروز شده باشن.
برگشت به نسخه قبل
⚠️ بازگشت اضطراری: اگه با مشکلات جدی مواجه شدید و نیاز به بازگشت به نسخه قبل دارید
# پاسارگارد رو متوقف کنید
cd /opt/pasarguard
docker compose down
# پوشههای اصلی رو برگردونید
sudo mv /opt/pasarguard /opt/marzban
sudo mv /var/lib/pasarguard /var/lib/marzban
sudo mv /var/lib/mysql/pasarguard /var/lib/mysql/marzban # اگه استفاده میکنید
# فایلهای docker-compose.yml و .env اصلی رو از بکآپ برگردونید
# بعد Marzban رو راهاندازی کنید
marzban up
بعد از مهاجرت
بعد از مهاجرت موفق:
- 📊 مانیتورینگ رو بهروز کنید: اگه ابزارهای مانیتورینگ دارید، اونها رو به مسیرهای جدید متصل کنید.
- 💾 بکآپها رو بهروز کنید: مطمئن شید که اسکریپتهای بکآپتون برای بکآپ گرفتن از پوشههای جدید بهروز شدن.
- 🧪 همه قابلیتها رو تست کنید: همه قابلیتهای پنل رو کامل تست کنید تا مطمئن شید همه چی درست کار میکنه.
پشتیبانی
🔗 لینکها
- گروه بحث و گفتگو: Telegram
- مشکلات: اگه تو طول مهاجرت به مشکلی برخوردید، یه issue بسازید.
📝 نکته: این راهنما فرض رو بر این میذاره که نصب Marzban استاندارد بوده. تنظیمات شخصی ممکنه نیاز به مراحل اضافی داشته باشن.