|
11 | 11 |
|
12 | 12 | Dockerized and fine-grained customizable PaperMC server. |
13 | 13 |
|
| 14 | +Available in [Docker Hub](https://hub.docker.com/r/djaytan/papermc-server). |
| 15 | + |
14 | 16 | </div> |
15 | 17 |
|
16 | | -## Features |
| 18 | +## ✨ Features |
| 19 | + |
| 20 | +* **[Alpine](https://hub.docker.com/_/alpine)-based image** |
| 21 | +* **Lightweight**: ~360 MB |
| 22 | +* **Minimalist**: Includes only essential dependencies to reduce image size and surface area |
| 23 | +* **Rootless**: Runs as a non-root user by default |
| 24 | +* **Multi-architecture support**: Built for `amd64` & `arm64` (additional architectures available on request) |
| 25 | +* **JRE 21**, based on [Eclipse Temurin](https://hub.docker.com/_/eclipse-temurin) |
| 26 | + * Custom-built using `jlink` to minimize size |
| 27 | + * Includes all standard Java modules to ensure broad compatibility with plugins |
| 28 | +* Scanned by [Trivy](https://trivy.dev/latest/) and [Docker Scout](https://docs.docker.com/scout/) **to detect security vulnerabilities** |
| 29 | + |
| 30 | +### 🛠️ Planned Features |
17 | 31 |
|
18 | | -* Alpine-based image |
19 | | -* Lightweight (~360 MB) |
20 | | -* Multi-architecture support (amd64 & arm64) |
| 32 | +The image is under active development, with the following enhancements planned: |
21 | 33 |
|
22 | | -TODO |
| 34 | +* **Healthcheck integration**: Built-in Docker `HEALTHCHECK` instruction for better container observability. |
| 35 | +* **Unified configuration interface**: Centralized PaperMC tuning via a config file, with optional environment variable overrides (which will be the main difference with [itzg's solution](https://docker-minecraft-server.readthedocs.io/en/latest/configuration/interpolating/)). |
| 36 | +* **Customizable server startup options**: Ability to set JVM options and server properties via environment variables. |
| 37 | +* **Enable/Disable Aikar's flags**: Aikar's researches ([link](https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/)) and [PaperMC recommendations](https://docs.papermc.io/paper/aikars-flags/) |
| 38 | +* **Configurable TimeZone** |
| 39 | +* **UID/GID-agnostic:** Support for running the server with configurable UID/GID (typically required when running container in OpenShift). |
| 40 | +* **Auto-updating builds**: Scheduled rebuilds for including upstream JDK/PaperMC updates and security patches. |
| 41 | +* **Compliancy with [OWASP Docker rules](https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html)** |
| 42 | +* **GraalVM variant** |
23 | 43 |
|
24 | | -## Contributing |
| 44 | +The below features may be implemented too, but are not a priority: |
| 45 | + |
| 46 | +* **Configurable Java module set**: Option to build smaller JREs by selecting only required Java modules. |
| 47 | +* **Support JMX**: Java Management Extensions enabling for remote management and monitoring (e.g., with [VisualVM](https://visualvm.github.io/), [JMC](https://openjdk.org/projects/jmc/), ...) => [spark](https://docs.papermc.io/paper/profiling/) may be preferred. |
| 48 | +* **Documentation**: Comprehensive documentation for all features and configurations with [AsciiDoc](https://asciidoc.org/). |
| 49 | +* **Share examples** |
| 50 | +* **OpenJ9 variant** |
| 51 | + |
| 52 | +## 🌍 Contributing |
25 | 53 |
|
26 | 54 | If you want to help us improve the project, you can learn more about ways to do so [here](docs/CONTRIBUTING.md). |
27 | 55 |
|
28 | | -## Versioning |
| 56 | +Have a feature request? Don't hesitate to [fill an issue](https://github.com/Djaytan/docker-papermc-server/issues)! |
| 57 | + |
| 58 | +## 🏷️ Versioning |
29 | 59 |
|
30 | 60 | This project follows [Semantic Versioning](https://semver.org/). |
31 | 61 |
|
32 | 62 | The Docker tagging scheme is `<mc-version>-v<image-version>-<timestamp-YYYYMMDD>` (e.g. `1.21.4-v1.2.1-20250406`) |
33 | 63 |
|
34 | | -## Security Policy |
| 64 | +## 🔒 Security Policy |
35 | 65 |
|
36 | 66 | In case you think having found a security vulnerability, please consult |
37 | 67 | our [Security Policy](docs/SECURITY.md). |
38 | 68 |
|
39 | | -## Licence |
| 69 | +## 📄 Licence |
40 | 70 |
|
41 | 71 | This project inherits its licensing from the included upstream projects. As such, it is licensed under |
42 | 72 | the [GNU GPL v3.0](https://www.gnu.org/licenses/gpl-3.0.html) license, as it inherits from PaperMC, which in turn inherits it from the original Bukkit and |
|
0 commit comments