#!/bin/bash # Ubuntu Installation Script for PDF Renamer Flask App # This script sets up the PDF renamer application with reverse proxy on Ubuntu set -e echo "Starting installation of PDF Renamer Flask App..." # Update system packages echo "Updating system packages..." sudo apt update && sudo apt upgrade -y # Install required packages echo "Installing required packages..." sudo apt install -y python3 python3-pip python3-venv nginx git # Clone the repository (replace with your actual repo URL if different) echo "Cloning the repository..." git clone https://gitlab.com/trbc-dev/pdf-rename-sort.git cd pdf-rename-sort # Create virtual environment and install dependencies echo "Setting up Python virtual environment..." python3 -m venv venv source venv/bin/activate pip install --upgrade pip pip install -r requirements.txt pip install gunicorn # Create application directory structure echo "Setting up application directory..." mkdir -p static # Copy logo if it exists in repo, otherwise you'll need to add it # cp path/to/trbc-logo-full.png static/ # Uncomment and adjust if needed # Create systemd service file echo "Creating systemd service..." sudo tee /etc/systemd/system/pdf-renamer.service > /dev/null < /dev/null </dev/null || true # Remove default nginx site if it exists sudo rm -f /etc/nginx/sites-enabled/default # Test nginx configuration echo "Testing Nginx configuration..." sudo nginx -t # Reload nginx echo "Reloading Nginx..." sudo systemctl reload nginx # Configure firewall (UFW) echo "Configuring firewall..." sudo ufw allow ssh sudo ufw allow 'Nginx Full' sudo ufw --force enable echo "" echo "Installation completed successfully!" echo "" echo "Next steps:" echo "1. Update the environment variables in /etc/systemd/system/pdf-renamer.service:" echo " - SECRET_KEY: Set a secure random key" echo " - TENANT_ID, CLIENT_ID, CLIENT_SECRET: Configure for Microsoft Entra ID" echo " - ADMIN_USERNAME and ADMIN_PASSWORD: Set secure admin credentials" echo "" echo "2. Update the server_name in /etc/nginx/sites-available/pdf-renamer to your actual domain" echo "" echo "3. For SSL/HTTPS, install certbot:" echo " sudo apt install certbot python3-certbot-nginx" echo " sudo certbot --nginx -d your-domain.com" echo "" echo "4. Reload systemd after updating environment variables:" echo " sudo systemctl daemon-reload" echo " sudo systemctl restart pdf-renamer" echo "" echo "5. Check service status:" echo " sudo systemctl status pdf-renamer" echo " sudo systemctl status nginx" echo "" echo "The application should be accessible at your domain name on port 80."