Skip to content

nik20z/moonraker-telegram-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Инструкция по установке и настройке Moonraker Telegram Bot

В данной инструкции описан процесс настройки бота на удаленном сервере Ubuntu 24.04.3 LTS для управления принтером Flashforge AD5X. В моём варианте docker-compose.yml отсутствует контейнер spoolman. Запускаются только 2 контейнера: сам бот - bot1_moonraker-telegram-bot_1 и сервис для очистки старых таймлапсов (старше 10 дней) - bot1_cron_1.

Ссылки


1. Установка Docker и зависимостей

Обновите систему и установите Docker:

apt update
apt upgrade -y
apt install docker.io docker-compose docker apparmor -y

2. Настройка сетевых портов

Включите и настройте межсетевой экран (UFW):

sudo ufw status
sudo ufw enable
sudo ufw allow 7125/tcp comment 'ZBot printer communication'
sudo ufw allow 8080/tcp comment 'ZBot camera streaming'

3. Конфигурация SSH сервера

Отредактируйте файл /etc/ssh/sshd_config, добавив или раскомментировав строки:

GatewayPorts yes
AllowTcpForwarding yes

Перезагрузите SSH сервис после внесения изменений:

sudo systemctl restart ssh

4. Создание пользователя и структуры каталогов

4.1 Создайте пользователя:

adduser tbot
usermod -a -G docker tbot

4.2 Перейдите под пользователя tbot:

su - tbot

4.3 Создайте необходимые каталоги и файлы:

mkdir ~/.ssh
mkdir ~/bot1
mkdir -p ~/bot1/{config,log,timelapse,timelapse_finished}
chmod 777 ~/bot1/log ~/bot1/config ~/bot1/timelapse ~/bot1/timelapse_finished
touch ~/bot1/log/telegram.log
chmod 666 ~/bot1/log/telegram.log

5. Копирование файлов конфигурации

Скопируйте следующие файлы в указанные пути (например, с помощью WinSCP):

docker-compose.yml → /home/tbot/bot1/

ff5m.sh → /home/tbot/bot1/

telegram.conf → /home/tbot/bot1/config/

Настройка файла telegram.conf В файле telegram.conf измените следующие параметры. Если сервер с ботом и принтер находятся в одной сети, то вместо 127.0.0.1 пропишите IP-адрес принтера.

[bot]
server: 127.0.0.1:7125
bot_token: 0000000000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  # Получить у @BotFather в Telegram
chat_id: 0000000000  # Узнать ID можно у бота @GetMyIDBot

Важно о chat_id: Можно заполнить позже. После запуска бота (шаг 8) отправьте ему любое сообщение. Затем впишите полученный ID в telegram.conf и перезапустите бота командой docker-compose restart. Команду обязательно выполнять из-под пользователя tbot в директории бота (cd ~/bot1).

[camera]
host: http://127.0.0.1:8080/?action=stream
host_snapshot: http://127.0.0.1:8080/?action=snapshot

6. Настройка SSH ключей

Примечание: Если сервер и принтер находятся в одной локальной сети, этот пункт можно пропустить.

6.1 Добавьте публичный ключ:

cat > ~/.ssh/authorized_keys

Вставьте содержимое ключа из файла mod_data/ssh.pub.txt с принтера и нажмите Enter для сохранения.

6.2 Настройка прав доступа (при необходимости)*:

exit
sudo chmod 600 /home/tbot/.ssh/authorized_keys
sudo chmod 700 /home/tbot/.ssh/
su - tbot

7. Настройка принтера

На принтере запустите макрос ZSSH_ON с необходимыми параметрами:

  • SSH_SERVER - IP удаленного SSH сервера (подставить свой).
  • SSH_PORT - порт удаленного SSH сервера (22).
  • SSH_USER - имя пользователя на удаленном сервере (tbot).
  • VIDEO_PORT - порт на удаленном сервере для видео (8080).
  • MOON_PORT - порт на удаленном сервере для Moonraker (7125).
  • REMOTE_RUN - команда для перезапуска бота на удаленном сервере. Используйте скрипт ff5m.sh в формате ./ff5m.sh bot1, где bot1 — каталог с ботом.

Или выполните команду через консоль Fluidd/Mainsail, подставив свой IP_АДРЕС_СЕРВЕРА:

ZSSH_ON SSH_SERVER=IP_АДРЕС_СЕРВЕРА SSH_PORT=22 SSH_USER=tbot VIDEO_PORT=8080 MOON_PORT=7125 REMOTE_RUN="./ff5m.sh bot1"

8. Запуск контейнера

cd ~/bot1
docker-compose up -d

Настройка камеры:

ZMOD позволяет подключать практически любую камеру через USB. Подробнее о настройке: https://github.com/ghzserg/zmod/wiki/Zmod_ru#camera_on

Может совпадение, но у меня долго не получалось подключить камеру, и по итогу она заработала после перезагрузки принтера вместе с подключенной камерой*

📝 Примечания

  • Убедитесь, что все порты (7125, 8080) открыты в брандмауэре

  • Для перезапуска бота используйте: docker-compose restart (из директории ~/bot1)

  • Логи бота находятся в: ~/bot1/log/telegram.log

About

Это пример настройки Teleegram bot на удаленном сервере (VDS) для управления принтером Flashforge

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages