Инструкция
ВАЖНО! Перед обновлением на v5.2.x необходимо иметь версию Swarmica не ниже v5.1.x
Подготовка
1. Для обновления проверьте, что в конфигурационном файле .env поставлена версия:
~# grep VERSION .env
SW_FRONTEND_VERSION=v5.2.0
SW_BACKEND_VERSION=v5.2.0
SW_HELPCENTER_VERSION=v5.2.0
2. Отредактируйте файл docker-compose.yml, чтобы отразить необходимые изменения:
- Для сервиса
frontendзамените параметрdepends_onнаdjangoи убедитесь, что роутинг (правило .rule в лейблах) указывает только на Host, если есть дополнительные параметры - удалите их.
frontend:
image: reg.gl.swd.im/swarmica/frontend:${SW_FRONTEND_VERSION}
depends_on:
- django
restart: always
volumes:
- ./robots.txt:/usr/share/nginx/html/robots.txt:ro
- swarmica_static:/admin_static:ro
- swarmica_ugc:/attachments:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.frontend-router.entrypoints=web-secure"
- "traefik.http.routers.frontend-router.rule=Host(`${SW_HOSTNAME}`)"
- "traefik.http.routers.frontend-router.tls.certresolver=letsencrypt"
- "traefik.http.routers.frontend-router.priority=10"
- "traefik.http.routers.frontend-router.middlewares=secure-headers,compression"
- После секции
celeryworkerдобавьте еще один сервисcelerybeat:
celerybeat:
<<: *django
restart: always
depends_on:
- postgres
- redis
command: /start-celerybeat
labels:
- "traefik.enable=false"
- В секции
traefikзамените параметрdepends_onнаfrontend:
...
traefik:
image: traefik:latest
depends_on:
- frontend
restart: always
...
- Если вы планируете использовать SEO-оптимизированный публичный портал базы знаний, то добавьте сервис helpcenter:
helpcenter:
image: reg.gl.swd.im/swarmica/helpcenter:${SW_HELPCENTER_VERSION}
restart: always
depends_on:
- django
env_file:
- .env
volumes:
- .env:/app/.env
labels:
- "traefik.enable=true"
- "traefik.http.services.helpcenter.loadbalancer.server.port=4000"
- "traefik.http.routers.helpcenter-router.rule=Host(`${SW_HOSTNAME}`) && (PathPrefix(`/category`)||PathRegexp(`^/article/.*$`)||PathPrefix(`/_next`)||PathPrefix(`/help`)||Path(`/robots/sitemap.xml`))"
- "traefik.http.routers.helpcenter-router.priority=11"
- "traefik.http.routers.helpcenter-router.entrypoints=web-secure"
- "traefik.http.routers.helpcenter-router.middlewares=secure-headers,compression"
- "traefik.http.routers.helpcenter-router.service=helpcenter"
- "traefik.http.routers.helpcenter-router.tls.certresolver=letsencrypt"
Если вы включили helpcenter, то необходимо добавить переменную SW_HELPCENTER_VERSION=v5.2.0 (см. выше) и в переменную FEATURES добавить __helpcenter
Обновление
Будет прерывание сервиса на несколько минут, рекомендуется выполнять обновление в часы, когда использование системы минимально
Выполните обновление с перезагрузкой системы:
docker compose pull
docker compose down
docker compose up -d
После обновления
После того, как все контейнеры запустятся и сервис станет доступен через веб-интерфейс, выполните пост-апгрейдные шаги:
1. Запустите команду пост-старт, чтобы обновить файлы статики, индексы поиска и выполнить другие необходимые процедуры:
docker exec --env-file .env -it swarmica-django-1 python manage.py post_start
Эта команда может занять долгое время, в зависимости от количества данных в системе.
2. Запустите команды восстановления шаблонов бота:
docker exec --env-file .env -it swarmica-django-1 python manage.py restore_bot_messages
docker exec --env-file .env -it swarmica-django-1 python manage.py restore_bot_messages -k greeting,ticket_closed
3. Запустите команду, которая перенесет для всех опубликованных статей текущие значения автора в редактора:
docker exec --env-file .env -it swarmica-django-1 python manage.py migrate_article_publisher
4. Запустите команду, которая исправит неверно сохраненные метрики:
docker exec --env-file .env -it swarmica-django-1 python manage.py aggregated_metric_ticket_status_duration 500
docker exec --env-file .env -it swarmica-django-1 python manage.py aggregated_metric_timelog 500
5. Запустите команду создания индекса поиска по значением кастомных полей тикета (это оптимизирует время поиска по списку тикетов):
docker exec --env-file .env -it swarmica-django-1 python manage.py update_aggregated_custom_fields
6. Если вы пользуетесь Нейропоиском для агентов, то запустите следующую команду, чтобы добавить черновики и непроверенные статьи в индекс ИИ-ассистента:
docker exec --env-file .env -it swarmica-django-1 python manage.py update_ai_assistant_search_index
7. Запустите очистку неиспользуемых данных:
docker system prune -a
ВАЖНО! Убедитесь, что все контейнеры успешно запустились, перед запуском этой команды
✨ Основные улучшения
- 🤝 Интеграции и автоматизация
- Поддержка сценариев для ботов мессенджеров и управление шаблонами сообщений
- Исходящие вебхуки и почтовые сообщения
- Механизм автоматических действий по событию и расписанию
- Автоматизация скриптов с запуском по расписанию или триггерам (runtime scripts).
- 🤖 AI-агент
- Виртуальный AI-агент в тикетах и чатах.
- Настройка виртуального агента на конкретный канал и/или тикет/чат.
- 📚 Статьи и база знаний
- Возможность связывать статьи с задачами в issue-трекерах и добавлять комментарии.
- Отделение роли публикующего Редактора и Автора для статей.
- 🎨 UI и UX
- Вставка и поиск шаблонов быстрого ответа по горячей клавише (
#-вставка). - Экспорт тикета в PDF и HTML
- Быстрая проверка дубликатов тикетов
- Объединение нескольких тикетов в один
- Возможность копировать вложения при форке тикета или комментария.
- Возможность скачивать все вложения из комментариев одним кликом.
- Денормализация кастомных полей тикетов для ускорения поиска.
- Вставка и поиск шаблонов быстрого ответа по горячей клавише (
🔧 Исправленные ошибки
- 🗄 Тикеты
- Исправлены ошибки при очистке состояния выбранных тикетов.
- Исправлены ошибки обновления названия организации и отображения статуса тикета.
- Исправлена логика работы WhatsApp-бота
- Исправлено отображение иконок, кнопок и скроллов в чатах (в т.ч. Firefox).
- Исправлено поведение при создании комментариев из внешних трекеров.
- 📧 Email
- Исправлена валидация email-адресов (нельзя использовать
;и,). - Исправлена проверка отправителя с доменом разрешенных в CC
- Исправлена валидация email-адресов (нельзя использовать
- 📚 Статьи и QA
- Исправлена привязка ответственного при отвязке статьи от тикета.
- Исправлена установка издателя при миграции статей.
- Исправлен расчёт QA score (учёт правил и карт).
- 🛡 Права и роли
- Роль Сотрудник может писать комментарии без учета обязательных кастомных полей
- Исправлена логика возврата identity в OTP.
- 📊 Фильтры и поиск
- Разделение
uidsиnamesв экспорте фильтров (Excel).
- Разделение