Skip to content

Instantly share code, notes, and snippets.

@CODeRUS
Last active February 12, 2024 20:33
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save CODeRUS/ab127cb1ff2a03dc3ea34fa90291c497 to your computer and use it in GitHub Desktop.
Save CODeRUS/ab127cb1ff2a03dc3ea34fa90291c497 to your computer and use it in GitHub Desktop.
klipper install pacman linuxdeploy
#!/bin/bash
### environment
echo "Initializing environment variables"
KLIPPY_ENV="$HOME/klippy-env"
MOONRAKER_ENV="$HOME/moonraker-env"
KIAUH_GIT="$HOME/kiauh"
KLIPPER_GIT="$HOME/klipper"
MOONRAKER_GIT="$HOME/moonraker"
GLOBAL_START="/etc/rc.local"
GLOBAL_START_PH="$HOME/rc.local"
KLIPPER_START="$HOME/klipper-start.sh"
MOONRAKER_START="$HOME/moonraker-start.sh"
KLIPPER_CONFIG="$HOME/klipper_config"
GCODE_FILES="$HOME/gcode_files"
### Mounting /tmp
echo "Re-mounting /tmp from tmpfs"
sudo rm -rf /tmp
sudo mkdir -p /tmp
sudo mount -o mode=1777,nosuid,nodev -t tmpfs tmpfs /tmp
### packages
echo "Installing required packages"
sudo pacman -S --overwrite \* python2-virtualenv python2-pip libffi base-devel git ncurses libusb python-virtualenv python3 cmake gcc nginx openjpeg2 lmdb libsodium zlib libcurl-devel
### git
echo "Clonning klipper software"
git clone https://github.com/th33xitus/kiauh.git $KIAUH_GIT
git clone https://github.com/KevinOConnor/klipper.git $KLIPPER_GIT
git clone https://github.com/Arksine/moonraker.git $MOONRAKER_GIT
### folders
echo "Creating klipper folders"
mkdir -p $KLIPPER_CONFIG
mkdir -p $GCODE_FILES
### configs
echo "Fixing config files"
cp -f $KIAUH_GIT/resources/printer.cfg $KLIPPER_CONFIG
cp -f $KIAUH_GIT/resources/kiauh_macros.cfg $KLIPPER_CONFIG
sed -i "s#serial:.*#serial: /dev/ttyACM0#" $KLIPPER_CONFIG/printer.cfg
sed -i "1 i [include kiauh_macros.cfg]" $KLIPPER_CONFIG/printer.cfg
### klipper
echo "Installing klipper"
mkdir -p $KLIPPY_ENV
virtualenv2 $KLIPPY_ENV
$KLIPPY_ENV/bin/pip install -r $KLIPPER_GIT/scripts/klippy-requirements.txt
### moonraker
echo "Installing moonraker"
mkdir -p $MOONRAKER_ENV
virtualenv -p /usr/bin/python3 $MOONRAKER_ENV
${MOONRAKER_ENV}/bin/pip install -r ${MOONRAKER_GIT}/scripts/moonraker-requirements.txt
cat <<EOF > ${KLIPPER_CONFIG}/moonraker.conf
[server]
host: 0.0.0.0
port: 7125
enable_debug_logging: False
config_path: $KLIPPER_CONFIG
database_path: ~/.moonraker_database
klippy_uds_address: /tmp/klippy_uds
[authorization]
enabled: True
api_key_file: ~/.moonraker_api_key
trusted_clients:
127.0.0.1
192.168.0.0/16
::1/128
FE80::/10
cors_domains:
*.lan
*.local
*://my.mainsail.xyz
*://app.fluidd.xyz
*://dev-app.fluidd.xyz
[octoprint_compat]
[history]
EOF
### autostart
echo "Creating autostart entries for run-parts"
cat <<EOF > $KLIPPER_START
#!/bin/bash
$KLIPPY_ENV/bin/python $KLIPPER_GIT/klippy/klippy.py $KLIPPER_CONFIG/printer.cfg -l /tmp/klippy.log -a /tmp/klippy_uds
EOF
chmod +x $KLIPPER_START
cat <<EOF > $MOONRAKER_START
#!/bin/bash
$MOONRAKER_ENV/bin/python $MOONRAKER_GIT/moonraker/moonraker.py -c ${KLIPPER_CONFIG}/moonraker.conf -l /tmp/moonraker.log
EOF
chmod +x $MOONRAKER_START
cat <<EOF > $GLOBAL_START_PH
#!/bin/bash
mount -o mode=1777,nosuid,nodev -t tmpfs tmpfs /tmp
chmod 777 /dev/ttyACM0
$KLIPPER_START &
$MOONRAKER_START &
EOF
sudo mv $GLOBAL_START_PH $GLOBAL_START
sudo chmod +x $GLOBAL_START
### complete
echo "Installation complete! Please start/stop container now!"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment