Установка Octoprint на любой Linux

Расскажу как поставить оболочку для удаленного управления принтером подключенным к любому ПК с установленным на нем Linux.

Установка Octoprint

В консоли (напрямую или через SSH — без разницы) добавляем пользователя octo, даем ему доступ к sudo. Далее выполняем все команды от его имени:
cd ~
sudo apt update
sudo apt install python3-pip python3-dev python3-setuptools python3-venv git libyaml-dev build-essential
mkdir OctoPrint && cd OctoPrint
python3 -m venv venv
source venv/bin/activate
pip install pip --upgrade
pip install octoprint
sudo usermod -a -G tty octo
sudo usermod -a -G dialout octo

Проверяем как установилось и что все запускается:
~/OctoPrint/venv/bin/octoprint serve

По адресу http://<ваш_IP>:5000 должен запуститься экран начальной настройки Octoprint. Выполните настройку, радуйтесь жизни.

Дополнительные шаги для более спокойной жизни.

Автозапуск сервиса octoprint.

Скачиваем готовый юнит-файл и перемещаем его в /etc/systemd/system/octoprint.service:
wget https://github.com/OctoPrint/OctoPrint/raw/master/scripts/octoprint.service && sudo mv octoprint.service /etc/systemd/system/octoprint.service

Проверяем в нем путь до нашего сервиса. ПО умолчанию там ExecStart=/home/pi/OctoPrint/venv/bin/octoprint, меняем на

User=octo
ExecStart=/home/octo/OctoPrint/venv/bin/octoprint

Обновим список юнитов
sudo systemctl daemon-reload

Включим наш юнит
sudo systemctl enable octoprint

Проверяем как обычный сервис:
sudo service octoprint {start|stop|restart}

Перезапуск Octoprint, перезагрузка и выключение компьютера из меню (обычно добавляются при начальной настройке, но можно потом в настройках изменить):

  • Перезапуск OctoPrint: sudo service octoprint restart
  • Перезагрузка ПК: sudo shutdown -r now
  • Выключение ПК: sudo shutdown -h now

Для того чтобы иметь возможность выполнять эти команды из вебинтерфейса надо дать права на их запуск без запроса пароля. Для этого создайте два файла:

Файл для перезагрузки и выключения:
/etc/sudoers.d/octoprint-shutdown

с содержанием:

octo ALL=NOPASSWD: /sbin/shutdown

и файл перезапуска сервиса
/etc/sudoers.d/octoprint-service

с содержанием:
octo ALL=NOPASSWD: /usr/sbin/service

 
На этом пока всё.
Поделиться ссылкой: