70 lines
2.1 KiB
Bash
Executable File
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 "==================================================" |