Инструкция по установке программы «СиБот»
1. Что подготовить
- сервер с ОС на базе Linux, установленные Docker и Docker Compose;
- доменное имя и TLS-сертификат для него;
- ключ авторизации GigaChat API;
- токен бота MAX (и, при необходимости, Telegram).
2. Установка
- Скопировать каталог программы на сервер.
- Создать файл настроек:
cp .env.example .envи заполнить:
| Параметр | Значение |
|---|---|
POSTGRES_PASSWORD |
пароль базы данных |
PUBLIC_BASE_URL |
внешний адрес сервиса, например
https://bot.example.ru |
ADMIN_USER, ADMIN_PASSWORD |
вход в панель администратора |
GIGACHAT_AUTH_KEY |
ключ авторизации GigaChat API |
MAX_BOT_TOKEN, MAX_WEBHOOK_SECRET |
токен бота MAX и произвольная секретная строка |
TELEGRAM_BOT_TOKEN,
TELEGRAM_WEBHOOK_SECRET |
то же для Telegram; пусто — канал выключен |
WIDGET_ORIGINS |
адреса сайтов, где размещён виджет, через запятую |
STAFF_CHANNEL, STAFF_CHAT_ID |
куда слать уведомления о заявках |
Секретную строку можно получить командой
openssl rand -hex 32. 3. Запустить:
docker compose -f docker-compose.prod.yml up -d --build.
При первом запуске таблицы базы данных создаются автоматически. 4.
Настроить обратный прокси с TLS на порт 127.0.0.1:8000 —
пример для nginx в deploy/nginx.conf.example.
3. Голосовой режим (по желанию)
В файле .env задать WITH_SPEECH=1 и
пересобрать:
docker compose -f docker-compose.prod.yml up -d --build.
При сборке в образ ставятся утилита ffmpeg, библиотеки Vosk и русские
модели распознавания и озвучки (около 1,5 ГБ). Параметр
SPEECH_TTS_SPEAKER (0–4) выбирает голос. Без этого шага
программа работает только текстом.
4. Проверка
curl https://ваш-домен/healthвозвращает{"status":"ok"};- по адресу
https://ваш-домен/открывается страница-пример с виджетом; - по адресу
https://ваш-домен/adminоткрывается панель администратора; - в журнале (
docker compose logs api) есть строки «вебхук MAX зарегистрирован».
5. Размещение виджета на сайте
Добавить перед закрывающим тегом </body>:
<script src="https://ваш-домен/widget.js" data-title="Помощник" defer></script>Необязательный параметр data-color задаёт цвет, например
data-color="#1d4ed8".
6. Обновление и резервное копирование
- обновление: заменить файлы программы и выполнить
docker compose -f docker-compose.prod.yml up -d --build; - резервная копия базы:
docker compose exec postgres pg_dump -U bot bot > backup.sql.