Skip to content

Commit b886346

Browse files
authored
docs: document features in README file (#83)
1 parent 42a7bef commit b886346

File tree

3 files changed

+41
-10
lines changed

3 files changed

+41
-10
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ permissions: {}
1616
# TODO: Experiment GitHub deployments
1717
# TODO: do we want to test multi-arch build?
1818
# TODO: reproductible builds? https://docs.docker.com/build/ci/github-actions/reproducible-builds/
19+
# TODO: SonarQube integration at both CI and Docker Scout levels?
20+
# TODO: Migrate from Trivy to Docker Scout
1921
jobs:
2022
build-and-test:
2123
name: Build & Test

README.md

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,32 +11,62 @@
1111

1212
Dockerized and fine-grained customizable PaperMC server.
1313

14+
Available in [Docker Hub](https://hub.docker.com/r/djaytan/papermc-server).
15+
1416
</div>
1517

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
1731

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:
2133

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**
2343

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
2553

2654
If you want to help us improve the project, you can learn more about ways to do so [here](docs/CONTRIBUTING.md).
2755

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
2959

3060
This project follows [Semantic Versioning](https://semver.org/).
3161

3262
The Docker tagging scheme is `<mc-version>-v<image-version>-<timestamp-YYYYMMDD>` (e.g. `1.21.4-v1.2.1-20250406`)
3363

34-
## Security Policy
64+
## 🔒 Security Policy
3565

3666
In case you think having found a security vulnerability, please consult
3767
our [Security Policy](docs/SECURITY.md).
3868

39-
## Licence
69+
## 📄 Licence
4070

4171
This project inherits its licensing from the included upstream projects. As such, it is licensed under
4272
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

src/main/docker/Dockerfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
#
1717
# You should have received a copy of the GNU General Public License
1818
# along with this program. If not, see <http://www.gnu.org/licenses/>.
19-
# TODO: migrate to Podman? https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html#podman-as-an-alternative-to-docker
2019
FROM docker.io/eclipse-temurin:21-jdk-alpine@sha256:2f2f553ce09d25e2d2f0f521ab94cd73f70c9b21327a29149c23a2b63b8e29a0 AS jre-build
2120

2221
# Create a custom Java runtime

0 commit comments

Comments
 (0)