| 
									
										
										
										
											2023-05-01 12:53:21 -04:00
										 |  |  | #!/usr/bin/env bash
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-01 12:13:05 -05:00
										 |  |  | # Copyright (c) 2021-2024 tteck | 
					
						
							| 
									
										
										
										
											2023-05-01 12:53:21 -04:00
										 |  |  | # Author: tteck (tteckster) | 
					
						
							|  |  |  | # License: MIT | 
					
						
							|  |  |  | # https://github.com/tteck/Proxmox/raw/main/LICENSE | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" | 
					
						
							|  |  |  | color | 
					
						
							|  |  |  | verb_ip6 | 
					
						
							|  |  |  | catch_errors | 
					
						
							|  |  |  | setting_up_container | 
					
						
							|  |  |  | network_check | 
					
						
							|  |  |  | update_os | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | msg_info "Installing Dependencies" | 
					
						
							|  |  |  | $STD apt-get install -y curl | 
					
						
							|  |  |  | $STD apt-get install -y sudo | 
					
						
							|  |  |  | $STD apt-get install -y mc | 
					
						
							|  |  |  | $STD apt-get install -y git | 
					
						
							|  |  |  | $STD apt-get install -y libyaml-dev | 
					
						
							|  |  |  | $STD apt-get install -y build-essential | 
					
						
							|  |  |  | msg_ok "Installed Dependencies" | 
					
						
							| 
									
										
										
										
											2023-06-21 10:43:49 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | msg_info "Updating Python3" | 
					
						
							| 
									
										
										
										
											2023-05-01 12:53:21 -04:00
										 |  |  | $STD apt-get install -y \
 | 
					
						
							| 
									
										
										
										
											2023-06-21 10:43:49 -04:00
										 |  |  |   python3 \
 | 
					
						
							|  |  |  |   python3-dev \
 | 
					
						
							|  |  |  |   python3-pip \
 | 
					
						
							|  |  |  |   python3-venv | 
					
						
							| 
									
										
										
										
											2023-06-25 00:13:23 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-21 10:43:49 -04:00
										 |  |  | $STD apt-get install -y python3-setuptools | 
					
						
							| 
									
										
										
										
											2024-06-29 11:18:26 -04:00
										 |  |  | rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED | 
					
						
							| 
									
										
										
										
											2023-06-21 10:43:49 -04:00
										 |  |  | msg_ok "Updated Python3" | 
					
						
							| 
									
										
										
										
											2023-05-01 12:53:21 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | msg_info "Creating user octoprint" | 
					
						
							|  |  |  | useradd -m -s /bin/bash -p $(openssl passwd -1 octoprint) octoprint | 
					
						
							|  |  |  | usermod -aG sudo,tty,dialout octoprint | 
					
						
							|  |  |  | chown -R octoprint:octoprint /opt | 
					
						
							| 
									
										
										
										
											2024-07-30 18:58:21 +08:00
										 |  |  | echo "octoprint ALL=NOPASSWD: $(command -v systemctl) restart octoprint, $(command -v reboot), $(command -v poweroff)" > /etc/sudoers.d/octoprint | 
					
						
							| 
									
										
										
										
											2023-05-01 12:53:21 -04:00
										 |  |  | msg_ok "Created user octoprint" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | msg_info "Installing OctoPrint" | 
					
						
							|  |  |  | $STD sudo -u octoprint bash << EOF | 
					
						
							|  |  |  | mkdir /opt/octoprint | 
					
						
							|  |  |  | cd /opt/octoprint | 
					
						
							|  |  |  | python3 -m venv . | 
					
						
							|  |  |  | source bin/activate | 
					
						
							|  |  |  | pip install --upgrade pip | 
					
						
							| 
									
										
										
										
											2023-05-02 11:34:10 -04:00
										 |  |  | pip install wheel | 
					
						
							| 
									
										
										
										
											2023-05-01 12:53:21 -04:00
										 |  |  | pip install octoprint | 
					
						
							|  |  |  | EOF | 
					
						
							|  |  |  | msg_ok "Installed OctoPrint" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | msg_info "Creating Service" | 
					
						
							|  |  |  | cat <<EOF >/etc/systemd/system/octoprint.service | 
					
						
							|  |  |  | [Unit] | 
					
						
							|  |  |  | Description=The snappy web interface for your 3D printer | 
					
						
							|  |  |  | After=network-online.target | 
					
						
							|  |  |  | Wants=network-online.target | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [Service] | 
					
						
							|  |  |  | Environment="LC_ALL=C.UTF-8" | 
					
						
							|  |  |  | Environment="LANG=C.UTF-8" | 
					
						
							|  |  |  | Type=exec | 
					
						
							|  |  |  | User=octoprint | 
					
						
							|  |  |  | ExecStart=/opt/octoprint/bin/octoprint serve | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [Install] | 
					
						
							|  |  |  | WantedBy=multi-user.target | 
					
						
							|  |  |  | EOF | 
					
						
							|  |  |  | systemctl enable -q --now octoprint.service | 
					
						
							|  |  |  | msg_ok "Created Service" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | motd_ssh | 
					
						
							| 
									
										
										
										
											2023-05-15 07:39:30 -04:00
										 |  |  | customize | 
					
						
							| 
									
										
										
										
											2023-05-01 12:53:21 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | msg_info "Cleaning up" | 
					
						
							| 
									
										
										
										
											2024-05-02 13:26:16 -04:00
										 |  |  | $STD apt-get -y autoremove | 
					
						
							|  |  |  | $STD apt-get -y autoclean | 
					
						
							| 
									
										
										
										
											2023-05-01 12:53:21 -04:00
										 |  |  | msg_ok "Cleaned" |