Обновление Chatwoot в Docker с сохранением работы вебсокетов
Эта инструкция описывает обновление Chatwoot с корректной работой вебсокетов.
1. Перейдите в директорию установки Chatwoot, где находятся файлы `docker-compose.yml` и `.env`: ```bash cd /opt/chatwoot ```
2. Убедитесь, что в `.env` правильно настроен URL Redis с паролем:
``` REDIS_URL=redis://:<YOUR_REDIS_PASSWORD>@redis:6379/0 ```
Замените `<YOUR_REDIS_PASSWORD>` на ваш реальный пароль.
3. Проверьте, что в `docker-compose.yml` Rails и Sidekiq используют эту переменную:
```yaml
environment:
- REDIS_URL=redis://:<YOUR_REDIS_PASSWORD>@redis:6379/0
- NODE_ENV=production
- RAILS_ENV=production
- INSTALLATION_ENV=docker
```
4. Остановите и удалите текущие контейнеры, включая тома, чтобы очистить кэш и избежать проблем с вебсокетами:
```bash docker-compose down -v ```
5. Скачайте последний образ Chatwoot:
```bash docker pull chatwoot/chatwoot:latest ```
6. Поднимите контейнеры заново:
```bash docker-compose up -d ```
7. Выполните подготовку базы данных и конфигураций:
```bash docker-compose run --rm rails bundle exec rails db:chatwoot_prepare ```
8. После завершения убедитесь, что контейнеры запущены:
```bash docker ps ```
9. Проверьте логи Rails и Sidekiq на наличие ошибок:
```bash docker-compose logs -f rails docker-compose logs -f sidekiq ```
10. Откройте веб-интерфейс Chatwoot и проверьте работу вебсокетов.
Рекомендации:
- Не изменяйте закомментированные строки в `.env` — они не влияют на работу.
- Любые изменения пароля Redis должны быть синхронизированы и в `.env`, и в `docker-compose.yml`.
- После обновления Chatwoot всегда используйте `docker-compose down -v`, чтобы избежать проблем с вебсокетами.
- Обновления базы данных выполняются только через `rails db:chatwoot_prepare`.
- Проверяйте работу вебсокетов после каждой перезагрузки контейнеров.