mirror of
				https://github.com/pelican-dev/panel.git
				synced 2025-11-04 17:06:52 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			145 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			145 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
_comment: 'DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL'
 | 
						|
meta:
 | 
						|
  version: PLCN_v3
 | 
						|
  update_url: 'https://github.com/pelican-dev/panel/raw/main/database/Seeders/eggs/minecraft/egg-paper.yaml'
 | 
						|
exported_at: '2025-10-31T12:25:02+00:00'
 | 
						|
name: Paper
 | 
						|
author: parker@example.com
 | 
						|
uuid: 5da37ef6-58da-4169-90a6-e683e1721247
 | 
						|
description: 'High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies.'
 | 
						|
image: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA5OTUuMyA5OTUuMzEiPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTS0uMDA1IDQ5OC43MjggNDk2LjYwNy4wMzJsNDk4LjY5NSA0OTYuNjEyLTQ5Ni42MSA0OTguNjk2eiIvPjwvY2xpcFBhdGg+PGNsaXBQYXRoIGlkPSJiIj48cGF0aCBmaWxsPSJub25lIiBkPSJNNy43MDIgNDEwLjQ0NiA1ODQuODQ2IDcuNjc0IDk4Ny42MTggNTg0LjgyIDQxMC40NzMgOTg3LjU5eiIvPjwvY2xpcFBhdGg+PGNsaXBQYXRoIGlkPSJjIj48cGF0aCBmaWxsPSJub25lIiBkPSJtMjguMzUzIDMzMi4wNDcgNjM0Ljg2LTMwMy43NjUgMzAzLjc2NSA2MzQuODYtNjM0Ljg2IDMwMy43NjV6Ii8+PC9jbGlwUGF0aD48Y2xpcFBhdGggaWQ9ImQiPjxwYXRoIGZpbGw9Im5vbmUiIGQ9Im03MS41NTkgMjQwLjU0IDY4My4yMS0xNjguOTUyIDE2OC45NSA2ODMuMjFMMjQwLjUxIDkyMy43NXoiLz48L2NsaXBQYXRoPjwvZGVmcz48cGF0aCBmaWxsPSIjZjdlMzQ2IiBkPSJNLjAwNSA0OTguNzI4IDQ5Ni42MTcuMDMybDQ5OC42OTUgNDk2LjYxMi00OTYuNjEgNDk4LjY5NnoiLz48ZyBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGZpbGw9IiNhNDk3MzEiIGQ9Ik0zLjUyNSA0MzguNDIgNTU2LjgzMSAzLjQ4bDQzNC45NCA1NTMuMzA3LTU1My4zMDYgNDM0Ljk0eiIvPjwvZz48cGF0aCBmaWxsPSIjNDI4ZWRiIiBkPSJNNy42OTggNDEwLjQ1NCA1ODQuODQyIDcuNjgzbDQwMi43NzEgNTc3LjE0NEw0MTAuNDcgOTg3LjU5OHoiLz48ZyBjbGlwLXBhdGg9InVybCgjYikiPjxwYXRoIGZpbGw9IiMyYjVmOTIiIGQ9Ik0xOC45OTkgMzYxLjQ2NCA2MzMuODMyIDE4Ljk3bDM0Mi40OTIgNjE0LjgzMy02MTQuODMyIDM0Mi40OTJ6Ii8+PC9nPjxwYXRoIGZpbGw9IiM5NmM5M2QiIGQ9Im0yOC4zNjYgMzMyLjA1MiA2MzQuODYtMzAzLjc2NSAzMDMuNzY1IDYzNC44Ni02MzQuODYgMzAzLjc2NXoiLz48ZyBjbGlwLXBhdGg9InVybCgjYykiPjxwYXRoIGZpbGw9IiM2Yzk4M2YiIGQ9Ik01OC43NTcgMjYzLjA2OCA3MzIuMjYgNTguODI3IDkzNi41IDczMi4zMyAyNjIuOTk5IDkzNi41N3oiLz48L2c+PHBhdGggZmlsbD0iI2ZkNGY1NyIgZD0ibTcxLjU2NiAyNDAuNTM3IDY4My4yMS0xNjguOTUgMTY4Ljk1MSA2ODMuMjEtNjgzLjIxIDE2OC45NXoiLz48ZyBjbGlwLXBhdGg9InVybCgjZCkiPjxwYXRoIGZpbGw9IiNiMDM2M2MiIGQ9Im0xMjkuNzgxIDE2Mi40OTIgNzAzLjAyNi0zMi43ODUgMzIuNzg1IDcwMy4wMjYtNzAzLjAyNiAzMi43ODV6Ii8+PC9nPjxwYXRoIGZpbGw9IiMzZDNkM2QiIGQ9Ik0xNDUuNzYgMTQ1Ljc2aDcwMy43OXY3MDMuNzlIMTQ1Ljc2eiIvPjxwYXRoIGZpbGw9IiM0NzQ3NDciIGQ9Ik0xNjQuNjEgMTY0LjZIODMwLjd2NjY2LjA5SDE2NC42MXoiLz48ZyBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGZpbGw9IiMzMzMiIGQ9Ik01NTQuNDUgNDYyLjMyYy01NC4zOSA0Mi4xMy02OS4yMyA1Ny4yMi0xNjQuMzUgMTI3LjZsLTkuNjItNC44NGM1MS42LTQxLjcgMTI3LjU4LTEwMi42MiAxNzkuMTQtMTQ0LjI2IDE5LjI1LTE1LjI4IDM4LjY5LTM5LjExIDU3LjctNTQuOTF6bS0yMS43OCAxODguNzZjMy40NiAxLjcyIDYuMjUgMi42IDkuNjIgNC4zLTI2LjAzIDIzLjEyLTUzLjc2IDQ5LjI1LTc4Ljk2IDczLjYxLTQuODkgMi4zLTkuMzMgMS43OS0xMy4zMi0xLjU0bDE4LjQ1LTE5LjQ3YTQzMzAgNDMzMCAwIDAgMCA1Ny4zOS01NC44MmMzLjItMi40IDMuMTItMy43MiA2LjgzLTIuMDhabTExMy42NSA0Mi41NWMzLjcyLTIuMzEgNS42Ni00LjEyIDcuMDctNy42NSAxOS44Ny0xMjYuNjIgNDAuOTktMjUyLjk2IDYzLjM1LTM3OS4wNiA1LjA5LTI1LjMyIDYuMDgtMjEuNzYgNi4zNC0zMy43OSAxMS40MyAxLjc3IDE2LjE4IDguNDYgMTQuMjUgMjAuMDYtNS4zIDMyLjUzLTExLjI5IDY0LjkxLTE3Ljk1IDk3LjE0LTE1LjQxIDk0Ljc1LTMwLjk5IDE4OS40Ni00Ny4yNiAyODQuMDYtMS4zNyAxMC40NC0yLjE1IDE3LjIxLTQuNDcgMjEuMDktMy42OCA0LjUyLTguNDMgNi4xLTE0LjI1IDQuNzUtNC44My0xLjMzLTMuNzgtMS4xLTkuNjgtMy4zNGwtMy4yMS0xLjMzczMuOTktLjk1IDUuODItMS45M1oiLz48cGF0aCBmaWxsPSIjOTk5IiBkPSJNNTMyLjY3IDY1MS4wOWMtMS4yMy0uMTQtMi40OC0uMzUtMy41OS40NWEyMDA5IDIwMDkgMCAwIDAtNjIuOSA2MC42NWMtLjEzLS45NS4wMi0xLjg0LjQ1LTIuNyAzLjI5LTQuNzkgNS44OS04LjU3IDkuMTgtMTMuMzYuNjUtMS42My41NC0zLjA3LjQ0LTQuMDktMi4zOC0yNS41NS0xMC4wNS00OS40Ni0yMS43NS03Mi40MS0uMjUtLjQ4LjI1LTEuMjEgMS4zNS0uOSAyNS44NyAxMC4zNiA1MS40OCAyMS4xNSA3Ni44MiAzMi4zNVoiLz48cGF0aCBmaWxsPSIjY2NjIiBkPSJNNTU5LjYzIDQ0MC44M2E4NTM3IDg1MzcgMCAwIDEtMTgxLjk1IDE0Ni40NmMtMzYuNS0xNC44NC03Mi45Ni0yOS44LTEwOS4zNy00NC44Ny0xNC4wOC01LjgzLTE0LjAzLTE4LjU0LTEuNi0yNy4wMS02Ljc0IDguNTQtNS41NCAxNS44OCAzLjU5IDIyLjAxIDEyLjQ5IDUuMyAxMDYuNDEgNDQuMjUgMTA2LjQxIDQ0LjI1cy0uNzYtMy4wMyAxODIuOTEtMTQwLjg0WiIvPjxwYXRoIGZpbGw9IiNiMmIyYjIiIGQ9Ik02MzYuOSA2ODcuOTNjMTMuOTQgNC45OCAxMy40MyAxLjUgMTkuMzktNC4wOC0uNTEgMy45Ni0uOTUgOC4zLTUuOTkgMTEuMTItMy40NiAyLTYuNTkgMS45My05LjgxLjZhMTgyMCAxODIwIDAgMCAxLTEwNy44Mi00NC40OGMtMjUuMzQtMTEuMi01MC45NS0yMS45OC03Ni44Mi0zMi4zNWwtMS4zNS45YzEyLjY0IDIzLjYyIDE5Ljk4IDQ4Ljc3IDIyLjAxIDc1LjQ4LTMuMjkgNC43OS02LjU5IDkuNTgtOS44OCAxNC4zOHEtLjY0NSAxLjI3NS0uNDUgMi43bC0xNi4xNyAxNS4yN2MtNC4wNi0uMDEtNi4zMS0yLjExLTYuNzQtNi4yOS0uNTktMzMuNzMtLjYtNjcuNDYtLjAyLTEwMS4xOSAwLS40MS4wMS0uODEuMDItMS4yNC4xNS01LjA3IDUuMjYtNi41MiAxMC4zMy00Ljk0cTkxLjg0NSAzNi42NzUgMTgzLjMgNzQuMTNaIi8+PHBhdGggZmlsbD0iI2NjYyIgZD0iTTcxOS42NCAyNjcuOTNjNSAzLjk4IDQuMjMgMTAuNTcgMy4yOCAxNi4xNy0yMi42MyAxMzIuODItNDQuNTYgMjY2LjMyLTY2LjUzIDM5OS4yLS4yMSAxLjI0LS43NiA0LjE1LTIuNDIgNS42NS0zLjc3IDMtNy4xNyAyLjQ4LTE3LjA2LTEuMDEgMS40My0zLjM3IDIuNDgtNi45NiAzLjE0LTEwLjc4IDI1LjM0LTEyOS40MSA1MS4yNS0yNTguNjUgNzcuNzItMzg3LjcxIDIuMzMtMTMuNjUgMi4xMy05LjcxIDEuODctMjEuNVoiLz48cGF0aCBmaWxsPSIjZjJmMmYyIiBkPSJNNzE5LjY0IDI2Ny45M2MuOTIgMTAuNiAxLjA1IDUuODktMS44NyAyMS41LTI2LjQ3IDEyOS4wNi01Mi4zOCAyNTguMy03Ny43MiAzODcuNzEtLjY2IDMuODItMS43MSA3LjQxLTMuMTQgMTAuNzhxLTkxLjQ1NS0zNy40NTUtMTgzLjMtNzQuMTNjLTUuMDgtMS41OC04LjUyLjA3LTEwLjMzIDQuOTQtLjYgMzQuMTQtLjYgNjguMjkgMCAxMDIuNDMuNDMgNC4xOCAyLjY4IDYuMjggNi43NCA2LjI5LTEuMTIgMS4xNS0zLjc4IDEuMDctMy43OCAxLjA3cy0xMS45Mi0uNjktMTMuMzYtMy41NGMtLjM3LS43MS0uMzgtMS40Ni0uMzktMi4wOC0uMTgtMzYuMy0uNjEtNzIuMzktMS4yOS0xMDguMjktLjAyLS44NyAwLTEuNzIuMzUtMy4yNHMxLjM2LTMuNDYgMi43NS01LjIyYTExNjExIDExNjExIDAgMCAwIDE1OS4wNC0xOTEuMzkgMTM0MyAxMzQzIDAgMCAxLTMzLjY5IDI2LjA2QzQwMi40NCA1NTguNzggMzc2Ljc0IDU4MS42NiAzNzYuNzQgNTgxLjY2cy03MS45LTI5LjYzLTEwNi40MS00NC4yNWMtOS4xMy02LjEzLTEwLjMzLTEzLjQ3LTMuNTktMjIuMDFhNTA2MjggNTA2MjggMCAwIDAgNDI5LjQ5LTI0Ni42NGM1LjI4LTMuMjYgMTAuOTctNC40NiAxNy4wNy0zLjU5IDEuMzEuMTMgNC4xMS41OCA2LjM2IDIuNzZaIi8+PC9nPjwvc3ZnPg=='
 | 
						|
