updated installer

This commit is contained in:
2025-04-01 14:01:55 +03:00
parent 865a2d5d1e
commit f96fc9686f

View File

@@ -2,44 +2,76 @@
# Define variables # Define variables
REPO_URL="https://gitea.moto-adv.com/ske087/signage-player.git" # Replace with your Gitea repository URL REPO_URL="https://gitea.moto-adv.com/ske087/signage-player.git" # Replace with your Gitea repository URL
PROJECT_DIR="digital-signage-player" PROJECT_DIR="/home/pi/Desktop/digital-signage-player" # Full path to the installation folder
SERVICE_NAME="digital-signage-player.service" SERVICE_NAME="digital-signage-player.service"
WIFI_SSID="Hating.Backup2-4G" # Replace with your Wi-Fi SSID
WIFI_PASSWORD="EuropaUnita2020" # Replace with your Wi-Fi password
# Step 1: Update the system # Step 0: Check if Wi-Fi is enabled and connect to Wi-Fi
echo "Checking if Wi-Fi is enabled..."
if ! rfkill list wifi | grep -q "Soft blocked: no"; then
echo "Wi-Fi is disabled. Enabling Wi-Fi..."
rfkill unblock wifi
sleep 5
else
echo "Wi-Fi is already enabled."
fi
echo "Checking Wi-Fi connection..."
if ! iwgetid -r > /dev/null; then
echo "Not connected to Wi-Fi. Connecting to $WIFI_SSID..."
sudo bash -c "wpa_passphrase \"$WIFI_SSID\" \"$WIFI_PASSWORD\" > /etc/wpa_supplicant/wpa_supplicant.conf"
sudo wpa_cli -i wlan0 reconfigure
sleep 10
if iwgetid -r > /dev/null; then
echo "Successfully connected to Wi-Fi: $WIFI_SSID"
else
echo "Failed to connect to Wi-Fi. Please check your credentials."
exit 1
fi
else
echo "Already connected to Wi-Fi: $(iwgetid -r)"
fi
# Step 1: Check if the installation folder exists
if [ -d "$PROJECT_DIR" ]; then
echo "Installation folder already exists: $PROJECT_DIR"
echo "Skipping installation steps and starting the service..."
sudo systemctl start "$SERVICE_NAME"
echo "Service started successfully!"
exit 0
fi
# Step 2: Update the system
echo "Updating the system..." echo "Updating the system..."
sudo apt-get update -y sudo apt-get update -y
sudo apt-get upgrade -y sudo apt-get upgrade -y
# Step 2: Clone the repository # Step 3: Clone the repository
echo "Cloning the repository from $REPO_URL..." echo "Cloning the repository from $REPO_URL..."
if [ -d "$PROJECT_DIR" ]; then git clone "$REPO_URL" "$PROJECT_DIR"
echo "Project directory already exists. Pulling the latest changes..."
cd "$PROJECT_DIR" && git pull && cd ..
else
git clone "$REPO_URL"
fi
# Step 3: Set permissions for the project directory # Step 4: Set permissions for the project directory
echo "Setting permissions for the project directory to 0777..." echo "Setting permissions for the project directory to 0777..."
sudo chmod -R 0777 "$PROJECT_DIR" sudo chmod -R 0777 "$PROJECT_DIR"
# Step 4: Navigate to the project directory # Step 5: Navigate to the project directory
cd "$PROJECT_DIR" || { echo "Failed to navigate to project directory."; exit 1; } cd "$PROJECT_DIR" || { echo "Failed to navigate to project directory."; exit 1; }
# Step 5: Install Python dependencies # Step 6: Install Python dependencies
echo "Installing Python dependencies from requirements.txt..." echo "Installing Python dependencies from requirements.txt..."
pip install -r requirements.txt pip install -r requirements.txt
# Step 6: Install system dependencies for ffpyplayer # Step 7: Install system dependencies for ffpyplayer
echo "Installing system dependencies for ffpyplayer..." echo "Installing system dependencies for ffpyplayer..."
sudo apt-get install -y libsdl2-dev libsdl2-ttf-dev libsdl2-image-dev libsdl2-mixer-dev sudo apt-get install -y libsdl2-dev libsdl2-ttf-dev libsdl2-image-dev libsdl2-mixer-dev
sudo apt-get install -y libavcodec-dev libavformat-dev libavdevice-dev libavutil-dev libswscale-dev libswresample-dev libpostproc-dev sudo apt-get install -y libavcodec-dev libavformat-dev libavdevice-dev libavutil-dev libswscale-dev libswresample-dev libpostproc-dev
# Step 7: Install ffpyplayer # Step 8: Install ffpyplayer
echo "Installing ffpyplayer..." echo "Installing ffpyplayer..."
pip install ffpyplayer pip install ffpyplayer
# Step 8: Create a systemd service for autostart # Step 9: Create a systemd service for autostart
echo "Creating systemd service for autostart..." echo "Creating systemd service for autostart..."
SERVICE_FILE="/etc/systemd/system/$SERVICE_NAME" SERVICE_FILE="/etc/systemd/system/$SERVICE_NAME"
sudo bash -c "cat > $SERVICE_FILE" <<EOL sudo bash -c "cat > $SERVICE_FILE" <<EOL
@@ -48,8 +80,8 @@ Description=Kivy Media Player
After=network.target After=network.target
[Service] [Service]
ExecStart=/usr/bin/python3 /home/pi/Desktop/kivy-media-player/src/main.py ExecStart=/usr/bin/python3 $PROJECT_DIR/src/main.py
WorkingDirectory=/home/pi/Desktop/kivy-media-player WorkingDirectory=$PROJECT_DIR
Restart=always Restart=always
User=pi User=pi
Environment=DISPLAY=:0 Environment=DISPLAY=:0
@@ -59,13 +91,13 @@ Environment=XAUTHORITY=/home/pi/.Xauthority
WantedBy=multi-user.target WantedBy=multi-user.target
EOL EOL
# Step 9: Enable and start the service # Step 10: Enable and start the service
echo "Enabling and starting the systemd service..." echo "Enabling and starting the systemd service..."
sudo systemctl daemon-reload sudo systemctl daemon-reload
sudo systemctl enable "$SERVICE_NAME" sudo systemctl enable "$SERVICE_NAME"
sudo systemctl start "$SERVICE_NAME" sudo systemctl start "$SERVICE_NAME"
# Step 10: Confirm installation # Step 11: Confirm installation
echo "Installation completed successfully!" echo "Installation completed successfully!"
echo "The application will now start automatically on boot." echo "The application will now start automatically on boot."
echo "You can manually start it using: sudo systemctl start $SERVICE_NAME" echo "You can manually start it using: sudo systemctl start $SERVICE_NAME"