vm:chatwoot:01-install

Это старая версия документа!


Установка Chatwoot в Docker на Ubuntu (продолжение)

# Создание директории для 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
# Убедитесь, что находитесь в директории Chatwoot
cd /opt/chatwoot
 
# Копирование примера конфигурации
cp .env.example .env
 
# Редактирование файла конфигурации
nano .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
# Генерация SECRET_KEY_BASE
openssl rand -hex 64

<note important>Скопируйте сгенерированный ключ в файл .env как значение для SECRET_KEY_BASE.</note>

Создайте файл 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:
# Убедитесь, что находитесь в директории Chatwoot
cd /opt/chatwoot
 
# Создание и запуск контейнеров
docker-compose up -d
 
# Проверка статуса контейнеров
docker-compose ps
 
# Просмотр логов (опционально)
docker-compose logs -f
# Убедитесь, что находитесь в директории 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
# Убедитесь, что находитесь в директории 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)
'
  1. Откройте браузер и перейдите на http://your-server-ip:3000
  2. Войдите используя созданные учетные данные администратора
  3. Настройте свою первую учетную запись

Для продакшн использования рекомендуется настроить 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
  1. Проблемы с подключением к базе данных: Проверьте, что контейнер postgres запущен
  2. Проблемы с памятью: Убедитесь, что у вас достаточно RAM (минимум 2GB)
  3. Порт 3000 занят: Измените порт в docker-compose.yml на свободный

<note tip>После успешной установки Chatwoot будет доступен по адресу http://localhost:3000 (или IP-адресу вашего сервера)</note>

Создайте файл конфигурации 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>

  • vm/chatwoot/01-install.1756375655.txt.gz
  • Последнее изменение: 2025/08/28 10:07
  • admin