tags:
 | 
						|
  - minecraft
 | 
						|
features:
 | 
						|
  - eula
 | 
						|
  - java_version
 | 
						|
  - pid_limit
 | 
						|
docker_images:
 | 
						|
  'Java 21': 'ghcr.io/parkervcp/yolks:java_21'
 | 
						|
  'Java 17': 'ghcr.io/parkervcp/yolks:java_17'
 | 
						|
  'Java 16': 'ghcr.io/parkervcp/yolks:java_16'
 | 
						|
  'Java 11': 'ghcr.io/parkervcp/yolks:java_11'
 | 
						|
  'Java 8': 'ghcr.io/parkervcp/yolks:java_8'
 | 
						|
file_denylist: {  }
 | 
						|
startup_commands:
 | 
						|
  Default: 'java -Xms128M -XX:MaxRAMPercentage=95.0 -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}'
 | 
						|
config:
 | 
						|
  files:
 | 
						|
    server.properties:
 | 
						|
      parser: properties
 | 
						|
      find:
 | 
						|
        server-ip: ''
 | 
						|
        server-port: '{{server.allocations.default.port}}'
 | 
						|
        query.port: '{{server.allocations.default.port}}'
 | 
						|
  startup:
 | 
						|
    done: ')! For help, type '
 | 
						|
  logs: {  }
 | 
						|
  stop: stop
 | 
						|
scripts:
 | 
						|
  installation:
 | 
						|
    script: |-
 | 
						|
      #!/bin/ash
 | 
						|
      # Paper Installation Script
 | 
						|
      #
 | 
						|
      # Server Files: /mnt/server
 | 
						|
      PROJECT=paper
 | 
						|
 | 
						|
      if [ -n "${DL_PATH}" ]; then
 | 
						|
      	echo -e "Using supplied download url: ${DL_PATH}"
 | 
						|
      	DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's/{{/${/g' -e 's/}}/}/g')`
 | 
						|
      else
 | 
						|
      	VER_EXISTS=`curl -s https://api.papermc.io/v2/projects/${PROJECT} | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | contains($VERSION)' | grep -m1 true`
 | 
						|
      	LATEST_VERSION=`curl -s https://api.papermc.io/v2/projects/${PROJECT} | jq -r '.versions' | jq -r '.[-1]'`
 | 
						|
 | 
						|
      	if [ "${VER_EXISTS}" == "true" ]; then
 | 
						|
      		echo -e "Version is valid. Using version ${MINECRAFT_VERSION}"
 | 
						|
      	else
 | 
						|
      		echo -e "Specified version not found. Defaulting to the latest ${PROJECT} version"
 | 
						|
      		MINECRAFT_VERSION=${LATEST_VERSION}
 | 
						|
      	fi
 | 
						|
 | 
						|
      	BUILD_EXISTS=`curl -s https://api.papermc.io/v2/projects/${PROJECT}/versions/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds[] | tostring | contains($BUILD)' | grep -m1 true`
 | 
						|
      	LATEST_BUILD=`curl -s https://api.papermc.io/v2/projects/${PROJECT}/versions/${MINECRAFT_VERSION} | jq -r '.builds' | jq -r '.[-1]'`
 | 
						|
 | 
						|
      	if [ "${BUILD_EXISTS}" == "true" ]; then
 | 
						|
      		echo -e "Build is valid for version ${MINECRAFT_VERSION}. Using build ${BUILD_NUMBER}"
 | 
						|
      	else
 | 
						|
      		echo -e "Using the latest ${PROJECT} build for version ${MINECRAFT_VERSION}"
 | 
						|
      		BUILD_NUMBER=${LATEST_BUILD}
 | 
						|
      	fi
 | 
						|
 | 
						|
      	JAR_NAME=${PROJECT}-${MINECRAFT_VERSION}-${BUILD_NUMBER}.jar
 | 
						|
 | 
						|
      	echo "Version being downloaded"
 | 
						|
      	echo -e "MC Version: ${MINECRAFT_VERSION}"
 | 
						|
      	echo -e "Build: ${BUILD_NUMBER}"
 | 
						|
      	echo -e "JAR Name of Build: ${JAR_NAME}"
 | 
						|
      	DOWNLOAD_URL=https://api.papermc.io/v2/projects/${PROJECT}/versions/${MINECRAFT_VERSION}/builds/${BUILD_NUMBER}/downloads/${JAR_NAME}
 | 
						|
      fi
 | 
						|
 | 
						|
      cd /mnt/server
 | 
						|
 | 
						|
      echo -e "Running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}"
 | 
						|
 | 
						|
      if [ -f ${SERVER_JARFILE} ]; then
 | 
						|
      	mv ${SERVER_JARFILE} ${SERVER_JARFILE}.old
 | 
						|
      fi
 | 
						|
 | 
						|
      curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}
 | 
						|
 | 
						|
      if [ ! -f server.properties ]; then
 | 
						|
          echo -e "Downloading MC server.properties"
 | 
						|
          curl -o server.properties https://raw.githubusercontent.com/parkervcp/eggs/master/minecraft/java/server.properties
 | 
						|
      fi
 | 
						|
    container: 'ghcr.io/parkervcp/installers:alpine'
 | 
						|
    entrypoint: ash
 | 
						|
