Friedrich the Great!

Установка

Пошаговая инструкция по развёртыванию Friedrich

Установка

Требования

  • Сервер с Ubuntu 22.04+ и Docker
  • Домен с DNS-записью, указывающей на сервер
  • Slack Workspace с правами на создание приложений
  • OpenWebUI с моделью qwen2.5:14b (или другой LLM)

1. Настройка Slack App

  1. Создайте приложение на api.slack.com/apps
  2. OAuth & Permissions → Bot Token Scopes:
    • channels:history — читать сообщения в каналах
    • chat:write — писать сообщения
    • app_mentions:read — читать @упоминания
  3. Event Subscriptions → включите и укажите Request URL: https://ваш-домен/slack/events
  4. Subscribe to bot events:
    • message.channels — все сообщения в каналах
    • app_mention — @упоминания
  5. Установите приложение в workspace
  6. Скопируйте 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 -f

4. Проверка

  1. Пригласите бота в канал: /invite @Friedrich
  2. Напишите: Фридрих, привет!
  3. Бот должен ответить в треде

Важные моменты

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 и буферизацией тела запроса.

On this page