Это старая версия документа!
Установка Chatwoot в Docker на Ubuntu (продолжение)
Шаг 4: Клонирование репозитория Chatwoot
# Создание директории для Chatwoot в /opt sudo mkdir -p /opt/chatwoot # Изменение владельца папки на текущего пользователя sudo chown $USER:$USER /opt/chatwoot # Переход в созданную директорию cd /opt/chatwoot # Клонирование репозитория git clone https://github.com/chatwoot/chatwoot.git . # Переход на стабильную версию (опционально) git checkout main
Шаг 5: Настройка переменных окружения
# Убедитесь, что находитесь в директории Chatwoot cd /opt/chatwoot # Копирование примера конфигурации cp .env.example .env # Редактирование файла конфигурации nano .env
Основные параметры в файле .env:
# Redis URL REDIS_URL=redis://redis:6379 # База данных POSTGRES_HOST=postgres POSTGRES_USERNAME=postgres POSTGRES_PASSWORD=your_strong_password POSTGRES_DATABASE=chatwoot # Secret key (сгенерируйте уникальный) SECRET_KEY_BASE=your_secret_key_here # Rails environment RAILS_ENV=production # Frontend URL FRONTEND_URL=http://localhost:3000 # Настройки почты (опционально) MAILER_SENDER_EMAIL=chatwoot@yourdomain.com SMTP_ADDRESS=smtp.gmail.com SMTP_PORT=587 SMTP_EMAIL=your_email@gmail.com SMTP_PASSWORD=your_app_password
Шаг 6: Генерация секретного ключа
# Генерация SECRET_KEY_BASE openssl rand -hex 64
<note important>Скопируйте сгенерированный ключ в файл .env как значение для SECRET_KEY_BASE.</note>
Шаг 7: Создание Docker Compose файла
Создайте файл docker-compose.yml в директории /opt/chatwoot:
# Убедитесь, что находитесь в директории Chatwoot cd /opt/chatwoot # Создайте файл docker-compose.yml nano docker-compose.yml
Содержимое файла:
- docker-compose.yml
version: '3.8' services: postgres: image: postgres:13 environment: POSTGRES_DB: chatwoot POSTGRES_USER: postgres POSTGRES_PASSWORD: your_strong_password volumes: - postgres_data:/var/lib/postgresql/data restart: unless-stopped redis: image: redis:6-alpine volumes: - redis_data:/data restart: unless-stopped chatwoot-app: image: chatwoot/chatwoot:latest env_file: .env environment: - POSTGRES_HOST=postgres - REDIS_URL=redis://redis:6379 depends_on: - postgres - redis ports: - "3000:3000" volumes: - ./storage:/app/storage restart: unless-stopped chatwoot-worker: image: chatwoot/chatwoot:latest env_file: .env environment: - POSTGRES_HOST=postgres - REDIS_URL=redis://redis:6379 depends_on: - postgres - redis command: bundle exec sidekiq volumes: - ./storage:/app/storage restart: unless-stopped volumes: postgres_data: redis_data:
Шаг 8: Запуск контейнеров
# Убедитесь, что находитесь в директории Chatwoot cd /opt/chatwoot # Создание и запуск контейнеров docker-compose up -d # Проверка статуса контейнеров docker-compose ps # Просмотр логов (опционально) docker-compose logs -f
Шаг 9: Инициализация базы данных
# Убедитесь, что находитесь в директории Chatwoot cd /opt/chatwoot # Выполнение миграций базы данных docker-compose exec chatwoot-app bundle exec rails db:create docker-compose exec chatwoot-app bundle exec rails db:migrate # Заполнение начальными данными docker-compose exec chatwoot-app bundle exec rails db:seed
Шаг 10: Создание администратора
# Убедитесь, что находитесь в директории Chatwoot cd /opt/chatwoot # Создание первого пользователя-администратора docker-compose exec chatwoot-app bundle exec rails runner ' u = User.new( email: "admin@example.com", password: "password123", password_confirmation: "password123", name: "Admin User" ) u.skip_confirmation! u.save! account = u.accounts.create!(name: "My Company") AccountUser.create!(user: u, account: account, role: :administrator) '
Шаг 11: Проверка установки
- Откройте браузер и перейдите на
http://your-server-ip:3000 - Войдите используя созданные учетные данные администратора
- Настройте свою первую учетную запись
Дополнительные настройки
Настройка SSL (опционально)
Для продакшн использования рекомендуется настроить SSL через Nginx или Traefik.
Резервное копирование
# Переход в директорию Chatwoot cd /opt/chatwoot # Создание бэкапа базы данных docker-compose exec postgres pg_dump -U postgres chatwoot > chatwoot_backup.sql # Бэкап файлов загрузок tar -czf storage_backup.tar.gz ./storage
Обновление
# Переход в директорию Chatwoot cd /opt/chatwoot # Остановка сервисов docker-compose down # Обновление образов docker-compose pull # Запуск обновленных контейнеров docker-compose up -d # Выполнение миграций (если необходимо) docker-compose exec chatwoot-app bundle exec rails db:migrate
Полезные команды
# Переход в директорию Chatwoot (выполнять перед командами ниже) cd /opt/chatwoot # Просмотр логов конкретного сервиса docker-compose logs -f chatwoot-app # Перезапуск всех сервисов docker-compose restart # Остановка всех сервисов docker-compose down # Удаление контейнеров и томов (осторожно!) docker-compose down -v
Устранение неполадок
- Проблемы с подключением к базе данных: Проверьте, что контейнер postgres запущен
- Проблемы с памятью: Убедитесь, что у вас достаточно RAM (минимум 2GB)
- Порт 3000 занят: Измените порт в docker-compose.yml на свободный
<note tip>После успешной установки Chatwoot будет доступен по адресу http://localhost:3000 (или IP-адресу вашего сервера)</note>
Дополнительные настройки для продакшн
Настройка Nginx (рекомендуется)
Создайте файл конфигурации Nginx:
sudo nano /etc/nginx/sites-available/chatwoot
server { listen 80; server_name your-domain.com; location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # WebSocket support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
# Активация конфигурации sudo ln -s /etc/nginx/sites-available/chatwoot /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx
Настройка автозапуска
Создайте systemd service:
sudo nano /etc/systemd/system/chatwoot.service
[Unit] Description=Chatwoot Requires=docker.service After=docker.service [Service] Type=oneshot RemainAfterExit=yes WorkingDirectory=/opt/chatwoot ExecStart=/usr/local/bin/docker-compose up -d ExecStop=/usr/local/bin/docker-compose down TimeoutStartSec=0 [Install] WantedBy=multi-user.target
# Активация сервиса sudo systemctl enable chatwoot.service sudo systemctl start chatwoot.service
Мониторинг и логи
# Просмотр системных логов Chatwoot sudo journalctl -u chatwoot.service -f # Мониторинг ресурсов контейнеров docker stats # Проверка здоровья контейнеров docker-compose ps
<note warning> Важные моменты безопасности:
- Измените пароли по умолчанию в .env файле
- Используйте сильные пароли для базы данных
- Настройте firewall (ufw) для ограничения доступа к портам
- Регулярно обновляйте Docker образы
- Настройте SSL/TLS для продакшн среды
</note>