stronghold/references/launchers.md
robojerk c31e48e2b1 Proof of concept: Container management with FastAPI backend
- FastAPI backend with REST API endpoints
- SQLite database for container metadata
- Docker/Podman SDK integration with label filtering
- Frontend: Server creation form and management page
- Container operations: create, list, start, stop, delete
- Single container deployment (nginx + Python + supervisor)
- Support for Docker and Podman (rootless)
- Volume management for persistent data
2025-10-31 11:50:31 -07:00

7.6 KiB

Minecraft Launcher Reference

These are client-side Minecraft launchers that have excellent modpack installation workflows. Stronghold should aim to make server modpack installation as easy as these launchers make client installation.

ATLauncher

GitHub: https://github.com/ATLauncher/ATLauncher
Website: https://atlauncher.com

Overview

Minecraft launcher focused on modpack installation and management. Known for making modpack installation simple and user-friendly.

Key Features

  • Modpack Browser: Browse and search modpacks from various sources
  • One-Click Installation: Install modpacks with minimal configuration
  • Instance Management: Create multiple Minecraft instances with different modpacks
  • Modpack Updates: Easy updating of installed modpacks
  • Server Pack Generation: Can generate server packs from modpacks
  • Integration with Modpack Platforms:
    • CurseForge
    • Modrinth
    • FTB (Feed The Beast)
  • Version Management: Manage Minecraft and mod versions
  • Mod Management: View, enable, disable individual mods
  • Configuration: Edit modpack configurations easily

User Experience Highlights

  • Simple, clean interface
  • Clear categorization of modpacks
  • Detailed modpack information before installation
  • Progress indicators during installation
  • Pre-configured settings that "just work"
  • Easy troubleshooting

Lessons for Stronghold

This is a KEY reference - the goal is to make modded server creation as simple as ATLauncher makes modpack installation.

Stronghold should:

  1. Modpack Browser: Provide UI to browse/search modpacks
  2. One-Click Server Creation: Create modded server from modpack in one click
  3. Server Pack Handling: Automatically detect and install server packs
  4. Configuration Simplification: Hide complexity, provide good defaults
  5. Mod Management: Allow viewing/managing mods in installed servers
  6. Update Management: Easy way to update modpacks

Key Insight: The magic of ATLauncher is that it handles all the complexity (downloading, dependency resolution, configuration, version matching) behind the scenes. Stronghold needs to do the same for servers.


Prism Launcher

GitHub: https://github.com/PrismLauncher/PrismLauncher
Website: https://prismlauncher.org

Overview

Fork of MultiMC, focused on modpack management. Open source and community-driven.

Key Features

  • Multi-Platform: Windows, macOS, Linux
  • Modpack Support:
    • Modrinth integration
    • CurseForge integration
    • FTB integration
    • Technic Platform support
  • Instance Management: Multiple instances with isolated configurations
  • Mod Management: Individual mod installation, removal, updates
  • Version Control: Git integration for instance management
  • Metadata Management: Rich metadata for modpacks and mods
  • Customization: Highly customizable interface and workflows

Technology Stack

  • C++/Qt for desktop application
  • Various APIs for modpack platforms

Lessons for Stronghold

  • Modrinth/CurseForge APIs: Need to integrate with these platforms
  • Metadata Handling: Rich metadata helps users make informed choices
  • Version Management: Proper version handling is critical
  • Instance Isolation: Each server should be isolated (Docker helps here)

API Integration Notes

Both ATLauncher and Prism Launcher integrate with:

  • Modrinth API: Modern modpack/mod platform
  • CurseForge API: Legacy but still popular platform
  • FTB API: Feed The Beast modpacks

Stronghold will need to:

  1. Integrate with these APIs for modpack discovery
  2. Handle server pack downloads from these platforms
  3. Parse modpack metadata (version, dependencies, server pack info)
  4. Manage modpack installation in Docker containers

Key Takeaways for Stronghold

The ATLauncher Experience, But for Servers

When a user wants to create a modded server, the flow should be:

  1. Browse Modpacks: Search/browse available modpacks (like ATLauncher)
  2. Select Modpack: Click on a modpack to see details
  3. Create Server: One click to create server from modpack
  4. Automatic Setup: Stronghold handles:
    • Downloading server pack
    • Setting up Docker container with correct server type (FORGE/FABRIC)
    • Installing mods
    • Configuring environment variables
    • Setting up volumes
    • Starting server
  5. Ready to Play: Server is ready, user can customize further if needed

Technical Requirements

  1. Modpack Platform Integration:

    • Modrinth API client
    • CurseForge API client
    • FTB API (if needed)
  2. Modpack Processing:

    • Parse modpack manifest files
    • Download modpack files
    • Extract server packs
    • Handle mod dependencies
    • Version resolution
  3. Docker Integration:

    • Detect server type (FORGE/FABRIC) from modpack
    • Set appropriate TYPE environment variable
    • Configure modpack installation
    • Set up proper Java versions
    • Allocate appropriate memory
  4. UI Components:

    • Modpack browser/search
    • Modpack detail view
    • Installation progress
    • Mod management UI
    • Server configuration tied to modpack

Simplification Goals

From User Perspective:

  • Before: User needs to know about modpack formats, server packs, FORGE vs FABRIC, Java versions, memory allocation, Docker, etc.
  • After: User finds modpack, clicks "Create Server", server is ready

Implementation Complexity:

  • Handle all the technical details internally
  • Provide smart defaults
  • Allow customization but don't require it
  • Good error messages if something goes wrong

Implementation Phases

Phase 1: Basic Modpack Support

  • Manual modpack URL/ID input
  • Support for Modrinth server packs
  • Basic installation

Phase 2: Modpack Browser

  • Integrate Modrinth API
  • Browse/search modpacks
  • Server pack detection and installation

Phase 3: Enhanced Features

  • CurseForge integration
  • Modpack updates
  • Mod management UI
  • Advanced configuration options

Server Pack Generators

Some modpacks come with server pack generators. Stronghold should:

  • Detect if server pack is available
  • Download server pack automatically
  • Use itzg container's built-in modpack support when possible
  • Handle cases where manual setup is needed

itzg Container Modpack Support

The itzg/docker-minecraft-server container has extensive built-in modpack support (Documentation):

Modpack Platforms:

  • Modrinth (auto-download)
  • CurseForge (auto-download)
  • Feed the Beast (FTB)
  • Packwiz format

Installation Methods:

  • MODPACK environment variable: Simple zip file or modpack ID
  • GENERIC_PACK / GENERIC_PACKS: Install complete server content from archives
  • Individual mods via MODS / PLUGINS environment variables
  • File-based lists via MODS_FILE / PLUGINS_FILE

Advanced Features:

  • Volume mounts for mods/plugins/configs (/mods, /plugins, /config)
  • Auto-removal of mods/plugins
  • Environment variable substitution in configs
  • Multiple source directories
  • Disable specific mods

Key Insight: The container handles much of the complexity internally. Stronghold's role is to:

  1. Provide UI for modpack selection/browsing
  2. Detect modpack platform and server type automatically
  3. Generate appropriate environment variables
  4. Handle the container creation with proper configuration
  5. Manage modpack updates and mod additions/removals

Stronghold should leverage this built-in support heavily to simplify implementation - we don't need to reimplement modpack processing, just orchestrate it via the container's environment variables.