This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
bdev:octoprint_setup [2021/09/28 15:54] richard |
bdev:octoprint_setup [2021/10/28 15:25] (current) richard |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Octoprint ====== | ====== Octoprint ====== | ||
+ | |||
+ | |||
+ | \\ | ||
+ | |||
+ | |||
+ | The problem with installing manually is if you want to use the Arducam motorized focus camera. | ||
+ | |||
**Installing manually** | **Installing manually** | ||
Line 12: | Line 19: | ||
/ | / | ||
+ | |||
+ | https:// | ||
+ | \\ | ||
+ | |||
+ | **Basic Installation**\\ | ||
+ | |||
+ | < | ||
+ | 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/ | ||
+ | </ | ||
+ | |||
+ | |||
+ | OctoPrint and it's Python dependencies can then be installed using pip: \\ | ||
+ | |||
+ | |||
+ | < | ||
+ | pip install pip --upgrade | ||
+ | pip install octoprint | ||
+ | |||
+ | </ | ||
+ | |||
+ | **Note** | ||
+ | |||
+ | < | ||
+ | If this installs an old version of OctoPrint, pip probably still has something cached. In that case add --no-cache-dir to the install command, e.g. | ||
+ | |||
+ | pip install --no-cache-dir octoprint | ||
+ | To make this permanent, clean pip's cache: | ||
+ | |||
+ | rm -r ~/ | ||
+ | </ | ||
+ | |||
+ | **Starting the server for the first time**\\ | ||
+ | |||
+ | < | ||
+ | pi@raspberrypi: | ||
+ | 2020-11-03 17: | ||
+ | 2020-11-03 17: | ||
+ | 2020-11-03 17: | ||
+ | </ | ||
+ | |||
+ | **Automatic start up**\\ | ||
+ | |||
+ | Download the init script files from OctoPrint' | ||
+ | |||
+ | < | ||
+ | wget https:// | ||
+ | </ | ||
+ | |||
+ | Adjust the paths to your octoprint binary in / | ||
+ | /// | ||
+ | < | ||
+ | ExecStart=/ | ||
+ | </ | ||
+ | |||
+ | Then add the script to autostart using //sudo systemctl enable octoprint.service// | ||
+ | |||
+ | This will also allow you to start/ | ||
+ | |||
+ | < | ||
+ | sudo service octoprint {start|stop|restart} | ||
+ | </ | ||
+ | \\ | ||
+ | |||
+ | **Make everything accessible on port 80** | ||
+ | |||
+ | If you want to have nicer URLs or simply need OctoPrint to run on port 80 (http' | ||
+ | * OctoPrint does not need to run with root privileges, which it would need to to be able to bind to port 80 thanks to Linux privileged port restrictions | ||
+ | * You can make mjpg-streamer accessible on port 80 as well | ||
+ | * You can add authentication to OctoPrint | ||
+ | * Depending on the HAProxy version you can also use SSL to access OctoPrint | ||
+ | |||
+ | Setup on Raspbian is as follows: | ||
+ | < | ||
+ | pi@raspberrypi ~ $ sudo apt install haproxy | ||
+ | </ | ||
+ | I'm using the following configuration in / | ||
+ | |||
+ | < | ||
+ | global | ||
+ | maxconn 4096 | ||
+ | user haproxy | ||
+ | group haproxy | ||
+ | daemon | ||
+ | log 127.0.0.1 local0 debug | ||
+ | |||
+ | defaults | ||
+ | log | ||
+ | mode http | ||
+ | option | ||
+ | option | ||
+ | retries 3 | ||
+ | option redispatch | ||
+ | option http-server-close | ||
+ | option forwardfor | ||
+ | maxconn 2000 | ||
+ | timeout connect 5s | ||
+ | timeout client | ||
+ | timeout server | ||
+ | |||
+ | frontend public | ||
+ | bind :::80 v4v6 | ||
+ | use_backend webcam if { path_beg /webcam/ } | ||
+ | default_backend octoprint | ||
+ | |||
+ | backend octoprint | ||
+ | reqrep ^([^\ :]*)\ /(.*) \1\ /\2 | ||
+ | option forwardfor | ||
+ | server octoprint1 127.0.0.1: | ||
+ | |||
+ | backend webcam | ||
+ | reqrep ^([^\ :]*)\ / | ||
+ | server webcam1 | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | This will make OctoPrint accessible under http://< | ||
+ | \\ | ||
+ | |||
+ | < | ||
+ | sudo service haproxy start | ||
+ | </ | ||
+ | |||
+ | Pointing your browser to http://< | ||
+ | |||
+ | \\ | ||
+ | |||
+ | If everything works you can add the following lines to ~/ | ||
+ | \\ | ||
+ | < | ||
+ | server: | ||
+ | host: 127.0.0.1 | ||
+ | </ | ||
+ | |||
+ | Restart the server. OctoPrint should still be available on port 80, including the webcam feed (if enabled). | ||
+ | \\ | ||
+ | **Updating & changing release channels & rolling back** | ||
+ | \\ | ||
+ | OctoPrint should offer to update itself automatically and also allow you to switch to other Release Channels out of the box.\\ | ||
+ | If for whatever reason you want or need to perform any of this manually however, perform the following commands to install < | ||
+ | < | ||
+ | source ~/ | ||
+ | pip install octoprint==< | ||
+ | </ | ||
+ | |||
+ | e.g. | ||
+ | |||
+ | < | ||
+ | source ~/ | ||
+ | pip install octoprint==1.4.0 | ||
+ | </ | ||
+ | \\ | ||
+ | **Support restart/ | ||
+ | \\ | ||
+ | |||
+ | In the UI, under Settings > Commands, configure the following commands: | ||
+ | * Restart OctoPrint: //sudo service octoprint restart// | ||
+ | * Restart system: //sudo shutdown -r now// | ||
+ | * Shutdown system: //sudo shutdown -h now// | ||
+ | |||
+ | |||
+ | **Optional: Webcam**\\ | ||
+ | If you also want webcam and timelapse support, you'll need to download and compile MJPG-Streamer: | ||
+ | \\ | ||
+ | < | ||
+ | cd ~ | ||
+ | sudo apt install subversion libjpeg62-turbo-dev imagemagick ffmpeg libv4l-dev cmake | ||
+ | git clone https:// | ||
+ | cd mjpg-streamer/ | ||
+ | export LD_LIBRARY_PATH=. | ||
+ | make | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | < | ||
+ | Heads-up | ||
+ | |||
+ | The required packages depend on the underlying version of Debian! The above is what should work on the current Debian Stretch or Buster based images of Raspbian. | ||
+ | |||
+ | For Jessie use: | ||
+ | |||
+ | sudo apt install subversion libjpeg62-turbo-dev imagemagick libav-tools libv4l-dev cmake | ||
+ | For Wheezy or older (you should update...) use: | ||
+ | |||
+ | sudo apt install subversion libjpeg8-dev imagemagick libav-tools libv4l-dev cmake | ||
+ | </ | ||
+ | |||
+ | |||
+ | This should hopefully run through without any compilation errors. You should then be able to start the webcam server using:\\ | ||
+ | |||
+ | < | ||
+ | ./ | ||
+ | </ | ||
+ | |||
+ | For some webcams (including the PS3 Eye) you'll need to force the YUV mode by using the following start command:\\ | ||
+ | < | ||
+ | ./ | ||
+ | </ | ||