csharpfritz / csharpfritz/Aspire-Minecraft

Pre-baked Docker image for faster Minecraft server startup

Open
#48 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C#
Stars
31
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Summary

Create a custom Docker image based on `itzg/minecraft-server` that pre-installs the Minecraft server JAR, plugins (BlueMap, and future plugins), default `server.properties`, and pre-generated spawn chunks to dramatically reduce startup time.

## Motivation

Currently, every container start:
1. Downloads the Minecraft server JAR
2. Applies `server.properties` configuration
3. Accepts EULA
4. Installs plugins (BlueMap)
5. Generates initial world chunks (including the village area at X=10, Z=0)

This takes ~45-60s. A pre-baked image could reduce startup to ~10-15s.

## Proposed Approach

- Create a `Dockerfile` that extends `itzg/minecraft-server`
- Pin a specific Minecraft version
- Pre-install BlueMap and any other identified plugins
- Bake in default `server.properties` with env var override support
- Pre-generate spawn chunks covering the village build area
- Set up a CI pipeline to rebuild the image when Minecraft updates or new plugins are added
- Publish to GitHub Container Registry (ghcr.io)

## Considerations

- **Version pinning:** We take ownership of Minecraft version updates (currently handled by upstream image)
- **Plugin bundling:** As we identify more useful plugins (see below), they should be included
- **Override support:** Users must still be able to override `server.properties` and add their own plugins
- **Image size:** Monitor image size — pre-generated chunks add significant disk

## Plugin Candidates

Track additional plugins to bundle in this issue or linked issues. BlueMap is the first; others TBD as features evolve.

## Target Milestone

Post-feature-stabilization (v1.0 or Sprint 5+). The feature surface should settle before we bake an image.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.