ITA - OctoPrint installazione manuale
November 2020 (485 Words, 3 Minutes)
Introduzione
Octoprint è un progetto open source, il codice è ospitato su GitHub, che fornisce un software di controllo per le stampanti 3D.
Octoprint fornisce all’utente un interfaccia web per controllare la stampante 3D collegata via USB , questa permette di sottomettere job, di controllare lo stato di avanzamento del processo di stampa e dei parametri tecnici della stampante collegata; inotlre è integrato il supporto per delle webcam.
Installazione e configurazione
Creazione utente dedicato
Il primo step necessario da seguire è creare l’utente di sistema che eseguirà il servizio:
$ useradd octo
$ cp /etc/skel /home/octo -rv
$ chmod 700 /home/octo
$ chown -R octo. /home/octo
$ usermod -aG uucp,tty octo
Installazione dipendenze
Il secondo passo necessario è:
$ pacman -S wget zip unzip python python-virtualenv base-devel nginx motion
Installazione di OctoPrint
Quella che segue è la procedura che io ho scelto di seguire :
$ su - octo
$ mkdir src
$ cd src
$ wget https://github.com/OctoPrint/OctoPrint/archive/1.4.2.zip
$ unzip 1.4.2.zip -d ../
$ cd ../
$ virtualenv env
$ source env/bin/activate
$ cd OctoPrint-1.4.2/
$ pip install -r requirements.txt
Il metodo riportato dalla documentazione ufficiale è:
$ su - octo
$ virtualenv env
$ source env/bin/activate
$ pip install octoprint
Configurazione del servizio di systemd
Per far funzionare il servizio ho usato due file :
- octoprint.sh : script che gestisce variabili d’ambiente e lancia octoprint
- octoprint.service : file di configurazione di systemd
Lo script di avvio
::::::::::::::
octoprint.sh
::::::::::::::
#!/bin/bash
cd $HOME
source $HOME/env/bin/activate
$HOME/env/bin/octoprint serve --host=127.0.0.1 --port=8080
Il file per systemd service:
::::::::::::::
octoprint.service
::::::::::::::
[Unit]
Description=Octoprint Service
After=network.target
[Service]
Type=simple
User=octo
WorkingDirectory=/home/octo
ExecStart=/home/octo/octoprint.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
Abilitare il servizio ( come utente root ):
$ cp /home/octo/octoprint.service /etc/systemd/system/
$ systemctl daemon-reload
$ systemctl enable --now octoprint
Per accedere al journal del nuovo servizio:
$ journalctl -u octoprint
Configurazione di NGINX
Prima di procedere recuperare questo articolo.
Il file di configurazione da inserire nella cartella dei siti disponibili:
:::::::::::::::::::::::::::
/etc/nginx/sites-availbles/octo.conf
:::::::::::::::::::::::::::
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream "octoprint" {
server 127.0.0.1:5000;
}
upstream "mjpg-streamer" {
server 127.0.0.1:8081;
}
server {
listen 80;
server_name localhost.localdomain;
location / {
proxy_pass http://octoprint/;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
proxy_http_version 1.1;
client_max_body_size 0;
}
location /webcam/ {
proxy_pass http://mjpg-streamer/;
}
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
abilitare il sito:
ln -s /etc/nginx/sites-availbles/octo.conf /etc/nginx/sites-enabled/
Configurazione della webcam
Per fornire lo stream di immagini usiamo motion, bisogna abilitare il funzionamento come demone :
############################################################
# System control configuration parameters
############################################################
# Start in daemon (background) mode and release terminal.
daemon on
ed eventualmente aggiustare i parametri di configurazione del device video:
videodevice /dev/video0
ed infine aggiustiamo i parametri di configurazione dell’immagine:
############################################################
# Image Processing configuration parameters
############################################################
# Image width in pixels.
width 640
# Image height in pixels.
height 480
# Maximum number of frames to be captured per second.
framerate 15
# Text to be overlayed in the lower left corner of images
text_left OCTOPRINT
# Text to be overlayed in the lower right corner of images.
text_right %Y-%m-%d\n%T-%q
L’ultimo step è abilitare e avviare il servizio
systemctl enable --now motion
Inizio all’uso
A questo punto ci si può dedicare alla configurazione di octoprint via la pagina web.
Riferimenti
- https://octoprint.org/
- https://github.com/OctoPrint
- https://en.wikipedia.org/wiki/OctoPrint
- https://linuxconfig.org/how-to-create-systemd-service-unit-in-linux
- https://community.octoprint.org/t/reverse-proxy-configuration-examples/1107
- https://motion-project.github.io/motion_config.html
Quest'opera è distribuita con Licenza Creative Commons Attribuzione - Condividi allo stesso modo 4.0 Internazionale Theme Moonwalk