Files
gists/scripts/proxy/install_proxy.sh
T

70 lines
2.1 KiB
Bash
Executable File

#!/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 <<EOF > ~/.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 "=================================================="