diff --git a/build.json b/build.json index 38b3701..78aae05 100644 --- a/build.json +++ b/build.json @@ -1,113 +1,117 @@ { - "variables":{ - "user":"root", - "password":"laser", - "disk_size":"5G", - "domain":"" - }, - "builders":[ - { - "type":"lxc", - "name":"teamlaser-lj-lxc", - "config_file":"files/lxc/config", - "template_name":"debian", - "template_environment_vars":[ - "SUITE=buster" - ], - "output_directory":"output-lxc" - }, - { - "headless":false, - "name":"teamlaser-lj", - "type":"qemu", - "format":"qcow2", - "accelerator":"kvm", - "disk_size":"{{ user `disk_size` }}", - "output_directory":"output", - "boot_key_interval":"20ms", - "iso_url":"http://cdimage.debian.org/debian-cd/10.5.0/amd64/iso-cd/debian-10.5.0-amd64-netinst.iso", - "iso_checksum":"sha256:93863e17ac24eeaa347dfb91dddac654f214c189e0379d7c28664a306e0301e7", - "http_directory":"http", - "ssh_username":"{{ user `user` }}", - "ssh_password":"{{ user `password` }}", - "shutdown_command":"echo '{{ user `password` }}' | sudo -S shutdown -h now", - "ssh_wait_timeout":"60m", - "qemuargs":[ - [ - "-m", - "2048M" + "variables": { + "user": "root", + "password": "laser", + "disk_size": "100000", + "domain": "" + }, + "builders": [ + + + { + "type": "lxc", + "name": "teamlaser-lj-lxc", + "config_file": "files/lxc/config", + "template_name": "debian", + "template_environment_vars": ["SUITE=buster"], + "output_directory": "output-lxc" + }, + + + { + + "headless": false, + "name": "teamlaser-lj", + "type": "qemu", + "format": "qcow2", + "accelerator": "kvm", + "disk_size": "{{ user `disk_size` }}", + "output_directory": "output", + "boot_key_interval": "20ms", + "iso_url": "http://cdimage.debian.org/debian-cd/10.5.0/amd64/iso-cd/debian-10.5.0-amd64-netinst.iso", + "iso_checksum": "sha256:93863e17ac24eeaa347dfb91dddac654f214c189e0379d7c28664a306e0301e7", + "http_directory": "http", + "ssh_username": "{{ user `user` }}", + "ssh_password": "{{ user `password` }}", + "shutdown_command": "echo '{{ user `password` }}' | sudo -S shutdown -h now", + + "ssh_wait_timeout": "60m", + "qemuargs": [ + [ "-m", "2048M" ] + ], + + "boot_wait": "2s", + "boot_command": [ + "", + "install ", + "auto=true ", + "priority=critical ", + "interface=auto ", + "url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg ", + "" ] - ], - "boot_wait":"2s", - "boot_command":[ - "", - "install ", - "auto=true ", - "priority=critical ", - "interface=auto ", - "url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg ", - "" - ] - }, - { - "headless":false, - "name":"teamlaser-lj-xfce", - "type":"qemu", - "format":"qcow2", - "accelerator":"kvm", - "disk_size":"{{ user `disk_size` }}", - "output_directory":"output-xfce", - "boot_key_interval":"20ms", - "iso_url":"http://cdimage.debian.org/debian-cd/10.5.0/amd64/iso-cd/debian-10.5.0-amd64-xfce-CD-1.iso", - "iso_checksum":"sha256:14ca00bafcaf124ef2cab9da2f51d75044232ba9630a067d8664fabcb5e26ec2", - "http_directory":"http", - "ssh_username":"{{ user `user` }}", - "ssh_password":"{{ user `password` }}", - "shutdown_command":"echo '{{ user `password` }}' | sudo -S shutdown -h now", - "ssh_wait_timeout":"60m", - "qemuargs":[ - [ - "-m", - "2048M" + }, + + + { + + "headless": false, + "name": "teamlaser-lj-xfce", + "type": "qemu", + "format": "qcow2", + "accelerator": "kvm", + "disk_size": "{{ user `disk_size` }}", + "output_directory": "output-xfce", + "boot_key_interval": "20ms", + "iso_url": "http://cdimage.debian.org/debian-cd/10.5.0/amd64/iso-cd/debian-10.5.0-amd64-xfce-CD-1.iso", + "iso_checksum": "sha256:14ca00bafcaf124ef2cab9da2f51d75044232ba9630a067d8664fabcb5e26ec2", + "http_directory": "http", + "ssh_username": "{{ user `user` }}", + "ssh_password": "{{ user `password` }}", + "shutdown_command": "echo '{{ user `password` }}' | sudo -S shutdown -h now", + + "ssh_wait_timeout": "60m", + "qemuargs": [ + [ "-m", "2048M" ] + ], + + "boot_wait": "2s", + "boot_command": [ + "", + "install ", + "auto=true ", + "priority=critical ", + "interface=auto ", + "url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg ", + "" ] - ], - "boot_wait":"2s", - "boot_command":[ - "", - "install ", - "auto=true ", - "priority=critical ", - "interface=auto ", - "url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg ", - "" - ] - } - ], - "provisioners":[ - { - "type":"shell", - "inline":[ - "sleep 3", - "apt update", - "apt install -y --no-install-recommends cmake git libasound2-dev libjack-dev libsdl1.2-dev network-manager nginx portaudio19-dev python3-dev python3-pip python3-rtmidi redis-server screen ssh ssl-cert ", - "rm -f /etc/nginx/sites-enabled/default", - "pip3 install setuptools", - "pip3 install DMXEnttecPro mido numpy pysimpledmx redis scipy ", - "git clone https://github.com/ptone/pyosc --depth 1 /tmp/pyosc && cd /tmp/pyosc && ./setup.py install ", - "cd /tmp && git clone https://github.com/Ableton/link.git && cd link && git submodule update --init --recursive && mkdir build && cd build && cmake .. && cmake --build . ", - "cd /tmp/ && git clone --recursive https://github.com/gonzaloflirt/link-python.git && cd link-python && mkdir build && cd build && cmake .. && cmake --build . ", - "cd /opt/ && git clone https://git.interhacker.space/teamlaser/LJ " - ] - }, - { - "type":"file", - "source":"files/nginx/laser.conf", - "destination":"/etc/nginx/sites-enabled/laser.conf" - }, - { - "type":"file", - "source":"files/root/.bashrc", - "destination":"/root/.bashrc" - } - ] + } + ], + + "provisioners": [ + { + "type": "shell", + "inline": [ + "sleep 3", + "apt update", + "apt install -y --no-install-recommends cmake git libasound2-dev libjack-dev libsdl1.2-dev network-manager nginx portaudio19-dev python3-dev python3-pip python3-rtmidi redis-server screen ssh ssl-cert ", + "pip3 install setuptools", + "pip3 install DMXEnttecPro mido numpy pysimpledmx redis scipy ", + "git clone https://github.com/ptone/pyosc --depth 1 /tmp/pyosc && cd /tmp/pyosc && ./setup.py install ", + "cd /tmp && git clone https://github.com/Ableton/link.git && cd link && git submodule update --init --recursive && mkdir build && cd build && cmake .. && cmake --build . ", + "cd /tmp/ && git clone --recursive https://github.com/gonzaloflirt/link-python.git && cd link-python && mkdir build && cd build && cmake .. && cmake --build . ", + "cd /opt/ && git clone https://git.interhacker.space/teamlaser/LJ " + ] + }, + { + "type": "file", + "source": "files/nginx/laser.conf", + "destination": "/etc/nginx/sites-enabled/laser.conf" + }, + { + "type": "file", + "source": "files/root/.bashrc", + "destination": "/root/.bashrc" + } + ] } diff --git a/files/nginx/laser.conf b/files/nginx/laser.conf index 402b69e..88cfaeb 100644 --- a/files/nginx/laser.conf +++ b/files/nginx/laser.conf @@ -1,21 +1,12 @@ -server { - listen 80; - listen [::]:80; - server_name _; - - root /opt/LJ/www; - return 301 https://localhost$request_uri; - -} server { listen 443 ssl; listen [::]:443 ssl; - server_name _; - ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; + server_name _; + root /opt/LJ/www; - index index.html index.htm; + index index.html index.htm index.nginx-debian.html; } diff --git a/files/root/.bashrc b/files/root/.bashrc deleted file mode 100644 index ad962b6..0000000 --- a/files/root/.bashrc +++ /dev/null @@ -1,87 +0,0 @@ -cd /opt/LJ -echo -e "\n\e[1;31m" -cat << HEREDOC - \ \ / | | | | - \ \ \ / _ \ | __| _ \ __ \__ \ _ \ __| _ \ | | - \ \ \ / __/ | ( ( | | | | __/ | ( | | \ | - \_/\_/ \___| _| \___| \___/ _| _| _| \___| \__| \___/ _____| \___/ -HEREDOC -echo -e "\e[0m\n" - -# Check the ip address on the machine -checkNetwork(){ - - echo -e "\Checking network connectivity..." - ping=$( ping 1.1.1.1 -c 1 -W 2 &>/dev/null; echo $?;) - - # Net is working, escape - if [[ 0 -eq $ping ]] ; then - echo -e "\n OK, Use this IP Address for GUEST_IP : $( ip address show | grep global | awk '{print $2}'|sed -e 's=/.*==' ) \n" - return - fi - - echo -e "\nSeems you can't reach internet..." - - # Get the ethernet interface - # 772 is the loopback device, cf. http://lxr.linux.no/linux+v3.0/include/linux/if_arp.h#L67 - for f in /sys/class/net/* ; do - [[ 772 != $(cat "$f/type" ) ]] && interface=$(basename $f) - done - - if [[ -z "$interface" ]] ; then - echo -e "\e[31mFatal Error : no network interface configured."; - # Eventually, use nm-tui for a graphical (ncurses install) - read -e -p "(Experts only) Do you want to set up network via network-manager UI? [yN]: " - [[ "${REPLY^^}" == "Y" ]] && { nmtui; return; } - - else - echo "OK, network interface '$interface' found" - fi - - # Ensure the interface is up - ip l set $interface up - - ipList=$( ip address show | grep global ) - ipRoute=$( ip route show | grep default ) - - [[ -z "$ipList" ]] && { - echo -e "\nNo IP address configured. Please set one." - read -e -i '192.168.1.90/24' -p "Which address and range do you want to use (or 'x' to skip)? " ipAddr - [[ 'x' != "$ipAddr" ]] && { - ip address add $ipAddr dev $interface - } - } - [[ -z "$ipRoute" ]] && { - echo -e "\nNo IP route configured. Please set one." - read -e -i '192.168.1.1' -p "Which routing address do you want to use (or 'x' to skip)? " ipAddr - [[ 'x' != "$ipAddr" ]] && { - ip route add default via $ipAddr dev $interface - } - } - - -} -checkNetwork -[[ ! -f /tmp/.first_run ]] && { - touch /tmp/.first_run ; - echo -e "\e[1mCaution! configuring the server and lasers network is mandatory for the app to work." - echo -e "Type the "c" key immediately to start the configuration." - echo -e "\e[0m" - echo -e "Everytime you will login, the configure and documentation options will be offered to you." - echo -e "Or use the commands 'config' or 'usage' any time to access the same functions." - echo -e "\e[0m" -} -config(){ cd /opt/LJ ; /usr/bin/python3 configure.py; } -usage(){ cat /opt/LJ/README.md; } - -echo -e "\e[1m" -read -e -n 1 -p "Do you want to (c)onfigure the app, (r)ead documentation, or (n)othing: " -echo -e "\e[0m" -case $REPLY in - (c): - config - ;; - (r): - usage - ;; -esac diff --git a/files/supervisor-syncthing.conf b/files/supervisor-syncthing.conf new file mode 100644 index 0000000..f0374e4 --- /dev/null +++ b/files/supervisor-syncthing.conf @@ -0,0 +1,6 @@ +[program:syncthing] +autorestart = True +directory = /home/teamlaser15/codesync +user = teamlaser15 +command = /usr/bin/syncthing -no-browser -home="/home/teamlaser15/codesync/.config/syncthing" +environment = STNORESTART="1", HOME="/home/teamlaser15/codesync/"