Установка
Пошаговая инструкция по развёртыванию Friedrich
Установка
Требования
- Сервер с Ubuntu 22.04+ и Docker
- Домен с DNS-записью, указывающей на сервер
- Slack Workspace с правами на создание приложений
- OpenWebUI с моделью qwen2.5:14b (или другой LLM)
1. Настройка Slack App
- Создайте приложение на api.slack.com/apps
- OAuth & Permissions → Bot Token Scopes:
channels:history— читать сообщения в каналахchat:write— писать сообщенияapp_mentions:read— читать @упоминания
- Event Subscriptions → включите и укажите Request URL:
https://ваш-домен/slack/events - Subscribe to bot events:
message.channels— все сообщения в каналахapp_mention— @упоминания
- Установите приложение в workspace
- Скопируйте Bot User OAuth Token (
xoxb-...) и Signing Secret
2. Развёртывание на сервере
# Клонируем или распаковываем проект
cd /opt/slack-ai-agent
# Создаём .env из примера
cp .env.example .env
nano .envЗаполните .env:
SLACK_BOT_TOKEN=xoxb-your-token
SLACK_SIGNING_SECRET=your-signing-secret
LLM_BASE_URL=http://host.docker.internal:3000
LLM_API_KEY=your-jwt-or-api-key
LLM_MODEL=qwen2.5:14b
AGENT_API=http://agent:8000/message
BOT_NAME=фридрих3. Запуск
docker compose up --build -d
docker compose logs -f4. Проверка
- Пригласите бота в канал:
/invite @Friedrich - Напишите:
Фридрих, привет! - Бот должен ответить в треде
Важные моменты
LLM_BASE_URL
Если OpenWebUI работает в Docker на том же сервере, из контейнера agent нельзя обратиться по localhost. Используйте:
http://host.docker.internal:3000— сextra_hostsв docker-compose- Или IP хоста из docker-сети (обычно
172.18.0.1)
Signing Secret
Сейчас проверка подписи отключена (request_verification_enabled=False). Для продакшена нужно починить — возможна проблема с Caddy и буферизацией тела запроса.