При обновлении с версий ниже 2.9.2 на 2.10.0 и выше медиа и файлы не сохранятся! Миграция медиа и файлов проводится по запросу. Для проведения миграции файлов обратитесь в коммерческий отдел компании Eltex: eltex@eltex-co.ru.
Резервное копирование с использованием Elph-chat-backup
Для использования запросите Elph-chat-backup у технической поддержки или воспользуйтесь ручным резервным копированием.
Скрипт elph-chat-backup.sh создает резервные копии баз данных и объектов MinIO. Отдельный скрипт setup-cron.sh помогает удобно настроить расписание в crontab для каждого типа бэкапа независимо. Файл config.env хранит параметры для авторизации, директорию для бэкапов и их количество. Скрипт работает с контейнеризированными базами данных и объектным хранилищем.
Возможности скрипта
- Полный дамп MongoDB с использованием
mongodump --archive --gzip; - Дамп каждой пользовательской базы PostgreSQL отдельным сжатым файлом
.sql.gz; - Полное зеркалирование всех бакетов MinIO → архив
.tar.gz; - Автоматическая ротация старых бэкапов (удаление по заданному количеству копий);
- Подробный вывод в консоль (какие базы/файлы созданы, их размеры);
- Отдельный лог ошибок для каждого запуска;
- Безопасное восстановление с предупреждением и подтверждением;
- Поддержка переопределения директории и количества хранимых копий через флаги.
Требования
- Запущенные контейнеры с именами, содержащими
elph-postgres,elph-mongo, elph-minio; MinIOдоступен по http://127.0.0.1:9000;- Установленный клиент MinIO -
mс(MinIO Client); - Наличие актуальных авторизационных данных в файле
config.env; - Права на выполнение docker команд;
- Права на создание директории по пути BACKUP_DIR.
Использование
Убедитесь, что MinIO Client(mc) расположен в /usr/local/bin/mc. MinIO Client поставляется совместно с Elph Chat Backup по пути elph-chat-backup/mc.
Резервное копирование баз данных Chat Server
Резервное копирование выполняется на запущенном Chat Server.
1. Измените параметры для логина к сервисам в файле config.env:
2. Для запуска процесса создания бэкапа выполните команду с указанием одного, нескольких или всех сервисов:
Все сервисы:
bash elph-chat-backup.sh backup --all
Только PostgreSQL:
bash elph-chat-backup.sh backup --postgres
MongoDB + MinIO с переопределением директории и количества копий:
bash elph-chat-backup.sh backup --mongo --minio --dir /opt/backup/elph-chat/ --rotation 14
Автоматический запуск через cron
1. Запустите скрипт настройки:
bash setup-cron.sh
Скрипт задаст несколько вопросов для настройки cron.
2. Проверить конфигурацию cron можно следующей командой:
crontab -e
Восстановление баз данных Chat Server
1. Перед восстановлением баз данных остановите все контейнеры Chat Server кроме elph-minio, elph-mongo и elph-postgres.
docker container stop elph-chat-client elph-chat-server-1 elph-chat-server-2 elph-container-monitor elph-events-webhook elph-file-service elph-keycloak elph-push-gateway elph-redis mini-apps
2. Очистите базу данных PostgreSQL:
docker exec -i elph-postgres psql -U postgres -d template1 -c "DROP DATABASE IF EXISTS mini_apps;" docker exec -i elph-postgres psql -U postgres -d template1 -c "CREATE DATABASE mini_apps;" docker exec -i elph-postgres psql -U postgres -d template1 -c "DROP DATABASE IF EXISTS push_gateway;" docker exec -i elph-postgres psql -U postgres -d template1 -c "CREATE DATABASE push_gateway;" docker exec -i elph-postgres psql -U postgres -d template1 -c "DROP DATABASE IF EXISTS postgres;" docker exec -i elph-postgres psql -U postgres -d template1 -c "CREATE DATABASE postgres;"
3. Для запуска процесса восстановления всех сервисов из последнего бэкапа выполните команду:
bash elph-chat-backup.sh restore --all
Для запуска процесса восстановления с указанием сервиса:
bash elph-chat-backup.sh restore --postgres
Для запуска процесса восстановления бэкапа из определенной директории выполните:
bash elph-chat-backup.sh restore --postgres --dir /opt/backup/elph-chat/postgres/20260119-0924/
4. Запустите все контейнеры:
./ecss-elph-chat-server.sh up