This commit is contained in:
paukstelis
2022-06-08 13:11:45 -04:00
parent bfb25de4d5
commit d3eea334f6
2 changed files with 17 additions and 12 deletions

View File

@@ -1,4 +1,4 @@
Updated May 2022. Updated June 8, 2022.
Want to support this work? Buy Me a Coffee. https://www.buymeacoffee.com/ppaukstelis. Want to support this work? Buy Me a Coffee. https://www.buymeacoffee.com/ppaukstelis.
Need help with octoprint_deploy? You can open issues here or ask on Discord: https://discord.gg/6vgSjgvR6u Need help with octoprint_deploy? You can open issues here or ask on Discord: https://discord.gg/6vgSjgvR6u
# octoprint_deploy # octoprint_deploy
@@ -22,11 +22,12 @@ As of 02/22 there is no longer a need to download a specific image file.
* Continue until you have added all the printers you want to use. * 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/ (trailing slash is needed). * haproxy entries are updated so you can connect via http://octopi.local/instancename/ (trailing slash is needed).
* Please note, haproxy entries are NOT used for webcams once you use this system. Connect to them via hostname:port. * Please note, haproxy entries are NOT used for webcams once you use this system. Connect to them via hostname:port.
* General Linux (Ubuntu/Mint/RPiOS/Debian/Fedora/etc/) * 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 for you.__ * __You do not need to install OctoPrint using any Wiki instructions, snap, etc. The script will do it for you.__
* Basic guide video here: https://youtu.be/1YINWQ5fNn0 * Basic guide video here: https://youtu.be/1YINWQ5fNn0
* Install Ubuntu 18-22.X, Mint 20.3+, Debian, DietPi, RPiOS, Armbian, or Fedora35+ on your system (make sure your user is admin for sudo). * All commands assume you are operating out of your home directory.
* Install git if it isn't already: `sudo apt install git` or `sudo dnf install git`. * Install Ubuntu 18-22.X, Mint 20.3+, Debian, DietPi, RPiOS, Armbian, Fedora35+, or ArchLinux 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`.
* run the command `git clone https://github.com/paukstelis/octoprint_deploy.git`. * run the command `git clone https://github.com/paukstelis/octoprint_deploy.git`.
* run the command `sudo octoprint_deploy/octoprint_deploy.sh`. * 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 start a template instance. * 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 start a template instance.
@@ -45,16 +46,16 @@ As of 02/22 there is no longer a need to download a specific image file.
* Test USB connections * Test USB connections
* Want to get rid of everything? `sudo octoprint_deploy/octoprint_deploy.sh remove` * Want to get rid of everything? `sudo octoprint_deploy/octoprint_deploy.sh remove`
# Recent Changes # Recent Changes
* ArchLinux support
* Prompt for haproxy for linux installs * Prompt for haproxy for linux installs
* Implement 'Use all defaults' for adding instances. * Implement 'Use all defaults' for adding instances.
* Prompt for streamer (mjpeg-streamer or ustreamer) * Prompt for streamer (mjpeg-streamer or ustreamer)
* Uniquify pnp uuid. * Uniquify pnp uuid and tracking uuid's.
* Add duplicate serial number detection. * Add duplicate serial number detection. There is no resolution offered as of yet.
* Add architecture check to minimize errors where a system gets prepared as OctoPi when someone is using Ubuntu/Fedora/etc. * Add architecture check to minimize errors where a system gets prepared as OctoPi when someone is using Ubuntu/Fedora/etc.
* Include ustreamer as an option for camera streaming * Include ustreamer as an option for camera streaming
* Add remove command-line argument to get rid of all the stuff the script has done. * Add remove command-line argument to get rid of all the stuff the script has done.
# TODO # TODO
* Uniquify tracking ids
* Cameras behind haproxy? * Cameras behind haproxy?
* Add Arch (pacman) support

View File

@@ -251,9 +251,6 @@ new_instance () {
echo KERNELS==\"$USB\",SUBSYSTEM==\"tty\",SYMLINK+=\"octo_$INSTANCE\" >> /etc/udev/rules.d/99-octoprint.rules echo KERNELS==\"$USB\",SUBSYSTEM==\"tty\",SYMLINK+=\"octo_$INSTANCE\" >> /etc/udev/rules.d/99-octoprint.rules
fi fi
#just to be on the safe side, add user to dialout and video
usermod -a -G dialout,video $OCTOUSER
#Append instance name to list for removal tool #Append instance name to list for removal tool
echo instance:$INSTANCE port:$PORT >> /etc/octoprint_instances echo instance:$INSTANCE port:$PORT >> /etc/octoprint_instances
@@ -264,6 +261,10 @@ new_instance () {
cat $BFOLD/config.yaml | sed -e "s/INSTANCE/$INSTANCE/" > $OCTOCONFIG/.$INSTANCE/config.yaml cat $BFOLD/config.yaml | sed -e "s/INSTANCE/$INSTANCE/" > $OCTOCONFIG/.$INSTANCE/config.yaml
#uniquify instances #uniquify instances
sed -i "s/upnpUuid: .*/upnpUuid: $(uuidgen)/" $OCTOCONFIG/.$INSTANCE/config.yaml sed -i "s/upnpUuid: .*/upnpUuid: $(uuidgen)/" $OCTOCONFIG/.$INSTANCE/config.yaml
u1=$(uuidgen)
u2=$(uuidgen)
awk -i inplace -v id="unique_id: $u1" '/unique_id: (.*)/{c++;if(c==1){sub("unique_id: (.*)",id);}}1' $OCTOCONFIG/.$INSTANCE/config.yaml
awk -i inplace -v id="unique_id: $u2" '/unique_id: (.*)/{c++;if(c==2){sub("unique_id: (.*)",id);}}1' $OCTOCONFIG/.$INSTANCE/config.yaml
#Set port #Set port
sed -i "/serial:/a\ port: /dev/octo_$INSTANCE" $OCTOCONFIG/.$INSTANCE/config.yaml sed -i "/serial:/a\ port: /dev/octo_$INSTANCE" $OCTOCONFIG/.$INSTANCE/config.yaml
@@ -452,6 +453,8 @@ add_camera() {
write_camera write_camera
systemctl start cam_$INSTANCE.service systemctl start cam_$INSTANCE.service
systemctl enable cam_$INSTANCE.service systemctl enable cam_$INSTANCE.service
udevadm control --reload-rules
udevadm trigger
main_menu main_menu
fi fi
} }
@@ -683,6 +686,7 @@ prepare () {
#ArchLinux #ArchLinux
if [ $INSTALL -eq 4 ]; then if [ $INSTALL -eq 4 ]; then
pacman -S --noconfirm make cmake python python-virtualenv libyaml python-pip libjpeg-turbo python-yaml python-setuptools ffmpeg gcc libevent libbsd openssh haproxy v4l-utils pacman -S --noconfirm make cmake python python-virtualenv libyaml python-pip libjpeg-turbo python-yaml python-setuptools ffmpeg gcc libevent libbsd openssh haproxy v4l-utils
usermod -a -G uucp $user
fi fi
echo "Installing OctoPrint in /home/$user/OctoPrint" echo "Installing OctoPrint in /home/$user/OctoPrint"
@@ -791,7 +795,7 @@ prepare () {
fi fi
echo 'Starting generic service on port 5000' echo 'Starting generic service on port 5000'
echo 'Connect to your template instance and setup the admin user.' echo '\033[0;31mConnect to your template instance and setup the admin user.\033[0m'
systemctl start octoprint_default.service systemctl start octoprint_default.service
systemctl enable octoprint_default.service systemctl enable octoprint_default.service
echo echo