PasarGuard
Миграция

Marzban к PasarGuard

Это руководство для версий Marzban beta-3 и ниже.

Это руководство поможет вам перенести ваши данные, настройки и пользовательские аккаунты из Marzban в PasarGuard без потери информации.

Предварительные требования

⚠️ Важно: Всегда создавайте полную резервную копию ваших данных перед началом процесса миграции.

  • Убедитесь, что у вас есть 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
Docker образgozargah/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. Установите скрипт управления PasarGuard

Установите скрипт управления PasarGuard для более удобного управления:

Команда установки скрипта

sudo bash -c "$(curl -sL https://github.com/PasarGuard/scripts/raw/main/pasarguard.sh)" @ install-script

Этот скрипт предоставляет полезные команды для управления вашей установкой PasarGuard.

9. Запустите PasarGuard

Теперь запустите PasarGuard с новой конфигурацией:

Команда запуска

pasarguard up

10. Проверьте миграцию

Проверьте, что все сервисы работают правильно:

Команды проверки

pasarguard status

Откройте URL вашей панели, чтобы убедиться, что все работает корректно.

Устранение неполадок

Распространенные проблемы

💡 Совет: Большинство проблем можно решить, проверив права доступа к файлам и конфигурацию путей.

1. Отказано в доступе (Permission Denied) Убедитесь, что вы запускаете команды с соответствующими правами (sudo при необходимости).

2. Проблемы с подключением к базе данных Если вы используете MySQL, проверьте, что пути к базе данных и данные для входа правильно обновлены.

3. Конфликты портов Убедитесь, что никакие другие сервисы не используют те же порты.

4. Отсутствующие переменные окружения Дважды проверьте, что все переменные окружения в файле .env правильно обновлены.

Откат

⚠️ Экстренный откат: Если вы столкнулись с серьезными проблемами и вам нужно вернуться к предыдущей версии

# Остановите PasarGuard
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. Пользовательские конфигурации могут потребовать дополнительных шагов.