В конце 2025 в сети появился интересный репозиторий ClawdBot.
Clawdbot is a personal AI assistant you run on your own devices. It answers you on the channels you already use (WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, iMessage, Microsoft Teams, WebChat), plus extension channels like BlueBubbles, Matrix, Zalo, and Zalo Personal. It can speak and listen on macOS/iOS/Android, and can render a live Canvas you control. The Gateway is just the control plane — the product is the assistant.
Персональный ИИ помощник, с возможностью локального развертывания, доступу ко всем системным ресурсам, и кучей расширений для доступа к сторонним сервисам. Выглядит как мечта — практически собственный локальный ИИ, с возможностью работы в чате Telegram. Хотя в мыслях сразу побежали надписи «проблемы с безопасностью», ведь это может быть подвержено и промпт-инъекция, как только есть подключения к сторонним API появляется рычаг для воздействия или как минимум утекания ключей. Любопытство не обошло меня стороной и решил поставим и поразбираться, как это работает, все ли там так красиво. На выходных была обнаружена незадействованная Raspberry PI 5 8GB, кружка вкусного кофе и желание покопаться в этой софтинке. В этом материале я опишу процесс установки и настройки.
Подготовка R PI5
Для чистоты эксперимента заливаю новый образ Raspberry OS 64bit на флешку с помощью утилиты Raspberry Pi Imager. Есть хорошая инструкция на официальном сайте проекта.
Я сразу активирую доступ по SSH чтобы работать через удаленное подключение.

И далее уже работаем непосредственно с консолью «малинки», для этого подойдет Putty, который качается с официального сайта. Я покажу, как выполнить установку через Docker, хотя есть и возможность прямого развертывания.
- Для начала обновим ОС
sudo apt update && sudo apt full-upgrade -ysudo reboot - Доставим дополнительные пакеты для удобства
sudo apt install -y ca-certificates gnupg lsb-release htop iotop ncdu - И проверим версию сборки, чтобы быть уверенными при дальнейших действиях
uname -m
В ответ должны увидеть aarch64
- Устанавливаем Docker. Сделаем это через официальный скрипт, чтобы сразу подтянулись все необходимые пакеты
curl -fsSL https://get.docker.com | sudo sh - После установки выполняем проверку
docker --version
- Чтобы дальше не было мучений с командой sudo сразу добавим группу для docker
sudo usermod -aG docker $USER
newgrp docker - И запускаем проверку, чтобы убедиться в корректности работы Docker. Если при запуске не возникло ошибок, то продолжаем.
docker run hello-world
- Проверяем версию docker compose
docker compose version
Если оказалось, что он не установился, то доставляем командойsudo apt install -y docker-compose-plugin - Для удобства работы добавляем автозапуск Docker
sudo systemctl enable docker
sudo systemctl start docker - Не забываем проверить cgroup
docker info | grep -i cgroup
В ответ должно быть:Cgroup Driver: systemd
Cgroup Version: 2
Но вполне может быть и предупреждение:
Это предупреждение говорит о том, что Docker не может ограничивать память и объем swap контейнеров. Для долгоживущих приложений лучше это исправить. Для этого необходимо внести дополнительные параметры в cmdline.txt. В этом файле все пишется в одну строку, переносы запрещены.sudo nano /boot/firmware/cmdline.txt
Нужно справа в конец строки добавить новые параметры:cgroup_enable=memory cgroup_memory=1 swapaccount=1
Чтобы закрыть nano используем комбинацию Ctrl+X -> Y.
И после этого перезагружаемся:sudo reboot
После перезапуска повторяем проверкуsudo docker info|grep -i memory
Для малинки с 8Гб ОЗУ на борту отображается Total Memory: 7.87 GiB
- Проверяем работоспособность и производительность:
docker run --rm -it alpine uname -a
Если быстро загружается и запускается, то все в порядке.
Разбираемся с репозиторием ClawdBot
- Создаем структуру папок под весь проект
mkdir -p ~/docker/{clawdbot,monitoring,db} - Скачиваем из git официальный репозиторий
cd ~/docker/clawdbot
git clone https://github.com/clawdbot/clawdbot.git .
Если пройтись по репозиторию, то видно, что уже есть файлыDockerfile, docker-compose.yml, docker-setup.sh, то есть проект уже изначально рассчитан на развертывание в контейнере.
Поскольку проект предполагает работу с API, то необходимо создание .env файла.
Далее есть два пути, один из которых это воспользоваться предзаготовленным скриптом docker-setup.sh, где прописана сборка образа, запуск онбординга и запись токенов в .env файл. Второй путь это собрать и запустить вручную. Ради любопытства я пойду ручным путем. - Создадим директории под конфигурационные и рабочие файлы
mkdir -p ~/docker/clawdbot/{config,workspace} - Создаем .env файл в папке ~/docker/clawbot
nano .env
—————— - Перед сборкой образа нужно немного скорректировать .dockerignore. Открываем его в редакторе и ссылки
apps/
vendors/
заменяем на!apps/shared/
!apps/shared/ClawdbotKit/
!apps/shared/ClawdbotKit/Tools/CanvasA2UI/**
!vendor/a2ui/
!vendor/a2ui/renderers/lit/** - Собираем образ
docker build -t clawdbot:local .
или пересобираем образ, если уже пробовалиdocker build --no-cache -t clawdbot:local . - В мое случае при сборке начали появляться проблемные расширения, причем одинаковые и при запуске docker-setup.sh. Ошибка при этом возникает на команде RUN pnpm ui:install.
Для решения этой проблемы я добавил папку с пакетами и исключил проблемное расширение memory-core.
Версия pnpm-workspace.yaml после редактирования:
После чего успешно завершается пересборка образа. - Запускаем онбординг и настраиваем все необходимые ключи
docker compose run --rm clawdbot-cli onboard
В моем случае я добавил ключ для OpenAI API и Telegram.
В конце нас ждет сообщение
- Запускаем шлюз
docker compose up -d clawdbot-gateway
- Проверяем что все работает
docker compose ps
docker compose logs -f clawdbot-gateway
Также можно проверить статус командамиdocker compose run --rm clawdbot-cli status --alldocker compose run --rm clawdbot-cli health - И мы готовы открыть web-приложение. Можно сделать шлюз через tailscale, либо биндинг на локальный порт. Поскольку у меня это в локальной сети, то буду получать с хоста по в таком формате:
http://127.0.0.1:18789/