variables:
 | 
						|
  -
 | 
						|
    name: 'Build Number'
 | 
						|
    description: "The build number for the paper release.\r\n\r\nLeave at latest to always get the latest version. Invalid versions will default to latest."
 | 
						|
    env_variable: BUILD_NUMBER
 | 
						|
    default_value: latest
 | 
						|
    user_viewable: true
 | 
						|
    user_editable: true
 | 
						|
    rules:
 | 
						|
      - required
 | 
						|
      - string
 | 
						|
      - 'max:20'
 | 
						|
    sort: 4
 | 
						|
  -
 | 
						|
    name: 'Download Path'
 | 
						|
    description: |-
 | 
						|
      A URL to use to download a server.jar rather than the ones in the install script. This is not user
 | 
						|
      viewable.
 | 
						|
    env_variable: DL_PATH
 | 
						|
    default_value: ''
 | 
						|
    user_viewable: false
 | 
						|
    user_editable: false
 | 
						|
    rules:
 | 
						|
      - nullable
 | 
						|
      - string
 | 
						|
    sort: 3
 | 
						|
  -
 | 
						|
    name: 'Minecraft Version'
 | 
						|
    description: "The version of minecraft to download. \r\n\r\nLeave at latest to always get the latest version. Invalid versions will default to latest."
 | 
						|
    env_variable: MINECRAFT_VERSION
 | 
						|
    default_value: latest
 | 
						|
    user_viewable: true
 | 
						|
    user_editable: true
 | 
						|
    rules:
 | 
						|
      - nullable
 | 
						|
      - string
 | 
						|
      - 'max:20'
 | 
						|
    sort: 1
 | 
						|
  -
 | 
						|
    name: 'Server Jar File'
 | 
						|
    description: 'The name of the server jarfile to run the server with.'
 | 
						|
    env_variable: SERVER_JARFILE
 | 
						|
    default_value: server.jar
 | 
						|
    user_viewable: true
 | 
						|
    user_editable: true
 | 
						|
    rules:
 | 
						|
      - required
 | 
						|
      - 'regex:/^([\w\d._-]+)(\.jar)$/'
 | 
						|
    sort: 2
 |