This project contains all Minecraft server versions packaged for Nix.
Note
This project is no longer maintained. Please see Infinidoge's nix-minecraft.
All packages are available through this flake's package set (minecraft-servers.packages) and overlay (minecraft-servers.overlay). To use them, add this repository to your flake inputs:
# flake.nix
{
inputs = {
minecraft-servers.url = "github:jyooru/nix-minecraft-servers";
};
}All packages are available through this flake's package set:
# configuration.nix
{ inputs }:
{
services.minecraft-server = {
enable = true;
eula = true;
package = inputs.minecraft-server.vanilla_1_8_9;
};
}All major and minor version of all packages are aliased in such a way that you can:
- be more specific and lock a package to a specific version, such as the attribute
vanilla_1_8_9 - be less specific and automatically choose the latest version of a range, such as the attribute
vanilla_1_8which is the same asvanilla_1_8_9 - not be specific at all and just choose the latest version, such as
vanillawhich (at the time of writing) points tovanilla_1_18_1
All aliases always point to a release and will never point to a beta or snapshot.
The overlay overrides nixpkgs' minecraftServers attribute with this flake's packages attribute:
# configuration.nix
{ inputs, pkgs }:
{
nixpkgs.overlays = [ inputs.minecraft-servers.overlays.default ];
services.minecraft-server = {
enable = true;
eula = true;
package = pkgs.minecraftServers.vanilla_1_8_9;
};
}The latest version of each package is shown in the table below. To see all versions available, run nix flake search github:jyooru/nix-minecraft-servers. You can filter the search by appending your query on the end of the command.
| Name | Latest Version |
|---|---|
| paper | 1_19_3-375 |
| purpur | 1_19_3-1892 |
| vanilla | 1_19_3 |
| velocity | 3_1_1-102 |
| waterfall | 1_19_0-510 |
This repository also contains a Python module in the ci subdirectory that contains the code to fetch all data needed for all packages and versions.
This python module is run daily by a GitHub Actions workflow that then commits the output, opens a PR and sets it to automatically merge if all packages build.
See LICENSE for details.