← Все гайды AI Release
EN Подписаться на @ai_release1

Как запустить AstrBot на Android без ПК: пошаговая установка через PRoot, NapCat и WebUI

Обновлено: 27.10.2026 · AI Release · @ai_release1
Как запустить AstrBot на Android без ПК: пошаговая установка через PRoot, NapCat и WebUI

TL;DR

Схема, которую собираем: Termux → PRoot (Ubuntu) → AstrBot (мозг + WebUI) ← WebSocket → NapCat (мост к QQ) → QQ-аккаунт.

Требования и подготовка

Иллюстрация к разделу «Требования и подготовка»
Иллюстрация к разделу «Требования и подготовка»

Пример: на практике последовательность выглядит так — pkg install proot-distro → proot-distro install ubuntu → proot-distro login ubuntu → и вы уже в приглашении root@localhost:~#, где работают обычные apt и pip.

Чек-лист перед стартом:

Шаг 1. Termux и PRoot: готовим Linux-окружение

Что сделать: обновить Termux, поставить proot-distro, установить Ubuntu и войти в него.

Зачем: AstrBot и NapCat — обычные Linux-приложения с зависимостями (Python, Node.js, библиотеки сборки). В родном Termux они конфликтуют с системными пакетами; отдельный rootfs даёт чистую среду, которую можно снести одной командой.

pkg update && pkg upgrade -y
pkg install -y proot-distro git
proot-distro install ubuntu
proot-distro login ubuntu

Пример: после proot-distro install ubuntu в консоли идёт скачивание rootfs и строка вида Installing Ubuntu...; после login приглашение меняется на root@localhost:~# — это признак, что вы внутри Ubuntu, а не в Termux.

Как проверить: внутри Ubuntu выполните

cat /etc/os-release | head -n 2

Ожидаемый вывод — две строки с NAME="Ubuntu" и VERSION=.... Если видите Termux или Android — вы всё ещё снаружи, повторите proot-distro login ubuntu.

Дальше поставьте базовый набор (внутри Ubuntu, не в Termux):

apt update && apt upgrade -y
apt install -y python3 python3-pip python3-venv git curl nano
python3 --version

python3 --version печатает версию вида Python 3.x.y — номер сверьте с требованиями AstrBot в его документации, слишком старый Python ломает установку зависимостей.

Почему это работает: PRoot подменяет корень файловой системы (chroot-подобно) через ptrace, поэтому apt считает, что работает на обычном Ubuntu, хотя ядро — андроидное.

Шаг 2. Установка AstrBot и NapCat

Иллюстрация к разделу «Шаг 2. Установка AstrBot и NapCat»
Иллюстрация к разделу «Шаг 2. Установка AstrBot и NapCat»

Два компонента ставятся в одном и том же Ubuntu-окружении.

Что сделать (2A — AstrBot): клонировать репозиторий, создать виртуальное окружение, поставить зависимости, запустить.

Зачем: venv (виртуальное окружение Python — изолированная папка с пакетами) защищает от конфликта версий библиотек между AstrBot и системным Python.

cd ~
git clone https://github.com/AstrBotDevs/AstrBot.git
cd AstrBot
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python3 main.py

Пример: при первом старте AstrBot создаёт папку data/ с конфигами и печатает в лог адрес WebUI. Порт по умолчанию — сверьтесь с логом и документацией (в разных сборках он может отличаться); в логе будет строка вида http://0.0.0.0:<порт>.

Как проверить: не закрывая Termux, откройте браузер на том же телефоне и зайдите на http://127.0.0.1:<порт-из-лога>. Откроется страница входа в WebUI. 127.0.0.1 работает потому, что PRoot использует сетевое пространство Android — веб-сервер внутри Ubuntu виден браузеру телефона как локальный. Логин/пароль по умолчанию указаны в документации AstrBot — смените их сразу после входа.

Что сделать (2B — NapCat): поставить Node.js и NapCat в том же Ubuntu, затем авторизовать QQ-аккаунт по QR.

apt install -y nodejs npm
node --version
git clone https://github.com/NapNeko/NapCatQQ.git
cd NapCatQQ
npm install

Зачем: NapCat — это реализация QQ-протокола на Node.js: он подключается к серверам QQ и транслирует сообщения в WebSocket, который слушает AstrBot.

Пример: запуск идёт скриптом из репозитория; точное имя файла запуска и флаги сверьтесь с README NapCat на момент установки — они меняются между релизами. При первом запуске в консоли печатается QR-код (ASCII-графика). Сканируете его приложением QQ: Настройки → сканер QR. Для headless-режима без графики может потребоваться виртуальный дисплей — сверьтесь с документацией.

