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
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"
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..."
sudo apt-get update -y
sudo apt-get upgrade -y
# Step 2: Clone the repository
# Step 3: Clone the repository
echo "Cloning the repository from $REPO_URL..."
if [ -d "$PROJECT_DIR" ]; then
echo "Project directory already exists. Pulling the latest changes..."
cd "$PROJECT_DIR" && git pull && cd ..
else
git clone "$REPO_URL"
fi
git clone "$REPO_URL" "$PROJECT_DIR"
# 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..."
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; }
# Step 5: Install Python dependencies
# Step 6: Install Python dependencies
echo "Installing Python dependencies from 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..."
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
# Step 7: Install ffpyplayer
# Step 8: Install ffpyplayer
echo "Installing 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..."
SERVICE_FILE="/etc/systemd/system/$SERVICE_NAME"
sudo bash -c "cat > $SERVICE_FILE" <<EOL
@@ -48,8 +80,8 @@ Description=Kivy Media Player
After=network.target
[Service]
ExecStart=/usr/bin/python3 /home/pi/Desktop/kivy-media-player/src/main.py
WorkingDirectory=/home/pi/Desktop/kivy-media-player
ExecStart=/usr/bin/python3 $PROJECT_DIR/src/main.py
WorkingDirectory=$PROJECT_DIR
Restart=always
User=pi
Environment=DISPLAY=:0
@@ -59,13 +91,13 @@ Environment=XAUTHORITY=/home/pi/.Xauthority
WantedBy=multi-user.target
EOL
# Step 9: Enable and start the service
# Step 10: Enable and start the service
echo "Enabling and starting the systemd service..."
sudo systemctl daemon-reload
sudo systemctl enable "$SERVICE_NAME"
sudo systemctl start "$SERVICE_NAME"
# Step 10: Confirm installation
# Step 11: Confirm installation
echo "Installation completed successfully!"
echo "The application will now start automatically on boot."
echo "You can manually start it using: sudo systemctl start $SERVICE_NAME"