Skip to content

mrfroncu/Modpack-MNGR-soft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

102 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Varok Logo

โš” Varok โ€” MC Modpack Manager

Self-hosted Minecraft modpack management platform with a native multi-platform desktop launcher.

Go Fyne SQLite Docker chi GitHub Actions

Windows macOS Linux


๐Ÿ“‹ Overview

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

Key Features

  • ๐ŸŽฎ 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)

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    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  โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿš€ Quick Start

Panel (Server)

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 -d

The panel will be available at http://localhost:8689.

On first launch, use the default admin credentials to log in, then change them in Settings.

Environment Variables

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

Client (Desktop App)

Pre-built binaries are available on the Releases page for Windows, macOS, and Linux.

Building from source

Requirements: Go 1.22+, C compiler (for Fyne/OpenGL)

cd client

# Build for current platform
make build

# Or run directly
make run

Cross-compilation (requires Docker)

# Install fyne-cross
make install-tools

# Build for all platforms
make all

# Or build individually
make windows
make linux
make darwin

๐Ÿ“ฆ Panel Features

Dashboard

Overview of modpacks, users, Java versions, and system status.

Modpack Management

  • 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

User Management (Admin only)

  • Create and delete users
  • Assign roles: Admin or Manager

Java Runtime Management (Admin only)

  • Upload Java runtimes for different platforms/architectures
  • Served to clients that don't have Java installed

Client Version Management (Admin only)

  • Upload client binaries per platform/architecture
  • SHA-256 checksum verification
  • Clients auto-update from here

๐ŸŽฎ Client Features

Microsoft Authentication

Browser-based OAuth2 login with PKCE โ€” click "MC Account", pick your Microsoft account in the browser, done. No codes to copy.

Modpack Browser

Browse and install modpacks from the connected panel. One-click install and update.

Minecraft Launcher

Launch Minecraft with the selected modpack, custom JVM arguments, and memory settings.

Java Management

Auto-detects local Java installations. If none found, downloads the selected version from Adoptium directly.

Settings

  • Panel URL configuration
  • RAM allocation (min/max with 256MB steps)
  • Custom JVM arguments
  • Java version selection
  • Window resolution
  • Microsoft Client ID override

Auto-Update

On launch, the client checks the panel for a newer version and offers to update in-place.


๐Ÿ”Œ REST API

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

๐Ÿ› ๏ธ Tech Stack

Panel

Technology Purpose
Go Backend language
chi Lightweight HTTP router
SQLite Embedded database (pure-Go, no CGo)
JWT Session authentication
Docker Containerized deployment

Client

Technology Purpose
Go Application language
Fyne Cross-platform desktop UI
Microsoft Minecraft authentication
Adoptium Java runtime management

CI/CD

Technology Purpose
GitHub Actions Automated builds & releases

๐Ÿ“ Project Structure

.
โ”œโ”€โ”€ .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

๐Ÿ“„ License

This project is proprietary software. All rights reserved.


Built with โค๏ธ and Go

About

Selfhosted Minecraft Modpack Launcher + Panel

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors