{"id":14969771,"url":"https://github.com/voxpupuli/puppet-minecraft","last_synced_at":"2025-07-07T02:07:36.592Z","repository":{"id":13107005,"uuid":"15788579","full_name":"voxpupuli/puppet-minecraft","owner":"voxpupuli","description":"Puppet - Minecraft: Separately maintained fork of brannan's puppet-module-minecraft","archived":false,"fork":false,"pushed_at":"2025-06-18T12:47:18.000Z","size":285,"stargazers_count":14,"open_issues_count":13,"forks_count":21,"subscribers_count":36,"default_branch":"master","last_synced_at":"2025-06-23T03:31:24.298Z","etag":null,"topics":["centos-puppet-module","hacktoberfest","linux-puppet-module","puppet","redhat-puppet-module","ubuntu-puppet-module"],"latest_commit_sha":null,"homepage":"https://forge.puppet.com/puppet/minecraft","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voxpupuli.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"open_collective":"vox-pupuli","github":"voxpupuli"}},"created_at":"2014-01-10T04:50:07.000Z","updated_at":"2025-06-18T12:47:21.000Z","dependencies_parsed_at":"2023-12-19T08:34:46.518Z","dependency_job_id":"354a4df2-55a4-46c9-87d5-9c9aea38afac","html_url":"https://github.com/voxpupuli/puppet-minecraft","commit_stats":{"total_commits":208,"total_committers":17,"mean_commits":"12.235294117647058","dds":0.5336538461538461,"last_synced_commit":"22d5e2ae5d65ce508cef9fc36e4099f0053f57ed"},"previous_names":["andschwa/puppet-minecraft"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/voxpupuli/puppet-minecraft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-minecraft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-minecraft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-minecraft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-minecraft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voxpupuli","download_url":"https://codeload.github.com/voxpupuli/puppet-minecraft/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voxpupuli%2Fpuppet-minecraft/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262271148,"owners_count":23285252,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["centos-puppet-module","hacktoberfest","linux-puppet-module","puppet","redhat-puppet-module","ubuntu-puppet-module"],"created_at":"2024-09-24T13:42:20.730Z","updated_at":"2025-07-07T02:07:36.576Z","avatar_url":"https://github.com/voxpupuli.png","language":"Ruby","funding_links":["https://opencollective.com/vox-pupuli","https://github.com/sponsors/voxpupuli"],"categories":[],"sub_categories":[],"readme":"# Minecraft module for Puppet\n\n[![Build Status](https://travis-ci.org/voxpupuli/puppet-minecraft.png?branch=master)](https://travis-ci.org/voxpupuli/puppet-minecraft)\n[![Code Coverage](https://coveralls.io/repos/github/voxpupuli/puppet-minecraft/badge.svg?branch=master)](https://coveralls.io/github/voxpupuli/puppet-minecraft)\n[![Puppet Forge](https://img.shields.io/puppetforge/v/puppet/minecraft.svg)](https://forge.puppet.com/puppet/minecraft)\n[![Puppet Forge - downloads](https://img.shields.io/puppetforge/dt/puppet/minecraft.svg)](https://forge.puppet.com/puppet/minecraft)\n[![Puppet Forge - endorsement](https://img.shields.io/puppetforge/e/puppet/minecraft.svg)](https://forge.puppet.com/puppet/minecraft)\n[![Puppet Forge - scores](https://img.shields.io/puppetforge/f/puppet/minecraft.svg)](https://forge.puppet.com/puppet/minecraft)\n\n`puppet-minecraft` installs and configures your Minecraft or\nCraftBukkit server with Puppet!\n\nThis is a derivative work of Branan Purvine-Riley's\n[Minecraft module](http://forge.puppetlabs.com/branan/minecraft), with\nimprovements including: version selection, CraftBukkit support, a\nplugin resource, and settings managed via templates. It is released\nunder the original Apache License, Version 2.0.\n\nThis module has been tested on Ubuntu Server 12.04.4 with Puppet 3.8.7.\n\n## Usage\n\nThe simplest possible usage is:\n\n```puppet\ninclude minecraft\n```\n\nThis entire class is parameterized (see the minecraft class for\ndetails), and can be configured through hiera.\n\nParameters are available which control how the Minecraft installation\nbehaves:\n\n* `user`: The user account for the Minecraft service\n* `group`: The user group for the Minecraft service\n* `install_dir`: The directory in which Minecraft stores its data\n* `source`: Minecraft (semvar) or CraftBukkit ('recommended',\n  'beta', or 'dev'), or direct source (URL for `wget`)\n* `autostart`: Start the service at boot\n* `manage_java`: Manage the JRE package\n* `heap_size`: The maximum Java heap size for the Minecraft service\n  in megabytes\n* `heap_start`: The initial Java heap size for the Minecraft service\n  in megabytes\n\n### Minecraft Versions / CraftBukkit Builds\n\nA particular version of Minecraft server can be downloaded by\nspecifying the `source` parameter. This parameter accepts a semantic\nversion (representing a vanilla Minecraft server), a snapshot version,\nor for a [CraftBukkit](http://dl.bukkit.org/downloads/craftbukkit/)\ninstallation, one of 'recommended', 'beta', or 'dev'. Latest vanilla\nversion as of this writing is 1.7.5.\n\nPlease note that once a JAR file (the server) has been downloaded to\n`install_dir`, if you want to switch, you will need to manually remove\nit so that the `wget::fetch` resource can update; this is a _good\nthing_ as it means the tags (e.g. \"recommended\") will not auto-update\nyour server. This is good because you must beware incompatibilities\namong Minecraft and CraftBukkit versions with world files, settings,\netc, so backup and test thoroughly before you update. (At least rolling\nback to an old version is easy.)\n\nSpeaking of old versions, prior to the release of Minecraft 1.6, the\ndownloads were hosted at a different\n[location](http://assets.minecraft.net/), but since these are quite\nold, this module does not currently support it. Submit a Pull Request\nif you add support, or make an issue if you want me to do so.\n\n### Server configuration\n\nFull configuration of the Minecraft server is supported. Simply\nspecify the parameter with the server setting when declaring the\nclass:\n\n```puppet\nclass { 'minecraft':\n  source     =\u003e 'dev',\n  heap_size  =\u003e 2048,\n  difficulty =\u003e 2,\n  motd       =\u003e 'Managed by Puppet!',\n  ops        =\u003e [ 'op1', 'op2' ]\n}\n```\n\n[Hiera](http://docs.puppetlabs.com/hiera/1/puppet.html) configuration\ncan also be done. In [YAML](http://www.yaml.org/):\n\n```yaml\nminecraft::source: 'dev'\nminecraft::heap_size: 2048\nminecraft::difficulty: 2\nminecraft::motd: 'Managed by Puppet, with Hiera!'\nminecraft::ops:\n  - 'op1'\n  - 'op2'\n```\n\nNote that the server property name will use an underscore instead of a\ndash, and may not exactly match the `server.properties` name. Also,\nrefrain from using 'undef' for the server properties, as Puppet will\nplace 'undef' as a string in the template; instead, use the emptry\nstring: ''. (It's either this or add a bunch of template logic to\ncheck for an undef value first, for every parameter, do it and Pull\nRequest if you'd like.)\n\n### Managing players\n\nThis module manages the Minecraft player settings through\ntemplates. To add players to a particular list, declare an array of\nthem:\n\n```puppet\nclass { 'minecraft':\n  ops                =\u003e 'me',\n  banned_players     =\u003e [ 'griefer', 'badboy' ],\n  banned_ips         =\u003e '127.0.0.1',         # Don't actually do this\n  white_list_players =\u003e [ 'my_best_friend' ] # Minecraft auto-includes ops\n}\n```\n\nNote that when any of these parameters is set to undef, Puppet will\nnot manage the corresponding file, allowing you to manage it via\ncommands in Minecraft. However, if specified, Puppet will manage the\nfile, and overwrite any manual changes on the next application of\nPuppet. (There is also the \"replace\" attribute on the Puppet file\nresource, but this is not what we want because, if the file is being\nmanaged, we want changes in the manifest to be updated in the files.)\n\nTo enable the whitelist, you must both set it to true in the class,\nand add players to the whitelist here, as they affect separate\ntemplates. Additionally, blacklists (banned IPs/players) is pointless\nif the whitelist is enabled, and is only shown here concurrently for\ndemonstration purposes.\n\n### Java\n\nIf `manage_java` is true, this module will use\n[Puppetlabs' Java module](https://github.com/puppetlabs/puppetlabs-java)\nto install the necessary Java Runtime Environment.\n\n### Adding CraftBukkit Plugins\n\nCraftBukkit plugins can be installed by using the defined resource\n`minecraft::plugin`. You must specify the plugin name (lacking the\n'.jar' file extension) and the complete URL for the download source.\n\n#### Dynmap Example\n\nThe\n[Dynmap plugin](http://www.minecraftforum.net/topic/1543523-dynmap-dynamic-web-based-maps-for-minecraft/)\ncan be configured like this:\n\n```puppet\nminecraft::plugin { 'dynmap':\n  source =\u003e 'http://dev.bukkit.org/media/files/757/982/dynmap-1.9.1.jar'\n}\n```\n\nOr using Hiera like this:\n\n```yaml\nminecraft::plugins:\n  dynmap:\n    source: http://dev.bukkit.org/media/files/757/982/dynmap-1.9.1.jar\n```\n\nOnce enabled, a web-based map of the server will be available at\n[localhost:8123](http://localhost:8123). James Fryman's\n[nginx module](http://forge.puppetlabs.com/jfryman/nginx) could then\nbe used to proxy the server through\n[map.domain.tld](http://map.domain.tld) like thus:\n\n```puppet\nnginx::resource::vhost { 'map.domain.tld':\n  proxy            =\u003e 'http://localhost:8123',\n  proxy_set_header =\u003e [ 'Host $host' ],\n}\n```\n\nOr again in Hiera,\n\n```yaml\nnginx::nginx_vhosts:\n  map.domain.tld:\n    proxy: http://localhost:8123\n    proxy_set_header:\n      - Host $host\n```\n\nNote that Nginx setup is not within the scope of this module, and is\nsimply provided as a tip.\n\n### Rcon Example\nrcon can be enabled to subsequently access the server's console.\n\n```puppet\nclass{'minecraft':\n  enable_rcon   =\u003e true,\n  rcon_port     =\u003e 1234,\n  rcon_password =\u003e 'foo',\n}\n```\n\nA [rcon client](http://wiki.vg/RCON) e.g [mcrcon](https://github.com/Tiiffi/mcrcon) can be used to connect.\n\n```bash\n# ./mcrcon  -c -H 127.0.0.1 -P 25575 -p 1234 -t\nLogged in. Type \"Q\" to quit!\n```\n\n## Caveats\n\nThis package uses\n[Puppetlabs' stdlib module](https://forge.puppetlabs.com/puppetlabs/stdlib)\nfor the `ensure_resource` function, which it uses on the `screen`\npackage (utilized for running the Minecraft server as a background\nservice). This is currently the safest way to declare a\npossibly-conflicting dependency.\n\n## Testing\n\nTesting of this package occurs on an Ubuntu 12.04.4 LTS machine, using\nPuppet 3.4.3. This is made easy using\n[vagrant](http://www.vagrantup.com/), and my own\n[box](https://vagrantcloud.com/andschwa/ubuntu-precise-latest-puppet).\n\n## Copyright\n\nMy contributions as indicated by the git repository's history are\nCopyright 2014 Andrew Schwartzmeyer, and as stated above, are released\nunder the included license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxpupuli%2Fpuppet-minecraft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoxpupuli%2Fpuppet-minecraft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoxpupuli%2Fpuppet-minecraft/lists"}