A modern, reliable, and feature-rich web interface for your Rust game server's RCon.
Check out the live version: rust-rcon-web.evs-ptr.workers.dev
- Real-Time Console & Chat: A color-coded console and a dedicated, clean in-game chat view. No more cluttered logs.
- Effortless Server Management: Save, manage, and instantly switch between multiple server configurations. Your settings are persisted locally and even synced across browser tabs.
- Intelligent Console UI: Includes essential features like command history (use arrow keys!), smart auto-scrolling that doesn't interrupt you, and a responsive design for any device.
- Secure & Private: Credentials are never stored unless you explicitly choose to save them in your browser's local storage. Supports secure
wss://connections out of the box. - Open Source: Built with a modern, transparent, and open-source stack.
This project was built to provide a modern, fast, and enjoyable RCon experience. While other tools exist, Rust RCon Web focuses on:
- Modern Technology: Built with Svelte 5, Vite, and TypeScript for a blazing-fast and reactive UI.
- User Experience: From smart scrolling to command history, every feature is designed with the server administrator's workflow in mind.
- Simplicity: A clean, intuitive interface that's easy to use from the start.
-
Clone the repository:
git clone https://github.com/evs-ptr/rust-rcon-web.git cd rust-rcon-web -
Install dependencies:
bun install
-
Run the development server:
bun run dev
The application will be available at http://localhost:5173.
Use Bun for all project scripts.
-
Run linting:
bun run lint
-
Format the codebase:
bun run format
-
Run Svelte type and diagnostics checks:
bun run check
Typical workflow for changes is to run bun run lint first, then bun run format near the end of the task.
This project uses Vitest for unit testing.
-
Run all tests:
bun run test -
Run tests in watch mode:
bun run test:unit
.
├── src
│ ├── lib
│ │ ├── config-state.svelte.ts # Global UI state management (Svelte 5 Runes)
│ │ ├── storage-synced.ts # localStorage persistence & cross-tab sync
│ │ └── components/ui/ # Reusable Shadcn UI components
│ ├── routes
│ │ ├── +page.svelte # The main landing page
│ │ └── rcon/ # Core RCON application logic and components
│ │ ├── +page.svelte # Entry point for the /rcon route
│ │ ├── rust-rcon.ts # Handles RCON message protocol
│ │ ├── websocket-wrapper.ts# Manages the WebSocket connection & reconnects
│ │ ├── servers-manager.svelte.ts # Manages adding, deleting, and switching servers
│ │ ├── ServerMain.svelte # Main component for a connected server
│ │ ├── ServerConsole.svelte# The interactive console component
│ │ └── ServerChat.svelte # The interactive chat component
│ └── tests/ # Vitest unit tests
├── static/ # Static assets (images, favicon)
└── package.json # Project dependencies and scripts
-
Carbon Control Panel by Carbon Community
- An RCon tool that is part of a larger ecosystem for the Carbon modding framework.
- Has some Carbon-only features.
- Source: github.com/CarbonCommunity/Carbon.Documentation
- Framework Source: github.com/CarbonCommunity/Carbon
-
webrcon by Facepunch
- A RCon tool directly from the creators of Rust.
- Source: github.com/Facepunch/webrcon
- Framework: SvelteKit
- Language: TypeScript
- Styling: Tailwind CSS v4
- UI Components: shadcn-svelte (a collection of reusable Svelte components)
- Icons: Lucide Svelte
- Build Tool: Vite
- Testing: Vitest for unit tests.
- Runtime: Bun
Contributions are welcome.
Distributed under the MIT License.
