diff --git a/app.py b/app.py new file mode 100644 index 0000000..682fafc --- /dev/null +++ b/app.py @@ -0,0 +1,19 @@ +import os +import time +import sys +import sqlite3 +import python_artnet as Artnet +import DMXEnttecPro +import sacn +import flask + + + +webapp = flask.Flask(__name__) + +@webapp.route("/") +def index(): + return "Hello world!" + +if __name__ == "__main__": + webapp.run(host="0.0.0.0", port=80) \ No newline at end of file diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..c314b7a --- /dev/null +++ b/install.sh @@ -0,0 +1,134 @@ +#!/bin/bash + +# Check for sudo rights +if [ "$EUID" -ne 0 ]; then + echo "Please run as root or using sudo" + exit 1 +fi + +# Function to display usage +usage() { + echo "Usage: sudo $0 [--install|--configure]" +} + +# Function to configure IP for eth0 interface +configure_eth0_ip() { + read -p "Enter IP address: " ip_address + read -p "Enter netmask: " netmask + read -p "Enter gateway: " gateway + read -p "Enter DNS server: " dns + cat <> /etc/dhcpcd.conf +interface eth0 +static ip_address=$ip_address/$netmask +static routers=$gateway +static domain_name_servers=$dns +EOF + echo "Static IP configuration for eth0 complete." +} + +# Function to configure eth0 interface for DHCP +configure_eth0_dhcp() { + sed -i '/^interface eth0/d' /etc/dhcpcd.conf + systemctl enable --now dhcpcd.service + echo "DHCP configuration for eth0 complete." +} + +# Function to configure hostname and update instance name +configure_hostname() { + read -p "Enter a number for the new hostname (e.g., 123): " number + if ! [[ "$number" =~ ^[0-9]+$ ]]; then + echo "Error: Please enter a valid number." + exit 1 + fi + hostname="SchmarkusNode-$number" + hostnamectl set-hostname "$hostname" + sed -i "s/instance-name = .*/instance-name = $hostname/" /etc/ola/ola-server.conf + # Update long_name and short_name in ola-artnet.conf + sed -i "s/long_name = OLA - ArtNet node/long_name = $hostname/" /etc/ola/ola-artnet.conf + sed -i "s/short_name = OLA - ArtNet node/short_name = $hostname/" /etc/ola/ola-artnet.conf + echo "Hostname configuration complete." +} + +# Disable OLA modules +disable_ola_modules() { + local files=( + "/etc/ola/ola-espnet.conf" + "/etc/ola/ola-opendmx.conf" + "/etc/ola/ola-gpio.conf" + "/etc/ola/ola-karate.conf" + "/etc/ola/ola-kinet.conf" + "/etc/ola/ola-milinst.conf" + "/etc/ola/ola-osc.conf" + "/etc/ola/ola-openpixelcontrol.conf" + "/etc/ola/ola-pathport.conf" + "/etc/ola/ola-renard.conf" + "/etc/ola/ola-spi.conf" + "/etc/ola/ola-sandnet.conf" + "/etc/ola/ola-usbserial.conf" + "/etc/ola/ola-shownet.conf" + "/etc/ola/ola-stageprofi.conf" + "/etc/ola/ola-usbdmx.conf" + ) + for file in "${files[@]}"; do + sed -i 's/enabled = true/enabled = false/' "$file" + done +} + +disable_ola_modules() { + local files=( + "/etc/ola/ola-ftdidmx.conf" + ) + for file in "${files[@]}"; do + sed -i 's/enabled = false/enabled = true/' "$file" + done +} + +# Check for arguments +if [ "$1" == "--install" ]; then + # Installation section + apt update && apt upgrade -y + apt install -y ola neofetch + echo -e "neofetch --ascii \"*@***/..,,.(%*//(#/*/,(#/*/**., .&///**,\n,,,,*.,,,*((//////(((////*/**//*,,,,,,,.\n.,...**(/*//((##%&%%%%%%%%%(**(((/*,,,..\n,**,/(*/###%%%&&&&&&&&&&&%%%%%//(/***..,\n,*/**#####%%%&&&&&@@&&&&&%%%%%%(((//*...\n*,**((####%%%&&&&&&@&&&&&&&%%%%%##//*#%/\n,,,*/((####%%%&&&&&&&&&&&&&%%%%###/**,..\n,.,,*/((###%%%%%&&&&&&&&&&&&%%##((/*/,,,\n.,,,,**(###%%%%%%%&%%%%%&%&%%%%###/**%%.\n&*..*//((((//*///(##(/*,,,,*/(/###,/(#//\n,,,.,**,.****,*,,*#&#***,,,.**/((##//(%(\n,,*./,**,/((###/*/#&%,(//((((/#%%##(%#%/\n.,**,**/*/(/((((,/#&&%/%%&&&&&#%##*##%%.\n/%/**,*(((%%%(/*///#%%%%(/(##%%##(###/,*\n.,,***,**/(((/**//#%%%####((**/(((.,,,./\n,. .,,,,***//,.,,**/((#(*/#((((,.... \n ,****,. ,,,*/(/**((##(#((((,... .\n. ,****///((/(((####%##(((/. .\n.. .. .,,*/(#/(####%%%%%#(/*##,... \n.. .. ,,,,.,//(###(###(/**(### ..\n\"" >> /etc/profile + adduser olad spi + adduser node olad + configure_hostname + disable_ola_modules + service olad restart + echo "Installation complete. Please reboot for changes to take effect." +elif [ "$1" == "--configure" ]; then + # Configuration section + PS3="Select configuration option: " + select option in "IP configuration" "Hostname"; do + case $option in + "IP configuration") + PS3="Select IP configuration option for eth0: " + select ip_option in "Static IP" "DHCP"; do + case $ip_option in + "Static IP") + configure_eth0_ip + break + ;; + "DHCP") + configure_eth0_dhcp + break + ;; + *) + echo "Invalid option. Please select again." + ;; + esac + done + break + ;; + "Hostname") + configure_hostname + break + ;; + *) + echo "Invalid option. Please select again." + ;; + esac + done +else + usage + exit 1 +fi diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..249650f --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +DMXEnttecPro==0.4 +python_artnet==1.0.0 +sacn==1.9.0