34 lines
1.3 KiB
Bash
Executable file
34 lines
1.3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
install -m 644 files/octoprint.service ${ROOTFS_DIR}/etc/systemd/system/octoprint.service
|
|
mkdir -p ${ROOTFS_DIR}/home/octoprint/.octoprint/
|
|
install -m 600 files/config.yaml ${ROOTFS_DIR}/home/octoprint/.octoprint/config.yaml
|
|
|
|
install -m 644 files/nginx.conf ${ROOTFS_DIR}/etc/nginx/nginx.conf
|
|
echo -e "listen 443;" > ${ROOTFS_DIR}/etc/nginx/listen.conf
|
|
|
|
mkdir -p ${ROOTFS_DIR}/usr/local/bin
|
|
install -m 755 files/restart-octoprint ${ROOTFS_DIR}/usr/local/bin/restart-octoprint
|
|
|
|
# Yeah I could've used polkit, but this works fine so whatever
|
|
mkdir -p ${ROOTFS_DIR}/etc/sudoers.d
|
|
echo "octoprint ALL=NOPASSWD: /sbin/shutdown" > ${ROOTFS_DIR}/etc/sudoers.d/octoprint-shutdown
|
|
echo "octoprint ALL=NOPASSWD: /usr/local/bin/restart-octoprint" > ${ROOTFS_DIR}/etc/sudoers.d/octoprint-restart
|
|
|
|
on_chroot << EOF
|
|
# Package enables this when installed, won't start until first-time is run due to missing SSL certs
|
|
systemctl disable nginx
|
|
|
|
# If OctoPrint already exists, skip this (for debugging)
|
|
if [[ ! -f /srv/octoprint/bin/octoprint ]]; then
|
|
cd /srv/ || exit 1
|
|
virtualenv octoprint || exit 1
|
|
source octoprint/bin/activate || exit 1
|
|
pip install pip --upgrade
|
|
pip install octoprint || exit 1
|
|
# Fix permissions
|
|
chown -R octoprint:octoprint /srv/octoprint
|
|
chown -R octoprint:octoprint /home/octoprint
|
|
fi
|
|
EOF
|