#!/bin/bash # Exit immediately if a command exits with a non-zero status set -e # Update and install necessary packages echo "Updating package list and installing necessary packages..." sudo apt update sudo apt install git gh apache2 php php-sqlite3 python3 python3-pip jq autossh i2c-tools python3-smbus -y # Install Python libraries echo "Installing Python libraries..." sudo pip3 install pyserial requests RPi.GPIO adafruit-circuitpython-bme280 crcmod psutil --break-system-packages # Ask user if they want to set up SSH keys read -p "Do you want to set up an SSH key for /var/www? (y/n): " answer # Convert input to lowercase to accept 'Y' or 'y' answer=${answer,,} if [[ "$answer" == "y" ]]; then echo "Setting up SSH keys..." # Create SSH directory if it doesn't exist sudo mkdir -p /var/www/.ssh sudo chmod 700 /var/www/.ssh # Generate SSH key if it does not already exist if [[ ! -f /var/www/.ssh/id_rsa ]]; then sudo ssh-keygen -t rsa -b 4096 -f /var/www/.ssh/id_rsa -N "" echo "SSH key generated successfully." else echo "SSH key already exists. Skipping key generation." fi # Copy SSH key to remote server sudo ssh-copy-id -i /var/www/.ssh/id_rsa.pub -p 50221 airlab_server1@aircarto.fr echo "SSH setup complete!" else echo "Skipping SSH key setup." fi # Clone the repository echo "Cloning the NebuleAir Pro 4G repository..." sudo git clone http://gitea.aircarto.fr/PaulVua/nebuleair_pro_4g.git /var/www/nebuleair_pro_4g # Set up repository files and permissions echo "Setting up repository files and permissions..." sudo mkdir /var/www/nebuleair_pro_4g/logs sudo touch /var/www/nebuleair_pro_4g/logs/app.log /var/www/nebuleair_pro_4g/logs/loop.log /var/www/nebuleair_pro_4g/wifi_list.csv sudo cp /var/www/nebuleair_pro_4g/config.json.dist /var/www/nebuleair_pro_4g/config.json sudo chmod -R 777 /var/www/nebuleair_pro_4g/ git config --global core.fileMode false git config --global --add safe.directory /var/www/nebuleair_pro_4g # Set up cron jobs echo "Setting up cron jobs..." sudo crontab /var/www/nebuleair_pro_4g/cron_jobs #Creates databases echo "Creating databases." sudo /usr/bin/python3 /var/www/nebuleair_pro_4g/sqlite/create_db.py #Apache echo "Set Up Apache" sudo sed -i 's|DocumentRoot /var/www/html|DocumentRoot /var/www/nebuleair_pro_4g|' /etc/apache2/sites-available/000-default.conf sudo systemctl reload apache2 echo "Setup completed successfully!"