improve setup script

This commit is contained in:
Boaz Sender 2025-04-06 17:08:27 -07:00
parent 4a912fc912
commit d3ad26c500
3 changed files with 69 additions and 32 deletions

View file

@ -8,7 +8,7 @@
"build": "tsc",
"deploy": "npm run build && rsync -av --exclude-from='exclude.txt' ./ grace@listener.local:portal",
"setup:broadcaster": "rsync -av --exclude-from='exclude.txt' ./ grace@broadcaster.local:portal",
"setup:listener": "rsync -av --exclude-from='exclude.txt' ./ grace@listener.local:portal && ssh grace@listener.local -t 'cd portal/setup/listener && chmod +x install.sh && sudo ./install.sh; bash -l'"
"setup:listener": "rsync -av --exclude-from='exclude.txt' ./ grace@listener.local:portal && ssh grace@listener.local -t 'cd portal/setup/listener && chmod +x install.sh && ./install.sh;'"
},
"repository": {
"type": "git",

View file

@ -1,32 +1,43 @@
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root. Try again with \n sudo ./install.sh" 1>&2
exit 1
fi
is_Raspberry=$(cat /proc/device-tree/model | awk '{print $1}')
if [ "x${is_Raspberry}" != "xRaspberry" ] ; then
echo "This script contains drivers for the Raspberry pi and will not work on the current platform."
exit 1
fi
apt update
apt -y install git vim zsh mplayer
# sudo apt update
# sudo apt -y install git vim zsh mplayer
update_system() {
echo "Updating system"
sudo apt update
sudo apt dist-upgrade
sudo apt upgrade
}
curl https://get.volta.sh | bash
volta install node
install_volta() {
echo "Installing node@latest via volta"
sh -c "wget -qO- https://get.volta.sh | bash"
exec $SHELL
volta install node@latest
}
install_screen() {
echo "Installing screen program"
cd portal
npm install
npx prisma generate && npx prisma db push && npx prisma db seed
cp ./screen.service /lib/systemd/system/
cp ./player.service /lib/systemd/system/
}
install_sound_card_drivers() {
echo "Installing sound card drivers"
git clone https://github.com/waveshare/WM8960-Audio-HAT
cd WM8960-Audio-HAT
sudo ./install.sh
}
setup_daemons() {
echo "Setting up daemons"
sudo cp ./screen.service /lib/systemd/system/
sudo cp ./player.service /lib/systemd/system/
systemctl daemon-reload
systemctl enable player
systemctl enable screen
@ -34,12 +45,28 @@ systemctl enable wm8960-soundcard.service
systemctl start player
systemctl start screen
systemctl start wm8960-soundcard
}
install_ohmyzsh() {
echo "Installing oh my zsh"
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
echo TERM=xterm > ~/.zshrc
}
install_all() {
update_system
install_volta
install_screen
# install_sound_card_drivers
# setup_daemons
# install_ohmyzsh
# sudo reboot
}
install_all
echo "------------------------------------------------------"
echo "The Black Portal listening device has been provisioned."
echo "Reboot this raspberry pi now in order for things to work"
echo "The Black Portal listening device has been setup."
echo "This raspberry pi now rebooting in order to apply changes"
echo "------------------------------------------------------"

View file

@ -10,6 +10,7 @@ Running mplayer, soundcard library, lcd graphics library, and custom python code
## Bill of Materials
- Raspberry pi zero 2 wh - https://www.waveshare.com/product/raspberry-pi/boards-kits/raspberry-pi-zero-2-w-cat/raspberry-pi-zero-2-w.htm?sku=21038
- 32GB Micro SD card - https://www.waveshare.com/raspberry-pi-sd-card.htm.
- Waveshare UPS with 1000mah battery - https://www.waveshare.com/ups-hat-c.htm
- Waveshare sound card hat with speakers- https://www.waveshare.com/wm8960-audio-hat.htm
- 1602 LCD screen - https://www.waveshare.com/lcd1602-i2c-module-blue.htm?sku=30496
@ -30,11 +31,18 @@ Running mplayer, soundcard library, lcd graphics library, and custom python code
## Pre work
1. Install raspian lite 64 for raspi zero. Make sure to configure user and wifi and turn on ssh services when you install.
2. Boot the pi.
You will need a micro SD card reader and computer to complete the next step.
1. Download the raspberry pi imager from [raspberrypi.com/software](https://www.raspberrypi.com/software).
2. Install raspian lite 64 bit for raspi zero 2.
A. Make sure to configure user and wifi and turn on ssh services when you install.
B. If you don't already have an ssh key, make one with `ssh-keygen -t ed25519 -C "your_email@example.com"` and then copy it with `cat ~/.ssh/id_ed25519.pub` and paste it into the ssh service in the services section of the imager.
3. Boot the pi.
## Setup instructions
Running the setup script from the command line
### Using node and npm
If you have node and npm installed, you can run this command from inside this repository:
@ -43,6 +51,8 @@ If you have node and npm installed, you can run this command from inside this re
npm run setup:listener
```
Type "yes" when prompted to continue connecting and the press enter.
If you'd like to install node and npm try installing https://volta.sh and then running volta install node@latest.
### Using the terminal