- 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
103 lines
3.6 KiB
Markdown
103 lines
3.6 KiB
Markdown
# Reference Projects Summary
|
|
|
|
This directory contains detailed analysis of reference projects for the Stronghold Minecraft server management tool.
|
|
|
|
## Files
|
|
|
|
1. **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
|
|
|
|
2. **server-managers.md** - Existing web-based server management tools:
|
|
- Crafty (CraftyControl)
|
|
- Pterodactyl Panel
|
|
- Fork (ForkGG)
|
|
- MCSManager
|
|
- setupmc.com
|
|
|
|
3. **launchers.md** - Client-side launchers with excellent modpack workflows:
|
|
- ATLauncher
|
|
- Prism Launcher
|
|
|
|
4. **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
|
|
1. **Server CRUD**: Create, read, update, delete servers
|
|
2. **Configuration UI**: User-friendly interface for itzg container environment variables
|
|
3. **Console Access**: RCON integration for server management
|
|
4. **File Browser**: Access server files (worlds, configs, mods)
|
|
5. **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
|
|
1. **itzg/docker-minecraft-server**: Core technology Stronghold will use
|
|
2. **itzg examples**: Real-world docker-compose configurations showing patterns and edge cases
|
|
3. **setupmc.com**: Shows how to simplify Docker config generation
|
|
4. **ATLauncher**: Target UX for modpack installation
|
|
5. **Crafty**: Good UI/UX patterns to follow
|
|
|
|
### Study but Don't Copy
|
|
1. **Pterodactyl**: Too complex, but has good separation of concerns
|
|
2. **MCSManager**: Good architecture ideas, but agent model overkill for Docker
|
|
3. **Fork**: Great UX, but Windows-focused
|
|
|
|
## Questions to Resolve
|
|
|
|
Based on these references, Stronghold needs to decide:
|
|
1. **Tech Stack**: Node.js vs Python vs Go?
|
|
2. **Database**: Start with files or include database from start?
|
|
3. **Multi-user**: Single-user MVP or multi-user from start?
|
|
4. **Deployment**: Single container, docker-compose, or microservices?
|
|
5. **Modpack APIs**: Which to support first (Modrinth, CurseForge, both)?
|
|
|