Added minecraft backup.
--- /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
--- /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
--- /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
--- /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: "[email protected]"
+ 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"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/minecraft/aws-s3-backup/templates/[email protected] 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
--- 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"
--- 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";
--- 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
--- 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"
--- /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"
--- /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";
--- /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
--- /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"
--- /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"
--- /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"
--- /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"
--- /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
--- /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;
+ }
+}
--- /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
--- /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 %}
+]
--- /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"
--- 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"
--- 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"
--- 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"
--- 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
--- 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;
- }
-}
--- 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
--- 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 %}
-]
--- 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"