Server Buddy is an Electron desktop app for administering a Windows server from a single local dashboard. It focuses on practical VPS and RDP maintenance tasks: changing RDP settings, adding firewall rules, testing proxies, watching processes, toggling Windows security features, and sending operational alerts to Discord.
This repository is published as a portfolio-quality archive of a real internal tool. The code is authentic, the app behavior is grounded in the implementation that is present here, and the project is best read as a legacy desktop operations app rather than a current production product.
- Real Windows automation: registry edits, firewall changes, password resets, process management, and activation tooling wired through Electron IPC.
- Legacy desktop architecture: a single Electron shell coordinating privileged OS commands, background services, local persistence, and renderer menus.
- Operational feature set: proxy testing, process watching, speed tests, Discord alerts, and optional remote command / socket integrations.
- Honest preservation: this repo documents what still works locally, what depends on retired services, and which bundled artifacts come from third parties.
- Reads the current RDP port from the Windows registry.
- Changes the RDP port and adds a matching inbound firewall rule.
- Changes the current RDP user's password with
net user. - Generates a random password and copies it to the clipboard.
- Adds inbound Windows Firewall allow rules for specific IP addresses.
- Adds inbound Windows Firewall block rules for specific IP addresses.
- Includes a handler for renaming the RDP/local user, although the UI path is commented out.
- Enables or disables Windows Defender real-time monitoring.
- Enables or disables Windows Firewall.
- Enables or disables Windows Error Reporting.
- Enables or disables automatic Windows Updates by writing policy registry values.
- Syncs server time.
- Checks Windows activation / trial expiration.
- Runs the Windows trial re-arm command.
- Exposes a Windows activation action from the UI.
- Lets you create a proxy group in the UI.
- Accepts proxies in
host:portandhost:port:user:passformats. - Bulk imports proxies by paste.
- Tests proxies against a chosen target URL using
curl. - Measures connect time and color-codes results by latency.
- Lets you copy, clear, and filter proxy lists by response time.
- Scans running processes with PowerShell.
- Groups duplicate process names and counts instances.
- Filters out a long list of system/background processes.
- Lets you search the discovered app list.
- Lets you terminate selected processes with
taskkill. - Lets you maintain a watch list of apps to monitor.
- Re-checks watched apps on a configurable interval.
- Marks watched apps as
RunningorOfflinein the UI. - Sends a Discord webhook alert when a watched app goes offline.
- Displays live CPU, RAM, and network usage in the main UI.
- Reports static system information including CPU, memory, OS, and network adapter details.
- Runs bandwidth tests with selectable test locations.
- Shows ping, download, upload, ISP, and selected speed test server details.
- Stores a local computer nickname.
- Stores a Discord webhook URL and sends a test webhook.
- Persists alert preferences in local storage.
- Supports toggles for:
- RDP connect alerts
- Server down alerts
- CPU overload alerts
- RAM overload alerts
- Can log into a legacy remote web service when
SERVER_BUDDY_API_URLis configured. - Can open a persistent Socket.IO connection when
SERVER_BUDDY_SOCKET_URLis configured. - Sends heartbeat and machine metadata after login.
- Receives remote commands for app watching, app stop-watching, and app termination.
- Uploads some machine history / report data back to the service.
- Windows is effectively required. The app calls PowerShell,
net user,taskkill,slmgr.vbs, Windows registry paths, and Windows Firewall commands throughout the code. - Administrator privileges are expected. On startup the app warns if it is not running elevated.
- Node.js and npm are required for local development.
- Google Chrome is expected at its default install path for some browser-dependent flows.
npm install
npm startThe app is an Electron application. Development and packaging scripts are defined in package.json. Optional legacy integrations are documented in .env.example.
- This code depends on legacy external services and endpoints that may no longer exist or may not be usable without the original backend.
- Some features assume bundled helper files and Windows-specific executables are present.
- The
Alertspanel exists in the UI but is mostly a placeholder; the actual alert configuration lives in Settings and process-watch webhook behavior. - The app includes update, login, and remote-control hooks that were part of the original product ecosystem.
- This repository should not be treated as a hardened or actively maintained security tool.
docs/ARCHITECTURE.md: code tour and subsystem overview.CONTRIBUTING.md: expectations for forks, PRs, and historical fixes.SECURITY.md: security disclosure and support policy.THIRD_PARTY_NOTICES.md: licensing and provenance notes for bundled third-party artifacts.
main.js: Electron main process, Windows command execution, login, socket connection, speed tests, and IPC handlers.renderer/app.js: renderer bootstrap and shared UI helpers.renderer/menus/security.js: RDP and firewall controls.renderer/menus/proxytest.js: proxy group management and proxy testing UI.renderer/menus/apps.js: process list, watch list, and kill actions.renderer/menus/system.js: system toggles and hardware info.renderer/menus/tools.js: Windows utility actions and speed tests.renderer/menus/settings.js: nickname, webhook, and alert preferences.
This repository is intentionally presented as an archived reference implementation of a Windows server utility app built with Electron. It is useful as a code sample, maintenance artifact, and portfolio project, but not as a drop-in supported product.