- 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
3.6 KiB
3.6 KiB
Reference Projects Summary
This directory contains detailed analysis of reference projects for the Stronghold Minecraft server management tool.
Files
-
itzg-projects.md - Core Docker projects by itzg that Stronghold will integrate with:
- docker-minecraft-server
- docker-mc-proxy
- mc-router
- docker-rcon-web-admin
-
server-managers.md - Existing web-based server management tools:
- Crafty (CraftyControl)
- Pterodactyl Panel
- Fork (ForkGG)
- MCSManager
- setupmc.com
-
launchers.md - Client-side launchers with excellent modpack workflows:
- ATLauncher
- Prism Launcher
-
examples/ - Docker Compose example files from itzg repository:
- docker-compose-big.yml (Large Biomes world type)
- docker-compose-curseforge-atm7.yaml (All The Mods 7 modpack)
- docker-compose-curseforge.yml (Basic CurseForge example)
- docker-compose-magma.yml (Hybrid mods + plugins)
- docker-compose-rconcmd.yml (Advanced RCON commands)
- EXAMPLES-ANALYSIS.md (Detailed analysis of each example)
Key Insights
Architecture Recommendations
- Keep it simple (KISS): Docker API directly, no agents/daemons needed initially
- Start without database: Use file-based configuration, add database later if needed
- Node.js stack: Could work well (like MCSManager but simpler)
- Single-host focus: Start with single Docker host, expand later
Feature Priorities
- Server CRUD: Create, read, update, delete servers
- Configuration UI: User-friendly interface for itzg container environment variables
- Console Access: RCON integration for server management
- File Browser: Access server files (worlds, configs, mods)
- Modpack Support: ATLauncher-like experience for server creation
Technical Stack Suggestions
- Backend: Node.js/Express or Python/FastAPI
- Frontend: React, Vue, or SvelteKit
- Docker: Direct Docker API integration
- Storage: File-based configs initially, optional database later
- APIs: Modrinth, CurseForge for modpack integration
UI/UX Principles
- Take inspiration from Crafty and Fork for clean, intuitive interfaces
- Follow ATLauncher's model for modpack installation simplicity
- Use setupmc.com as reference for configuration UI patterns
- Prioritize common workflows over advanced features
Implementation Phases
MVP (Phase 1)
- Basic Docker integration
- Simple server creation/management
- Basic web UI
- Console access
V1.0 (Phase 2)
- Full configuration UI
- File browser
- Modpack installation (basic)
- Proxy server support
V1.5+ (Phase 3)
- Modpack browser
- Advanced features
- Templates/presets
- Backup system
- mc-router integration
Notes on Reference Projects
Most Relevant
- itzg/docker-minecraft-server: Core technology Stronghold will use
- itzg examples: Real-world docker-compose configurations showing patterns and edge cases
- setupmc.com: Shows how to simplify Docker config generation
- ATLauncher: Target UX for modpack installation
- Crafty: Good UI/UX patterns to follow
Study but Don't Copy
- Pterodactyl: Too complex, but has good separation of concerns
- MCSManager: Good architecture ideas, but agent model overkill for Docker
- Fork: Great UX, but Windows-focused
Questions to Resolve
Based on these references, Stronghold needs to decide:
- Tech Stack: Node.js vs Python vs Go?
- Database: Start with files or include database from start?
- Multi-user: Single-user MVP or multi-user from start?
- Deployment: Single container, docker-compose, or microservices?
- Modpack APIs: Which to support first (Modrinth, CurseForge, both)?