Установка¶
Uroboros работает везде, где есть Python 3.10+. При первом запуске он пишет в консоль ссылку на
веб-панель входа: там вводятся api_id и api_hash (их выдают на https://my.telegram.org/apps),
номер, код и пароль 2FA — или сканируется QR-код. Вход в консоли: --cli.
Данные лежат в data/ рядом с программой (путь меняется переменной UROBOROS_DATA).
Там сессия Telegram: это доступ к аккаунту, не показывайте её никому.
Параметры запуска¶
| Параметр | Что делает |
|---|---|
--cli |
вход в консоли вместо веб-панели |
--host, --port |
адрес веб-панели входа (по умолчанию 127.0.0.1:8080), или UROBOROS_WEB_HOST, UROBOROS_WEB_PORT |
UROBOROS_DATA |
каталог данных (по умолчанию ./data) |
UROBOROS_API_ID, UROBOROS_API_HASH |
данные приложения Telegram вместо config.json |
UROBOROS_BOT_TOKEN |
свой inline-бот вместо созданного автоматически |
Обновление¶
.update скачивает новости канала, показывает список изменений и ждёт подтверждения (.update -f — сразу).
Новая версия ставится вместе с зависимостями; если они не встали или новая версия не запускается, git
возвращается на прежнюю версию, и бот работает дальше.
.update channel beta— каждый коммит в ветке, на которой стоит бот (по умолчанию):master— стабильная,dev— разработка;.update channel stable— только релизы (теги);.update notify off— не присылать раз в сутки уведомление о новой версии.
Если Uroboros поставлен через pip, .update берёт новую версию с PyPI: канал stable — только релизы,
beta — и версии .devN. Не встала или не запускается — возвращается прежняя.
Ветка бота:
.dev— на какой ветке бот и какая версия;.dev on— перейти на сборку изdev: новые возможности до проверки, версия с-dev;.dev off— вернуться на стабильнуюmaster.
Перед переключением бот показывает, какая версия встанет, и ждёт подтверждения (-f — сразу). Если зависимости
новой ветки не встали или она не запускается, бот возвращается на прежнюю ветку. В Docker ветка выбирается при
сборке образа.
Через pip¶
Без git и скриптов установки — в любой системе с Python 3.10+:
Данные будут в uroboros/data. Обновление — .update (с PyPI). Ветки dev и master в такой установке
недоступны: для сборок из dev ставьте из git.
Linux и VPS¶
Скрипт проверит Python и git, склонирует репозиторий в ~/uroboros (другой каталог — UROBOROS_DIR),
создаст виртуальное окружение и запустит бота. На Debian/Ubuntu может понадобиться
sudo apt install git python3 python3-venv.
На VPS без браузера откройте панель входа через SSH-туннель со своего компьютера:
и перейдите по ссылке из консоли у себя в браузере.
Служба systemd¶
Установит user service uroboros. Первый вход сделайте вручную (cd ~/uroboros && .venv/bin/python -m uroboros),
затем:
systemctl --user enable --now uroboros
journalctl --user -u uroboros -f
sudo loginctl enable-linger $USER
Последняя команда нужна, чтобы служба работала, когда вы не залогинены. .restart и .update
перезапускают процесс на месте, systemd это не мешает.
Termux (Android)¶
В Termux скрипт поставит python, git и rust: Rust нужен, чтобы собрать pydantic-core для inline-бота,
сборка занимает несколько минут. Панель входа откройте в браузере на том же телефоне.
Автозапуск при включении телефона — через приложение Termux:Boot:
Termux:Boot запускает бота без терминала, поэтому первый вход нужно сделать вручную.
Docker¶
git clone https://github.com/asykixd/uroboros && cd uroboros
docker compose up -d
docker compose logs -f
Ссылка на панель входа появится в логах; панель доступна только с этой машины (127.0.0.1:8080).
Данные — в ./data. Обновление: git pull && docker compose up -d --build (.update в Docker не работает).
Windows¶
- Поставьте Python 3.10+ (галочка «Add python.exe to PATH») и Git.
- В PowerShell:
git clone https://github.com/asykixd/uroboros
cd uroboros
python -m venv .venv
.venv\Scripts\python -m pip install -e .
.venv\Scripts\python -m uroboros
Откройте ссылку из консоли в браузере. Окно консоли должно оставаться открытым: .restart и .update
перезапускают бота в нём же.
macOS¶
brew install python git
curl -fsSL https://raw.githubusercontent.com/asykixd/uroboros/master/install.sh | sh
Или вручную, как на Linux: git clone, python3 -m venv .venv, .venv/bin/pip install -e ., .venv/bin/python -m uroboros.