#!/bin/bash # terminal-setup.sh # OpenDRS Online Maintenance Tracking System # Copyright (C) 2021 Rod Wright # SPDX-License-Identifier: GPL-2.0 echo "" echo "" echo "" echo "" echo "This script will configure a Raspberry Pi to be an OpenDRS terminal." echo "" echo "" echo "You should have already completed the following steps:" echo "" echo "1. Created a Raspberry Pi OS Lite SD card from the latest release." echo "2. Installed the card in a Raspberry Pi, booted it, and logged in as pi." echo "3. Ran sudo raspi-config and :" echo " a. Set a strong password for the pi user." echo " b. Set hostname and, if accessing a network through wifi, the SSID and" echo " passphrase under Network Options." echo " c. Set locale, timezone, keyboard layout, and wifi country under" echo " Localisation Options." echo " d. Enable SSH under Interfacing Options." echo " e. Set overscan as required to get rid of any black borders around the" echo " edge of the display." echo " f. Reboot when prompted and logged back in as pi." echo "4. Transferred the OpenDRS distribution package to /home/pi on the" echo " Raspberry Pi and extracted it." echo "5. Changed directory to RPiSetup in the the extracted distribution directory." echo "" echo "If you have completed these steps, press enter to continue. If not," echo -n "press ctrl-c to quit." read continueok echo "" echo "" echo "" echo "" echo "Updating Raspberry Pi OS..." sleep 10 echo "" echo "" echo "" echo "" apt update && apt dist-upgrade -y echo "" echo "" echo "" echo "" echo "...done." sleep 10 echo "" echo "" echo "Copying files..." chmod +x usr/local/bin/* cp usr/local/bin/* /usr/local/bin cp etc/apt/sources.list.d/* /etc/apt/sources.list.d cp lib/systemd/system/getty@tty1.service /lib/systemd/system echo "" echo "" echo "" echo "" echo "...done." sleep 10 echo "" echo "" echo "Installing required terminal packages..." sleep 10 echo "" echo "" echo "" echo "" wget http://www.webmin.com/jcameron-key.asc apt-key add jcameron-key.asc rm jcameron-key.asc apt update apt install -y --no-install-recommends xorg openbox chromium-browser apt install -y webmin cups libcups2-dev cmake addgroup lpadmin usermod -a -G lpadmin pi systemctl enable getty@tty1.service service cups-browsed stop systemctl disable cups-browsed.service cp etc/cups/cupsd.conf /etc/cups/ service cups restart cd brlaser-master cmake . && make && make install cd .. myhn=`hostname` echo "" echo "" echo "" echo "" echo "Drivers have been installed for the Brother HL-L2300D printer that may come" echo "with the terminal." echo "After the terminal is set up and working, you can use another network" echo "computer to point a web browser to $myhn:631 to add this or another printer" echo "of your choosing." echo -n "Press enter to continue." read continueok echo "" echo "" echo "Creating customer user..." sleep 10 echo "" echo "" echo "" echo "" cloneuser `who am i | awk '{print $1}'` customer mkdir -p /home/customer/.config/openbox cp home/customer/.profile /home/customer cp home/customer/.config/openbox/rc.xml /home/customer/.config/openbox chown -R customer:customer /home/customer/.config /home/customer/.profile echo "" echo "" echo "" echo "" echo "...done." echo "" echo "" echo "This terminal will need to communicate with an OpenDRS server. If" echo "you intend to host the server directly on this terminal, leave this" echo -n "blank. Otherwise, enter the server URL :" read server_url if [[ $server_url == "" ]] then conftype="Server/Terminal" touch /etc/drs.conf ./server-setup.sh else conftype="Terminal" echo "DRS_SERVER=\"$server_url\"" > /etc/drs.conf fi echo "" echo "" echo "$conftype configuration is now complete. " echo "" echo "" echo "It is highly recommended that after rebooting, you run ssh pi@$HOSTNAME" echo "from another computer on the network, then create new users for" echo "yourself and any other administrators using the cloneuser command" echo "(cloneuser pi )." echo "" echo "" echo "Setup complete." echo -n "Press enter to reboot now." read rebootok reboot