Calagopus Panel extension for switching Minecraft server versions with admin dashboard and install tracking https://github.com/Regrave/mc-version-chooser
  • TypeScript 61.5%
  • Rust 29.5%
  • CSS 9%
Find a file
2026-07-27 15:19:06 +00:00
.github ci: refuse release when tag and Cargo.toml version disagree 2026-07-27 15:19:06 +00:00
backend feat: copy unix_args.txt to root after Neo/Forge install, bump 2.2.0 2026-07-16 06:49:54 +00:00
frontend feat: copy unix_args.txt to root after Neo/Forge install, bump 2.2.0 2026-07-16 06:49:54 +00:00
migrations/20260401000000_create_mcvc_installs MC Version Chooser v2.0.0 - Calagopus panel extension for switching Minecraft server versions with admin dashboard, install tracking, and statistics 2026-04-01 18:23:50 -05:00
.gitignore MC Version Chooser v2.0.0 - Calagopus panel extension for switching Minecraft server versions with admin dashboard, install tracking, and statistics 2026-04-01 18:23:50 -05:00
LICENSE MC Version Chooser v2.0.0 - Calagopus panel extension for switching Minecraft server versions with admin dashboard, install tracking, and statistics 2026-04-01 18:23:50 -05:00
Metadata.toml fix: port to panel 1.1.0 wings-api, bump 2.1.0 2026-07-16 06:03:08 +00:00
README.md Document marker file and auto-stop in README 2026-04-01 21:39:44 -05:00

MC Version Chooser

A Calagopus Panel extension that lets users switch Minecraft server versions directly from the panel UI.

Screenshots

Type Selection

Browse all available server types with category filters. Auto-detects your current server type.

Type Selection

Version Selection

Pick a Minecraft version with Java requirement indicators and a snapshot toggle.

Version Selection

Install Modal

Select a specific build, toggle clean install, and accept the EULA before installing.

Install Modal

Admin Configuration

Configure the MCJars API URL and default category filter from the admin panel.

Admin Settings

Features

User-Facing

  • Browse all server types from the MCJars API (Paper, Purpur, Fabric, Forge, etc.)
  • Category filters: All, Recommended, Servers, Modded, Proxies
  • Auto-detects current server type from egg name and startup command
  • Version grid with snapshot toggle and Java version indicators
  • Build selector with changelogs and download sizes
  • Clean install option (wipes all files before installing)
  • Zip-based installs for modded servers (Forge, NeoForge)
  • Real-time download progress tracking
  • Automatically stops the server before installing a new version
  • Writes .mcvc-type.json marker file on install — used by other extensions (like the Content Installer) to reliably detect the current server type without guessing from egg names or leftover files

Admin Panel

  • Extension configuration page with customizable MCJars API URL
  • Installation statistics with doughnut charts (type distribution, success/failure rates)
  • Summary cards: total installs, success rate, clean installs, unique servers
  • Recent installations table with server, type, version, and status
  • Configurable default category filter

Architecture

├── Metadata.toml          # Extension metadata
├── backend/
│   └── src/lib.rs         # Rust backend - Wings API proxy + admin endpoints
├── frontend/
│   └── src/
│       ├── index.ts       # Extension entry point + route registration
│       ├── api.ts         # MCJars API client + type detection
│       ├── VersionChooserPage.tsx  # Main 3-step version chooser UI
│       ├── AdminConfigPage.tsx     # Admin config + stats dashboard
│       └── app.css        # Styling
└── migrations/
    └── 20260401000000_create_mcvc_installs/  # Install tracking table

Backend API Routes

Client (per-server)

  • POST /api/client/servers/{uuid}/mc-version-chooser/install - Install a server version
  • GET /api/client/servers/{uuid}/mc-version-chooser/install/status - Check download progress

Admin

  • GET /api/admin/mc-version-chooser/stats - Installation statistics
  • GET /api/admin/mc-version-chooser/settings - Get extension settings
  • POST /api/admin/mc-version-chooser/settings - Update extension settings
  • GET /api/admin/mc-version-chooser/installs - Recent installation log

Security

  • All client routes require files.create permission
  • Admin routes are protected by admin authentication middleware
  • Download URLs are validated against a whitelist of trusted domains (mcjars.app, papermc.io, mojang.com, etc.)
  • All file operations go through the Wings API (no direct server access)

Installation

  1. Download the latest .c7s.zip from Releases
  2. Upload it to your panel's extensions directory
  3. Trigger a panel rebuild
  4. The mcvc_installs table will be created automatically on startup

License

MIT