پاسارگارد
مهاجرت

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

خلاصه تغییرات کلیدی:

بخشقبلبعد
اسم سرویسmarzbanpasarguard
ایمیج Dockergozargah/marzban:latestpasarguard/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 استاندارد بوده. تنظیمات شخصی ممکنه نیاز به مراحل اضافی داشته باشن.