Self-hosted Minecraft modpack management platform with a native multi-platform desktop launcher.
Varokm is a full-stack Minecraft modpack management solution built entirely in Go. It consists of two components:
| Component | Description |
|---|---|
| Panel | Self-hosted Docker admin panel for managing modpacks, users, Java runtimes, and client updates |
| Client | Cross-platform native desktop launcher that connects to the panel, authenticates with Microsoft/Xbox, and launches Minecraft |
- ๐ฎ Microsoft Authentication โ OAuth2 Authorization Code Flow with PKCE (browser-based login)
- ๐ฆ Modpack Management โ Upload, version, and distribute Technic/CurseForge-style modpacks
- โ Java Management โ Auto-detect local Java or download from Adoptium API
- ๐ Auto-Update โ Client checks the panel for new versions and self-updates
- ๐ณ Docker Deployment โ Single container, single volume, zero external dependencies
- ๐๏ธ Embedded Database โ Pure-Go SQLite (no CGo required)
- ๐ฅ Role-Based Access โ Admin and Manager roles in the panel
- ๐ฅ๏ธ Cross-Platform โ Windows (amd64), macOS (arm64), Linux (amd64)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Varok Panel โ
โ (Docker / Go / chi / SQLite) โ
โ โ
โ โโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Web UI โ โ REST API โ โ File Storage โ โ
โ โ (Admin) โ โ /api/v1/ โ โ modpacks/java/ โ โ
โ โโโโโโโโโโโ โโโโโโโโโโโโ โ clients/icons/ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ HTTP :8689
โ
โโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Varok Client โ
โ (Fyne GUI / Native Desktop) โ
โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โ
โ โ Modpack โ โ Microsoft โ โ Minecraft โ โ
โ โ Browser โ โ OAuth2 โ โ Launcher Engine โ โ
โ โโโโโโโโโโโโ โโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Requirements: Docker & Docker Compose
cd panel
# Configure environment
cp .env.example .env
# Edit .env โ set SECRET_KEY (min 32 chars) and adjust paths
# Start the panel
docker compose up -dThe panel will be available at http://localhost:8689.
On first launch, use the default admin credentials to log in, then change them in Settings.
| Variable | Default | Description |
|---|---|---|
PORT |
8689 |
HTTP server port |
SECRET_KEY |
โ | JWT signing secret (min 32 chars) |
DB_PATH |
/data/alleria.db |
SQLite database path |
DATA_DIR |
/data |
Root data directory |
CLIENT_VERSION |
1.0.0 |
Current client version |
Pre-built binaries are available on the Releases page for Windows, macOS, and Linux.
Requirements: Go 1.22+, C compiler (for Fyne/OpenGL)
cd client
# Build for current platform
make build
# Or run directly
make run# Install fyne-cross
make install-tools
# Build for all platforms
make all
# Or build individually
make windows
make linux
make darwinOverview of modpacks, users, Java versions, and system status.
- Create/edit/delete modpacks
- Upload client ZIP files with versioning
- Upload custom modpack icons
- Manage individual mods (name, version, author)
- Set Minecraft version, Forge/Fabric version, required Java
- Changelog and announcements per modpack
- Supports Technic and CurseForge modpack formats
- Create and delete users
- Assign roles: Admin or Manager
- Upload Java runtimes for different platforms/architectures
- Served to clients that don't have Java installed
- Upload client binaries per platform/architecture
- SHA-256 checksum verification
- Clients auto-update from here
Browser-based OAuth2 login with PKCE โ click "MC Account", pick your Microsoft account in the browser, done. No codes to copy.
Browse and install modpacks from the connected panel. One-click install and update.
Launch Minecraft with the selected modpack, custom JVM arguments, and memory settings.
Auto-detects local Java installations. If none found, downloads the selected version from Adoptium directly.
- Panel URL configuration
- RAM allocation (min/max with 256MB steps)
- Custom JVM arguments
- Java version selection
- Window resolution
- Microsoft Client ID override
On launch, the client checks the panel for a newer version and offers to update in-place.
The panel exposes a public API for the client:
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/v1/version |
Latest client version info |
GET |
/api/v1/modpacks |
List all modpacks |
GET |
/api/v1/modpacks/{id} |
Modpack details |
GET |
/api/v1/modpacks/{id}/download |
Download modpack ZIP |
GET |
/api/v1/modpacks/{id}/icon |
Modpack icon |
GET |
/api/v1/java/{version}/{platform}/{arch} |
Download Java runtime |
GET |
/api/v1/client/{platform}/{arch} |
Download client binary |
| Technology | Purpose |
|---|---|
| Backend language | |
| Lightweight HTTP router | |
| Embedded database (pure-Go, no CGo) | |
| Session authentication | |
| Containerized deployment |
| Technology | Purpose |
|---|---|
| Application language | |
| Cross-platform desktop UI | |
| Minecraft authentication | |
| Java runtime management |
| Technology | Purpose |
|---|---|
| Automated builds & releases |
.
โโโ .github/workflows/
โ โโโ build.yml # CI/CD โ builds & releases on tag push
โโโ client/ # Desktop launcher (Fyne GUI)
โ โโโ cmd/alleria/ # Entry point
โ โโโ internal/
โ โ โโโ api/ # HTTP client for panel API
โ โ โโโ auth/ # Microsoft OAuth2 โ Xbox โ MC auth
โ โ โโโ config/ # User configuration
โ โ โโโ gui/ # Fyne UI screens
โ โ โโโ java/ # Java detection & Adoptium downloads
โ โ โโโ launcher/ # MC launcher profiles
โ โ โโโ minecraft/ # Version manifest & game launching
โ โ โโโ modpack/ # Instance management
โ โ โโโ updater/ # Self-update mechanism
โ โโโ Icon.png
โ โโโ Makefile
โโโ panel/ # Admin panel (Docker)
โโโ cmd/panel/ # Entry point
โโโ internal/
โ โโโ auth/ # bcrypt + JWT
โ โโโ config/ # Environment configuration
โ โโโ database/ # SQLite setup & migrations
โ โโโ handlers/ # HTTP handlers (web + API)
โ โโโ middleware/ # Auth & role middleware
โ โโโ models/ # Data models
โโโ web/
โ โโโ templates/ # HTML templates
โ โโโ static/ # CSS & JS
โโโ Dockerfile
โโโ docker-compose.yml
This project is proprietary software. All rights reserved.
Built with โค๏ธ and Go