Как проверить: после сканирования в логе появляется сообщение об успешном входе и строка с портом WebUI NapCat (по умолчанию часто указывают 6099 — сверьтесь с логом). Откройте http://127.0.0.1:<порт> в браузере телефона — увидите панель NapCat с информацией об аккаунте.

Связка компонентов:

КомпонентРольЧто делать с портом
AstrBot WebUIпанель настройкиоткрыть `http://127.0.0.1:<порт>`
AstrBot WS-сервер (aiocqhttp)принимает сообщения от NapCatуказать в NapCat
NapCatмост к QQуказать `ws://127.0.0.1:<порт-сервера>`

Точные номера портов сверьтесь с WebUI и документацией — в инструкции они намеренно даны как плейсхолдеры.

Шаг 3. Связка NapCat ↔ AstrBot и проверка ответа

Иллюстрация к разделу «Шаг 3. Связка NapCat ↔ AstrBot и проверка ответа»
Иллюстрация к разделу «Шаг 3. Связка NapCat ↔ AstrBot и проверка ответа»

Что сделать: в WebUI AstrBot добавить платформу QQ (адаптер aiocqhttp) и указать хост/порт/токен, затем в NapCat прописать тот же адрес WebSocket.

Зачем: пока компоненты не соединены, AstrBot не получает ни одного сообщения — в панели всё выглядит рабочим, но бот молчит.

Пример конфигурации (значения — плейсхолдеры):

{
  "platform": "aiocqhttp",
  "ws_host": "127.0.0.1",
  "ws_port": 6199,
  "ws_token": "замените-на-длинную-случайную-строку"
}

Фрагмент иллюстративный: точные имена ключей и структуру файла конфига сверьтесь с документацией вашей версии AstrBot — проще заполнять те же поля через форму в WebUI, там они подписаны.

Как проверить:

1. В WebUI AstrBot статус платформы QQ должен смениться на «подключено/online» — сверьтесь с индикатором в интерфейсе.

2. В логах NapCat появляется строка об успешном подключении к WebSocket-серверу.

3. Отправьте с другого QQ-аккаунта сообщение боту: привет. Приходит ответ от LLM — значит, цепочка QQ → NapCat → AstrBot → LLM → AstrBot → NapCat → QQ работает.

Почему это работает: AstrBot выступает WebSocket-сервером, NapCat — клиентом. Оба в одном сетевом пространстве Android, поэтому 127.0.0.1 соединяет их без проброса портов и без внешнего IP.

Если нужен локальный LLM вместо облачного — варианты запуска на самом телефоне разобраны в гайде Как запустить ИИ-модель локально на Android: приложения и настройка.

Возможные проблемы и решения

Проблема. apt install не находит пакеты

apt update
apt install -y python3 python3-pip python3-venv

Проблема. AstrBot падает при старте с жалобой на отсутствующий модуль

cd ~/AstrBot
source venv/bin/activate
pip install -r requirements.txt
which python3
python3 main.py

which python3 должен вывести путь, содержащий /AstrBot/venv/bin/python3.

Проблема. NapCat не подключается к AstrBot

grep -i websocket ~/NapCatQQ/*.log

В строке подключения должны совпадать host, port и токен.

Резюме и следующие шаги

Вы получили автономный стек на телефоне: Ubuntu в PRoot, AstrBot с WebUI и NapCat, подключённый к QQ-аккаунту. Дальше имеет смысл настроить системный промпт и набор плагинов в WebUI AstrBot, а также проверить, что бот выживает при выключенном экране (Настройки → Батарея).

FAQ

Нужен ли root на Android?

Нет. PRoot работает в userspace обычного пользователя, root-права не требуются.

Можно ли обойтись без ПК?

Да, вся установка выполняется в Termux и браузере на самом телефоне. ПК нужен только если вы хотите отлаживать код через IDE.

Будет ли бот работать при заблокированном экране?

Только если отключена оптимизация батареи для Termux. Иначе Android выгружает процесс, и соединение с QQ обрывается — симптом: бот перестаёт отвечать через несколько минут после блокировки.

Что делать, если QQ-аккаунт заблокировали за автоматизацию?

Используйте отдельный аккаунт для бота и не рассылайте массовые сообщения. Точные правила и ограничения — сверьтесь с документацией NapCat и условиями QQ; гарантий обхода блокировок не существует.

🤖 Кратко для ИИ