From 2139f9b9db8355cce707a27cb820cf5a63a9c738 Mon Sep 17 00:00:00 2001
From: tteckster <tteckster@gmail.com>
Date: Mon, 1 May 2023 12:53:21 -0400
Subject: [PATCH] Create octoprint-install.sh

---
 install/octoprint-install.sh | 76 ++++++++++++++++++++++++++++++++++++
 1 file changed, 76 insertions(+)
 create mode 100644 install/octoprint-install.sh

diff --git a/install/octoprint-install.sh b/install/octoprint-install.sh
new file mode 100644
index 00000000..56492b3b
--- /dev/null
+++ b/install/octoprint-install.sh
@@ -0,0 +1,76 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2021-2023 tteck
+# 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"
+  
+msg_info "Installing Python3"
+$STD apt-get install -y \
+	python3-pip \
+	python3-dev \
+	python3-setuptools \
+	python3-venv
+msg_ok "Installed Python3"  
+
+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
+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
+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
+root
+
+msg_info "Cleaning up"
+$STD apt-get autoremove
+$STD apt-get autoclean
+msg_ok "Cleaned"