Installs Mainsail, but buggy
This commit is contained in:
parent
475bc5df15
commit
df8fdc37cc
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/getoptions
|
3
add_nginx_camera.sh
Normal file
3
add_nginx_camera.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# TODO: add nginx configs for an additional camera streamer
|
@ -16,3 +16,5 @@ mariadb-server
|
|||||||
python3-dev
|
python3-dev
|
||||||
stm32flash
|
stm32flash
|
||||||
virtualenv
|
virtualenv
|
||||||
|
nginx
|
||||||
|
lolcat
|
6
config/nginx/common_vars.conf
Normal file
6
config/nginx/common_vars.conf
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# /etc/nginx/conf.d/common_vars.conf
|
||||||
|
|
||||||
|
map $http_upgrade $connection_upgrade {
|
||||||
|
default upgrade;
|
||||||
|
'' close;
|
||||||
|
}
|
14
config/nginx/mainsail-proxy.conf
Normal file
14
config/nginx/mainsail-proxy.conf
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# location ~ ^/PRINTERNAMELC/(.*) {
|
||||||
|
# proxy_pass http://127.0.0.1:PORT/$1;
|
||||||
|
# proxy_http_version 1.1;
|
||||||
|
# proxy_set_header Upgrade $http_upgrade;
|
||||||
|
# proxy_set_header Connection $connection_upgrade;
|
||||||
|
# proxy_set_header Host $host;
|
||||||
|
# proxy_buffering off;
|
||||||
|
# proxy_read_timeout 10800s;
|
||||||
|
# proxy_send_timeout 10800s;
|
||||||
|
# proxy_connect_timeout 30s;
|
||||||
|
# }
|
||||||
|
location ~ ^/PRINTERNAMELC/(.*) {
|
||||||
|
return 301 $scheme://$host:PORT/$1;
|
||||||
|
}
|
55
config/nginx/mainsail-site.conf
Normal file
55
config/nginx/mainsail-site.conf
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
# config file for a specific printer subdir
|
||||||
|
server {
|
||||||
|
listen PORT default_server;
|
||||||
|
rewrite_log on;
|
||||||
|
access_log /var/log/nginx/PRINTERNAME-mainsail-access.log;
|
||||||
|
error_log /var/log/nginx/PRINTERNAME-mainsail-error.log info;
|
||||||
|
|
||||||
|
# disable this section on smaller hardware like a pi zero
|
||||||
|
gzip on;
|
||||||
|
gzip_vary on;
|
||||||
|
gzip_proxied any;
|
||||||
|
gzip_proxied expired no-cache no-store private auth;
|
||||||
|
gzip_comp_level 4;
|
||||||
|
gzip_buffers 16 8k;
|
||||||
|
gzip_http_version 1.1;
|
||||||
|
gzip_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript application/json application/xml;
|
||||||
|
|
||||||
|
index index.html;
|
||||||
|
|
||||||
|
# disable max upload size checks
|
||||||
|
client_max_body_size 0;
|
||||||
|
|
||||||
|
# disable proxy request buffering
|
||||||
|
proxy_request_buffering off;
|
||||||
|
root /home/pi/PRINTERNAME/mainsail;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ /index.html;
|
||||||
|
}
|
||||||
|
|
||||||
|
location = /index.html {
|
||||||
|
add_header Cache-Control "no-store, no-cache, must-revalidate";
|
||||||
|
}
|
||||||
|
|
||||||
|
location /websocket {
|
||||||
|
proxy_pass http://PRINTERNAMELCapiserver/websocket;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection $connection_upgrade;
|
||||||
|
proxy_set_header Host $http_host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_read_timeout 86400;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ ^/(printer|api|access|machine|server)/ {
|
||||||
|
proxy_pass http://PRINTERNAMELCapiserver$request_uri;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Host $http_host;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Scheme $scheme;
|
||||||
|
}
|
||||||
|
}
|
6
config/nginx/mainsail-upstream.conf
Normal file
6
config/nginx/mainsail-upstream.conf
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# config file for a specific printer upstream
|
||||||
|
|
||||||
|
upstream PRINTERNAMELCapiserver {
|
||||||
|
ip_hash;
|
||||||
|
server 127.0.0.1:PORT;
|
||||||
|
}
|
92
config/nginx/site.conf
Normal file
92
config/nginx/site.conf
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
# /etc/nginx/sites-available/site.conf
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80 default_server;
|
||||||
|
rewrite_log on;
|
||||||
|
access_log /var/log/nginx/mainsail-access.log;
|
||||||
|
error_log /var/log/nginx/mainsail-error.log debug;
|
||||||
|
|
||||||
|
# disable this section on smaller hardware like a pi zero
|
||||||
|
gzip on;
|
||||||
|
gzip_vary on;
|
||||||
|
gzip_proxied any;
|
||||||
|
gzip_proxied expired no-cache no-store private auth;
|
||||||
|
gzip_comp_level 4;
|
||||||
|
gzip_buffers 16 8k;
|
||||||
|
gzip_http_version 1.1;
|
||||||
|
gzip_types text/plain text/css text/xml text/javascript application/javascript application/x-javascript application/json application/xml;
|
||||||
|
|
||||||
|
index index.html;
|
||||||
|
server_name _;
|
||||||
|
|
||||||
|
# disable max upload size checks
|
||||||
|
client_max_body_size 0;
|
||||||
|
|
||||||
|
# disable proxy request buffering
|
||||||
|
proxy_request_buffering off;
|
||||||
|
|
||||||
|
include /etc/nginx/mainsail/proxy/*.conf;
|
||||||
|
|
||||||
|
location /webcam/ {
|
||||||
|
postpone_output 0;
|
||||||
|
proxy_buffering off;
|
||||||
|
proxy_ignore_headers X-Accel-Buffering;
|
||||||
|
access_log off;
|
||||||
|
error_log off;
|
||||||
|
proxy_pass http://mjpgstreamer1/;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /webcam2/ {
|
||||||
|
postpone_output 0;
|
||||||
|
proxy_buffering off;
|
||||||
|
proxy_ignore_headers X-Accel-Buffering;
|
||||||
|
access_log off;
|
||||||
|
error_log off;
|
||||||
|
proxy_pass http://mjpgstreamer2/;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /webcam3/ {
|
||||||
|
postpone_output 0;
|
||||||
|
proxy_buffering off;
|
||||||
|
proxy_ignore_headers X-Accel-Buffering;
|
||||||
|
access_log off;
|
||||||
|
error_log off;
|
||||||
|
proxy_pass http://mjpgstreamer3/;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /webcam4/ {
|
||||||
|
postpone_output 0;
|
||||||
|
proxy_buffering off;
|
||||||
|
proxy_ignore_headers X-Accel-Buffering;
|
||||||
|
access_log off;
|
||||||
|
error_log off;
|
||||||
|
proxy_pass http://mjpgstreamer4/;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /webcam5/ {
|
||||||
|
postpone_output 0;
|
||||||
|
proxy_buffering off;
|
||||||
|
proxy_ignore_headers X-Accel-Buffering;
|
||||||
|
access_log off;
|
||||||
|
error_log off;
|
||||||
|
proxy_pass http://mjpgstreamer5/;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /webcam6/ {
|
||||||
|
postpone_output 0;
|
||||||
|
proxy_buffering off;
|
||||||
|
proxy_ignore_headers X-Accel-Buffering;
|
||||||
|
access_log off;
|
||||||
|
error_log off;
|
||||||
|
proxy_pass http://mjpgstreamer6/;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /webcam7/ {
|
||||||
|
postpone_output 0;
|
||||||
|
proxy_buffering off;
|
||||||
|
proxy_ignore_headers X-Accel-Buffering;
|
||||||
|
access_log off;
|
||||||
|
error_log off;
|
||||||
|
proxy_pass http://mjpgstreamer7/;
|
||||||
|
}
|
||||||
|
}
|
38
config/nginx/upstreams.conf
Normal file
38
config/nginx/upstreams.conf
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# /etc/nginx/conf.d/upstreams.conf
|
||||||
|
|
||||||
|
include /etc/nginx/mainsail/upstream/*.conf;
|
||||||
|
|
||||||
|
upstream mjpgstreamer1 {
|
||||||
|
ip_hash;
|
||||||
|
server 127.0.0.1:8080;
|
||||||
|
}
|
||||||
|
|
||||||
|
upstream mjpgstreamer2 {
|
||||||
|
ip_hash;
|
||||||
|
server 127.0.0.1:8081;
|
||||||
|
}
|
||||||
|
|
||||||
|
upstream mjpgstreamer3 {
|
||||||
|
ip_hash;
|
||||||
|
server 127.0.0.1:8082;
|
||||||
|
}
|
||||||
|
|
||||||
|
upstream mjpgstreamer4 {
|
||||||
|
ip_hash;
|
||||||
|
server 127.0.0.1:8083;
|
||||||
|
}
|
||||||
|
|
||||||
|
upstream mjpgstreamer5 {
|
||||||
|
ip_hash;
|
||||||
|
server 127.0.0.1:8084;
|
||||||
|
}
|
||||||
|
|
||||||
|
upstream mjpgstreamer6 {
|
||||||
|
ip_hash;
|
||||||
|
server 127.0.0.1:8085;
|
||||||
|
}
|
||||||
|
|
||||||
|
upstream mjpgstreamer7 {
|
||||||
|
ip_hash;
|
||||||
|
server 127.0.0.1:8086;
|
||||||
|
}
|
183
setup.sh
183
setup.sh
@ -1,11 +1,30 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# TODO: CHANGE KLIPPER PORTS
|
|
||||||
# TODO: Setup Mainsail
|
|
||||||
# TODO: Add Crowsnest Support
|
# TODO: Add Crowsnest Support
|
||||||
# TODO: Add Override cmd arguments
|
|
||||||
# TODO: Avoid duplicate printer names
|
# TODO: Avoid duplicate printer names
|
||||||
|
# TODO: Dry run
|
||||||
|
# TODO: Printer Directory Page in NGINX
|
||||||
|
# TODO: Fix PolicyKit issues "klippy_uds_address"
|
||||||
|
|
||||||
|
# Handle arguments
|
||||||
|
ARG_HELP=0
|
||||||
|
ARG_SKIP_APT=0
|
||||||
|
ARG_NAME=0
|
||||||
|
ARG_CONFIG=0
|
||||||
|
ARG_PORT=0
|
||||||
|
while [[ "$#" -gt 0 ]]; do
|
||||||
|
case $1 in
|
||||||
|
-h|--help) ARG_HELP=1 ;;
|
||||||
|
-a|--skip-apt) ARG_SKIP_APT=1 ;;
|
||||||
|
-n|--name) ARG_NAME="$2" ; shift ;;
|
||||||
|
-c|--config) ARG_CONFIG="$2" ; shift ;;
|
||||||
|
-p|--port) ARG_PORT="$2" ; shift ;;
|
||||||
|
*) echo "Unknown Parameter"; exit 3 ;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
# Prepare global variables
|
||||||
SOURCE=${BASH_SOURCE[0]}
|
SOURCE=${BASH_SOURCE[0]}
|
||||||
while [ -L "$SOURCE" ]; do
|
while [ -L "$SOURCE" ]; do
|
||||||
TARGET=$(readlink "$SOURCE")
|
TARGET=$(readlink "$SOURCE")
|
||||||
@ -22,76 +41,116 @@ cd $ROOT_DIR
|
|||||||
|
|
||||||
source ./ColorEchoForShell/dist/ColorEcho.bash
|
source ./ColorEchoForShell/dist/ColorEcho.bash
|
||||||
|
|
||||||
|
if [[ "$ARG_HELP" == 1 ]]; then
|
||||||
|
echo.Cyan "HacDC Printewr Setup Script Usage"
|
||||||
|
echo.Yellow "./setup.sh [options]"
|
||||||
|
echo ""
|
||||||
|
echo.BoldPurple "Option Description"
|
||||||
|
echo.Rainbow "-h/--help Display this help msg"
|
||||||
|
echo.Rainbow "-a/--skip-apt Skip installing apt packages"
|
||||||
|
echo.Rainbow "-n/--name Specify printer name (skips popup)"
|
||||||
|
echo.Rainbow "-c/--config Specify printer config (skips popup)"
|
||||||
|
echo.Rainbow "-p/--port Specify printer port (skips popup)"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
# Pull Klipper
|
# Pull Klipper
|
||||||
git submodule update --init --recursive
|
git submodule update --init --recursive
|
||||||
|
|
||||||
# Install packages
|
# Install packages
|
||||||
echo.Cyan "Installing required packageas"
|
if [[ "$ARG_SKIP_APT" == 1 ]]; then
|
||||||
for PACKAGE in `cat $ROOT_DIR/config/apt-packages`; do
|
echo.ICyan "Apt packagees skipped"
|
||||||
|
else
|
||||||
|
echo.Cyan "Installing required packageas"
|
||||||
|
for PACKAGE in `cat $ROOT_DIR/config/apt-packages`; do
|
||||||
sudo apt install -y $PACKAGE
|
sudo apt install -y $PACKAGE
|
||||||
done
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
# Name Printer
|
# Name Printer
|
||||||
NAME_NOT_VALID=true
|
PRINTER_NAME=""
|
||||||
while $NAME_NOT_VALID ; do
|
if [[ "$ARG_NAME" == 0 ]]; then
|
||||||
|
NAME_NOT_VALID=true
|
||||||
|
while $NAME_NOT_VALID ; do
|
||||||
PRINTER_NAME=$(dialog --backtitle 'drwho@hackers.town' --inputbox 'Name This Printer' 8 40 "${PRINTER_NAME}" 3>&1 1>&2 2>&3)
|
PRINTER_NAME=$(dialog --backtitle 'drwho@hackers.town' --inputbox 'Name This Printer' 8 40 "${PRINTER_NAME}" 3>&1 1>&2 2>&3)
|
||||||
if [[ $PRINTER_NAME =~ ^[a-zA-Z0-9_-]+$ ]]; then
|
if [[ $PRINTER_NAME =~ ^[a-zA-Z0-9_-]+$ ]]; then
|
||||||
NAME_NOT_VALID=false
|
NAME_NOT_VALID=false
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
else
|
||||||
|
echo.ICyan "Using passed printer name: $ARG_NAME"
|
||||||
|
PRINTER_NAME="$ARG_NAME"
|
||||||
|
fi
|
||||||
|
|
||||||
cp -r $ROOT_DIR/dirs $ROOT_DIR/$PRINTER_NAME
|
cp -r $ROOT_DIR/dirs $ROOT_DIR/$PRINTER_NAME
|
||||||
|
|
||||||
# Select Klipper Config
|
# Select Klipper Config
|
||||||
cd $ROOT_DIR/$PRINTER_NAME/klipper
|
cd $ROOT_DIR/$PRINTER_NAME/klipper
|
||||||
make menuconfig
|
make menuconfig
|
||||||
CONFIG_FILES=(`ls config`)
|
CONFIG_FILE=""
|
||||||
CONFIG_FILES+=("Enter_Manually")
|
if [[ "$ARG_CONFIG" == 0 ]]; then
|
||||||
let i=0
|
CONFIG_FILES=(`ls config`)
|
||||||
C=()
|
CONFIG_FILES+=("Enter_Manually")
|
||||||
for f in ${CONFIG_FILES[@]}; do
|
let i=0
|
||||||
|
C=()
|
||||||
|
for f in ${CONFIG_FILES[@]}; do
|
||||||
C+=($i $f)
|
C+=($i $f)
|
||||||
let i+=1
|
let i+=1
|
||||||
done
|
done
|
||||||
CONFIG_INDEX=$(dialog --backtitle "drwho@hackers.town" --title "Printer Selection" --menu "Select Printer Config" --output-fd 1 40 0 1 ${C[@]})
|
CONFIG_INDEX=$(dialog --backtitle "drwho@hackers.town" --title "Printer Selection" --menu "Select Printer Config" --output-fd 1 40 0 1 ${C[@]})
|
||||||
CONFIG_FILE=${CONFIG_FILES[$CONFIG_INDEX]}
|
CONFIG_FILE=${CONFIG_FILES[$CONFIG_INDEX]}
|
||||||
if [[ $CONFIG_FILE == "Enter_Manually" ]]; then
|
if [[ $CONFIG_FILE == "Enter_Manually" ]]; then
|
||||||
MANUAL_FILE=""
|
MANUAL_FILE=""
|
||||||
while [ ! -f "${MANUAL_FILE}" ]; do
|
while [ ! -f "${MANUAL_FILE}" ]; do
|
||||||
MANUAL_FILE=$(dialog --backtitle "drwho@hackers.town" --title "Manual Config Selection" --inputbox "Enter Full Config File Path" 8 40 "${MANUAL_FILE}" 3>&1 1>&2 2>&3)
|
MANUAL_FILE=$(dialog --backtitle "drwho@hackers.town" --title "Manual Config Selection" --inputbox "Enter Full Config File Path" 8 40 "${MANUAL_FILE}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
CONFIG_FILE=$MANUAL_FILE
|
CONFIG_FILE=$MANUAL_FILE
|
||||||
else
|
else
|
||||||
|
# TODO: maybe replace this with the full path?
|
||||||
CONFIG_FILE="./config/$CONFIG_FILE"
|
CONFIG_FILE="./config/$CONFIG_FILE"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo.ICyan "Using passed config file"
|
||||||
|
CONFIG_FILE="$ARG_CONFIG"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Select Serial Device
|
# Select Serial Device
|
||||||
DEVICES=(`ls /dev/serial/by-id/`)
|
DEVICE=""
|
||||||
DEVICES+=("Enter_Manually")
|
if [[ "$ARG_PORT" == 0 ]]; then
|
||||||
let i=0
|
DEVICES=(`ls /dev/serial/by-id/`)
|
||||||
C=()
|
DEVICES+=("Enter_Manually")
|
||||||
for f in ${DEVICES[@]}; do
|
let i=0
|
||||||
|
C=()
|
||||||
|
for f in ${DEVICES[@]}; do
|
||||||
C+=($i $f)
|
C+=($i $f)
|
||||||
let i+=1
|
let i+=1
|
||||||
done
|
done
|
||||||
DEVICE_INDEX=$(dialog --backtitle "drwho@hackers.town" --title "USB Device Selection" --menu "Select USB Device" --output-fd 1 40 0 1 ${C[@]})
|
DEVICE_INDEX=$(dialog --backtitle "drwho@hackers.town" --title "USB Device Selection" --menu "Select USB Device" --output-fd 1 40 0 1 ${C[@]})
|
||||||
DEVICE=${DEVICES[$DEVICE_INDEX]}
|
DEVICE=${DEVICES[$DEVICE_INDEX]}
|
||||||
|
|
||||||
if [[ $DEVICE == "Enter_Manually" ]]; then
|
if [[ $DEVICE == "Enter_Manually" ]]; then
|
||||||
MANUAL_FILE=""
|
MANUAL_FILE=""
|
||||||
while [ ! -f "${MANUAL_FILE}" ]; do
|
while [ ! -f "${MANUAL_FILE}" ]; do
|
||||||
MANUAL_FILE=$(dialog --backtitle "drwho@hackers.town" --title "Manual Device Selection" --inputbox "Enter Full Device File Path" 8 40 "${MANUAL_FILE}" 3>&1 1>&2 2>&3)
|
MANUAL_FILE=$(dialog --backtitle "drwho@hackers.town" --title "Manual Device Selection" --inputbox "Enter Full Device File Path" 8 40 "${MANUAL_FILE}" 3>&1 1>&2 2>&3)
|
||||||
done
|
done
|
||||||
DEVICE=$MANUAL_FILE
|
DEVICE="/dev/serial/by-id/$MANUAL_FILE"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo.ICyan "Using passed serial port"
|
||||||
|
DEVICE="$ARG_PORT"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Build Klipper
|
# Build Klipper
|
||||||
|
echo.Cyan "Compile Klipper Firmware"
|
||||||
cp $CONFIG_FILE $ROOT_DIR/$PRINTER_NAME/klipper/printer.cfg
|
cp $CONFIG_FILE $ROOT_DIR/$PRINTER_NAME/klipper/printer.cfg
|
||||||
sed -i -e "s/^serial: .\+$/serial: \/dev\/serial\/by-id\/${DEVICE}/g" "${ROOT_DIR}/$PRINTER_NAME/klipper/printer.cfg"
|
sed -i -e "s/^serial: .\+$/LINEHERE/g" "$ROOT_DIR/$PRINTER_NAME/klipper/printer.cfg"
|
||||||
|
cat $ROOT_DIR/$PRINTER_NAME/klipper/printer.cfg | replace "LINEHERE" "serial: $DEVICE" > $ROOT_DIR/$PRINTER_NAME/klipper/tmp.cfg
|
||||||
|
rm $ROOT_DIR/$PRINTER_NAME/klipper/printer.cfg
|
||||||
|
mv $ROOT_DIR/$PRINTER_NAME/klipper/tmp.cfg $ROOT_DIR/$PRINTER_NAME/klipper/printer.cfg
|
||||||
make -j$(nproc)
|
make -j$(nproc)
|
||||||
|
|
||||||
# Flash Firmware
|
# Flash Firmware
|
||||||
make flash FLASH_DEVICE=/dev/serial/by-id/$DEVICE
|
echo.Cyan "Flash Device"
|
||||||
|
make flash FLASH_DEVICE=$DEVICE
|
||||||
|
|
||||||
# Copy over printer config file
|
# Copy over printer config file
|
||||||
echo.Cyan "Setup printer.cfg"
|
echo.Cyan "Setup printer.cfg"
|
||||||
@ -126,11 +185,55 @@ echo.Cyan "Downloading Mainsail"
|
|||||||
wget -q -O mainsail.zip https://github.com/mainsail-crew/mainsail/releases/latest/download/mainsail.zip
|
wget -q -O mainsail.zip https://github.com/mainsail-crew/mainsail/releases/latest/download/mainsail.zip
|
||||||
unzip -o mainsail.zip -d $PRINTER_NAME/mainsail
|
unzip -o mainsail.zip -d $PRINTER_NAME/mainsail
|
||||||
rm mainsail.zip
|
rm mainsail.zip
|
||||||
#
|
|
||||||
#
|
echo.ICyan "Installing base nginx configs"
|
||||||
# SETUP MAINSAIL HERE BAKA
|
if [ ! -f /etc/nginx/conf.d/upstreams.conf ]; then
|
||||||
#
|
sudo cp $ROOT_DIR/config/nginx/upstreams.conf /etc/nginx/conf.d/upstreams.conf
|
||||||
#
|
sudo chown root:root /etc/nginx/conf.d/upstreams.conf
|
||||||
|
else
|
||||||
|
echo.ICyan "upstreams.conf already exists"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f /etc/nginx/sites-available/site.conf ]; then
|
||||||
|
sudo cp $ROOT_DIR/config/nginx/site.conf /etc/nginx/sites-available/site.conf
|
||||||
|
sudo chown root:root /etc/nginx/sites-available/site.conf
|
||||||
|
else
|
||||||
|
echo.ICyan "site.conf already exists"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f /etc/nginx/conf.d/common_vars.conf ]; then
|
||||||
|
sudo cp $ROOT_DIR/config/nginx/common_vars.conf /etc/nginx/conf.d/common_vars.conf
|
||||||
|
sudo chown root:root /etc/nginx/conf.d/common_vars.conf
|
||||||
|
else
|
||||||
|
echo.ICyan "common_vars.conf already exists"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d /etc/nginx/mainsail/sites ]; then
|
||||||
|
sudo mkdir -p /etc/nginx/mainsail/sites
|
||||||
|
fi
|
||||||
|
if [ ! -d /etc/nginx/mainsail/upstream ]; then
|
||||||
|
sudo mkdir -p /etc/nginx/mainsail/upstream
|
||||||
|
fi
|
||||||
|
if [ ! -d /etc/nginx/mainsail/proxy ]; then
|
||||||
|
sudo mkdir -p /etc/nginx/mainsail/proxy
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo.Cyan "Generate and Install $PRINTER_NAME nginx configs"
|
||||||
|
cat $ROOT_DIR/config/nginx/mainsail-upstream.conf | replace "PRINTERNAMELC" "${PRINTER_NAME,,}" | replace "PORT" "$NEW_PORT" > $ROOT_DIR/$PRINTER_NAME/upstream.conf
|
||||||
|
PROXY_PORT=$((NEW_PORT - 7000 + 8000))
|
||||||
|
cat $ROOT_DIR/config/nginx/mainsail-site.conf | replace "PRINTERNAMELC" "${PRINTER_NAME,,}" | replace "/home/pi" "$HOME" | replace "PRINTERNAME" "$PRINTER_NAME" | replace "PORT" "$PROXY_PORT" > $ROOT_DIR/$PRINTER_NAME/site.conf
|
||||||
|
cat $ROOT_DIR/config/nginx/mainsail-proxy.conf | replace "PRINTERNAMELC" "${PRINTER_NAME,,}" | replace "PORT" "$PROXY_PORT" > $ROOT_DIR/$PRINTER_NAME/proxy.conf
|
||||||
|
# add proxy
|
||||||
|
sudo cp $ROOT_DIR/$PRINTER_NAME/upstream.conf /etc/nginx/mainsail/upstream/$PRINTER_NAME.conf
|
||||||
|
sudo cp $ROOT_DIR/$PRINTER_NAME/site.conf /etc/nginx/sites-available/$PRINTER_NAME.conf
|
||||||
|
sudo cp $ROOT_DIR/$PRINTER_NAME/proxy.conf /etc/nginx/mainsail/proxy/$PRINTER_NAME.conf
|
||||||
|
sudo ln -s /etc/nginx/sites-available/$PRINTER_NAME.conf /etc/nginx/sites-enabled/$PRINTER_NAME.conf
|
||||||
|
|
||||||
|
sudo chown -R root:root /etc/nginx/mainsail
|
||||||
|
if [ -f /etc/nginx/sites-enabled/site.conf ]; then
|
||||||
|
echo.ICyan "Restart nginx if the site is already enabled"
|
||||||
|
sudo systemctl stop nginx
|
||||||
|
fi
|
||||||
|
|
||||||
# Setup klipper python env
|
# Setup klipper python env
|
||||||
echo.Cyan "Setup Klipper Python Virtual Environment"
|
echo.Cyan "Setup Klipper Python Virtual Environment"
|
||||||
@ -189,3 +292,11 @@ for svc in ${SERVICES[@]}; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
|
$HOME/$PRINTER_NAME/moonraker/scripts/set-policykit-rules.sh
|
||||||
|
echo.BoldCyan "${PRINTER_NAME} is setup with moonraker on port ${NEW_PORT}"
|
||||||
|
sudo nginx -t
|
||||||
|
if [ ! -f /etc/nginx/sites-enabled/site.conf ]; then
|
||||||
|
echo.Red "NGINX config not enabled, don't forget to symlink the site.conf file from sites-available to sites-enabled"
|
||||||
|
else
|
||||||
|
sudo systemctl start nginx
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user