* better failure if first run is true

* better conditional for tempusb

* remove camera port selection

* syntax error

* bad break

* add qualifier if udev not set

* fix second cameras. README

* version update
This commit is contained in:
paukstelis
2023-07-01 13:27:07 -04:00
committed by GitHub
parent 9f70670ee8
commit 2b65e03a98
4 changed files with 24 additions and 9 deletions

View File

@@ -1,9 +1,11 @@
Updated June 30, 2023.
Updated July 1, 2023.
Want to support this work? Buy Me a Coffee. https://www.buymeacoffee.com/ppaukstelis.
Need help with octoprint_deploy? Ask on Discord: https://discord.gg/6vgSjgvR6u
# octoprint_deploy 1.0.2 - ALL NEW
# octoprint_deploy 1.0.3 - ALL NEW
* These files provide a bash script for quickly deploying multiple octoprint instances on a single computer. For Linux systems (Ubuntu, Fedora, etc.) it will also install OctoPrint and a video streamer (ustreamer). No need for lots of file editing or complicated Docker compose scripts! A background video on how it generally works from my ERRF2022 talk can be found here: https://www.youtube.com/watch?v=q0iCNl8-kJI&t=15378s
* octoprint_deploy and octoprint_install are being merged! Maintaining two separate scripts was close to twice the amount of work. By merging the scripts many new features have been included, while also providing greater simplicity in setup. For now, the merged script will be called octoprint_deploy and at some point the octoprint_install repository will point here.
* The biggest change is that there is no longer the notion of a single 'template' OctoPrint instance. Now, _any_ previously configured instance can be used as a template when a new instance is created. The choice is up to the user.
@@ -17,17 +19,16 @@ Need help with octoprint_deploy? Ask on Discord: https://discord.gg/6vgSjgvR6u
* Choose `Prepare System` from the menu.
* This will register the OctoPi-created instance in octoprint_deploy.
* You will be prompted for udev detection (only needed if you are adding multiple printers).
* You will be prompted for installing a new streamer. This will be the default streamer for any _additional_ cameras that are installed.
* You will be prompted for installing a new streamer. This will be the default streamer for any _additional_ cameras that are installed. Users of the new OctoPi camera stack can just choose `Skip/None` and setup all cameras manually.
* To add more printers choose `Add Instance` and follow the instructions.
* You will be asked if you want to use an existing instance as a template. This will copy all files from this existing instance to your new instance.
* You will be asked if you want to use an existing instance as a template. This will copy configuration files from this existing instance to your new instance.
* If your printer does not have a serial number (all Creality printers), it will detect and use the physical USB address for udev entries.
* Continue until you have added all the printers you want to use.
* haproxy entries are updated so you can connect via http://octopi.local/instancename
* To add more printers at a later date, just run the script again!
* Want to use a Pi camera? After you have made your instance(s), run the script with `sudo octoprint_deploy/octoprint_deploy.sh picam` and follow the instructions (VERY EXPERIMENTAL).
* General Linux (Ubuntu/Mint/RPiOS/Debian/Fedora/Arch/etc.)
* __You do not need to install OctoPrint using any Wiki instructions, snap, etc. The script will do it all for you.__
* octoprint_deploy uses systemd services, so avoid distros that do not use systemd by default (MX Linux or chroot based systems like Chrome+crouton)
* octoprint_deploy uses systemd services, so avoid distros that do not use systemd by default (MX Linux or chroot based systems like Chrome+crouton). Similarly, LXC containers do not work well with udev rules and USB peripherals, so those should be avoided.
* All commands assume you are operating out of your home directory.
* Install Ubuntu 20+, Mint 20.3+, Debian, DietPi, RPiOS, Armbian, Fedora35+, ArchLinux, or openSUSE on your system (make sure your user is admin for sudo).
* Install git if it isn't already: `sudo apt install git` or `sudo dnf install git` or `sudo pacman -S git` or `sudo zypper in git`.
@@ -35,14 +36,24 @@ Need help with octoprint_deploy? Ask on Discord: https://discord.gg/6vgSjgvR6u
* run the command `sudo octoprint_deploy/octoprint_deploy.sh`.
* Choose `Prepare System` from the menu. Select your distribution type. All deb-based system use the same selection. This will install necessary packages, install OctoPrint, and prompt you to create the first instance.
* You will be asked if you want to use haproxy. This will make your instances available on port 80 e.g. http://hostname.local/instancename/
* You will be asked which streamer you would like to install (ustreamer, mjpg-streamer or camera-streamer). Please note, not all distributions will be compatible with camera-streamer.
* You will be asked which streamer you would like to install (ustreamer, mjpg-streamer or camera-streamer). Please note, not all distributions will be compatible with camera-streamer. __camera-streamer support will be added at a later date__
* You will be prompted if you want to setup the admin user and do the first run wizard via the commandline.
* You will be prompted if you want to install recommended plugins.
* Continue with octoprint_deploy script, choose `Add Instance` and follow the instructions.
* You will be prompted if you want to use a previously created instance as a template for your new instance.
* If your printer does not have a serial number (all Creality printers) it will be detected by the USB port you plugged it in to.
* You can also setup a camera for the instance at this time. Follow the instructions.
* Add as many instances as you have printers, following the instructions.
* To add more printers at a later date, or to add cameras to an instance later, simply run the script again (`sudo octoprint_deploy/octoprint_deploy.sh`) and choose the appropriate option.
* Utility menu - use the utility menu in the script to:
* Check the status of all instances
* Do printer USB port testing
* Sync OctoPrint users from one instances to all other instances
* Share the uploads directory between all instances (all instances have access to the same gcode files)
* Modify which camera streaming software is used (WIP)
* Modify a setting for all instances using the OctoPrint CLI interface (WIP)
* Add/Remove udev rules for printers and cameras
* Generate diagnostic output about octoprint_deploy. __Use this and provide output when you are looking for support__
* Other features from commandline arguments
* Want to get rid of everything? `sudo octoprint_deploy/octoprint_deploy.sh remove`
* Backup and restore files for an instance from the menu, or backup all instances with `sudo octoprint_deploy/octoprint_deploy backup`

View File

@@ -220,7 +220,9 @@ add_camera() {
echo
fi
CAMPORT=$(tail -1 /etc/octoprint_cameras 2>/dev/null | sed -n -e 's/^.*\(port:\)\(.*\)/\2/p')
CAMPORT=$(tail -1 /etc/octoprint_cameras 2>/dev/null | sed -n -e 's/^.*\(port:\) \(.*\)/\2/p')
if [ -z "$CAMPORT" ]; then
CAMPORT=8000
fi

View File

@@ -8,7 +8,7 @@ cyan=$(echo -en "\e[96m")
yellow=$(echo -en "\e[93m")
main_menu() {
VERSION=1.0.1
VERSION=1.0.3
#reset
UDEV=''
TEMPUSB=''

View File

@@ -379,6 +379,8 @@ diagnostics() {
diagnostic_output /etc/octoprint_instances | log
diagnostic_output /etc/octoprint_cameras | log
diagnostic_output /etc/udev/rules.d/99-octoprint.rules | log
ls -la /dev/octo* | log
ls -la /dev/cam* | log
#get all instance status
get_instances false
for instance in "${INSTANCE_ARR[@]}"; do