#!/bin/bash # Ensure the script is NOT run as root, so the user-level systemd service configures correctly if [ "$EUID" -eq 0 ]; then echo "❌ Please run this script as your standard user, not as root." echo "The script will prompt for sudo access automatically when needed." exit 1 fi echo "=== Proxy Bridge Installer ===" # 1. Verify files exist if [ ! -f "bridge.js" ] || [ ! -f "setup.js" ]; then echo "❌ Error: bridge.js and/or setup.js not found in the current directory." echo "Please place this script in the same folder as your Node.js scripts." exit 1 fi # 2. Install dependencies (requires sudo) echo "--> Installing required system packages (libsecret-tools)..." sudo apt-get update sudo apt-get install -y libsecret-tools # 3. Setup application directory (requires sudo) echo "--> Creating /opt/proxy-bridge directory..." sudo mkdir -p /opt/proxy-bridge sudo chown -R $USER:$USER /opt/proxy-bridge # 4. Copy files echo "--> Copying scripts to /opt/proxy-bridge..." cp bridge.js /opt/proxy-bridge/ cp setup.js /opt/proxy-bridge/ # 5. Setup User-Level systemd Service echo "--> Configuring user-level systemd service..." mkdir -p ~/.config/systemd/user/ cat < ~/.config/systemd/user/proxy-bridge.service [Unit] Description=Dumb Pipe Proxy Bridge (Keyring Auth) After=network.target [Service] Type=simple ExecStart=/usr/bin/node /opt/proxy-bridge/bridge.js Restart=on-failure RestartSec=5 [Install] WantedBy=default.target EOF # 6. Enable the service echo "--> Reloading systemd and enabling service..." systemctl --user daemon-reload systemctl --user enable proxy-bridge.service echo "" echo "✅ Installation Complete!" echo "==================================================" echo "Next Steps:" echo "1. Run the interactive setup to store your proxy credentials:" echo " node /opt/proxy-bridge/setup.js" echo "" echo "2. Start the background service:" echo " systemctl --user start proxy-bridge.service" echo "" echo "3. Check the logs to ensure it's running smoothly:" echo " journalctl --user -u proxy-bridge.service -f" echo "=================================================="