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
Сводка ключевых изменений:
Секция | До | После |
---|---|---|
Имя сервиса | 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. Установите скрипт управления 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. Пользовательские конфигурации могут потребовать дополнительных шагов.