# HG changeset patch # User Luke Hoersten # Date 1625336626 18000 # Node ID ebd8a21a0e62e9348376925fba6e7bf628d44862 # Parent 4d45841961e712533e9f07a36c186be4786e49be Added minecraft backup. diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/aws-s3-backup/files/minecraft-s3-backup.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/minecraft/aws-s3-backup/files/minecraft-s3-backup.sh Sat Jul 03 13:23:46 2021 -0500 @@ -0,0 +1,12 @@ +#!/bin/bash + +BUCKET=$1 +DATE=`date --iso-8601` +BACKUP_DIR=$2 +BACKUP_TAR="/tmp/$BUCKET-$DATE.tgz" + +tar -zc -f $BACKUP_TAR $BACKUP_DIR +aws s3 mb "s3://$BUCKET/" +aws s3 cp $BACKUP_TAR "s3://$BUCKET/" + +rm $BACKUP_TAR diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/aws-s3-backup/handlers/main.yaml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/minecraft/aws-s3-backup/handlers/main.yaml Sat Jul 03 13:23:46 2021 -0500 @@ -0,0 +1,5 @@ +--- + +- name: reload s3 backup service + systemd: name="minecraft-s3-backup@{{minecraft_s3_backup_bucket}}.service" enabled="yes" daemon_reload="yes" + become: yes diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/aws-s3-backup/meta/main.yaml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/minecraft/aws-s3-backup/meta/main.yaml Sat Jul 03 13:23:46 2021 -0500 @@ -0,0 +1,4 @@ +--- + +dependencies: + - aws-s3-backup diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/aws-s3-backup/tasks/main.yaml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/minecraft/aws-s3-backup/tasks/main.yaml Sat Jul 03 13:23:46 2021 -0500 @@ -0,0 +1,19 @@ +--- + +- name: create minecraft s3 backup shell script + become: yes + copy: + src: "minecraft-s3-backup.sh" + dest: "/usr/local/bin/minecraft-s3-backup.sh" + mode: "0755" + +- name: configure minecraft s3 backup systemd service + become: yes + template: + src: "minecraft-s3-backup@.service.j2" + dest: "/lib/systemd/system/minecraft-s3-backup@{{minecraft_s3_backup_bucket}}.service" + notify: reload s3 backup service + +- name: ensure minecraft s3 backup service is started + become: yes + systemd: name="minecraft-s3-backup@{{minecraft_s3_backup_bucket}}.service" enabled="yes" diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/aws-s3-backup/templates/minecraft-s3-backup@.service.j2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/minecraft/aws-s3-backup/templates/minecraft-s3-backup@.service.j2 Sat Jul 03 13:23:46 2021 -0500 @@ -0,0 +1,9 @@ +[Unit] +Description=Minecraft s3 backup for "%I" + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/minecraft-s3-backup.sh %i "{{minecraft_s3_backup_dir}}" + +[Install] +WantedBy=aws-s3-backup.target diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/defaults/main.yaml --- a/minecraft/defaults/main.yaml Sat Jul 03 11:16:17 2021 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ ---- - -minecraft_user: "minecraft" -minecraft_fork: "vanilla" # paper -minecraft_parent_dir: "/opt" -minecraft_motd: "A Minecraft Server" -minecraft_mem: "2G" -minecraft_seed: "" -minecraft_difficulty: "hard" - -minecraft_paper_version: "1.17" -minecraft_paper_build: "53" -minecraft_vanilla_hash: "0a269b5f2c5b93b1712d0f5dc43b6182b9ab254e" -minecraft_dynmap_version: "3.2-beta-1-spigot" diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/files/03adoptopenjdk-direct --- a/minecraft/files/03adoptopenjdk-direct Sat Jul 03 11:16:17 2021 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -Acquire::HTTP::Proxy::adoptopenjdk.jfrog.io "DIRECT"; diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/files/eula.txt --- a/minecraft/files/eula.txt Sat Jul 03 11:16:17 2021 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -eula=true diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/handlers/main.yaml --- a/minecraft/handlers/main.yaml Sat Jul 03 11:16:17 2021 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ ---- - -- name: restart minecraft - become: yes - systemd: name="minecraft.service" state="restarted" daemon_reload="yes" diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/server/defaults/main.yaml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/minecraft/server/defaults/main.yaml Sat Jul 03 13:23:46 2021 -0500 @@ -0,0 +1,14 @@ +--- + +minecraft_user: "minecraft" +minecraft_fork: "vanilla" # paper +minecraft_parent_dir: "/opt" +minecraft_motd: "A Minecraft Server" +minecraft_mem: "2G" +minecraft_seed: "" +minecraft_difficulty: "hard" + +minecraft_paper_version: "1.17" +minecraft_paper_build: "53" +minecraft_vanilla_hash: "0a269b5f2c5b93b1712d0f5dc43b6182b9ab254e" +minecraft_dynmap_version: "3.2-beta-1-spigot" diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/server/files/03adoptopenjdk-direct --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/minecraft/server/files/03adoptopenjdk-direct Sat Jul 03 13:23:46 2021 -0500 @@ -0,0 +1,1 @@ +Acquire::HTTP::Proxy::adoptopenjdk.jfrog.io "DIRECT"; diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/server/files/eula.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/minecraft/server/files/eula.txt Sat Jul 03 13:23:46 2021 -0500 @@ -0,0 +1,1 @@ +eula=true diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/server/handlers/main.yaml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/minecraft/server/handlers/main.yaml Sat Jul 03 13:23:46 2021 -0500 @@ -0,0 +1,5 @@ +--- + +- name: restart minecraft + become: yes + systemd: name="minecraft.service" state="restarted" daemon_reload="yes" diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/server/tasks/adoptopenjdk.yaml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/minecraft/server/tasks/adoptopenjdk.yaml Sat Jul 03 13:23:46 2021 -0500 @@ -0,0 +1,21 @@ +--- + +- name: configure apt proxy bypass for https + become: yes + copy: src="03adoptopenjdk-direct" dest="/etc/apt/apt.conf.d/03adoptopenjdk-direct" + +- name: add adoptopenjdk apt key + become: yes + apt_key: url="https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public/" + +- name: add adoptopenjdk apt repo + become: yes + apt_repository: repo="deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main" + +- name: update apt package cache + become: yes + apt: upgrade="dist" autoremove="yes" autoclean="yes" update_cache="yes" cache_valid_time="3600" + +- name: install adoptopenjdk hotspot jre 16 + become: yes + apt: name="adoptopenjdk-16-hotspot-jre" diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/server/tasks/dynmap.yaml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/minecraft/server/tasks/dynmap.yaml Sat Jul 03 13:23:46 2021 -0500 @@ -0,0 +1,27 @@ +--- + +- name: create minecraft plugins dir + become: yes + file: + path: "{{minecraft_dir}}/{{item}}" + owner: "{{minecraft_user}}" + group: "{{minecraft_user}}" + mode: "0755" + state: "directory" + loop: + - "plugins" + - "plugins/dynmap" + +- name: download dynmap + become: yes + get_url: + url: "{{minecraft_dynmap_url}}" + dest: "{{minecraft_dir}}/plugins/dynmap.jar" + mode: "0755" + notify: restart minecraft + +- name: configure dynmap + become: yes + template: + src: "configuration.txt.j2" + dest: "{{minecraft_dir}}/plugins/dynmap/configuration.txt" diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/server/tasks/main.yaml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/minecraft/server/tasks/main.yaml Sat Jul 03 13:23:46 2021 -0500 @@ -0,0 +1,90 @@ +--- + +- name: add minecraft user + become: yes + user: name="{{minecraft_user}}" home="{{minecraft_dir}}" + +- name: install adoptopenjdk + include_tasks: adoptopenjdk.yaml + +- name: set minecraft fork + set_fact: minecraft_url="{{minecraft_vanilla_url}}" + when: minecraft_fork == "vanilla" + +- name: set minecraft fork + set_fact: minecraft_url="{{minecraft_paper_url}}" + when: minecraft_fork == "paper" + +- name: create minecraft dir + become: yes + file: + path: "{{minecraft_dir}}" + owner: "{{minecraft_user}}" + group: "{{minecraft_user}}" + mode: "0755" + state: "directory" + +- name: download minecraft + become: yes + get_url: + url: "{{minecraft_url}}" + dest: "{{minecraft_dir}}/server.jar" + mode: "0755" + notify: restart minecraft + +- name: configure minecraft eula + become: yes + copy: + src: "{{item}}" + dest: "{{minecraft_dir}}/{{item}}" + owner: "{{minecraft_user}}" + group: "{{minecraft_user}}" + loop: + - "eula.txt" + notify: restart minecraft + +- name: configure minecraft ops + become: yes + template: + src: "ops.json.j2" + dest: "{{minecraft_dir}}/ops.json" + owner: "{{minecraft_user}}" + group: "{{minecraft_user}}" + notify: restart minecraft + +- name: install plugins + include_tasks: dynmap.yaml + when: minecraft_fork == "paper" + +- name: create server.properties + become: yes + file: + path: "{{minecraft_dir}}/server.properties" + state: "touch" + access_time: "preserve" + modification_time: "preserve" + owner: "{{minecraft_user}}" + group: "{{minecraft_user}}" + +- name: configure server.properties + become: yes + lineinfile: + path: "{{minecraft_dir}}/server.properties" + regexp: "^{{item.key}}=" + line: "{{item.key}}={{item.value}}" + notify: restart minecraft + loop: + - {key: "motd", value: "{{minecraft_motd}}"} + - {key: "level-seed", value: "{{minecraft_seed}}"} + - {key: "difficulty", value: "{{minecraft_difficulty}}"} + +- name: install systemd service + become: yes + template: + src: "minecraft.service.j2" + dest: "/lib/systemd/system/minecraft.service" + notify: restart minecraft + +- name: ensure service is started + become: yes + systemd: name="minecraft.service" enabled="yes" state="started" diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/server/templates/configuration.txt.j2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/minecraft/server/templates/configuration.txt.j2 Sat Jul 03 13:23:46 2021 -0500 @@ -0,0 +1,492 @@ +# All paths in this configuration file are relative to Dynmap's data-folder: minecraft_server/plugins/dynmap/ + +# All map templates are defined in the templates directory +# To use the HDMap very-low-res (2 ppb) map templates as world defaults, set value to vlowres +# The definitions of these templates are in normal-vlowres.txt, nether-vlowres.txt, and the_end-vlowres.txt +# To use the HDMap low-res (4 ppb) map templates as world defaults, set value to lowres +# The definitions of these templates are in normal-lowres.txt, nether-lowres.txt, and the_end-lowres.txt +# To use the HDMap hi-res (16 ppb) map templates (these can take a VERY long time for initial fullrender), set value to hires +# The definitions of these templates are in normal-hires.txt, nether-hires.txt, and the_end-hires.txt +# To use the HDMap low-res (4 ppb) map templates, with support for boosting resolution selectively to hi-res (16 ppb), set value to low_boost_hi +# The definitions of these templates are in normal-low_boost_hi.txt, nether-low_boost_hi.txt, and the_end-low_boost_hi.txt +# To use the HDMap hi-res (16 ppb) map templates, with support for boosting resolution selectively to vhi-res (32 ppb), set value to hi_boost_vhi +# The definitions of these templates are in normal-hi_boost_vhi.txt, nether-hi_boost_vhi.txt, and the_end-hi_boost_vhi.txt +# To use the HDMap hi-res (16 ppb) map templates, with support for boosting resolution selectively to xhi-res (64 ppb), set value to hi_boost_xhi +# The definitions of these templates are in normal-hi_boost_xhi.txt, nether-hi_boost_xhi.txt, and the_end-hi_boost_xhi.txt +deftemplatesuffix: hires + +# Map storage scheme: only uncomment one 'type' value +# filetree: classic and default scheme: tree of files, with all map data under the directory indicated by 'tilespath' setting +# sqlite: single SQLite database file (this can get VERY BIG), located at 'dbfile' setting (default is file dynmap.db in data directory) +# mysql: MySQL database, at hostname:port in database, accessed via userid with password +storage: + # Filetree storage (standard tree of image files for maps) + type: filetree + # SQLite db for map storage (uses dbfile as storage location) + #type: sqlite + #dbfile: dynmap.db + # MySQL DB for map storage (at 'hostname':'port' with flags "flags" in database 'database' using user 'userid' password 'password' and table prefix 'prefix') + #type: mysql + #hostname: localhost + #port: 3306 + #database: dynmap + #userid: dynmap + #password: dynmap + #prefix: "" + #flags: "?allowReconnect=true" + +components: + - class: org.dynmap.ClientConfigurationComponent + + # - class: org.dynmap.InternalClientUpdateComponent + # sendhealth: true + # sendposition: true + # allowwebchat: true + # webchat-interval: 5 + # hidewebchatip: false + # trustclientname: false + # includehiddenplayers: false + # # (optional) if true, color codes in player display names are used + # use-name-colors: false + # # (optional) if true, player login IDs will be used for web chat when their IPs match + # use-player-login-ip: true + # # (optional) if use-player-login-ip is true, setting this to true will cause chat messages not matching a known player IP to be ignored + # require-player-login-ip: false + # # (optional) block player login IDs that are banned from chatting + # block-banned-player-chat: true + # # Require login for web-to-server chat (requires login-enabled: true) + # webchat-requires-login: false + # # If set to true, users must have dynmap.webchat permission in order to chat + # webchat-permissions: false + # # Limit length of single chat messages + # chatlengthlimit: 256 + # # # Optional - make players hidden when they are inside/underground/in shadows (#=light level: 0=full shadow,15=sky) + # # hideifshadow: 4 + # # # Optional - make player hidden when they are under cover (#=sky light level,0=underground,15=open to sky) + # # hideifundercover: 14 + # # # (Optional) if true, players that are crouching/sneaking will be hidden + # hideifsneaking: false + # # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) + # protected-player-info: false + # # If true, hide players with invisibility potion effects active + # hide-if-invisiblity-potion: true + # # If true, player names are not shown on map, chat, list + # hidenames: false + + - class: org.dynmap.JsonFileClientUpdateComponent + writeinterval: 1 + sendhealth: true + sendposition: true + allowwebchat: false + webchat-interval: 5 + hidewebchatip: false + includehiddenplayers: false + use-name-colors: false + use-player-login-ip: false + require-player-login-ip: false + block-banned-player-chat: true + hideifshadow: 0 + hideifundercover: 0 + hideifsneaking: false + # Require login for web-to-server chat (requires login-enabled: true) + webchat-requires-login: false + # If set to true, users must have dynmap.webchat permission in order to chat + webchat-permissions: false + # Limit length of single chat messages + chatlengthlimit: 256 + hide-if-invisiblity-potion: true + hidenames: false + + - class: org.dynmap.SimpleWebChatComponent + allowchat: false + # If true, web UI users can supply name for chat using 'playername' URL parameter. 'trustclientname' must also be set true. + allowurlname: false + + # Note: this component is needed for the dmarker commands, and for the Marker API to be available to other plugins + - class: org.dynmap.MarkersComponent + type: markers + showlabel: false + enablesigns: false + # Default marker set for sign markers + default-sign-set: markers + # (optional) add spawn point markers to standard marker layer + showspawn: true + spawnicon: world + spawnlabel: "Spawn" + # (optional) layer for showing offline player's positions (for 'maxofflinetime' minutes after logoff) + showofflineplayers: false + offlinelabel: "Offline" + offlineicon: offlineuser + offlinehidebydefault: true + offlineminzoom: 0 + maxofflinetime: 30 + # (optional) layer for showing player's spawn beds + showspawnbeds: false + spawnbedlabel: "Spawn Beds" + spawnbedicon: bed + spawnbedhidebydefault: true + spawnbedminzoom: 0 + spawnbedformat: "%name%'s bed" + # (optional) show world border (vanilla 1.8+) + showworldborder: true + worldborderlabel: "Border" + + - class: org.dynmap.ClientComponent + type: chat + allowurlname: false + - class: org.dynmap.ClientComponent + type: chatballoon + focuschatballoons: false + - class: org.dynmap.ClientComponent + type: chatbox + showplayerfaces: true + messagettl: 5 + # Optional: set number of lines in scrollable message history: if set, messagettl is not used to age out messages + #scrollback: 100 + # Optional: set maximum number of lines visible for chatbox + #visiblelines: 10 + # Optional: send push button + sendbutton: false + - class: org.dynmap.ClientComponent + type: playermarkers + showplayerfaces: true + showplayerhealth: true + # If true, show player body too (only valid if showplayerfaces=true + showplayerbody: false + # Option to make player faces small - don't use with showplayerhealth + smallplayerfaces: false + # Optional - make player faces layer hidden by default + hidebydefault: false + # Optional - ordering priority in layer menu (low goes before high - default is 0) + layerprio: 0 + # Optional - label for player marker layer (default is 'Players') + label: "Players" + + #- class: org.dynmap.ClientComponent + # type: digitalclock + - class: org.dynmap.ClientComponent + type: link + + - class: org.dynmap.ClientComponent + type: timeofdayclock + showdigitalclock: true + showweather: true + # Mouse pointer world coordinate display + - class: org.dynmap.ClientComponent + type: coord + label: "Location" + hidey: false + show-mcr: false + show-chunk: false + + # Note: more than one logo component can be defined + #- class: org.dynmap.ClientComponent + # type: logo + # text: "Dynmap" + # #logourl: "images/block_surface.png" + # linkurl: "http://forums.bukkit.org/threads/dynmap.489/" + # # Valid positions: top-left, top-right, bottom-left, bottom-right + # position: bottom-right + + #- class: org.dynmap.ClientComponent + # type: inactive + # timeout: 1800 # in seconds (1800 seconds = 30 minutes) + # redirecturl: inactive.html + # #showmessage: 'You were inactive for too long.' + + #- class: org.dynmap.TestComponent + # stuff: "This is some configuration-value" + +# Treat hiddenplayers.txt as a whitelist for players to be shown on the map? (Default false) +display-whitelist: false + +# How often a tile gets rendered (in seconds). +renderinterval: 1 + +# How many tiles on update queue before accelerate render interval +renderacceleratethreshold: 60 + +# How often to render tiles when backlog is above renderacceleratethreshold +renderaccelerateinterval: 0.2 + +# How many update tiles to work on at once (if not defined, default is 1/2 the number of cores) +tiles-rendered-at-once: 2 + +# If true, use normal priority threads for rendering (versus low priority) - this can keep rendering +# from starving on busy Windows boxes (Linux JVMs pretty much ignore thread priority), but may result +# in more competition for CPU resources with other processes +usenormalthreadpriority: true + +# Save and restore pending tile renders - prevents their loss on server shutdown or /reload +saverestorepending: true + +# Save period for pending jobs (in seconds): periodic saving for crash recovery of jobs +save-pending-period: 900 + +# Zoom-out tile update period - how often to scan for and process tile updates into zoom-out tiles (in seconds) +zoomoutperiod: 30 + +# Control whether zoom out tiles are validated on startup (can be needed if zoomout processing is interrupted, but can be expensive on large maps) +initial-zoomout-validate: true + +# Default delay on processing of updated tiles, in seconds. This can reduce potentially expensive re-rendering +# of frequently updated tiles (such as due to machines, pistons, quarries or other automation). Values can +# also be set on individual worlds and individual maps. +tileupdatedelay: 30 + +# Tile hashing is used to minimize tile file updates when no changes have occurred - set to false to disable +enabletilehash: true + +# Optional - hide ores: render as normal stone (so that they aren't revealed by maps) +#hideores: true + +# Optional - enabled BetterGrass style rendering of grass and snow block sides +#better-grass: true + +# Optional - enable smooth lighting by default on all maps supporting it (can be set per map as lighting option) +smooth-lighting: true + +# Optional - use world provider lighting table (good for custom worlds with custom lighting curves, like nether) +# false=classic Dynmap lighting curve +use-brightness-table: true + +# Optional - render specific block names using the textures and models of another block name: can be used to hide/disguise specific +# blocks (e.g. make ores look like stone, hide chests) or to provide simple support for rendering unsupported custom blocks +block-alias: +# "minecraft:quartz_ore": "stone" +# "diamond_ore": "coal_ore" + +# Default image format for HDMaps (png, jpg, jpg-q75, jpg-q80, jpg-q85, jpg-q90, jpg-q95, jpg-q100) +# Has no effect on maps with explicit format settings +image-format: jpg-q90 + +# use-generated-textures: if true, use generated textures (same as client); false is static water/lava textures +# correct-water-lighting: if true, use corrected water lighting (same as client); false is legacy water (darker) +# transparent-leaves: if true, leaves are transparent (lighting-wise): false is needed for some Spout versions that break lighting on leaf blocks +use-generated-textures: true +correct-water-lighting: true +transparent-leaves: true + +# ctm-support: if true, Connected Texture Mod (CTM) in texture packs is enabled (default) +ctm-support: true +# custom-colors-support: if true, Custom Colors in texture packs is enabled (default) +custom-colors-support: true + +# Control loading of player faces (if set to false, skins are never fetched) +#fetchskins: false + +# Control updating of player faces, once loaded (if faces are being managed by other apps or manually) +#refreshskins: false + +# Customize URL used for fetching player skins (%player% is macro for name) +skin-url: "http://skins.minecraft.net/MinecraftSkins/%player%.png" + +# Enable skins via SkinsRestorer plugin instead of internal legacy implementation (disabled by default) +#skinsrestorer-integration: true + +render-triggers: + #- playermove + #- playerjoin + - blockplaced + - blockbreak + - leavesdecay + - blockburn + - chunkgenerated + - blockformed + - blockfaded + - blockspread + - pistonmoved + - explosion + #- blockfromto + #- blockphysics + - structuregrow + - blockgrow + #- blockredstone + +# Title for the web page - if not specified, defaults to the server's name (unless it is the default of 'Unknown Server') +#webpage-title: "My Awesome Server Map" + +# The path where the tile-files are placed. +tilespath: web/tiles + +# The path where the web-files are located. +webpath: web + +# The path were the /dynmapexp command exports OBJ ZIP files +exportpath: export + +# The network-interface the webserver will bind to (0.0.0.0 for all interfaces, 127.0.0.1 for only local access). +# If not set, uses same setting as server in server.properties (or 0.0.0.0 if not specified) +#webserver-bindaddress: 0.0.0.0 + +# The TCP-port the webserver will listen on. +webserver-port: 8123 + +# Maximum concurrent session on internal web server - limits resources used in Bukkit server +max-sessions: 30 + +# Disables Webserver portion of Dynmap (Advanced users only) +disable-webserver: false + +# Enable/disable having the web server allow symbolic links (true=compatible with existing code, false=more secure (default)) +allow-symlinks: true + +# Enable login support +login-enabled: false +# Require login to access website (requires login-enabled: true) +login-required: false + +# Period between tile renders for fullrender, in seconds (non-zero to pace fullrenders, lessen CPU load) +timesliceinterval: 0.0 + +# Maximum chunk loads per server tick (1/20th of a second) - reducing this below 90 will impact render performance, but also will reduce server thread load +maxchunkspertick: 200 + +# Progress report interval for fullrender/radiusrender, in tiles. Must be 100 or greater +progressloginterval: 100 + +# Parallel fullrender: if defined, number of concurrent threads used for fullrender or radiusrender +# Note: setting this will result in much more intensive CPU use, some additional memory use. Caution should be used when +# setting this to equal or exceed the number of physical cores on the system. +#parallelrendercnt: 4 + +# Interval the browser should poll for updates. +updaterate: 2000 + +# If nonzero, server will pause fullrender/radiusrender processing when 'fullrenderplayerlimit' or more users are logged in +fullrenderplayerlimit: 0 +# If nonzero, server will pause update render processing when 'updateplayerlimit' or more users are logged in +updateplayerlimit: 0 +# Target limit on server thread use - msec per tick +per-tick-time-limit: 50 +# If TPS of server is below this setting, update renders processing is paused +update-min-tps: 18.0 +# If TPS of server is below this setting, full/radius renders processing is paused +fullrender-min-tps: 18.0 +# If TPS of server is below this setting, zoom out processing is paused +zoomout-min-tps: 18.0 + +showplayerfacesinmenu: true + +# Control whether players that are hidden or not on current map are grayed out (true=yes) +grayplayerswhenhidden: true + +# Use player permissions to order player list: first to last, players are ordered by first permission listed that they have +# That is, anyone with first listed permission goes before anyone with second, etc, with users with none of the nodes going last +player-sort-permission-nodes: + - bukkit.command.op + +# Set sidebaropened: 'true' to pin menu sidebar opened permanently, 'pinned' to default the sidebar to pinned, but allow it to unpin +#sidebaropened: true + +# Customized HTTP response headers - add 'id: value' pairs to all HTTP response headers (internal web server only) +#http-response-headers: +# Access-Control-Allow-Origin: "my-domain.com" +# X-Custom-Header-Of-Mine: "MyHeaderValue" + +# Trusted proxies for web server - which proxy addresses are trusted to supply valid X-Forwarded-For fields +trusted-proxies: + - "127.0.0.1" + - "0:0:0:0:0:0:0:1" + +# Join/quit message format for web chat: set to "" to disable notice on web UI +joinmessage: "%playername% joined" +quitmessage: "%playername% quit" + +spammessage: "You may only chat once every %interval% seconds." +# format for messages from web: %playername% substitutes sender ID (typically IP), %message% includes text +webmsgformat: "&color;2[WEB] %playername%: &color;f%message%" + +# Control whether layer control is presented on the UI (default is true) +showlayercontrol: true + +# Enable checking for banned IPs via banned-ips.txt (internal web server only) +check-banned-ips: true + +# Default selection when map page is loaded +defaultzoom: 0 +defaultworld: world +defaultmap: flat +# (optional) Zoom level and map to switch to when following a player, if possible +#followzoom: 3 +#followmap: surface + +# If true, make persistent record of IP addresses used by player logins, to support web IP to player matching +persist-ids-by-ip: true + +# If true, map text to cyrillic +cyrillic-support: false + +# If true, coordinates will be rounded +round-coordinates: true + +# Messages to customize +msg: + maptypes: "Map Types" + players: "Players" + chatrequireslogin: "Chat Requires Login" + chatnotallowed: "You are not permitted to send chat messages" + hiddennamejoin: "Player joined" + hiddennamequit: "Player quit" + +# URL for client configuration (only need to be tailored for proxies or other non-standard configurations) +url: + # configuration URL + #configuration: "up/configuration" + # update URL + #update: "up/world/{world}/{timestamp}" + # sendmessage URL + #sendmessage: "up/sendmessage" + # login URL + #login: "up/login" + # register URL + #register: "up/register" + # tiles base URL + #tiles: "tiles/" + # markers base URL + #markers: "tiles/" + +# Customization commands - allows scripts to be run before/after certain events +custom-commands: + image-updates: + # Command run just before any image file is written or updated: run with single parameter with fully qualified file name + preupdatecommand: "" + # Command run just after any image file is written or updated: run with single parameter with fully qualified file name + postupdatecommand: "" + +# Snapshot cache size, in chunks +snapshotcachesize: 500 +# Snapshot cache uses soft references (true), else weak references (false) +soft-ref-cache: true + +# Player enter/exit title messages for map markers +# +# Processing period - how often to check player positions vs markers - default is 1000ms (1 second) +#enterexitperiod: 1000 +# Title message fade in time, in ticks (0.05 second intervals) - default is 10 (1/2 second) +#titleFadeIn: 10 +# Title message stay time, in ticks (0.05 second intervals) - default is 70 (3.5 seconds) +#titleStay: 70 +# Title message fade out time, in ticks (0.05 seocnd intervals) - default is 20 (1 second) +#titleFadeOut: 20 +# Enter/exit messages use on screen titles (true - default), if false chat messages are sent instead +#enterexitUseTitle: true +# Set true if new enter messages should supercede pending exit messages (vs being queued in order), default false +#enterReplacesExits: true + +# Set to true to enable verbose startup messages - can help with debugging map configuration problems +# Set to false for a much quieter startup log +verbose: false + +# Enables debugging. +#debuggers: +# - class: org.dynmap.debug.LogDebugger +# Debug: dump blocks missing render data +dump-missing-blocks: false + +# Have dynmap migrate old chunks to the new format for the current MC version (specifically, for migrating pre-1.13 chunks to 1.13 or 1.14). This is needed +# in order to render chunks on an upgraded server (due to various bugs/limitations in CB/spigot 1.13+). This setting is NOT suggested to be enabled full time, +# but only long enough to do a fullrender of a migrated world - it should be turned back off once worlds are migrated). It is EXPERIMENTAL, so be sure to backup +# your worlds before running with this setting enabled (set to true) +# +#migrate-chunks: true diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/server/templates/map.nginx.conf.j2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/minecraft/server/templates/map.nginx.conf.j2 Sat Jul 03 13:23:46 2021 -0500 @@ -0,0 +1,11 @@ +server { + listen {{nginx_port}}; + server_name {{nginx_server_name}}; + root {{nginx_root_dir}}; + + index index.html; + + location / { + try_files $uri $uri/ =404; + } +} diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/server/templates/minecraft.service.j2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/minecraft/server/templates/minecraft.service.j2 Sat Jul 03 13:23:46 2021 -0500 @@ -0,0 +1,22 @@ +[Unit] +Description=Minecraft Server +Documentation=https://minecraft.gamepedia.com/Tutorials/Setting_up_a_server + +Wants=network.target +After=network.target + +[Service] +User={{minecraft_user}} +Group={{minecraft_user}} +WorkingDirectory={{minecraft_dir}} +Restart=on-failure +RestartSec=20 5 +ExecStart=/usr/bin/java -Xms{{minecraft_mem}} -Xmx{{minecraft_mem}} -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar nogui + +PrivateTmp=true +ProtectSystem=full +NoNewPrivileges=true +PrivateDevices=true + +[Install] +WantedBy=multi-user.target diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/server/templates/ops.json.j2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/minecraft/server/templates/ops.json.j2 Sat Jul 03 13:23:46 2021 -0500 @@ -0,0 +1,10 @@ +[ + {% if minecraft_ops_uuid %} + { + "uuid": "{{minecraft_ops_uuid}}", + "name": "{{minecraft_ops_name}}", + "level": 4, + "bypassesPlayerLimit": true + } + {% endif %} +] diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/server/vars/main.yaml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/minecraft/server/vars/main.yaml Sat Jul 03 13:23:46 2021 -0500 @@ -0,0 +1,6 @@ +--- + +minecraft_dir: "{{minecraft_parent_dir}}/minecraft/{{minecraft_fork}}" +minecraft_paper_url: "https://papermc.io/api/v1/paper/{{minecraft_paper_version}}/{{minecraft_paper_build}}/download" +minecraft_vanilla_url: "https://launcher.mojang.com/v1/objects/{{minecraft_vanilla_hash}}/server.jar" +minecraft_dynmap_url: "http://dynmap.us/builds/dynmap/Dynmap-{{minecraft_dynmap_version}}.jar" diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/tasks/adoptopenjdk.yaml --- a/minecraft/tasks/adoptopenjdk.yaml Sat Jul 03 11:16:17 2021 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ ---- - -- name: configure apt proxy bypass for https - become: yes - copy: src="03adoptopenjdk-direct" dest="/etc/apt/apt.conf.d/03adoptopenjdk-direct" - -- name: add adoptopenjdk apt key - become: yes - apt_key: url="https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public/" - -- name: add adoptopenjdk apt repo - become: yes - apt_repository: repo="deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ buster main" - -- name: update apt package cache - become: yes - apt: upgrade="dist" autoremove="yes" autoclean="yes" update_cache="yes" cache_valid_time="3600" - -- name: install adoptopenjdk hotspot jre 16 - become: yes - apt: name="adoptopenjdk-16-hotspot-jre" diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/tasks/dynmap.yaml --- a/minecraft/tasks/dynmap.yaml Sat Jul 03 11:16:17 2021 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ ---- - -- name: create minecraft plugins dir - become: yes - file: - path: "{{minecraft_dir}}/{{item}}" - owner: "{{minecraft_user}}" - group: "{{minecraft_user}}" - mode: "0755" - state: "directory" - loop: - - "plugins" - - "plugins/dynmap" - -- name: download dynmap - become: yes - get_url: - url: "{{minecraft_dynmap_url}}" - dest: "{{minecraft_dir}}/plugins/dynmap.jar" - mode: "0755" - notify: restart minecraft - -- name: configure dynmap - become: yes - template: - src: "configuration.txt.j2" - dest: "{{minecraft_dir}}/plugins/dynmap/configuration.txt" diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/tasks/main.yaml --- a/minecraft/tasks/main.yaml Sat Jul 03 11:16:17 2021 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,90 +0,0 @@ ---- - -- name: add minecraft user - become: yes - user: name="{{minecraft_user}}" home="{{minecraft_dir}}" - -- name: install adoptopenjdk - include_tasks: adoptopenjdk.yaml - -- name: set minecraft fork - set_fact: minecraft_url="{{minecraft_vanilla_url}}" - when: minecraft_fork == "vanilla" - -- name: set minecraft fork - set_fact: minecraft_url="{{minecraft_paper_url}}" - when: minecraft_fork == "paper" - -- name: create minecraft dir - become: yes - file: - path: "{{minecraft_dir}}" - owner: "{{minecraft_user}}" - group: "{{minecraft_user}}" - mode: "0755" - state: "directory" - -- name: download minecraft - become: yes - get_url: - url: "{{minecraft_url}}" - dest: "{{minecraft_dir}}/server.jar" - mode: "0755" - notify: restart minecraft - -- name: configure minecraft eula - become: yes - copy: - src: "{{item}}" - dest: "{{minecraft_dir}}/{{item}}" - owner: "{{minecraft_user}}" - group: "{{minecraft_user}}" - loop: - - "eula.txt" - notify: restart minecraft - -- name: configure minecraft ops - become: yes - template: - src: "ops.json.j2" - dest: "{{minecraft_dir}}/ops.json" - owner: "{{minecraft_user}}" - group: "{{minecraft_user}}" - notify: restart minecraft - -- name: install plugins - include_tasks: dynmap.yaml - when: minecraft_fork == "paper" - -- name: create server.properties - become: yes - file: - path: "{{minecraft_dir}}/server.properties" - state: "touch" - access_time: "preserve" - modification_time: "preserve" - owner: "{{minecraft_user}}" - group: "{{minecraft_user}}" - -- name: configure server.properties - become: yes - lineinfile: - path: "{{minecraft_dir}}/server.properties" - regexp: "^{{item.key}}=" - line: "{{item.key}}={{item.value}}" - notify: restart minecraft - loop: - - {key: "motd", value: "{{minecraft_motd}}"} - - {key: "level-seed", value: "{{minecraft_seed}}"} - - {key: "difficulty", value: "{{minecraft_difficulty}}"} - -- name: install systemd service - become: yes - template: - src: "minecraft.service.j2" - dest: "/lib/systemd/system/minecraft.service" - notify: restart minecraft - -- name: ensure service is started - become: yes - systemd: name="minecraft.service" enabled="yes" state="started" diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/templates/configuration.txt.j2 --- a/minecraft/templates/configuration.txt.j2 Sat Jul 03 11:16:17 2021 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,492 +0,0 @@ -# All paths in this configuration file are relative to Dynmap's data-folder: minecraft_server/plugins/dynmap/ - -# All map templates are defined in the templates directory -# To use the HDMap very-low-res (2 ppb) map templates as world defaults, set value to vlowres -# The definitions of these templates are in normal-vlowres.txt, nether-vlowres.txt, and the_end-vlowres.txt -# To use the HDMap low-res (4 ppb) map templates as world defaults, set value to lowres -# The definitions of these templates are in normal-lowres.txt, nether-lowres.txt, and the_end-lowres.txt -# To use the HDMap hi-res (16 ppb) map templates (these can take a VERY long time for initial fullrender), set value to hires -# The definitions of these templates are in normal-hires.txt, nether-hires.txt, and the_end-hires.txt -# To use the HDMap low-res (4 ppb) map templates, with support for boosting resolution selectively to hi-res (16 ppb), set value to low_boost_hi -# The definitions of these templates are in normal-low_boost_hi.txt, nether-low_boost_hi.txt, and the_end-low_boost_hi.txt -# To use the HDMap hi-res (16 ppb) map templates, with support for boosting resolution selectively to vhi-res (32 ppb), set value to hi_boost_vhi -# The definitions of these templates are in normal-hi_boost_vhi.txt, nether-hi_boost_vhi.txt, and the_end-hi_boost_vhi.txt -# To use the HDMap hi-res (16 ppb) map templates, with support for boosting resolution selectively to xhi-res (64 ppb), set value to hi_boost_xhi -# The definitions of these templates are in normal-hi_boost_xhi.txt, nether-hi_boost_xhi.txt, and the_end-hi_boost_xhi.txt -deftemplatesuffix: hires - -# Map storage scheme: only uncomment one 'type' value -# filetree: classic and default scheme: tree of files, with all map data under the directory indicated by 'tilespath' setting -# sqlite: single SQLite database file (this can get VERY BIG), located at 'dbfile' setting (default is file dynmap.db in data directory) -# mysql: MySQL database, at hostname:port in database, accessed via userid with password -storage: - # Filetree storage (standard tree of image files for maps) - type: filetree - # SQLite db for map storage (uses dbfile as storage location) - #type: sqlite - #dbfile: dynmap.db - # MySQL DB for map storage (at 'hostname':'port' with flags "flags" in database 'database' using user 'userid' password 'password' and table prefix 'prefix') - #type: mysql - #hostname: localhost - #port: 3306 - #database: dynmap - #userid: dynmap - #password: dynmap - #prefix: "" - #flags: "?allowReconnect=true" - -components: - - class: org.dynmap.ClientConfigurationComponent - - # - class: org.dynmap.InternalClientUpdateComponent - # sendhealth: true - # sendposition: true - # allowwebchat: true - # webchat-interval: 5 - # hidewebchatip: false - # trustclientname: false - # includehiddenplayers: false - # # (optional) if true, color codes in player display names are used - # use-name-colors: false - # # (optional) if true, player login IDs will be used for web chat when their IPs match - # use-player-login-ip: true - # # (optional) if use-player-login-ip is true, setting this to true will cause chat messages not matching a known player IP to be ignored - # require-player-login-ip: false - # # (optional) block player login IDs that are banned from chatting - # block-banned-player-chat: true - # # Require login for web-to-server chat (requires login-enabled: true) - # webchat-requires-login: false - # # If set to true, users must have dynmap.webchat permission in order to chat - # webchat-permissions: false - # # Limit length of single chat messages - # chatlengthlimit: 256 - # # # Optional - make players hidden when they are inside/underground/in shadows (#=light level: 0=full shadow,15=sky) - # # hideifshadow: 4 - # # # Optional - make player hidden when they are under cover (#=sky light level,0=underground,15=open to sky) - # # hideifundercover: 14 - # # # (Optional) if true, players that are crouching/sneaking will be hidden - # hideifsneaking: false - # # If true, player positions/status is protected (login with ID with dynmap.playermarkers.seeall permission required for info other than self) - # protected-player-info: false - # # If true, hide players with invisibility potion effects active - # hide-if-invisiblity-potion: true - # # If true, player names are not shown on map, chat, list - # hidenames: false - - - class: org.dynmap.JsonFileClientUpdateComponent - writeinterval: 1 - sendhealth: true - sendposition: true - allowwebchat: false - webchat-interval: 5 - hidewebchatip: false - includehiddenplayers: false - use-name-colors: false - use-player-login-ip: false - require-player-login-ip: false - block-banned-player-chat: true - hideifshadow: 0 - hideifundercover: 0 - hideifsneaking: false - # Require login for web-to-server chat (requires login-enabled: true) - webchat-requires-login: false - # If set to true, users must have dynmap.webchat permission in order to chat - webchat-permissions: false - # Limit length of single chat messages - chatlengthlimit: 256 - hide-if-invisiblity-potion: true - hidenames: false - - - class: org.dynmap.SimpleWebChatComponent - allowchat: false - # If true, web UI users can supply name for chat using 'playername' URL parameter. 'trustclientname' must also be set true. - allowurlname: false - - # Note: this component is needed for the dmarker commands, and for the Marker API to be available to other plugins - - class: org.dynmap.MarkersComponent - type: markers - showlabel: false - enablesigns: false - # Default marker set for sign markers - default-sign-set: markers - # (optional) add spawn point markers to standard marker layer - showspawn: true - spawnicon: world - spawnlabel: "Spawn" - # (optional) layer for showing offline player's positions (for 'maxofflinetime' minutes after logoff) - showofflineplayers: false - offlinelabel: "Offline" - offlineicon: offlineuser - offlinehidebydefault: true - offlineminzoom: 0 - maxofflinetime: 30 - # (optional) layer for showing player's spawn beds - showspawnbeds: false - spawnbedlabel: "Spawn Beds" - spawnbedicon: bed - spawnbedhidebydefault: true - spawnbedminzoom: 0 - spawnbedformat: "%name%'s bed" - # (optional) show world border (vanilla 1.8+) - showworldborder: true - worldborderlabel: "Border" - - - class: org.dynmap.ClientComponent - type: chat - allowurlname: false - - class: org.dynmap.ClientComponent - type: chatballoon - focuschatballoons: false - - class: org.dynmap.ClientComponent - type: chatbox - showplayerfaces: true - messagettl: 5 - # Optional: set number of lines in scrollable message history: if set, messagettl is not used to age out messages - #scrollback: 100 - # Optional: set maximum number of lines visible for chatbox - #visiblelines: 10 - # Optional: send push button - sendbutton: false - - class: org.dynmap.ClientComponent - type: playermarkers - showplayerfaces: true - showplayerhealth: true - # If true, show player body too (only valid if showplayerfaces=true - showplayerbody: false - # Option to make player faces small - don't use with showplayerhealth - smallplayerfaces: false - # Optional - make player faces layer hidden by default - hidebydefault: false - # Optional - ordering priority in layer menu (low goes before high - default is 0) - layerprio: 0 - # Optional - label for player marker layer (default is 'Players') - label: "Players" - - #- class: org.dynmap.ClientComponent - # type: digitalclock - - class: org.dynmap.ClientComponent - type: link - - - class: org.dynmap.ClientComponent - type: timeofdayclock - showdigitalclock: true - showweather: true - # Mouse pointer world coordinate display - - class: org.dynmap.ClientComponent - type: coord - label: "Location" - hidey: false - show-mcr: false - show-chunk: false - - # Note: more than one logo component can be defined - #- class: org.dynmap.ClientComponent - # type: logo - # text: "Dynmap" - # #logourl: "images/block_surface.png" - # linkurl: "http://forums.bukkit.org/threads/dynmap.489/" - # # Valid positions: top-left, top-right, bottom-left, bottom-right - # position: bottom-right - - #- class: org.dynmap.ClientComponent - # type: inactive - # timeout: 1800 # in seconds (1800 seconds = 30 minutes) - # redirecturl: inactive.html - # #showmessage: 'You were inactive for too long.' - - #- class: org.dynmap.TestComponent - # stuff: "This is some configuration-value" - -# Treat hiddenplayers.txt as a whitelist for players to be shown on the map? (Default false) -display-whitelist: false - -# How often a tile gets rendered (in seconds). -renderinterval: 1 - -# How many tiles on update queue before accelerate render interval -renderacceleratethreshold: 60 - -# How often to render tiles when backlog is above renderacceleratethreshold -renderaccelerateinterval: 0.2 - -# How many update tiles to work on at once (if not defined, default is 1/2 the number of cores) -tiles-rendered-at-once: 2 - -# If true, use normal priority threads for rendering (versus low priority) - this can keep rendering -# from starving on busy Windows boxes (Linux JVMs pretty much ignore thread priority), but may result -# in more competition for CPU resources with other processes -usenormalthreadpriority: true - -# Save and restore pending tile renders - prevents their loss on server shutdown or /reload -saverestorepending: true - -# Save period for pending jobs (in seconds): periodic saving for crash recovery of jobs -save-pending-period: 900 - -# Zoom-out tile update period - how often to scan for and process tile updates into zoom-out tiles (in seconds) -zoomoutperiod: 30 - -# Control whether zoom out tiles are validated on startup (can be needed if zoomout processing is interrupted, but can be expensive on large maps) -initial-zoomout-validate: true - -# Default delay on processing of updated tiles, in seconds. This can reduce potentially expensive re-rendering -# of frequently updated tiles (such as due to machines, pistons, quarries or other automation). Values can -# also be set on individual worlds and individual maps. -tileupdatedelay: 30 - -# Tile hashing is used to minimize tile file updates when no changes have occurred - set to false to disable -enabletilehash: true - -# Optional - hide ores: render as normal stone (so that they aren't revealed by maps) -#hideores: true - -# Optional - enabled BetterGrass style rendering of grass and snow block sides -#better-grass: true - -# Optional - enable smooth lighting by default on all maps supporting it (can be set per map as lighting option) -smooth-lighting: true - -# Optional - use world provider lighting table (good for custom worlds with custom lighting curves, like nether) -# false=classic Dynmap lighting curve -use-brightness-table: true - -# Optional - render specific block names using the textures and models of another block name: can be used to hide/disguise specific -# blocks (e.g. make ores look like stone, hide chests) or to provide simple support for rendering unsupported custom blocks -block-alias: -# "minecraft:quartz_ore": "stone" -# "diamond_ore": "coal_ore" - -# Default image format for HDMaps (png, jpg, jpg-q75, jpg-q80, jpg-q85, jpg-q90, jpg-q95, jpg-q100) -# Has no effect on maps with explicit format settings -image-format: jpg-q90 - -# use-generated-textures: if true, use generated textures (same as client); false is static water/lava textures -# correct-water-lighting: if true, use corrected water lighting (same as client); false is legacy water (darker) -# transparent-leaves: if true, leaves are transparent (lighting-wise): false is needed for some Spout versions that break lighting on leaf blocks -use-generated-textures: true -correct-water-lighting: true -transparent-leaves: true - -# ctm-support: if true, Connected Texture Mod (CTM) in texture packs is enabled (default) -ctm-support: true -# custom-colors-support: if true, Custom Colors in texture packs is enabled (default) -custom-colors-support: true - -# Control loading of player faces (if set to false, skins are never fetched) -#fetchskins: false - -# Control updating of player faces, once loaded (if faces are being managed by other apps or manually) -#refreshskins: false - -# Customize URL used for fetching player skins (%player% is macro for name) -skin-url: "http://skins.minecraft.net/MinecraftSkins/%player%.png" - -# Enable skins via SkinsRestorer plugin instead of internal legacy implementation (disabled by default) -#skinsrestorer-integration: true - -render-triggers: - #- playermove - #- playerjoin - - blockplaced - - blockbreak - - leavesdecay - - blockburn - - chunkgenerated - - blockformed - - blockfaded - - blockspread - - pistonmoved - - explosion - #- blockfromto - #- blockphysics - - structuregrow - - blockgrow - #- blockredstone - -# Title for the web page - if not specified, defaults to the server's name (unless it is the default of 'Unknown Server') -#webpage-title: "My Awesome Server Map" - -# The path where the tile-files are placed. -tilespath: web/tiles - -# The path where the web-files are located. -webpath: web - -# The path were the /dynmapexp command exports OBJ ZIP files -exportpath: export - -# The network-interface the webserver will bind to (0.0.0.0 for all interfaces, 127.0.0.1 for only local access). -# If not set, uses same setting as server in server.properties (or 0.0.0.0 if not specified) -#webserver-bindaddress: 0.0.0.0 - -# The TCP-port the webserver will listen on. -webserver-port: 8123 - -# Maximum concurrent session on internal web server - limits resources used in Bukkit server -max-sessions: 30 - -# Disables Webserver portion of Dynmap (Advanced users only) -disable-webserver: false - -# Enable/disable having the web server allow symbolic links (true=compatible with existing code, false=more secure (default)) -allow-symlinks: true - -# Enable login support -login-enabled: false -# Require login to access website (requires login-enabled: true) -login-required: false - -# Period between tile renders for fullrender, in seconds (non-zero to pace fullrenders, lessen CPU load) -timesliceinterval: 0.0 - -# Maximum chunk loads per server tick (1/20th of a second) - reducing this below 90 will impact render performance, but also will reduce server thread load -maxchunkspertick: 200 - -# Progress report interval for fullrender/radiusrender, in tiles. Must be 100 or greater -progressloginterval: 100 - -# Parallel fullrender: if defined, number of concurrent threads used for fullrender or radiusrender -# Note: setting this will result in much more intensive CPU use, some additional memory use. Caution should be used when -# setting this to equal or exceed the number of physical cores on the system. -#parallelrendercnt: 4 - -# Interval the browser should poll for updates. -updaterate: 2000 - -# If nonzero, server will pause fullrender/radiusrender processing when 'fullrenderplayerlimit' or more users are logged in -fullrenderplayerlimit: 0 -# If nonzero, server will pause update render processing when 'updateplayerlimit' or more users are logged in -updateplayerlimit: 0 -# Target limit on server thread use - msec per tick -per-tick-time-limit: 50 -# If TPS of server is below this setting, update renders processing is paused -update-min-tps: 18.0 -# If TPS of server is below this setting, full/radius renders processing is paused -fullrender-min-tps: 18.0 -# If TPS of server is below this setting, zoom out processing is paused -zoomout-min-tps: 18.0 - -showplayerfacesinmenu: true - -# Control whether players that are hidden or not on current map are grayed out (true=yes) -grayplayerswhenhidden: true - -# Use player permissions to order player list: first to last, players are ordered by first permission listed that they have -# That is, anyone with first listed permission goes before anyone with second, etc, with users with none of the nodes going last -player-sort-permission-nodes: - - bukkit.command.op - -# Set sidebaropened: 'true' to pin menu sidebar opened permanently, 'pinned' to default the sidebar to pinned, but allow it to unpin -#sidebaropened: true - -# Customized HTTP response headers - add 'id: value' pairs to all HTTP response headers (internal web server only) -#http-response-headers: -# Access-Control-Allow-Origin: "my-domain.com" -# X-Custom-Header-Of-Mine: "MyHeaderValue" - -# Trusted proxies for web server - which proxy addresses are trusted to supply valid X-Forwarded-For fields -trusted-proxies: - - "127.0.0.1" - - "0:0:0:0:0:0:0:1" - -# Join/quit message format for web chat: set to "" to disable notice on web UI -joinmessage: "%playername% joined" -quitmessage: "%playername% quit" - -spammessage: "You may only chat once every %interval% seconds." -# format for messages from web: %playername% substitutes sender ID (typically IP), %message% includes text -webmsgformat: "&color;2[WEB] %playername%: &color;f%message%" - -# Control whether layer control is presented on the UI (default is true) -showlayercontrol: true - -# Enable checking for banned IPs via banned-ips.txt (internal web server only) -check-banned-ips: true - -# Default selection when map page is loaded -defaultzoom: 0 -defaultworld: world -defaultmap: flat -# (optional) Zoom level and map to switch to when following a player, if possible -#followzoom: 3 -#followmap: surface - -# If true, make persistent record of IP addresses used by player logins, to support web IP to player matching -persist-ids-by-ip: true - -# If true, map text to cyrillic -cyrillic-support: false - -# If true, coordinates will be rounded -round-coordinates: true - -# Messages to customize -msg: - maptypes: "Map Types" - players: "Players" - chatrequireslogin: "Chat Requires Login" - chatnotallowed: "You are not permitted to send chat messages" - hiddennamejoin: "Player joined" - hiddennamequit: "Player quit" - -# URL for client configuration (only need to be tailored for proxies or other non-standard configurations) -url: - # configuration URL - #configuration: "up/configuration" - # update URL - #update: "up/world/{world}/{timestamp}" - # sendmessage URL - #sendmessage: "up/sendmessage" - # login URL - #login: "up/login" - # register URL - #register: "up/register" - # tiles base URL - #tiles: "tiles/" - # markers base URL - #markers: "tiles/" - -# Customization commands - allows scripts to be run before/after certain events -custom-commands: - image-updates: - # Command run just before any image file is written or updated: run with single parameter with fully qualified file name - preupdatecommand: "" - # Command run just after any image file is written or updated: run with single parameter with fully qualified file name - postupdatecommand: "" - -# Snapshot cache size, in chunks -snapshotcachesize: 500 -# Snapshot cache uses soft references (true), else weak references (false) -soft-ref-cache: true - -# Player enter/exit title messages for map markers -# -# Processing period - how often to check player positions vs markers - default is 1000ms (1 second) -#enterexitperiod: 1000 -# Title message fade in time, in ticks (0.05 second intervals) - default is 10 (1/2 second) -#titleFadeIn: 10 -# Title message stay time, in ticks (0.05 second intervals) - default is 70 (3.5 seconds) -#titleStay: 70 -# Title message fade out time, in ticks (0.05 seocnd intervals) - default is 20 (1 second) -#titleFadeOut: 20 -# Enter/exit messages use on screen titles (true - default), if false chat messages are sent instead -#enterexitUseTitle: true -# Set true if new enter messages should supercede pending exit messages (vs being queued in order), default false -#enterReplacesExits: true - -# Set to true to enable verbose startup messages - can help with debugging map configuration problems -# Set to false for a much quieter startup log -verbose: false - -# Enables debugging. -#debuggers: -# - class: org.dynmap.debug.LogDebugger -# Debug: dump blocks missing render data -dump-missing-blocks: false - -# Have dynmap migrate old chunks to the new format for the current MC version (specifically, for migrating pre-1.13 chunks to 1.13 or 1.14). This is needed -# in order to render chunks on an upgraded server (due to various bugs/limitations in CB/spigot 1.13+). This setting is NOT suggested to be enabled full time, -# but only long enough to do a fullrender of a migrated world - it should be turned back off once worlds are migrated). It is EXPERIMENTAL, so be sure to backup -# your worlds before running with this setting enabled (set to true) -# -#migrate-chunks: true diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/templates/map.nginx.conf.j2 --- a/minecraft/templates/map.nginx.conf.j2 Sat Jul 03 11:16:17 2021 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -server { - listen {{nginx_port}}; - server_name {{nginx_server_name}}; - root {{nginx_root_dir}}; - - index index.html; - - location / { - try_files $uri $uri/ =404; - } -} diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/templates/minecraft.service.j2 --- a/minecraft/templates/minecraft.service.j2 Sat Jul 03 11:16:17 2021 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -[Unit] -Description=Minecraft Server -Documentation=https://minecraft.gamepedia.com/Tutorials/Setting_up_a_server - -Wants=network.target -After=network.target - -[Service] -User={{minecraft_user}} -Group={{minecraft_user}} -WorkingDirectory={{minecraft_dir}} -Restart=on-failure -RestartSec=20 5 -ExecStart=/usr/bin/java -Xms{{minecraft_mem}} -Xmx{{minecraft_mem}} -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar nogui - -PrivateTmp=true -ProtectSystem=full -NoNewPrivileges=true -PrivateDevices=true - -[Install] -WantedBy=multi-user.target diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/templates/ops.json.j2 --- a/minecraft/templates/ops.json.j2 Sat Jul 03 11:16:17 2021 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -[ - {% if minecraft_ops_uuid %} - { - "uuid": "{{minecraft_ops_uuid}}", - "name": "{{minecraft_ops_name}}", - "level": 4, - "bypassesPlayerLimit": true - } - {% endif %} -] diff -r 4d45841961e7 -r ebd8a21a0e62 minecraft/vars/main.yaml --- a/minecraft/vars/main.yaml Sat Jul 03 11:16:17 2021 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ ---- - -minecraft_dir: "{{minecraft_parent_dir}}/minecraft/{{minecraft_fork}}" -minecraft_paper_url: "https://papermc.io/api/v1/paper/{{minecraft_paper_version}}/{{minecraft_paper_build}}/download" -minecraft_vanilla_url: "https://launcher.mojang.com/v1/objects/{{minecraft_vanilla_hash}}/server.jar" -minecraft_dynmap_url: "http://dynmap.us/builds/dynmap/Dynmap-{{minecraft_dynmap_version}}.jar"