138 lines
3.8 KiB
Bash
138 lines
3.8 KiB
Bash
#!/bin/bash
|
|
echo "POConsole Auto Configuration Script"
|
|
echo "-----------------------------------"
|
|
echo "Written by: Patrick McDonagh"
|
|
echo "Sit back and relax... I'll take over from here"
|
|
|
|
echo "Setting up SSH Key"
|
|
mkdir ~/.ssh
|
|
cat henryPumpDev.pub >> ~/.ssh/authorized_keys
|
|
|
|
echo "Changing hostname to poconsole"
|
|
sudo mv hostname /etc/hostname
|
|
|
|
echo "Setting up networking"
|
|
sudo mv interfaces /etc/network/interfaces
|
|
sudo apt-get update
|
|
sudo apt-get -y upgrade
|
|
sudo apt-get -y install unzip cmake mysql-client python-dev htop nginx libmysqlclient-dev avahi-daemon screen mysql-server g++ gcc curl
|
|
|
|
echo "Setting up USB Drive"
|
|
sudo mkdir /mnt/usb
|
|
sudo mkdir /mnt/usb/CSV
|
|
echo "Formatting to EXT4"
|
|
sudo mkfs.ext4 /dev/sda1 -L usbdrive
|
|
echo "Adding entry for USB in /etc/fstab"
|
|
sudo sh -c "echo '/dev/sda1 /mnt/usb ext4 defaults 0 0'>>/etc/fstab"
|
|
echo "Mounting all drives"
|
|
sudo mount -a
|
|
echo "Configuring MySQL to use the USB drive"
|
|
cd /mnt/usb
|
|
sudo mkdir mysql
|
|
sudo su
|
|
cp -Rv /var/lib/mysql/* /mnt/usb/mysql/
|
|
chown -R mysql:mysql /mnt/usb/mysql
|
|
exit
|
|
cd ~/setup
|
|
sudo service mysql stop
|
|
sudo sed 's:/var/lib/mysql:/mnt/usb/mysql:g' /etc/mysql/my.cnf
|
|
sudo service mysql restart
|
|
sudo chmod 777 /mnt/usb
|
|
sudo chmod 777 /mnt/usb/*
|
|
|
|
|
|
echo "installing TuxEip"
|
|
wget https://github.com/leicht/TuxPLC/archive/master.zip
|
|
unzip master.zip
|
|
cd TuxPLC-master/tuxeip
|
|
cmake CMakeLists.txt
|
|
make
|
|
|
|
cd lib
|
|
ar -x libtuxeip.a
|
|
gcc -shared *.o -o libtuxeip.so
|
|
sudo cp libtuxeip.so /usr/lib/
|
|
|
|
cd ~/setup
|
|
#sudo wget -O /etc/apt/sources.list.d/repository.pi3g.com.list http://repository.pi3g.com/sources.list
|
|
#wget -O - http://repository.pi3g.com/pubkey | sudo apt-key add -
|
|
|
|
echo "Configuring MySQL"
|
|
# sudo mv my.cnf /etc/mysql/my.cnf
|
|
# sudo service mysql restart
|
|
mysql --user="root" --password="henrypump" --execute="source WellDataEmpty.sql"
|
|
mysql --user="root" --password="henrypump" --execute="source setupUsers.sql"
|
|
|
|
echo "Configuring nginx"
|
|
sudo mv default /etc/nginx/sites-enabled/default
|
|
|
|
echo "installing node"
|
|
wget http://node-arm.herokuapp.com/node_latest_armhf.deb
|
|
sudo dpkg -i node_latest_armhf.deb
|
|
|
|
|
|
# INSTALLING NODE ON UBUNTU
|
|
# curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
|
|
# sudo apt-get install -y nodejs
|
|
|
|
sudo npm install -g forever
|
|
|
|
echo "Configuring Auto-start scripts"
|
|
sudo chmod 777 loggers
|
|
sudo chmod 777 website
|
|
# sudo chmod 777 usbMount
|
|
sudo mv loggers /etc/init.d/
|
|
sudo mv website /etc/init.d/
|
|
# sudo mv usbMount /etc/init.d/
|
|
# sudo update-rc.d usbMount defaults
|
|
sudo update-rc.d loggers defaults
|
|
sudo update-rc.d website defaults
|
|
|
|
echo "Installing pip - Python Package Manager"
|
|
wget https://bootstrap.pypa.io/get-pip.py
|
|
sudo python get-pip.py
|
|
sudo pip install mysql requests boto3 pycomm
|
|
|
|
echo "Setting up POConsole software"
|
|
mkdir ~/src
|
|
mkdir ~/.aws
|
|
cp config ~/.aws/
|
|
cp checkCurrentVersion.py ~/src/
|
|
python ~/src/checkCurrentVersion.py True
|
|
cd ~/src/www
|
|
npm install
|
|
cd ~/setup
|
|
|
|
echo "Setting up Wifi Access Point and DHCP Server"
|
|
sudo apt-get install -y hostapd isc-dhcp-server
|
|
sudo cp dhcpd.conf /etc/dhcp/
|
|
sudo cp isc-dhcp-server /etc/default/
|
|
sudo cp hostapd.conf /etc/hostapd/
|
|
sudo cp hostapd /etc/default/
|
|
sudo sed -i '$a net.ipv4.ip_forward=1' /etc/sysctl.conf
|
|
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
|
|
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
|
|
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
|
|
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
|
|
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
|
|
sudo ifdown wlan0
|
|
sudo ifup wlan0
|
|
sudo service hostapd start
|
|
sudo service isc-dhcp-server start
|
|
|
|
echo "Setup Complete!"
|
|
|
|
cd ~
|
|
mv setup .setup
|
|
sudo userdel pi
|
|
|
|
read -n1 -r -p "Press any key to reboot..." key
|
|
|
|
if [ "$key" = ' ' ]; then
|
|
# Space pressed, do something
|
|
sudo reboot
|
|
else
|
|
# Anything else pressed, do whatever else.
|
|
sudo reboot
|
|
fi
|