From d08d6cbeed9ded51119c15898c333ba99dec0fb7 Mon Sep 17 00:00:00 2001 From: "Michael (Parker) Parker" Date: Tue, 11 Jun 2019 11:08:32 -0400 Subject: [PATCH 001/107] add mariadb start --- database/README.md | 9 +++ database/mariadb/my.cnf | 147 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 database/README.md create mode 100644 database/mariadb/my.cnf diff --git a/database/README.md b/database/README.md new file mode 100644 index 00000000..66e60c2b --- /dev/null +++ b/database/README.md @@ -0,0 +1,9 @@ +# databases + +## sql DBs + +### [mariadb](/database/mariadb/) + https://mariadb.org/ + +### [postgres](/database/postgres/) + https://www.postgresql.org/ \ No newline at end of file diff --git a/database/mariadb/my.cnf b/database/mariadb/my.cnf new file mode 100644 index 00000000..e2571fdf --- /dev/null +++ b/database/mariadb/my.cnf @@ -0,0 +1,147 @@ +# +# The MySQL database server configuration file. +# +# You can copy this to one of: +# - "/etc/mysql/my.cnf" to set global options, +# - "~/.my.cnf" to set user-specific options. +# +# One can use all long options that the program supports. +# Run program with --help to get a list of available options and with +# --print-defaults to see which it would actually understand and use. +# +# For explanations see +# http://dev.mysql.com/doc/mysql/en/server-system-variables.html + +# This will be passed to all mysql clients +# It has been reported that passwords should be enclosed with ticks/quotes +# escpecially if they contain "#" chars... +# Remember to edit /etc/mysql/debian.cnf when changing the socket location. +[client] +port = 3306 +socket = /var/run/mysqld/mysqld.sock + +# Here is entries for some specific programs +# The following values assume you have at least 32M ram + +# This was formally known as [safe_mysqld]. Both versions are currently parsed. +[mysqld_safe] +socket = /var/run/mysqld/mysqld.sock +nice = 0 + +[mysqld] +# +# * Basic Settings +# +user = mysql +pid-file = /var/run/mysqld/mysqld.pid +socket = /var/run/mysqld/mysqld.sock +port = 3306 +basedir = /usr +datadir = /var/lib/mysql +tmpdir = /tmp +lc-messages-dir = /usr/share/mysql +skip-external-locking +skip-character-set-client-handshake +default-storage-engine = InnoDB +character-set-server = utf8 +transaction-isolation = READ-COMMITTED + +# +# Instead of skip-networking the default is now to listen only on +# localhost which is more compatible and is not less secure. +bind-address = 127.0.0.1 +# +# * Fine Tuning +# +key_buffer = 16M +max_allowed_packet = 16M +thread_stack = 192K +thread_cache_size = 16 +# This replaces the startup script and checks MyISAM tables if needed +# the first time they are touched +myisam-recover = BACKUP +max_connections = 300 +table_open_cache = 64 +thread_concurrency = 10 +table_open_cache = 32 +thread_concurrency = 4 + +# +# * Query Cache Configuration +# +query_cache_type = 1 +query_cache_limit = 1M +query_cache_size = 8M +# +# * Logging and Replication +# +# Both location gets rotated by the cronjob. +# Be aware that this log type is a performance killer. +# As of 5.1 you can enable the log at runtime! +general_log_file = /var/log/mysql/mysql.log +#general_log = 1 +# +# Error log - should be very few entries. +# +log_error = /var/log/mysql/error.log +# +# Here you can see queries with especially long duration +slow_query_log = 1 +slow_query_log_file = /var/log/mysql/mysql-slow.log +long_query_time = 1 +#log-queries-not-using-indexes + +# +# The following can be used as easy to replay backup logs or for replication. +# note: if you are setting up a replication slave, see README.Debian about +# other settings you may need to change. +#server-id = 1 +#log_bin = /var/log/mysql/mysql-bin.log +expire_logs_days = 14 +max_binlog_size = 1G +#binlog_do_db = include_database_name +#binlog_ignore_db = include_database_name +# +# * InnoDB +# +# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. +# Read the manual for more InnoDB related options. There are many! +# +# * Security Features +# +# Read the manual, too, if you want chroot! +# chroot = /var/lib/mysql/ +# +# For generating SSL certificates I recommend the OpenSSL GUI "tinyca". +# +# ssl-ca=/etc/mysql/cacert.pem +# ssl-cert=/etc/mysql/server-cert.pem +# ssl-key=/etc/mysql/server-key.pem +innodb_data_file_path = ibdata1:128M:autoextend +innodb_file_per_table = 1 +skip-innodb_doublewrite +innodb_additional_mem_pool_size = 12M +innodb_buffer_pool_size = 256M +innodb_log_buffer_size = 8M +innodb_log_file_size = 8M +innodb_flush_log_at_trx_commit = 0 +innodb_flush_method = O_DIRECT +innodb_support_xa = OFF + + +[mysqldump] +quick +quote-names +max_allowed_packet = 16M + +[mysql] +#no-auto-rehash # faster start of mysql but no tab completition + +[isamchk] +key_buffer = 16M + +# +# * IMPORTANT: Additional settings that can override those from this file! +# The files must end with '.cnf', otherwise they'll be ignored. +# +!includedir /etc/mysql/conf.d/ From 68f8eed12b756f98692397de845f7c6952c422e9 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Wed, 12 Jun 2019 21:03:48 -0400 Subject: [PATCH 002/107] add mariadb confs --- database/mariadb/install.my.cnf | 189 ++++++++++++++++++++++++++++++++ database/mariadb/my.cnf | 154 ++++++++++++++++---------- 2 files changed, 287 insertions(+), 56 deletions(-) create mode 100644 database/mariadb/install.my.cnf diff --git a/database/mariadb/install.my.cnf b/database/mariadb/install.my.cnf new file mode 100644 index 00000000..f1af70ac --- /dev/null +++ b/database/mariadb/install.my.cnf @@ -0,0 +1,189 @@ +# MariaDB database server configuration file. +# +# You can copy this file to one of: +# - "/etc/mysql/my.cnf" to set global options, +# - "~/.my.cnf" to set user-specific options. +# +# One can use all long options that the program supports. +# Run program with --help to get a list of available options and with +# --print-defaults to see which it would actually understand and use. +# +# For explanations see +# http://dev.mysql.com/doc/mysql/en/server-system-variables.html + +# This will be passed to all mysql clients +# It has been reported that passwords should be enclosed with ticks/quotes +# escpecially if they contain "#" chars... +# Remember to edit /etc/mysql/debian.cnf when changing the socket location. +[client] +port = 3306 +socket = /mnt/server/run/mysqld/mysqld.sock + +# Here is entries for some specific programs +# The following values assume you have at least 32M ram + +# This was formally known as [safe_mysqld]. Both versions are currently parsed. +[mysqld_safe] +socket = /mnt/server/run/mysqld/mysqld.sock +nice = 0 + +[mysqld] +# +# * Basic Settings +# +#user = mysql +pid-file = /mnt/server/run/mysqld/mysqld.pid +socket = /mnt/server/run/mysqld/mysqld.sock +port = 3306 +basedir = /usr +datadir = /mnt/server/mysql +tmpdir = /tmp +lc_messages_dir = /usr/share/mysql +lc_messages = en_US +skip-external-locking +# +# Instead of skip-networking the default is now to listen only on +# localhost which is more compatible and is not less secure. +# +# * Fine Tuning +# +max_connections = 100 +connect_timeout = 5 +wait_timeout = 600 +max_allowed_packet = 16M +thread_cache_size = 128 +sort_buffer_size = 4M +bulk_insert_buffer_size = 16M +tmp_table_size = 32M +max_heap_table_size = 32M +# +# * MyISAM +# +# This replaces the startup script and checks MyISAM tables if needed +# the first time they are touched. On error, make copy and try a repair. +myisam_recover_options = BACKUP +key_buffer_size = 128M +#open-files-limit = 2000 +table_open_cache = 400 +myisam_sort_buffer_size = 512M +concurrent_insert = 2 +read_buffer_size = 2M +read_rnd_buffer_size = 1M +# +# * Query Cache Configuration +# +# Cache only tiny result sets, so we can fit more in the query cache. +query_cache_limit = 128K +query_cache_size = 64M +# for more write intensive setups, set to DEMAND or OFF +#query_cache_type = DEMAND +# +# * Logging and Replication +# +# Both location gets rotated by the cronjob. +# Be aware that this log type is a performance killer. +# As of 5.1 you can enable the log at runtime! +general_log_file = /mnt/server/log/mysql/mysql.log +#general_log = 1 +# +# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf. +# +# we do want to know about network errors and such +#log_warnings = 2 +# +# Enable the slow query log to see queries with especially long duration +#slow_query_log[={0|1}] +slow_query_log_file = /mnt/server/log/mysql/mariadb-slow.log +long_query_time = 10 +#log_slow_rate_limit = 1000 +#log_slow_verbosity = query_plan + +#log-queries-not-using-indexes +#log_slow_admin_statements +# +# The following can be used as easy to replay backup logs or for replication. +# note: if you are setting up a replication slave, see README.Debian about +# other settings you may need to change. +#server-id = 1 +#report_host = master1 +#auto_increment_increment = 2 +#auto_increment_offset = 1 +#log_bin = /var/log/mysql/mariadb-bin +#log_bin_index = /var/log/mysql/mariadb-bin.index +# not fab for performance, but safer +#sync_binlog = 1 +expire_logs_days = 10 +max_binlog_size = 100M +# slaves +#relay_log = /var/log/mysql/relay-bin +#relay_log_index = /var/log/mysql/relay-bin.index +#relay_log_info_file = /var/log/mysql/relay-bin.info +#log_slave_updates +#read_only +# +# If applications support it, this stricter sql_mode prevents some +# mistakes like inserting invalid dates etc. +#sql_mode = NO_ENGINE_SUBSTITUTION,TRADITIONAL +# +# * InnoDB +# +# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. +# Read the manual for more InnoDB related options. There are many! +default_storage_engine = InnoDB +# you can't just change log file size, requires special procedure +#innodb_log_file_size = 50M +innodb_buffer_pool_size = 256M +innodb_log_buffer_size = 8M +innodb_file_per_table = 1 +innodb_open_files = 400 +innodb_io_capacity = 400 +innodb_flush_method = O_DIRECT +# +# * Security Features +# +# Read the manual, too, if you want chroot! +# chroot = /var/lib/mysql/ +# +# For generating SSL certificates I recommend the OpenSSL GUI "tinyca". +# +# ssl-ca=/etc/mysql/cacert.pem +# ssl-cert=/etc/mysql/server-cert.pem +# ssl-key=/etc/mysql/server-key.pem + +# +# * Galera-related settings +# +[galera] +# Mandatory settings +#wsrep_on=ON +#wsrep_provider= +#wsrep_cluster_address= +#binlog_format=row +#default_storage_engine=InnoDB +#innodb_autoinc_lock_mode=2 +# +# Allow server to accept connections on all interfaces. +# +bind-address=0.0.0.0 +# +# Optional setting +#wsrep_slave_threads=1 +#innodb_flush_log_at_trx_commit=0 + +[mysqldump] +quick +quote-names +max_allowed_packet = 16M + +[mysql] +#no-auto-rehash # faster start of mysql but no tab completion + +[isamchk] +key_buffer = 16M + +# +# * IMPORTANT: Additional settings that can override those from this file! +# The files must end with '.cnf', otherwise they'll be ignored. +# +!include /etc/mysql/mariadb.cnf +!includedir /etc/mysql/conf.d/ \ No newline at end of file diff --git a/database/mariadb/my.cnf b/database/mariadb/my.cnf index e2571fdf..643d9474 100644 --- a/database/mariadb/my.cnf +++ b/database/mariadb/my.cnf @@ -1,10 +1,9 @@ +# MariaDB database server configuration file. # -# The MySQL database server configuration file. -# -# You can copy this to one of: +# You can copy this file to one of: # - "/etc/mysql/my.cnf" to set global options, # - "~/.my.cnf" to set user-specific options. -# +# # One can use all long options that the program supports. # Run program with --help to get a list of available options and with # --print-defaults to see which it would actually understand and use. @@ -18,94 +17,127 @@ # Remember to edit /etc/mysql/debian.cnf when changing the socket location. [client] port = 3306 -socket = /var/run/mysqld/mysqld.sock +socket = /home/container/run/mysqld/mysqld.sock # Here is entries for some specific programs # The following values assume you have at least 32M ram # This was formally known as [safe_mysqld]. Both versions are currently parsed. [mysqld_safe] -socket = /var/run/mysqld/mysqld.sock +socket = /home/container/run/mysqld/mysqld.sock nice = 0 [mysqld] # # * Basic Settings # -user = mysql -pid-file = /var/run/mysqld/mysqld.pid -socket = /var/run/mysqld/mysqld.sock +#user = mysql +pid-file = /home/container/run/mysqld/mysqld.pid +socket = /home/container/run/mysqld/mysqld.sock port = 3306 basedir = /usr -datadir = /var/lib/mysql +datadir = /home/container/mysql tmpdir = /tmp -lc-messages-dir = /usr/share/mysql +lc_messages_dir = /usr/share/mysql +lc_messages = en_US skip-external-locking -skip-character-set-client-handshake -default-storage-engine = InnoDB -character-set-server = utf8 -transaction-isolation = READ-COMMITTED - # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. -bind-address = 127.0.0.1 # # * Fine Tuning # -key_buffer = 16M +max_connections = 100 +connect_timeout = 5 +wait_timeout = 600 max_allowed_packet = 16M -thread_stack = 192K -thread_cache_size = 16 +thread_cache_size = 128 +sort_buffer_size = 4M +bulk_insert_buffer_size = 16M +tmp_table_size = 32M +max_heap_table_size = 32M +# +# * MyISAM +# # This replaces the startup script and checks MyISAM tables if needed -# the first time they are touched -myisam-recover = BACKUP -max_connections = 300 -table_open_cache = 64 -thread_concurrency = 10 -table_open_cache = 32 -thread_concurrency = 4 - +# the first time they are touched. On error, make copy and try a repair. +myisam_recover_options = BACKUP +key_buffer_size = 128M +#open-files-limit = 2000 +table_open_cache = 400 +myisam_sort_buffer_size = 512M +concurrent_insert = 2 +read_buffer_size = 2M +read_rnd_buffer_size = 1M # # * Query Cache Configuration # -query_cache_type = 1 -query_cache_limit = 1M -query_cache_size = 8M +# Cache only tiny result sets, so we can fit more in the query cache. +query_cache_limit = 128K +query_cache_size = 64M +# for more write intensive setups, set to DEMAND or OFF +#query_cache_type = DEMAND # # * Logging and Replication # # Both location gets rotated by the cronjob. # Be aware that this log type is a performance killer. # As of 5.1 you can enable the log at runtime! -general_log_file = /var/log/mysql/mysql.log +general_log_file = /home/container/log/mysql/mysql.log #general_log = 1 # -# Error log - should be very few entries. +# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf. # -log_error = /var/log/mysql/error.log +# we do want to know about network errors and such +#log_warnings = 2 # -# Here you can see queries with especially long duration -slow_query_log = 1 -slow_query_log_file = /var/log/mysql/mysql-slow.log -long_query_time = 1 -#log-queries-not-using-indexes +# Enable the slow query log to see queries with especially long duration +#slow_query_log[={0|1}] +slow_query_log_file = /home/container/log/mysql/mariadb-slow.log +long_query_time = 10 +#log_slow_rate_limit = 1000 +#log_slow_verbosity = query_plan +#log-queries-not-using-indexes +#log_slow_admin_statements # # The following can be used as easy to replay backup logs or for replication. # note: if you are setting up a replication slave, see README.Debian about # other settings you may need to change. #server-id = 1 -#log_bin = /var/log/mysql/mysql-bin.log -expire_logs_days = 14 -max_binlog_size = 1G -#binlog_do_db = include_database_name -#binlog_ignore_db = include_database_name +#report_host = master1 +#auto_increment_increment = 2 +#auto_increment_offset = 1 +#log_bin = /var/log/mysql/mariadb-bin +#log_bin_index = /var/log/mysql/mariadb-bin.index +# not fab for performance, but safer +#sync_binlog = 1 +expire_logs_days = 10 +max_binlog_size = 100M +# slaves +#relay_log = /var/log/mysql/relay-bin +#relay_log_index = /var/log/mysql/relay-bin.index +#relay_log_info_file = /var/log/mysql/relay-bin.info +#log_slave_updates +#read_only +# +# If applications support it, this stricter sql_mode prevents some +# mistakes like inserting invalid dates etc. +#sql_mode = NO_ENGINE_SUBSTITUTION,TRADITIONAL # # * InnoDB # # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. # Read the manual for more InnoDB related options. There are many! +default_storage_engine = InnoDB +# you can't just change log file size, requires special procedure +#innodb_log_file_size = 50M +innodb_buffer_pool_size = 256M +innodb_log_buffer_size = 8M +innodb_file_per_table = 1 +innodb_open_files = 400 +innodb_io_capacity = 400 +innodb_flush_method = O_DIRECT # # * Security Features # @@ -117,17 +149,26 @@ max_binlog_size = 1G # ssl-ca=/etc/mysql/cacert.pem # ssl-cert=/etc/mysql/server-cert.pem # ssl-key=/etc/mysql/server-key.pem -innodb_data_file_path = ibdata1:128M:autoextend -innodb_file_per_table = 1 -skip-innodb_doublewrite -innodb_additional_mem_pool_size = 12M -innodb_buffer_pool_size = 256M -innodb_log_buffer_size = 8M -innodb_log_file_size = 8M -innodb_flush_log_at_trx_commit = 0 -innodb_flush_method = O_DIRECT -innodb_support_xa = OFF +# +# * Galera-related settings +# +[galera] +# Mandatory settings +#wsrep_on=ON +#wsrep_provider= +#wsrep_cluster_address= +#binlog_format=row +#default_storage_engine=InnoDB +#innodb_autoinc_lock_mode=2 +# +# Allow server to accept connections on all interfaces. +# +bind-address=0.0.0.0 +# +# Optional setting +#wsrep_slave_threads=1 +#innodb_flush_log_at_trx_commit=0 [mysqldump] quick @@ -135,7 +176,7 @@ quote-names max_allowed_packet = 16M [mysql] -#no-auto-rehash # faster start of mysql but no tab completition +#no-auto-rehash # faster start of mysql but no tab completion [isamchk] key_buffer = 16M @@ -144,4 +185,5 @@ key_buffer = 16M # * IMPORTANT: Additional settings that can override those from this file! # The files must end with '.cnf', otherwise they'll be ignored. # -!includedir /etc/mysql/conf.d/ +!include /etc/mysql/mariadb.cnf +!includedir /etc/mysql/conf.d/ \ No newline at end of file From 828fc19bb47b29266971f77cae8f3cc70d023eed Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sun, 16 Jun 2019 08:10:10 -0400 Subject: [PATCH 003/107] add bind address --- database/mariadb/my.cnf | 1 + 1 file changed, 1 insertion(+) diff --git a/database/mariadb/my.cnf b/database/mariadb/my.cnf index 643d9474..3049c1bb 100644 --- a/database/mariadb/my.cnf +++ b/database/mariadb/my.cnf @@ -44,6 +44,7 @@ skip-external-locking # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. +bind-address=0.0.0.0 # # * Fine Tuning # From 42dcd14a92e82336dd4c1afa1ba05be4c449b1ab Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Mon, 30 Sep 2019 21:43:41 -0400 Subject: [PATCH 004/107] Update FiveM install script This moves to pulling the latest version for FiveM again. If they enable cloudflare protection it will break but it has support for download URL. DOWNLOAD_URL is still limited to fx.tar.xz being the filename. The installer will fail if the file is not named correctly or is the wrong file type. --- gta/fivem/egg-five-m.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gta/fivem/egg-five-m.json b/gta/fivem/egg-five-m.json index 021533fe..71a035de 100644 --- a/gta/fivem/egg-five-m.json +++ b/gta/fivem/egg-five-m.json @@ -3,11 +3,11 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-09-11T10:35:51-04:00", + "exported_at": "2019-09-30T21:32:14-04:00", "name": "FiveM", "author": "parker@parkervcp.com", "description": "A new FiveM egg for the latest builds due to recent changes in FiveM", - "image": "quay.io\/parkervcp\/pterodactyl-images:alpine", + "image": "quay.io\/parkervcp\/pterodactyl-images:base_alpine", "startup": "$(pwd)\/alpine\/opt\/cfx-server\/ld-musl-x86_64.so.1 --library-path \"$(pwd)\/alpine\/usr\/lib\/v8\/:$(pwd)\/alpine\/lib\/:$(pwd)\/alpine\/usr\/lib\/\" -- $(pwd)\/alpine\/opt\/cfx-server\/FXServer +set citizen_dir $(pwd)\/alpine\/opt\/cfx-server\/citizen\/ +set sv_licenseKey {{FIVEM_LICENSE}} +set sv_maxplayers {{MAX_PLAYERS}} +exec server.cfg", "config": { "files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"endpoint_add_tcp\": \"endpoint_add_tcp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"endpoint_add_udp\": \"endpoint_add_udp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"sv_hostname\": \"sv_hostname \\\"{{server.build.env.SERVER_HOSTNAME}}\\\"\",\r\n \"sv_maxclients\": \"sv_maxclients {{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash \r\n\r\napk add openssl tar xz curl wget git --no-cache\r\n\r\ncd \/mnt\/server\r\n\r\nmkdir resources\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/ \r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"pulling files from ${DOWNLOAD_URL}\"\r\nwget ${DOWNLOAD_URL}\r\n\r\necho \"Extracting fivem files\"\r\n\r\ntar xf fx.tar.xz\r\n\r\nrm -rf fx.tar.xz run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"server config file exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/gta\/fivem\/server.cfg >> server.cfg\r\nfi\r\n\r\nmkdir logs\/\r\n\r\necho \"install complete\"", + "script": "#!\/bin\/ash \r\n\r\napk add openssl tar xz curl wget git --no-cache\r\n\r\ncd \/mnt\/server\r\n\r\nmkdir resources\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/ \r\n\r\ncd \/mnt\/server\r\n\r\necho \"Downloading the latest fivem server files\"\r\nlatest_fivem_url=`curl https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/ | grep -Eo 'href=\".*\/\"' | grep -Eo '\".*\"' | grep -Eo 'href=\".*\/\"' | grep -Eo '\".*\"' | sed 's\/\\\"\/\/g'`\r\n\r\necho -e \"pulling files from https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${latest_fivem_url}fx.tar.xz\"\r\nwget https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${latest_fivem_url}fx.tar.xz\r\n\r\necho \"Extracting fivem files\"\r\n\r\ntar xf fx.tar.xz\r\n\r\nrm -rf fx.tar.xz run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"server config file exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/gta\/fivem\/server.cfg >> server.cfg\r\nfi\r\n\r\nmkdir logs\/\r\n\r\necho \"install complete\"", "container": "alpine:3.10", "entrypoint": "ash" } @@ -54,14 +54,14 @@ "name": "fivem version", "description": "The fivem version that is to be installed.\r\n\r\nan example is `1383-e5ea040353ce1b8bc86e37982bf5d888938e3096`\r\n\r\nYou can the latest version from here - https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/", "env_variable": "FIVEM_VERSION", - "default_value": "", + "default_value": "latest", "user_viewable": 1, - "user_editable": 0, + "user_editable": 1, "rules": "required|string|max:50" }, { "name": "Download Link", - "description": "This is the link to download fivem from.\r\n\r\nThis is only used in the install script.", + "description": "This is the link to download fivem from. This is only used in the install script.\r\n\r\nThe file you link to needs to be an fx.tar.zx file.\r\n\r\nExample:\r\nhttps:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/1626-8c06e8bc3ed7e6690c6c2d9e0b90e29df65b3ea6\/fx.tar.xz", "env_variable": "DOWNLOAD_URL", "default_value": "", "user_viewable": 0, From 92c587147e3ef44f0b33783d40b98042b4deaa73 Mon Sep 17 00:00:00 2001 From: AreYouScared Date: Tue, 1 Oct 2019 15:06:00 -0400 Subject: [PATCH 005/107] Removed Duplicate Egg Same egg as /enemy_territory/etlegacy --- etlegacy/etlegacy/README.md | 20 ------------ etlegacy/etlegacy/egg-e-t-legacy.json | 45 --------------------------- 2 files changed, 65 deletions(-) delete mode 100644 etlegacy/etlegacy/README.md delete mode 100644 etlegacy/etlegacy/egg-e-t-legacy.json diff --git a/etlegacy/etlegacy/README.md b/etlegacy/etlegacy/README.md deleted file mode 100644 index 38a65ea8..00000000 --- a/etlegacy/etlegacy/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# ET: Legacy - -#### The ET: Legacy Server - - -#### from the developers - -Wolfenstein: Enemy Territory is a free multiplayer first-person shooter. Set during World War II and heavily focused on team work, it was initially released in 2003 by Splash Damage and id Software. More than a decade after its release, after spending countless hours of escorting tanks and trucks, stealing gold and radar parts -and transmitting confidential documents, it was time to dust off the game which consistently refused to go own. - -Enemy Territory: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of GPLv3 license. The main goal of this project is to fix bugs, remove old dependencies and make it playable on all major operating systems while still remaining compatible with the ET 2.60b version and as many of its mods as possible. We do appreciate any contribution to the project such as patches, suggestions or comments. - -Make sure to checkout their [Home Page]([https://factorio.com/starter-page](https://www.etlegacy.com/)). - -### Server Ports -ET: Legacy requires a single port - -| Port | default | -|---------|---------| -| Game | 27960 | \ No newline at end of file diff --git a/etlegacy/etlegacy/egg-e-t-legacy.json b/etlegacy/etlegacy/egg-e-t-legacy.json deleted file mode 100644 index 0f5dc4cc..00000000 --- a/etlegacy/etlegacy/egg-e-t-legacy.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v1" - }, - "exported_at": "2019-04-29T22:08:18+08:00", - "name": "ET Legacy", - "author": "parker@parkervcp.com", - "description": "Welcome to Enemy Territory: Legacy, an open source project that aims to create a fully compatible client and server for the popular online FPS game Wolfenstein: Enemy Territory - whose gameplay is still considered unmatched by many, despite its great age.", - "image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu_source", - "startup": ".\/etlded +set net_port {{SERVER_PORT}} +map {{MAP}}", - "config": { - "files": "{\r\n \"etmain\/etl_server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"\/\/set net_ip \\\"\\\"\": \"set net_ip \\\"0.0.0.0\\\"\",\r\n \"\/\/set net_port \\\"27960\\\"\": \"set net_port \\\"{{server.build.env.SERVER_PORT}}\\\"\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"------ Server Initialization ------\",\r\n \"userInteraction\": []\r\n}", - "logs": "{}", - "stop": "quit" - }, - "scripts": { - "installation": { - "script": "#!\/bin\/bash\r\n\r\napt-get update\r\napt-get -y install wget curl zip unzip\r\n\r\ncd \/tmp\/\r\n\r\necho \"Downloading $ET_VERSION bit ET Legacy version\"\r\n\r\nif [ $ET_VERSION == \"32\" ];then \r\n wget `curl https:\/\/www.etlegacy.com\/download | grep \"Linux 32-bit bin\" | grep -Eoi ']+>' | grep -Eo 'href=\"[^\\\"]+\"' | grep -Eo '(http|https):\/\/[^\"]+'` -O etlegacy.tar.gz\r\nelse\r\n wget `curl https:\/\/www.etlegacy.com\/download | grep \"Linux 64-bit bin\" | grep -Eoi ']+>' | grep -Eo 'href=\"[^\\\"]+\"' | grep -Eo '(http|https):\/\/[^\"]+'` -O etlegacy.tar.gz\r\nfi\r\n\r\necho \"Unpacking ET: Legacy\"\r\ntar --strip-components=1 -xzvf etlegacy.tar.gz -C \/mnt\/server\/\r\n\r\necho \"Downloading latest enemy territory files\"\r\nwget `curl https:\/\/www.splashdamage.com\/games\/wolfenstein-enemy-territory\/ | grep .x86_full | grep -Eoi ']+>' | grep -Eo 'href=\"[^\\\"]+\"' | grep -Eo --color=never '(http|https):\/\/[^\"]+'` -O enemy_territory.zip\r\n\r\necho \"Unpacking enemy territory files\"\r\nunzip enemy_territory.zip\r\n\r\necho \"Copying enemy territory assets\"\r\n.\/*.x86_keygen_V03.run --tar xvf .\/etmain\/\r\ncp etmain\/pak*.pk3 \/mnt\/server\/etmain\/\r\n\r\n# Create .etlegacy as the server doesn't correctly create it\r\nmkdir -p \/mnt\/server\/.etlegacy", - "container": "ubuntu:18.04", - "entrypoint": "bash" - } - }, - "variables": [ - { - "name": "ET Legacy Version", - "description": "What version of the server to install. 32 or 64 bit version.", - "env_variable": "ET_VERSION", - "default_value": "32", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|integer|in:32, 64" - }, - { - "name": "Default Map", - "description": "The default map to use when starting the server.", - "env_variable": "MAP", - "default_value": "oasis", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:20" - } - ] -} From 2fb6380c801490560110d4b06dc6c54d181079f5 Mon Sep 17 00:00:00 2001 From: AreYouScared Date: Tue, 1 Oct 2019 15:16:48 -0400 Subject: [PATCH 006/107] Corrected Header Readme header was "Example Server Name" --- arma/arma3/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arma/arma3/README.md b/arma/arma3/README.md index 9bd5392a..15eb3296 100644 --- a/arma/arma3/README.md +++ b/arma/arma3/README.md @@ -1,4 +1,4 @@ -# Example Server Name +# Arma 3 ### From their [Site](https://arma3.com/) Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single- and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PC’s premier military game. Authentic, diverse, open - Arma 3 sends you to war. From 42136b6ef856faf375afae69b9cc755972c5fb65 Mon Sep 17 00:00:00 2001 From: AreYouScared Date: Tue, 1 Oct 2019 15:22:15 -0400 Subject: [PATCH 007/107] Fixed Conan Exiles URL Arma3 != Conan --- conan_exiles/conan_exiles/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conan_exiles/conan_exiles/README.md b/conan_exiles/conan_exiles/README.md index c490ffdd..28d4024b 100644 --- a/conan_exiles/conan_exiles/README.md +++ b/conan_exiles/conan_exiles/README.md @@ -1,4 +1,4 @@ -### From their [Site](https://arma3.com/) +### From their [Site](https://conanexiles.com/) Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single- and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PC’s premier military game. Authentic, diverse, open - Arma 3 sends you to war. ### Minimum RAM warning From 500bdd745087234309f1ae7b7c5c297c7721e343 Mon Sep 17 00:00:00 2001 From: AreYouScared Date: Tue, 1 Oct 2019 15:26:20 -0400 Subject: [PATCH 008/107] Fixed Typo --- stock-eggs/minecraft/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stock-eggs/minecraft/README.md b/stock-eggs/minecraft/README.md index c63519ed..89d19035 100644 --- a/stock-eggs/minecraft/README.md +++ b/stock-eggs/minecraft/README.md @@ -1,6 +1,6 @@ # Minecraft -All the ddefault minecraft things +All the default minecraft things ## Server Ports The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. \ No newline at end of file From ad2ce491d219833676a1b57387452e464b3b4d49 Mon Sep 17 00:00:00 2001 From: AreYouScared Date: Tue, 1 Oct 2019 15:27:05 -0400 Subject: [PATCH 009/107] Fixed URL --- terraria/tmodloader/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraria/tmodloader/README.md b/terraria/tmodloader/README.md index be139132..932dc9fe 100644 --- a/terraria/tmodloader/README.md +++ b/terraria/tmodloader/README.md @@ -1,5 +1,5 @@ # tModLoader -### From their [GitHub](https://github.com/blushiemagic/tModLoader) +### From their [GitHub](https://github.com/tModLoader/tModLoader) tModLoader is essentially a mod that provides a way to load your own mods without having to work directly with Terraria's source code itself. This means you can easily make mods that are compatible with other people's mods, save yourself the trouble of having to decompile and recompile Terraria.exe, and escape from having to understand all of the obscure "intricacies" of Terraria's source code. It is made to work for Terraria 1.3+. ### Install notes From 56504e9c7b36faf558b4ed2184263a97300919fc Mon Sep 17 00:00:00 2001 From: AreYouScared Date: Tue, 1 Oct 2019 15:29:48 -0400 Subject: [PATCH 010/107] Fixed URL --- enemy_territory/etlegacy/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/enemy_territory/etlegacy/README.md b/enemy_territory/etlegacy/README.md index 7330b1f4..43b83406 100644 --- a/enemy_territory/etlegacy/README.md +++ b/enemy_territory/etlegacy/README.md @@ -10,7 +10,7 @@ and transmitting confidential documents, it was time to dust off the game which Enemy Territory: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of GPLv3 license. The main goal of this project is to fix bugs, remove old dependencies and make it playable on all major operating systems while still remaining compatible with the ET 2.60b version and as many of its mods as possible. We do appreciate any contribution to the project such as patches, suggestions or comments. -Make sure to checkout their [Home Page]([https://factorio.com/starter-page](https://www.etlegacy.com/)). +Make sure to checkout their [Home Page](https://www.etlegacy.com/). ### Server Ports ET: Legacy requires a single port From bb59e9b6362e40d0d516dfd926dfe9ad23bf7a18 Mon Sep 17 00:00:00 2001 From: AreYouScared Date: Tue, 1 Oct 2019 15:30:27 -0400 Subject: [PATCH 011/107] Update egg-pixel-bot.json Clearly not Factorio --- bots/discord/pixelbot/egg-pixel-bot.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bots/discord/pixelbot/egg-pixel-bot.json b/bots/discord/pixelbot/egg-pixel-bot.json index e9646353..d149e036 100644 --- a/bots/discord/pixelbot/egg-pixel-bot.json +++ b/bots/discord/pixelbot/egg-pixel-bot.json @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Factorio Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache git gcc g++ libffi-dev make\r\n\r\ncd \/mnt\/server\r\n\r\necho \"Cloning pixel-bot repo\"\r\ngit clone https:\/\/github.com\/Ispira\/pixel-bot.git .\r\n\r\necho \"Installing python requirements into folder\"\r\npip install -U --target $(pwd) discord imgurpython xkcd pynacl", + "script": "#!\/bin\/ash\r\n# Pixel Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache git gcc g++ libffi-dev make\r\n\r\ncd \/mnt\/server\r\n\r\necho \"Cloning pixel-bot repo\"\r\ngit clone https:\/\/github.com\/Ispira\/pixel-bot.git .\r\n\r\necho \"Installing python requirements into folder\"\r\npip install -U --target $(pwd) discord imgurpython xkcd pynacl", "container": "python:3.6-alpine3.7", "entrypoint": "ash" } From c8f1479f78f42e566e604d7b330862d5d003db9a Mon Sep 17 00:00:00 2001 From: AreYouScared Date: Thu, 3 Oct 2019 21:04:00 -0400 Subject: [PATCH 012/107] Update egg-squad.json Added Variables, Fixed Started value. --- squad/squad/egg-squad.json | 80 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 4 deletions(-) diff --git a/squad/squad/egg-squad.json b/squad/squad/egg-squad.json index a8735ce7..de73c96b 100644 --- a/squad/squad/egg-squad.json +++ b/squad/squad/egg-squad.json @@ -3,15 +3,15 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-02-21T13:00:36-05:00", + "exported_at": "2019-10-03T21:02:54-04:00", "name": "Squad", "author": "brycea@rapidnetworks.org", "description": "Squad is a 50 vs 50 multiplayer first-person shooter that aims to capture combat realism through communication and teamplay. Major features include vehicle-based combined arms gameplay, large scale environments, base building, and integrated positional VoIP for proximity talking & radio.", "image": "quay.io\/pterodactyl\/core:source", - "startup": ".\/SquadServer.sh Port={{SERVER_PORT}} QueryPort={{QUERY_PORT}}", + "startup": ".\/SquadGameServer.sh Port={{SERVER_PORT}} QueryPort={{QUERY_PORT}}", "config": { - "files": "{}", - "startup": "{\r\n \"done\": \"LogInit:Display: Starting Game.\",\r\n \"userInteraction\": []\r\n}", + "files": "{\r\n \"SquadGame\/ServerConfig\/Server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName\": \"ServerName=\\\"{{server.build.env.servername}}\\\"\",\r\n \"MaxPlayers\": \"MaxPlayers={{server.build.env.maxplayers}}\",\r\n \"AllowTeamChanges\": \"AllowTeamChanges={{server.build.env.allowteamchange}}\",\r\n \"ShouldAdvertise\": \"ShouldAdvertise={{server.build.env.advertise}}\",\r\n \"NumReservedSlots\": \"NumReservedSlots={{server.build.env.reservedslots}}\",\r\n \"PreventTeamChangeIfUnbalanced\": \"PreventTeamChangeIfUnbalanced={{server.build.env.ptciu}}\",\r\n \"EnforceTeamBalance\": \"EnforceTeamBalance={{server.build.env.teambal}}\",\r\n \"RecordDemos\": \"RecordDemos={{server.build.env.recorddemos}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Engine Initialization\",\r\n \"userInteraction\": []\r\n}", "logs": "{\r\n \"custom\": false,\r\n \"location\": \"latest.log\"\r\n}", "stop": "^C" }, @@ -31,6 +31,78 @@ "user_viewable": 1, "user_editable": 1, "rules": "required|numeric" + }, + { + "name": "Server Name", + "description": "The name for the server in the server list", + "env_variable": "servername", + "default_value": "Squad Server", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:30" + }, + { + "name": "Max Players", + "description": "Sets the maximum number of players.", + "env_variable": "maxplayers", + "default_value": "80", + "user_viewable": 1, + "user_editable": 1, + "rules": "required" + }, + { + "name": "Allow Team Change", + "description": "Allow players to change teams ( true \/ false )", + "env_variable": "allowteamchange", + "default_value": "true", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Advertise Server", + "description": "Have the server report to the public server list ( true \/ false )", + "env_variable": "advertise", + "default_value": "true", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Reserved Slows", + "description": "The number of reserved slots for admins \/ mods", + "env_variable": "reservedslots", + "default_value": "0", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Prevent Team Change If Unbalanced", + "description": "This will prevent players from changing teams if they're already unbalanced ( true \/ false )", + "env_variable": "ptciu", + "default_value": "true", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Enforce Team Balance", + "description": "This will FORCE team balance if the teams are too uneven ( true \/ false )", + "env_variable": "teambal", + "default_value": "true", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Record Demos", + "description": "This will record demos of the players ( true \/ false )", + "env_variable": "recorddemos", + "default_value": "true", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" } ] } \ No newline at end of file From 95d52417a0e16529a1337fdb8fbf52cafb109d66 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Fri, 4 Oct 2019 16:32:16 -0400 Subject: [PATCH 013/107] update fivem variable values --- gta/fivem/egg-five-m.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gta/fivem/egg-five-m.json b/gta/fivem/egg-five-m.json index 71a035de..295ce327 100644 --- a/gta/fivem/egg-five-m.json +++ b/gta/fivem/egg-five-m.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-09-30T21:32:14-04:00", + "exported_at": "2019-10-04T16:30:46-04:00", "name": "FiveM", "author": "parker@parkervcp.com", "description": "A new FiveM egg for the latest builds due to recent changes in FiveM", @@ -66,7 +66,7 @@ "default_value": "", "user_viewable": 0, "user_editable": 0, - "rules": "required|string" + "rules": "string|nullable" } ] } \ No newline at end of file From 7441c2ed057dc450ec158a70af1c31eb8f297b05 Mon Sep 17 00:00:00 2001 From: AreYouScared Date: Tue, 1 Oct 2019 15:06:00 -0400 Subject: [PATCH 014/107] Removed Duplicate Egg Same egg as /enemy_territory/etlegacy --- etlegacy/etlegacy/README.md | 20 ------------ etlegacy/etlegacy/egg-e-t-legacy.json | 45 --------------------------- 2 files changed, 65 deletions(-) delete mode 100644 etlegacy/etlegacy/README.md delete mode 100644 etlegacy/etlegacy/egg-e-t-legacy.json diff --git a/etlegacy/etlegacy/README.md b/etlegacy/etlegacy/README.md deleted file mode 100644 index 38a65ea8..00000000 --- a/etlegacy/etlegacy/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# ET: Legacy - -#### The ET: Legacy Server - - -#### from the developers - -Wolfenstein: Enemy Territory is a free multiplayer first-person shooter. Set during World War II and heavily focused on team work, it was initially released in 2003 by Splash Damage and id Software. More than a decade after its release, after spending countless hours of escorting tanks and trucks, stealing gold and radar parts -and transmitting confidential documents, it was time to dust off the game which consistently refused to go own. - -Enemy Territory: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of GPLv3 license. The main goal of this project is to fix bugs, remove old dependencies and make it playable on all major operating systems while still remaining compatible with the ET 2.60b version and as many of its mods as possible. We do appreciate any contribution to the project such as patches, suggestions or comments. - -Make sure to checkout their [Home Page]([https://factorio.com/starter-page](https://www.etlegacy.com/)). - -### Server Ports -ET: Legacy requires a single port - -| Port | default | -|---------|---------| -| Game | 27960 | \ No newline at end of file diff --git a/etlegacy/etlegacy/egg-e-t-legacy.json b/etlegacy/etlegacy/egg-e-t-legacy.json deleted file mode 100644 index 0f5dc4cc..00000000 --- a/etlegacy/etlegacy/egg-e-t-legacy.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v1" - }, - "exported_at": "2019-04-29T22:08:18+08:00", - "name": "ET Legacy", - "author": "parker@parkervcp.com", - "description": "Welcome to Enemy Territory: Legacy, an open source project that aims to create a fully compatible client and server for the popular online FPS game Wolfenstein: Enemy Territory - whose gameplay is still considered unmatched by many, despite its great age.", - "image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu_source", - "startup": ".\/etlded +set net_port {{SERVER_PORT}} +map {{MAP}}", - "config": { - "files": "{\r\n \"etmain\/etl_server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"\/\/set net_ip \\\"\\\"\": \"set net_ip \\\"0.0.0.0\\\"\",\r\n \"\/\/set net_port \\\"27960\\\"\": \"set net_port \\\"{{server.build.env.SERVER_PORT}}\\\"\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"------ Server Initialization ------\",\r\n \"userInteraction\": []\r\n}", - "logs": "{}", - "stop": "quit" - }, - "scripts": { - "installation": { - "script": "#!\/bin\/bash\r\n\r\napt-get update\r\napt-get -y install wget curl zip unzip\r\n\r\ncd \/tmp\/\r\n\r\necho \"Downloading $ET_VERSION bit ET Legacy version\"\r\n\r\nif [ $ET_VERSION == \"32\" ];then \r\n wget `curl https:\/\/www.etlegacy.com\/download | grep \"Linux 32-bit bin\" | grep -Eoi ']+>' | grep -Eo 'href=\"[^\\\"]+\"' | grep -Eo '(http|https):\/\/[^\"]+'` -O etlegacy.tar.gz\r\nelse\r\n wget `curl https:\/\/www.etlegacy.com\/download | grep \"Linux 64-bit bin\" | grep -Eoi ']+>' | grep -Eo 'href=\"[^\\\"]+\"' | grep -Eo '(http|https):\/\/[^\"]+'` -O etlegacy.tar.gz\r\nfi\r\n\r\necho \"Unpacking ET: Legacy\"\r\ntar --strip-components=1 -xzvf etlegacy.tar.gz -C \/mnt\/server\/\r\n\r\necho \"Downloading latest enemy territory files\"\r\nwget `curl https:\/\/www.splashdamage.com\/games\/wolfenstein-enemy-territory\/ | grep .x86_full | grep -Eoi ']+>' | grep -Eo 'href=\"[^\\\"]+\"' | grep -Eo --color=never '(http|https):\/\/[^\"]+'` -O enemy_territory.zip\r\n\r\necho \"Unpacking enemy territory files\"\r\nunzip enemy_territory.zip\r\n\r\necho \"Copying enemy territory assets\"\r\n.\/*.x86_keygen_V03.run --tar xvf .\/etmain\/\r\ncp etmain\/pak*.pk3 \/mnt\/server\/etmain\/\r\n\r\n# Create .etlegacy as the server doesn't correctly create it\r\nmkdir -p \/mnt\/server\/.etlegacy", - "container": "ubuntu:18.04", - "entrypoint": "bash" - } - }, - "variables": [ - { - "name": "ET Legacy Version", - "description": "What version of the server to install. 32 or 64 bit version.", - "env_variable": "ET_VERSION", - "default_value": "32", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|integer|in:32, 64" - }, - { - "name": "Default Map", - "description": "The default map to use when starting the server.", - "env_variable": "MAP", - "default_value": "oasis", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:20" - } - ] -} From fcfcfa3d1fc2894a6ed98950d8c58764cb5ec151 Mon Sep 17 00:00:00 2001 From: AreYouScared Date: Tue, 1 Oct 2019 15:16:48 -0400 Subject: [PATCH 015/107] Corrected Header Readme header was "Example Server Name" --- arma/arma3/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arma/arma3/README.md b/arma/arma3/README.md index 9bd5392a..15eb3296 100644 --- a/arma/arma3/README.md +++ b/arma/arma3/README.md @@ -1,4 +1,4 @@ -# Example Server Name +# Arma 3 ### From their [Site](https://arma3.com/) Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single- and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PC’s premier military game. Authentic, diverse, open - Arma 3 sends you to war. From 221d268e4b7977e92aed7c5442f687baec854488 Mon Sep 17 00:00:00 2001 From: AreYouScared Date: Tue, 1 Oct 2019 15:22:15 -0400 Subject: [PATCH 016/107] Fixed Conan Exiles URL Arma3 != Conan --- conan_exiles/conan_exiles/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conan_exiles/conan_exiles/README.md b/conan_exiles/conan_exiles/README.md index c490ffdd..28d4024b 100644 --- a/conan_exiles/conan_exiles/README.md +++ b/conan_exiles/conan_exiles/README.md @@ -1,4 +1,4 @@ -### From their [Site](https://arma3.com/) +### From their [Site](https://conanexiles.com/) Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single- and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PC’s premier military game. Authentic, diverse, open - Arma 3 sends you to war. ### Minimum RAM warning From 8e14f0b123ea358bc789b26e97b4425ce05add92 Mon Sep 17 00:00:00 2001 From: AreYouScared Date: Tue, 1 Oct 2019 15:26:20 -0400 Subject: [PATCH 017/107] Fixed Typo --- stock-eggs/minecraft/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stock-eggs/minecraft/README.md b/stock-eggs/minecraft/README.md index c63519ed..89d19035 100644 --- a/stock-eggs/minecraft/README.md +++ b/stock-eggs/minecraft/README.md @@ -1,6 +1,6 @@ # Minecraft -All the ddefault minecraft things +All the default minecraft things ## Server Ports The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. \ No newline at end of file From 29693dfe31bb1d98574e51181cc5be673b5dbe60 Mon Sep 17 00:00:00 2001 From: AreYouScared Date: Tue, 1 Oct 2019 15:27:05 -0400 Subject: [PATCH 018/107] Fixed URL --- terraria/tmodloader/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraria/tmodloader/README.md b/terraria/tmodloader/README.md index be139132..932dc9fe 100644 --- a/terraria/tmodloader/README.md +++ b/terraria/tmodloader/README.md @@ -1,5 +1,5 @@ # tModLoader -### From their [GitHub](https://github.com/blushiemagic/tModLoader) +### From their [GitHub](https://github.com/tModLoader/tModLoader) tModLoader is essentially a mod that provides a way to load your own mods without having to work directly with Terraria's source code itself. This means you can easily make mods that are compatible with other people's mods, save yourself the trouble of having to decompile and recompile Terraria.exe, and escape from having to understand all of the obscure "intricacies" of Terraria's source code. It is made to work for Terraria 1.3+. ### Install notes From cf099bf54b0a0dddbf8d3904c174740e847075f6 Mon Sep 17 00:00:00 2001 From: AreYouScared Date: Tue, 1 Oct 2019 15:29:48 -0400 Subject: [PATCH 019/107] Fixed URL --- enemy_territory/etlegacy/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/enemy_territory/etlegacy/README.md b/enemy_territory/etlegacy/README.md index 7330b1f4..43b83406 100644 --- a/enemy_territory/etlegacy/README.md +++ b/enemy_territory/etlegacy/README.md @@ -10,7 +10,7 @@ and transmitting confidential documents, it was time to dust off the game which Enemy Territory: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of GPLv3 license. The main goal of this project is to fix bugs, remove old dependencies and make it playable on all major operating systems while still remaining compatible with the ET 2.60b version and as many of its mods as possible. We do appreciate any contribution to the project such as patches, suggestions or comments. -Make sure to checkout their [Home Page]([https://factorio.com/starter-page](https://www.etlegacy.com/)). +Make sure to checkout their [Home Page](https://www.etlegacy.com/). ### Server Ports ET: Legacy requires a single port From af1034249e35a78cdc9b00bcd0a83c73a1e94589 Mon Sep 17 00:00:00 2001 From: AreYouScared Date: Tue, 1 Oct 2019 15:30:27 -0400 Subject: [PATCH 020/107] Update egg-pixel-bot.json Clearly not Factorio --- bots/discord/pixelbot/egg-pixel-bot.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bots/discord/pixelbot/egg-pixel-bot.json b/bots/discord/pixelbot/egg-pixel-bot.json index e9646353..d149e036 100644 --- a/bots/discord/pixelbot/egg-pixel-bot.json +++ b/bots/discord/pixelbot/egg-pixel-bot.json @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Factorio Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache git gcc g++ libffi-dev make\r\n\r\ncd \/mnt\/server\r\n\r\necho \"Cloning pixel-bot repo\"\r\ngit clone https:\/\/github.com\/Ispira\/pixel-bot.git .\r\n\r\necho \"Installing python requirements into folder\"\r\npip install -U --target $(pwd) discord imgurpython xkcd pynacl", + "script": "#!\/bin\/ash\r\n# Pixel Bot Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache git gcc g++ libffi-dev make\r\n\r\ncd \/mnt\/server\r\n\r\necho \"Cloning pixel-bot repo\"\r\ngit clone https:\/\/github.com\/Ispira\/pixel-bot.git .\r\n\r\necho \"Installing python requirements into folder\"\r\npip install -U --target $(pwd) discord imgurpython xkcd pynacl", "container": "python:3.6-alpine3.7", "entrypoint": "ash" } From 23ef5d4b85029b59803c28e92604b15a6702ad35 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sun, 6 Oct 2019 00:29:42 -0400 Subject: [PATCH 021/107] Fix squad startup --- squad/squad/egg-squad.json | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/squad/squad/egg-squad.json b/squad/squad/egg-squad.json index de73c96b..fb8db39d 100644 --- a/squad/squad/egg-squad.json +++ b/squad/squad/egg-squad.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-10-03T21:02:54-04:00", + "exported_at": "2019-10-06T00:29:04-04:00", "name": "Squad", "author": "brycea@rapidnetworks.org", "description": "Squad is a 50 vs 50 multiplayer first-person shooter that aims to capture combat realism through communication and teamplay. Major features include vehicle-based combined arms gameplay, large scale environments, base building, and integrated positional VoIP for proximity talking & radio.", @@ -17,8 +17,8 @@ }, "scripts": { "installation": { - "script": "apt update\r\napt -y --no-install-recommends install curl unzip libstdc++6 lib32gcc1 ca-certificates\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update 403240 +quit\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so", - "container": "ubuntu:16.04", + "script": "#!\/bin\/bash\r\n## install required packages to install squad\r\napt update\r\napt -y --no-install-recommends install curl unzip libstdc++6 lib32gcc1 ca-certificates\r\n\r\n## install steamcmd\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\nmkdir -p \/mnt\/server\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\r\n\r\n## needs to be used for steamcmd to operate correctly\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install squad\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${{SRCDS_APPID}} +quit\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\n\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\n\r\nchmod +x \/mnt\/server\/SquadGame\/Binaries\/Linux\/SquadGameServer", + "container": "ubuntu:18.04", "entrypoint": "bash" } }, @@ -103,6 +103,24 @@ "user_viewable": 1, "user_editable": 1, "rules": "required|string" + }, + { + "name": "ld lib path", + "description": "this is needed for some reason", + "env_variable": "LD_LIBRARY_PATH", + "default_value": "\/home\/container\/linux64\/", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string" + }, + { + "name": "Game ID", + "description": "The ID corresponding to the game to download and run using SRCDS.", + "env_variable": "SRCDS_APPID", + "default_value": "403240", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string|max:20" } ] } \ No newline at end of file From c232995d545d776de1cbf40db30a4588b2140fc0 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Tue, 8 Oct 2019 09:07:48 -0400 Subject: [PATCH 022/107] update install script --- squad/squad/egg-squad.json | 42 +++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/squad/squad/egg-squad.json b/squad/squad/egg-squad.json index fb8db39d..64730158 100644 --- a/squad/squad/egg-squad.json +++ b/squad/squad/egg-squad.json @@ -3,12 +3,12 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-10-06T00:29:04-04:00", + "exported_at": "2019-10-08T08:47:08-04:00", "name": "Squad", "author": "brycea@rapidnetworks.org", "description": "Squad is a 50 vs 50 multiplayer first-person shooter that aims to capture combat realism through communication and teamplay. Major features include vehicle-based combined arms gameplay, large scale environments, base building, and integrated positional VoIP for proximity talking & radio.", "image": "quay.io\/pterodactyl\/core:source", - "startup": ".\/SquadGameServer.sh Port={{SERVER_PORT}} QueryPort={{QUERY_PORT}}", + "startup": "\/home\/container\/SquadGame\/Binaries\/Linux\/SquadGameServer SquadGame Port={{SERVER_PORT}} QueryPort={{QUERY_PORT}}", "config": { "files": "{\r\n \"SquadGame\/ServerConfig\/Server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName\": \"ServerName=\\\"{{server.build.env.servername}}\\\"\",\r\n \"MaxPlayers\": \"MaxPlayers={{server.build.env.maxplayers}}\",\r\n \"AllowTeamChanges\": \"AllowTeamChanges={{server.build.env.allowteamchange}}\",\r\n \"ShouldAdvertise\": \"ShouldAdvertise={{server.build.env.advertise}}\",\r\n \"NumReservedSlots\": \"NumReservedSlots={{server.build.env.reservedslots}}\",\r\n \"PreventTeamChangeIfUnbalanced\": \"PreventTeamChangeIfUnbalanced={{server.build.env.ptciu}}\",\r\n \"EnforceTeamBalance\": \"EnforceTeamBalance={{server.build.env.teambal}}\",\r\n \"RecordDemos\": \"RecordDemos={{server.build.env.recorddemos}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Engine Initialization\",\r\n \"userInteraction\": []\r\n}", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n## install required packages to install squad\r\napt update\r\napt -y --no-install-recommends install curl unzip libstdc++6 lib32gcc1 ca-certificates\r\n\r\n## install steamcmd\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\nmkdir -p \/mnt\/server\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\r\n\r\n## needs to be used for steamcmd to operate correctly\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install squad\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${{SRCDS_APPID}} +quit\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\n\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\n\r\nchmod +x \/mnt\/server\/SquadGame\/Binaries\/Linux\/SquadGameServer", + "script": "#!\/bin\/bash\r\n## install required packages to install squad\r\napt update\r\napt -y --no-install-recommends install curl unzip libstdc++6 lib32gcc1 ca-certificates\r\n\r\n## install steamcmd\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\nmkdir -p \/mnt\/server\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\r\n\r\n## needs to be used for steamcmd to operate correctly\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install squad\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} +quit\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\n\r\ncp -v \/mnt\/server\/steam\/linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\n\r\nchmod +x \/mnt\/server\/SquadGame\/Binaries\/Linux\/SquadGameServer", "container": "ubuntu:18.04", "entrypoint": "bash" } @@ -32,6 +32,24 @@ "user_editable": 1, "rules": "required|numeric" }, + { + "name": "ld lib path", + "description": "this is needed for some reason", + "env_variable": "LD_LIBRARY_PATH", + "default_value": "\/home\/container\/linux64\/", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string" + }, + { + "name": "Game ID", + "description": "The ID corresponding to the game to download and run using SRCDS.", + "env_variable": "SRCDS_APPID", + "default_value": "403240", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string|max:20" + }, { "name": "Server Name", "description": "The name for the server in the server list", @@ -103,24 +121,6 @@ "user_viewable": 1, "user_editable": 1, "rules": "required|string" - }, - { - "name": "ld lib path", - "description": "this is needed for some reason", - "env_variable": "LD_LIBRARY_PATH", - "default_value": "\/home\/container\/linux64\/", - "user_viewable": 0, - "user_editable": 0, - "rules": "required|string" - }, - { - "name": "Game ID", - "description": "The ID corresponding to the game to download and run using SRCDS.", - "env_variable": "SRCDS_APPID", - "default_value": "403240", - "user_viewable": 0, - "user_editable": 0, - "rules": "required|string|max:20" } ] } \ No newline at end of file From 12d0189a0959ff11418cb4dc969f42e978a6ef29 Mon Sep 17 00:00:00 2001 From: Michael PArker Date: Thu, 24 Oct 2019 00:01:04 -0400 Subject: [PATCH 023/107] update install script Actually install the game in the right place --- steamcmd_servers/pixark/egg-pix-a-r-k.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/steamcmd_servers/pixark/egg-pix-a-r-k.json b/steamcmd_servers/pixark/egg-pix-a-r-k.json index 16bb3905..219447bb 100644 --- a/steamcmd_servers/pixark/egg-pix-a-r-k.json +++ b/steamcmd_servers/pixark/egg-pix-a-r-k.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-06-07T12:39:45-04:00", + "exported_at": "2019-10-24T00:00:15-04:00", "name": "PixARK", "author": "hello@venatus.digital", "description": "A simple Docker container with Wine to run PixARK using Pterodactyl Panel", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# PixARK: Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\r\n\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n\/mnt\/server\/steamcmd\/steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir \/home\/container +app_update {{SRCDS_APPID}} +quit", + "script": "#!\/bin\/bash\r\n# PixARK: Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\r\n\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n\/mnt\/server\/steamcmd\/steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir \/mnt\/server +app_update {{SRCDS_APPID}} +quit", "container": "ubuntu:latest", "entrypoint": "bash" } From 450ca72c92310566db6d795207b88f3d00435c6e Mon Sep 17 00:00:00 2001 From: Michael PArker Date: Thu, 24 Oct 2019 00:08:33 -0400 Subject: [PATCH 024/107] add ld lib path to 7dtd adds a variable to set the ld lib path for version 18. --- steamcmd_servers/7_days_to_die/egg-7-days-to-die.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json b/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json index 3a1d4165..402aad78 100644 --- a/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json +++ b/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-08-30T20:42:59-04:00", + "exported_at": "2019-10-24T00:07:13-04:00", "name": "7 Days To Die", "author": "kristoffer.norman@bahnhof.se", "description": "7 days to die server", @@ -58,6 +58,15 @@ "user_viewable": 1, "user_editable": 1, "rules": "required|boolean" + }, + { + "name": "ld lib path", + "description": "This is really annoying that more games are doing this.", + "env_variable": "LD_LIBRARY_PATH", + "default_value": ".", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string|max:20" } ] } \ No newline at end of file From 1de9f96692b366c40aef2a7e36361875a6c54a9d Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Wed, 30 Oct 2019 22:01:42 -0400 Subject: [PATCH 025/107] update tModLoader install script Update script to get versions better. Uses the github api to pull the release versions and check for validity. Update start command to be correct --- terraria/tmodloader/egg-t-modloader.json | 43 +++++++++++++++++++----- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/terraria/tmodloader/egg-t-modloader.json b/terraria/tmodloader/egg-t-modloader.json index 20847d38..d49516c2 100644 --- a/terraria/tmodloader/egg-t-modloader.json +++ b/terraria/tmodloader/egg-t-modloader.json @@ -3,12 +3,12 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-10-07T10:01:51-04:00", + "exported_at": "2019-10-30T21:46:07-04:00", "name": "tModloader", "author": "parker@parkervcp.com", "description": "tModLoader is essentially a mod that provides a way to load your own mods without having to work directly with Terraria's source code itself. This means you can easily make mods that are compatible with other people's mods, save yourself the trouble of having to decompile and recompile Terraria.exe, and escape from having to understand all of the obscure \"intricacies\" of Terraria's source code. It is made to work for Terraria 1.3+.", - "image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu", - "startup": ".\/tModLoaderServer.bin.x86_64 -ip 0.0.0.0 -port ${SERVER_PORT} -maxplayers ${MAX_PLAYERS} -world ~\/saves\/Worlds\/${WORLD_NAME}.wld -worldname ${WORLD_NAME} -autocreate ${WORLD_SIZE} -savedirectory ~\/ -tmlsavedirectory ~\/saves -modpath ~\/mods", + "image": "quay.io\/parkervcp\/pterodactyl-images:base_ubuntu", + "startup": ".\/TerrariaServer.bin.x86_64 -ip 0.0.0.0 -port ${SERVER_PORT} -maxplayers ${MAX_PLAYERS} -world ~\/saves\/Worlds\/${WORLD_NAME}.wld -worldname ${WORLD_NAME} -autocreate ${WORLD_SIZE} -savedirectory ~\/ -tmlsavedirectory ~\/saves -modpath ~\/mods", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Type 'help' for a list of commands\",\r\n \"userInteraction\": []\r\n}", @@ -17,8 +17,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Vanilla T-shock Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\ncd \/mnt\/server\r\n\r\necho -e \"Downloading tModloader\"\r\nwget https:\/\/github.com\/blushiemagic\/tModLoader\/releases\/download\/${TMODLOADER_VERSION}\/tModLoader.Linux.${TMODLOADER_VERSION}.zip\r\n\r\necho -e \"Unpacking mod loader files\"\r\nunzip tModLoader.Linux.${TMODLOADER_VERSION}.zip\r\n\r\nCLEAN_VERSION=$(echo ${TERRARIA_VERSION} | sed 's\/\\.\/\/g')\r\n\r\necho -e \"Downloading terraria server files\"\r\nwget http:\/\/terraria.org\/server\/terraria-server-${CLEAN_VERSION}.zip\r\n\r\necho -e \"Unpacking server files\"\r\nunzip terraria-server-$(echo ${CLEAN_VERSION} | sed 's\/\\.\/\/g').zip\r\ncp -R ${CLEAN_VERSION}\/Linux\/* .\/\r\n\r\necho -e \"Cleaning up extra files.\"\r\nrm -rf ${CLEAN_VERSION}\r\n\r\nchmod +x .\/tModLoaderServer.bin.x86_64", - "container": "alpine:3.9", + "script": "#!\/bin\/bash\r\n# Vanilla tModloader Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n## install packages to get version and download links\r\napk add --no-cache curl wget jq file unzip\r\n\r\nif [ -z \"$GITHUB_USER\" ] && [ -z \"$GITHUB_OAUTH_TOKEN\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u $GITHUB_USER:$GITHUB_OAUTH_TOKEN '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/$GITHUB_PACKAGE\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/$GITHUB_PACKAGE\/releases\")\r\n\r\nif [ -z \"$VERSION\" ] || [ \"$VERSION\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i linux)\r\nelse\r\n VERSION_CHECK=$(echo $RELEASES | jq -r --arg VERSION \"$VERSION\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"$VERSION\" == \"$VERSION_CHECK\" ]; then\r\n DOWNLOAD_LINK=$(echo $RELEASES | jq -r --arg VERSION \"$VERSION\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i linux)\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i linux)\r\n fi\r\nfi\r\n\r\n## clean terraria version\r\nCLEAN_VERSION=$(echo ${TERRARIA_VERSION} | sed 's\/\\.\/\/g')\r\n\r\n## mkdir and cd to \/mnt\/server\/\r\nmkdir -p \/mnt\/server\r\n\r\ncd \/mnt\/server\r\n\r\n## download release\r\necho -e \"running: wget $DOWNLOAD_LINK\"\r\nwget $DOWNLOAD_LINK\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exeting\"\r\n exit 2 \r\nfi\r\n\r\necho -e \"Downloading terraria server files\"\r\nwget http:\/\/terraria.org\/server\/terraria-server-${CLEAN_VERSION}.zip\r\n\r\necho -e \"Unpacking server files\"\r\nunzip terraria-server-$(echo ${CLEAN_VERSION} | sed 's\/\\.\/\/g').zip\r\ncp -R ${CLEAN_VERSION}\/Linux\/* .\/\r\n\r\nchmod +x TerrariaServer.bin.x86_64\r\n\r\necho -e \"Cleaning up extra files.\"\r\nrm -rf ${CLEAN_VERSION}", + "container": "alpine:3.10", "entrypoint": "ash" } }, @@ -26,8 +26,8 @@ { "name": "tModloader Version", "description": "The version of tModloader that is to be used.", - "env_variable": "TMODLOADER_VERSION", - "default_value": "v0.10.1.5", + "env_variable": "VERSION", + "default_value": "latest", "user_viewable": 1, "user_editable": 1, "rules": "required|string|max:20" @@ -67,6 +67,33 @@ "user_viewable": 1, "user_editable": 1, "rules": "required|numeric|digits_between:1,3" + }, + { + "name": "GitHub User", + "description": "GitHub user to use for api calls.\r\n\r\nThis only needs to be set if you hit the GitHub API too often across multiple servers.", + "env_variable": "GITHUB_USER", + "default_value": "", + "user_viewable": 0, + "user_editable": 0, + "rules": "string|nullable" + }, + { + "name": "GitHub OAuth Token", + "description": "This can be either an OAuth or a Personal Access Token.\r\n\r\nThis is required for the install is you set a user.", + "env_variable": "GITHUB_OAUTH_TOKEN", + "default_value": "", + "user_viewable": 0, + "user_editable": 0, + "rules": "string|nullable" + }, + { + "name": "GitHub Package", + "description": "This is to make automating this kind of thing easier.\r\n\r\nDo not edit if you don't know what you are doing.", + "env_variable": "GITHUB_PACKAGE", + "default_value": "tModLoader\/tModLoader", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string" } ] -} +} \ No newline at end of file From 26da778220b08b99ae787e2d3d1c7327c7b8b5b9 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Wed, 30 Oct 2019 23:31:08 -0400 Subject: [PATCH 026/107] update nukkit install script only pull files when the file doesn't exist. --- minecraft_bedrock/nukkit/egg-nukkit.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/minecraft_bedrock/nukkit/egg-nukkit.json b/minecraft_bedrock/nukkit/egg-nukkit.json index 5dedc848..4f5af0d7 100644 --- a/minecraft_bedrock/nukkit/egg-nukkit.json +++ b/minecraft_bedrock/nukkit/egg-nukkit.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-11-11T23:32:59-05:00", + "exported_at": "2019-10-30T23:29:01-04:00", "name": "Nukkit", "author": "parker@parkervcp.com", "description": "Nukkit is a Nuclear-Powered Server Software For Minecraft: Pocket Edition\r\n\r\nhttps:\/\/nukkit.io\/", @@ -17,8 +17,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Nukkit Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache curl openssl\r\n\r\ncd \/mnt\/server\r\n\r\n## Only download if a path is provided, otherwise continue.\r\nif [ ! -z \"${DL_PATH}\" ]; then\r\n MODIFIED_DOWNLOAD=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\n wget ${MODIFIED_DOWNLOAD} -O ${SERVER_JARFILE}\r\nelif [ -z \"${NUKKIT_VERSION}\" ] || [ \"${NUKKIT_VERSION}\" == \"latest\" ]; then\r\n wget https:\/\/ci.nukkitx.com\/job\/NukkitX\/job\/Nukkit\/job\/master\/lastSuccessfulBuild\/artifact\/target\/nukkit-1.0-SNAPSHOT.jar -O ${SERVER_JARFILE}\r\nelse\r\n wget https:\/\/ci.nukkitx.com\/job\/NukkitX\/job\/Nukkit\/job\/master\/${NUKKIT_VERSION}\/artifact\/target\/nukkit-1.0-SNAPSHOT.jar -O ${SERVER_JARFILE}\r\nfi\r\n\r\nwget https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_bedrock\/nukkit\/nukkit.yml\r\n\r\nwget https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_bedrock\/nukkit\/server.properties", - "container": "alpine:3.9", + "script": "#!\/bin\/ash\r\n# Nukkit Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache curl openssl\r\n\r\ncd \/mnt\/server\r\n\r\n## Only download if a path is provided, otherwise continue.\r\nif [ ! -z \"${DL_PATH}\" ]; then\r\n MODIFIED_DOWNLOAD=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\n wget ${MODIFIED_DOWNLOAD} -O ${SERVER_JARFILE}\r\nelif [ -z \"${NUKKIT_VERSION}\" ] || [ \"${NUKKIT_VERSION}\" == \"latest\" ]; then\r\n wget https:\/\/ci.nukkitx.com\/job\/NukkitX\/job\/Nukkit\/job\/master\/lastSuccessfulBuild\/artifact\/target\/nukkit-1.0-SNAPSHOT.jar -O ${SERVER_JARFILE}\r\nelse\r\n wget https:\/\/ci.nukkitx.com\/job\/NukkitX\/job\/Nukkit\/job\/master\/${NUKKIT_VERSION}\/artifact\/target\/nukkit-1.0-SNAPSHOT.jar -O ${SERVER_JARFILE}\r\nfi\r\n\r\nif [ ! -f nukkit.yml ]; \r\n wget https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_bedrock\/nukkit\/nukkit.yml\r\nfi \r\n\r\nif [ ! -f nukkit.yml ]; \r\n wget https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_bedrock\/nukkit\/server.properties\r\nfi", + "container": "alpine:3.10", "entrypoint": "ash" } }, @@ -51,4 +51,4 @@ "rules": "required|string|max:20" } ] -} +} \ No newline at end of file From 12f59d0cf19c6029eda661c7fc2d479f0836b229 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sat, 2 Nov 2019 21:12:22 -0500 Subject: [PATCH 027/107] add missing then in if statements --- minecraft_bedrock/nukkit/egg-nukkit.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/minecraft_bedrock/nukkit/egg-nukkit.json b/minecraft_bedrock/nukkit/egg-nukkit.json index 4f5af0d7..1444cb91 100644 --- a/minecraft_bedrock/nukkit/egg-nukkit.json +++ b/minecraft_bedrock/nukkit/egg-nukkit.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-10-30T23:29:01-04:00", + "exported_at": "2019-11-02T22:11:25-04:00", "name": "Nukkit", "author": "parker@parkervcp.com", "description": "Nukkit is a Nuclear-Powered Server Software For Minecraft: Pocket Edition\r\n\r\nhttps:\/\/nukkit.io\/", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Nukkit Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache curl openssl\r\n\r\ncd \/mnt\/server\r\n\r\n## Only download if a path is provided, otherwise continue.\r\nif [ ! -z \"${DL_PATH}\" ]; then\r\n MODIFIED_DOWNLOAD=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\n wget ${MODIFIED_DOWNLOAD} -O ${SERVER_JARFILE}\r\nelif [ -z \"${NUKKIT_VERSION}\" ] || [ \"${NUKKIT_VERSION}\" == \"latest\" ]; then\r\n wget https:\/\/ci.nukkitx.com\/job\/NukkitX\/job\/Nukkit\/job\/master\/lastSuccessfulBuild\/artifact\/target\/nukkit-1.0-SNAPSHOT.jar -O ${SERVER_JARFILE}\r\nelse\r\n wget https:\/\/ci.nukkitx.com\/job\/NukkitX\/job\/Nukkit\/job\/master\/${NUKKIT_VERSION}\/artifact\/target\/nukkit-1.0-SNAPSHOT.jar -O ${SERVER_JARFILE}\r\nfi\r\n\r\nif [ ! -f nukkit.yml ]; \r\n wget https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_bedrock\/nukkit\/nukkit.yml\r\nfi \r\n\r\nif [ ! -f nukkit.yml ]; \r\n wget https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_bedrock\/nukkit\/server.properties\r\nfi", + "script": "#!\/bin\/ash\r\n# Nukkit Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache curl openssl\r\n\r\ncd \/mnt\/server\r\n\r\n## Only download if a path is provided, otherwise continue.\r\nif [ ! -z \"${DL_PATH}\" ]; then\r\n MODIFIED_DOWNLOAD=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\n wget ${MODIFIED_DOWNLOAD} -O ${SERVER_JARFILE}\r\nelif [ -z \"${NUKKIT_VERSION}\" ] || [ \"${NUKKIT_VERSION}\" == \"latest\" ]; then\r\n wget https:\/\/ci.nukkitx.com\/job\/NukkitX\/job\/Nukkit\/job\/master\/lastSuccessfulBuild\/artifact\/target\/nukkit-1.0-SNAPSHOT.jar -O ${SERVER_JARFILE}\r\nelse\r\n wget https:\/\/ci.nukkitx.com\/job\/NukkitX\/job\/Nukkit\/job\/master\/${NUKKIT_VERSION}\/artifact\/target\/nukkit-1.0-SNAPSHOT.jar -O ${SERVER_JARFILE}\r\nfi\r\n\r\nif [ ! -f nukkit.yml ]; then\r\n wget https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_bedrock\/nukkit\/nukkit.yml\r\nfi\r\n\r\nif [ ! -f nukkit.yml ]; then\r\n wget https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_bedrock\/nukkit\/server.properties\r\nfi", "container": "alpine:3.10", "entrypoint": "ash" } From 4cf24bbec002491a6cd0e2713c097128f2a65e16 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sun, 3 Nov 2019 20:47:39 -0500 Subject: [PATCH 028/107] Update FiveM install script Resolves #341 --- gta/fivem/egg-five-m.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gta/fivem/egg-five-m.json b/gta/fivem/egg-five-m.json index 295ce327..8d9baef5 100644 --- a/gta/fivem/egg-five-m.json +++ b/gta/fivem/egg-five-m.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-10-04T16:30:46-04:00", + "exported_at": "2019-11-03T20:45:20-05:00", "name": "FiveM", "author": "parker@parkervcp.com", "description": "A new FiveM egg for the latest builds due to recent changes in FiveM", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash \r\n\r\napk add openssl tar xz curl wget git --no-cache\r\n\r\ncd \/mnt\/server\r\n\r\nmkdir resources\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/ \r\n\r\ncd \/mnt\/server\r\n\r\necho \"Downloading the latest fivem server files\"\r\nlatest_fivem_url=`curl https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/ | grep -Eo 'href=\".*\/\"' | grep -Eo '\".*\"' | grep -Eo 'href=\".*\/\"' | grep -Eo '\".*\"' | sed 's\/\\\"\/\/g'`\r\n\r\necho -e \"pulling files from https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${latest_fivem_url}fx.tar.xz\"\r\nwget https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${latest_fivem_url}fx.tar.xz\r\n\r\necho \"Extracting fivem files\"\r\n\r\ntar xf fx.tar.xz\r\n\r\nrm -rf fx.tar.xz run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"server config file exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/gta\/fivem\/server.cfg >> server.cfg\r\nfi\r\n\r\nmkdir logs\/\r\n\r\necho \"install complete\"", + "script": "#!\/bin\/ash\r\n# FiveM Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add openssl tar xz curl wget git file --no-cache\r\n\r\nmkdir -p \/mnt\/server\/resources\r\n\r\ncd \/mnt\/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/ \r\n\r\nRELEASE_PAGE=$(curl -sSL https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/)\r\n\r\nif [ \"${FIVEM_VERSION}\" == \"latest\" ] || [ -z ${FIVEM_VERSION} ] ; then\r\n LATEST_RECOMMENDED=$(echo -e \"${RELEASE_PAGE}\" | grep \"LATEST RECOMMENDED\" -B1 | grep -Eo 'href=\".*\/*.tar.xz\"' | grep -Eo '\".*\"' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1')\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${LATEST_RECOMMENDED})\r\nelse\r\n VERSION_LINK=$(echo -e \"${RELEASE_PAGE}\" | grep -Eo 'href=\".*\/*.tar.xz\"' | grep -Eo '\".*\"' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1' | grep ${FIVEM_VERSION})\r\n if [ \"${VERSION_LINK}\" == \"\" ]; then\r\n echo -e \"defaulting to latest as the version requested was invalid.\"\r\n else\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${VERSION_LINK})\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\"]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\necho -e \"Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho \"Extracting fivem files\"\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exeting\"\r\n exit 2 \r\nfi\r\n\r\nrm -rf ${DOWNLOAD_LINK##*\/} run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"server config file exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/gta\/fivem\/server.cfg >> server.cfg\r\nfi\r\n\r\nmkdir logs\/\r\n\r\necho \"install complete\"", "container": "alpine:3.10", "entrypoint": "ash" } From 533ce1f34322a54035f50d70f101b5bb01797cf4 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sun, 3 Nov 2019 22:29:44 -0500 Subject: [PATCH 029/107] add a scripts folder as a resource This specifically adds a the github_release_grabber I wrote for the tmodloader egg. --- scripts/github_release_grabber.sh | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 scripts/github_release_grabber.sh diff --git a/scripts/github_release_grabber.sh b/scripts/github_release_grabber.sh new file mode 100644 index 00000000..d05120c8 --- /dev/null +++ b/scripts/github_release_grabber.sh @@ -0,0 +1,28 @@ +## this is a simple script to use the github API for release versions. +## this requires the egg has a variable for GITHUB_PACKAGE, VERSION and MATCH (match is to match the filename in some way) +## this supports using oauth/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.) +## if you are getting hit with GitHub API limit issues then you need to have the user and token set. + + +if [ -z "$GITHUB_USER" ] && [ -z "$GITHUB_OAUTH_TOKEN" ] ; then + echo -e "using anon api call" +else + echo -e "user and oauth token set" + alias curl='curl -u $GITHUB_USER:$GITHUB_OAUTH_TOKEN ' +fi + +## get release info and download links +LATEST_JSON=$(curl --silent "https://api.github.com/repos/$GITHUB_PACKAGE/releases/latest") +RELEASES=$(curl --silent "https://api.github.com/repos/$GITHUB_PACKAGE/releases") + +if [ -z "$VERSION" ] || [ "$VERSION" == "latest" ]; then + DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH}) +else + VERSION_CHECK=$(echo $RELEASES | jq -r --arg VERSION "$VERSION" '.[] | select(.tag_name==$VERSION) | .tag_name') + if [ "$VERSION" == "$VERSION_CHECK" ]; then + DOWNLOAD_LINK=$(echo $RELEASES | jq -r --arg VERSION "$VERSION" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH}) + else + echo -e "defaulting to latest release" + DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url) + fi +fi \ No newline at end of file From f5c7014231090048cb1eabb984562c8e3ea27e15 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sun, 3 Nov 2019 22:34:43 -0500 Subject: [PATCH 030/107] add file unpacker This is to unpack files. --- scripts/file_unpacker.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 scripts/file_unpacker.sh diff --git a/scripts/file_unpacker.sh b/scripts/file_unpacker.sh new file mode 100644 index 00000000..42cb8bcc --- /dev/null +++ b/scripts/file_unpacker.sh @@ -0,0 +1,15 @@ +## only needs to have the file with a file passed into it to get the filetype. +## only supports tar.gz/xz and zip currently for unpacking. +## The value for ${DOWNLOAD_LINK##*/} is + +FILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*/} | cut -d',' -f2 | cut -d' ' -f2) +if [ "$FILETYPE" == "gzip" ]; then + tar xzvf ${DOWNLOAD_LINK##*/} +elif [ "$FILETYPE" == "Zip" ]; then + unzip ${DOWNLOAD_LINK##*/} +elif [ "$FILETYPE" == "XZ" ]; then + tar xvf ${DOWNLOAD_LINK##*/} +else + echo -e "unknown filetype. Exeting" + exit 2 +fi \ No newline at end of file From 5151d88dec1dbc250aec6af8f0bc6e5933695097 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sun, 3 Nov 2019 22:38:58 -0500 Subject: [PATCH 031/107] add notes for the unpacker script. --- scripts/file_unpacker.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/file_unpacker.sh b/scripts/file_unpacker.sh index 42cb8bcc..c5d818f5 100644 --- a/scripts/file_unpacker.sh +++ b/scripts/file_unpacker.sh @@ -1,6 +1,7 @@ ## only needs to have the file with a file passed into it to get the filetype. ## only supports tar.gz/xz and zip currently for unpacking. -## The value for ${DOWNLOAD_LINK##*/} is +## The value for ${DOWNLOAD_LINK##*/} is derived from DOWNLOAD_LINK +## if the download link is https://launcher.mojang.com/v1/objects/3dc3d84a581f14691199cf6831b71ed1296a9fdf/server.jar then the ##*/ is server.jar FILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*/} | cut -d',' -f2 | cut -d' ' -f2) if [ "$FILETYPE" == "gzip" ]; then From 5d933653d3d366e10740acef43c67cea83cfd75c Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Wed, 6 Nov 2019 18:53:24 -0500 Subject: [PATCH 032/107] add json file for the egg. this won't actually run until the PR merged. This is due to file locations. --- database/mariadb/egg-maria-d-b.json | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 database/mariadb/egg-maria-d-b.json diff --git a/database/mariadb/egg-maria-d-b.json b/database/mariadb/egg-maria-d-b.json new file mode 100644 index 00000000..8dd3015d --- /dev/null +++ b/database/mariadb/egg-maria-d-b.json @@ -0,0 +1,26 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-11-06T18:52:33-05:00", + "name": "MariaDB", + "author": "parker@parkervcp.com", + "description": "One of the most popular database servers. Made by the original developers of MySQL. Guaranteed to stay open source.", + "image": "quay.io\/parkervcp\/pterodactyl-images:db_mariadb", + "startup": "{ \/usr\/sbin\/mysqld & } && sleep 5 && mysql -u root", + "config": { + "files": "{\r\n \".my.cnf\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"port\": \"port = {{server.build.default.port}}\",\r\n \"bind-address\": \"bind-address=0.0.0.0\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"mysqld: ready for connections\"\r\n}", + "logs": "{}", + "stop": "shutdown; exit;" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# MariaDB Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nset -x\r\n\r\necho -e \"installing dependencies\"\r\napt-get -y update\r\napt-get -y install curl\r\n\r\n## add user\r\necho -e \"adding container user\"\r\nuseradd -d \/home\/container -m container -s \/bin\/bash\r\n\r\n## own server to container user\r\nchown container: \/mnt\/server\/\r\n\r\n## run install script as user\r\necho -e \"getting my.conf\"\r\nif [ -f \/mnt\/server\/.my.cnf ]; then\r\n echo -e \"moving current config for install\"\r\n mv \/mnt\/server\/.my.cnf \/mnt\/server\/custom.my.cnf\r\n runuser -l container -c 'curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/mariadb\/install.my.cnf > \/mnt\/server\/.my.cnf'\r\nelse\r\n runuser -l container -c 'curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/mariadb\/install.my.cnf > \/mnt\/server\/.my.cnf'\r\nfi\r\n\r\n## mkdir and install db\r\necho -e \"installing mysql database\"\r\nrunuser -l container -c 'mkdir -p \/mnt\/server\/run\/mysqld'\r\nrunuser -l container -c 'mkdir -p \/mnt\/server\/log\/mysql'\r\nrunuser -l container -c 'mkdir \/mnt\/server\/mysql'\r\n\r\nrunuser -l container -c 'mysql_install_db --defaults-file=\/mnt\/server\/.my.cnf'\r\n\r\nif [ -f \/mnt\/server\/custom.my.cnf ]; then\r\n echo -e \"moving current config back in place\"\r\n mv \/mnt\/server\/custom.my.cnf \/mnt\/server\/.my.cnf\r\nelse\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/add\/mariadb\/database\/mariadb\/my.cnf > \/mnt\/server\/.my.cnf\r\nfi\r\n\r\necho -e \"install complete\"\r\n\r\nexit", + "container": "mariadb:10.3", + "entrypoint": "bash" + } + }, + "variables": [] +} \ No newline at end of file From c298af96896a42a1b7a31b4e25d3fd8bf8ec907d Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Wed, 6 Nov 2019 18:59:03 -0500 Subject: [PATCH 033/107] add readme for mariadb --- database/mariadb/README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 database/mariadb/README.md diff --git a/database/mariadb/README.md b/database/mariadb/README.md new file mode 100644 index 00000000..10acde47 --- /dev/null +++ b/database/mariadb/README.md @@ -0,0 +1,17 @@ +# MariaDB +### From their [Website](https://mariadb.org/) +One of the most popular database servers. Made by the original developers of MySQL. +Guaranteed to stay open source. + +### Minimum RAM warning +There is no actual minimum suggested for MariaDB. + +See here https://mariadb.com/kb/en/library/mariadb-hardware-requirements/ + + +### Server Ports +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Server | 3306 | From 03661343bc59a14ba8b2ef61c3c045be23667888 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Wed, 6 Nov 2019 19:03:53 -0500 Subject: [PATCH 034/107] update core readme to add mariadb --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 048bc676..e5ce17c5 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,9 @@ If you are reading this it looks like you are looking to add an egg to your serv [TeamSpeak3](bots/teamspeak3) * [JTS3ServerMod](/bots/teamspeak3/jts3servermod/) +## Database Eggs +[MariaDB](/database/mariadb/) + ## Game Eggs [Arma](/arma/) From 6afdfd547e6c024a3474c0908b86e5c9c288cf94 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Wed, 6 Nov 2019 20:07:39 -0500 Subject: [PATCH 035/107] update 7dtd start for new entrypoint --- steamcmd_servers/7_days_to_die/egg-7-days-to-die.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json b/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json index 402aad78..858e871d 100644 --- a/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json +++ b/steamcmd_servers/7_days_to_die/egg-7-days-to-die.json @@ -3,12 +3,12 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-10-24T00:07:13-04:00", + "exported_at": "2019-11-06T20:06:59-05:00", "name": "7 Days To Die", "author": "kristoffer.norman@bahnhof.se", "description": "7 days to die server", "image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu_source", - "startup": "'.\/7DaysToDieServer.x86_64 -configfile=serverconfig.xml -quit -batchmode -nographics -dedicated -ServerPort=$SERVER_PORT -ServerMaxPlayerCount=$MAX_PLAYERS -GameDifficulty=$GAME_DIFFICULTY -ControlPanelEnabled=false -TelnetEnabled=true -TelnetPort=8081 -logfile logs\/latest.log & echo -e \"Checing on telnet connection\" && until nc -z -v -w5 127.0.0.1 8081; do echo \"Waiting for telnet connection...\"; sleep 5; done && telnet -E 127.0.0.1 8081'", + "startup": ".\/7DaysToDieServer.x86_64 -configfile=serverconfig.xml -quit -batchmode -nographics -dedicated -ServerPort=${SERVER_PORT} -ServerMaxPlayerCount=${MAX_PLAYERS} -GameDifficulty=${GAME_DIFFICULTY} -ControlPanelEnabled=false -TelnetEnabled=true -TelnetPort=8081 -logfile logs\/latest.log & echo -e \"Checing on telnet connection\" && until nc -z -v -w5 127.0.0.1 8081; do echo \"Waiting for telnet connection...\"; sleep 5; done && telnet -E 127.0.0.1 8081", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Connected with 7DTD server\",\r\n \"userInteraction\": []\r\n}", From fdd45557b3826458f93a1fd987e11f6f716f2eef Mon Sep 17 00:00:00 2001 From: Michael PArker Date: Fri, 8 Nov 2019 06:05:28 -0500 Subject: [PATCH 036/107] update curse naming moved forge-generic to forge moved forge-mod-generic to curseforge-generic Updated forge-generic yml to the newer curseforge-generic installer. --- .../README.md | 0 .../egg-curseforge-generic.json | 45 +++++++++++++++++++ .../forge-mod-generic/egg-forge-generic.json | 45 ------------------- .../forge/{forge-generic => forge}/README.md | 0 .../egg-forge-enhanced.json | 0 5 files changed, 45 insertions(+), 45 deletions(-) rename minecraft_java/forge/{forge-mod-generic => curseforge-generic}/README.md (100%) create mode 100644 minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json delete mode 100644 minecraft_java/forge/forge-mod-generic/egg-forge-generic.json rename minecraft_java/forge/{forge-generic => forge}/README.md (100%) rename minecraft_java/forge/{forge-generic => forge}/egg-forge-enhanced.json (100%) diff --git a/minecraft_java/forge/forge-mod-generic/README.md b/minecraft_java/forge/curseforge-generic/README.md similarity index 100% rename from minecraft_java/forge/forge-mod-generic/README.md rename to minecraft_java/forge/curseforge-generic/README.md diff --git a/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json b/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json new file mode 100644 index 00000000..6f3b096c --- /dev/null +++ b/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json @@ -0,0 +1,45 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-11-08T06:03:05-05:00", + "name": "Curseforge Generic", + "author": "parker@parkervcp.com", + "description": "A generic egg for a forge modpack", + "image": "quay.io\/pterodactyl\/core:java", + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar server.jar", + "config": { + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"query.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \")! For help, type \",\r\n \"userInteraction\": [\r\n \"Go to eula.txt for more info.\"\r\n ]\r\n}", + "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "stop" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nmkdir -p \/mnt\/server\r\n\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq unzip\r\n}\r\n\r\nfunction get_download {\r\n # get json data to work with\r\n echo -e \"Curling the json for the modpack\"\r\n echo -e \"running: curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\"\r\n JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID})\r\n\r\n # if no modpack version is set or is set to latest\r\n if [ -z ${MODPACK_VERSION} ] || [ \"${MODPACK_VERSION}\" = \"latest\" ]; then\r\n echo -e \"Getting latest download url\"\r\n # parse data to get the download url\r\n DOWNLOAD_URL=$(echo -e ${JSON_DATA} | jq -r .latestFiles[0].downloadUrl)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n else\r\n echo -e \"Looking for download url for version ${MODPACK_VERSION}\"\r\n # parse files for version match\r\n FILES_JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\/files)\r\n # get element number to get the exact location in the json\r\n FILES_JSON_ELEMENT=$(echo -e ${FILES_JSON_DATA} | jq --arg VERSION \"${MODPACK_VERSION}\" '.[] | select(.displayName) | .displayName | contains($VERSION)' | grep -n true | cut -f1 -d: | tail -1)\r\n # if there wasn't a match default to latest\r\n if [ ! -z ${FILES_JSON_ELEMENT} ]; then\r\n echo -e \"No matching version found\"\r\n echo -e \"defaulting to latest\"\r\n DOWNLOAD_URL=$(echo -e ${FILES_JSON_DATA} | jq --arg ELEMENT \"${FILES_JSON_ELEMENT}\" '.[$ELEMENT|tonumber-1] | .downloadUrl')\r\n else\r\n echo -e \"Version match found\"\r\n DOWNLOAD_URL=$(echo -e ${JSON_DATA} | jq -r .latestFiles[0].downloadUrl)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n fi\r\n fi\r\n\r\n ## download modpack files\r\n cd \/mnt\/server\r\n echo \"Executing curl -L ${DOWNLOAD_URL} -o server.zip\"\r\n curl -L \"${DOWNLOAD_URL}\" -o server.zip\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction forge_install {\r\n echo -e \"\\nInstalling forge server using the installer jar file.\\n\"\r\n if [ -f \/mnt\/server\/*installer.jar ]; then\r\n java -jar *installer.jar --installServer\r\n else\r\n echo \"No forge installer found moving on.\"\r\n fi\r\n}\r\n\r\nfunction forge_cleanup {\r\n echo -e \"\\nDeleting installer jar file and cleaning up.\\n\"\r\n rm -rf *installer.jar\r\n if [ ! -f \/mnt\/server\/*universal.jar ]; then\r\n mv -v \/mnt\/server\/*\/* \/mnt\/server\/\r\n mv *universal.jar server.jar\r\n else\r\n mv *universal.jar server.jar\r\n fi\r\n}\r\n\r\nfunction json_download_prework {\r\n mkdir -p \/mnt\/server\/mods\r\n cd \/mnt\/server\/mods\r\n}\r\n\r\nfunction json_download_mods {\r\n MANIFEST=\/mnt\/server\/manifest.json\r\n for mod in $(jq -c '.files[]' ${MANIFEST} ); do\r\n projID=$(echo $mod | jq -r \".projectID\")\r\n fileID=$(echo $mod | jq -r \".fileID\")\r\n URL=\"https:\/\/minecraft.curseforge.com\/projects\/${projID}\/files\/${fileID}\/download\"\r\n echo \"mods file url: ${URL}\"\r\n # this is saving everything as \/mnt\/server\/mods\/download\r\n FINAL_URL=$(curl $URL -s -L -o \/dev\/null -w '%{url_effective}')\r\n echo \"Mod direct url: $FINAL_URL\"\r\n curl -JLO ${FINAL_URL}\r\n done\r\n}\r\n\r\nfunction json_download_forge {\r\n cd \/mnt\/server\r\n FORGE=$(jq -r '.minecraft.modLoaders[0].id' \/mnt\/server\/manifest.json | cut -d '-' -f2)\r\n MCVER=$(jq -r '.minecraft.version' \/mnt\/server\/manifest.json)\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\nfunction json_download_overrides {\r\n if [ -d \/mnt\/server\/overrides ]; then\r\n mv \/mnt\/server\/overrides\/mods\/* \/mnt\/server\/mods\/\r\n rmdir \/mnt\/server\/overrides\/mods\r\n mv \/mnt\/server\/overrides\/* \/mnt\/server\r\n rmdir \/mnt\/server\/overrides\r\n fi\r\n}\r\n\r\nfunction cfg_download_forge {\r\n dos2unix settings.cfg # In case the pack was distributed with Windows-style line endings in the cfg file\r\n MCVER=`grep 'MCVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n FORGE=`grep 'FORGEVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n \r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n echo -e ${FORGE_VERSION}\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\ninstall_required\r\nget_download\r\nif [ -f \/mnt\/server\/manifest.json ]; then\r\n json_download_prework\r\n json_download_mods\r\n json_download_overrides\r\n json_download_forge\r\nelif [ -f \/mnt\/server\/settings.cfg ]; then\r\n cfg_download_forge\r\nelse\r\n forge_install\r\n forge_cleanup\r\nfi", + "container": "openjdk:8-jdk-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "modpack project ID", + "description": "The modpack project ID from the curseforge site on the pack page.\r\n\r\n(Ex. https:\/\/minecraft.curseforge.com\/projects\/sevtech-ages ID is 268208)", + "env_variable": "MODPACK_ID", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Modpack Version", + "description": "Version of the modpack to use.", + "env_variable": "MODPACK_VERSION", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file diff --git a/minecraft_java/forge/forge-mod-generic/egg-forge-generic.json b/minecraft_java/forge/forge-mod-generic/egg-forge-generic.json deleted file mode 100644 index e09c2dd2..00000000 --- a/minecraft_java/forge/forge-mod-generic/egg-forge-generic.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v1" - }, - "exported_at": "2019-07-23T19:59:03-04:00", - "name": "Forge Generic", - "author": "parker@parkervcp.com", - "description": "A generic egg for a forge modpack", - "image": "quay.io\/pterodactyl\/core:java", - "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar server.jar", - "config": { - "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"query.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \")! For help, type \",\r\n \"userInteraction\": [\r\n \"Go to eula.txt for more info.\"\r\n ]\r\n}", - "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", - "stop": "stop" - }, - "scripts": { - "installation": { - "script": "#!\/bin\/ash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nfunction install_required {\r\n apk --no-cache --update add curl jq\r\n}\r\n\r\nfunction get_download {\r\n BASE_URL=${MODPACK_URL}\/files\r\n ID=`curl -sl ${BASE_URL} | grep -i -A9 \"${MODPACK_VERSION}\" | grep -m 1 -oE 'href=\"[^\\\"]+\"' | cut -d \"\/\" -f6 | grep -oE [0-9]+`\r\n echo \"ID: ${ID}\"\r\n\r\n SECONDURL=${BASE_URL}\/${ID}\r\n echo \"SECONDURL: ${SECONDURL}\"\r\n\r\n GOOD_ID=`curl -sl ${SECONDURL} | grep -i server | grep -i $MODPACK_VERSION | grep -Eo 'href=\"[^\\\"]+\"' | grep -o -E \"[0-9]+\" | tail -1`\r\n if [ -z \"$GOOD_ID\" ]; then\r\n GOOD_ID=$ID\r\n fi\r\n echo \"GOOD_ID: ${GOOD_ID}\"\r\n\r\n DL_URL=${MODPACK_URL}\/download\/${GOOD_ID}\/file\r\n echo \"Download_URL: ${DL_URL}\"\r\n\r\n cd \/mnt\/server\r\n\r\n echo \"Executing curl -L ${DL_URL} -o server.zip\"\r\n curl -L ${DL_URL} -o server.zip\r\n\r\n unzip -o server.zip\r\n\r\n rm -rf server.zip\r\n}\r\n\r\nfunction forge_install {\r\n echo -e \"\\nInstalling forge server using the installer jar file.\\n\"\r\n if [ -f \/mnt\/server\/*installer.jar ]; then\r\n java -jar *installer.jar --installServer\r\n else\r\n echo \"No forge installer found moving on.\"\r\n fi\r\n}\r\n\r\nfunction forge_cleanup {\r\n echo -e \"\\nDeleting installer jar file and cleaning up.\\n\"\r\n rm -rf *installer.jar\r\n if [ ! -f \/mnt\/server\/*universal.jar ]; then\r\n mv -v \/mnt\/server\/*\/* \/mnt\/server\/\r\n mv *universal.jar server.jar\r\n else\r\n mv *universal.jar server.jar\r\n fi\r\n}\r\n\r\nfunction json_download_prework {\r\n mkdir -p \/mnt\/server\/mods\r\n cd \/mnt\/server\/mods\r\n}\r\n\r\nfunction json_download_mods {\r\n MANIFEST=\/mnt\/server\/manifest.json\r\n for mod in $(jq -c '.files[]' ${MANIFEST} ); do\r\n projID=$(echo $mod | jq -r \".projectID\")\r\n fileID=$(echo $mod | jq -r \".fileID\")\r\n URL=\"https:\/\/minecraft.curseforge.com\/projects\/${projID}\/files\/${fileID}\/download\"\r\n echo \"mods file url: ${URL}\"\r\n # this is saving everything as \/mnt\/server\/mods\/download\r\n FINAL_URL=$(curl $URL -s -L -o \/dev\/null -w '%{url_effective}')\r\n echo \"Mod direct url: $FINAL_URL\"\r\n curl -JLO ${FINAL_URL}\r\n done\r\n}\r\n\r\nfunction json_download_forge {\r\n cd \/mnt\/server\r\n FORGE=$(jq -r '.minecraft.modLoaders[0].id' \/mnt\/server\/manifest.json | cut -d '-' -f2)\r\n MCVER=$(jq -r '.minecraft.version' \/mnt\/server\/manifest.json)\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\nfunction json_download_overrides {\r\n if [ -d \/mnt\/server\/overrides ]; then\r\n mv \/mnt\/server\/overrides\/mods\/* \/mnt\/server\/mods\/\r\n rmdir \/mnt\/server\/overrides\/mods\r\n mv \/mnt\/server\/overrides\/* \/mnt\/server\r\n rmdir \/mnt\/server\/overrides\r\n fi\r\n}\r\n\r\nfunction cfg_download_forge {\r\n dos2unix settings.cfg # In case the pack was distributed with Windows-style line endings in the cfg file\r\n MCVER=`grep 'MCVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n FORGE=`grep 'FORGEVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n \r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n echo -e ${FORGE_VERSION}\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\ninstall_required\r\nget_download\r\nif [ -f \/mnt\/server\/manifest.json ]; then\r\n json_download_prework\r\n json_download_mods\r\n json_download_overrides\r\n json_download_forge\r\nelif [ -f \/mnt\/server\/settings.cfg ]; then\r\n cfg_download_forge\r\nelse\r\n forge_install\r\n forge_cleanup\r\nfi", - "container": "openjdk:8-alpine", - "entrypoint": "ash" - } - }, - "variables": [ - { - "name": "modpack URL", - "description": "The modpack URL from the curseforge site.\r\n\r\n(Ex. https:\/\/minecraft.curseforge.com\/projects\/sevtech-ages)", - "env_variable": "MODPACK_URL", - "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string" - }, - { - "name": "Modpack Version", - "description": "Version of the modpack to use.", - "env_variable": "MODPACK_VERSION", - "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:20" - } - ] -} \ No newline at end of file diff --git a/minecraft_java/forge/forge-generic/README.md b/minecraft_java/forge/forge/README.md similarity index 100% rename from minecraft_java/forge/forge-generic/README.md rename to minecraft_java/forge/forge/README.md diff --git a/minecraft_java/forge/forge-generic/egg-forge-enhanced.json b/minecraft_java/forge/forge/egg-forge-enhanced.json similarity index 100% rename from minecraft_java/forge/forge-generic/egg-forge-enhanced.json rename to minecraft_java/forge/forge/egg-forge-enhanced.json From b1a455f7cb03e4045c504d26d77404943c7e8edc Mon Sep 17 00:00:00 2001 From: Michael PArker Date: Fri, 8 Nov 2019 06:09:16 -0500 Subject: [PATCH 037/107] update curseforge readme --- minecraft_java/forge/curseforge-generic/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/minecraft_java/forge/curseforge-generic/README.md b/minecraft_java/forge/curseforge-generic/README.md index 03468b6f..c92470c2 100644 --- a/minecraft_java/forge/curseforge-generic/README.md +++ b/minecraft_java/forge/curseforge-generic/README.md @@ -2,7 +2,8 @@ ### This is a generic egg for curseforge modpacks -You will need to give it a modpack URL such as `https://minecraft.curseforge.com/projects/` +You will need to give it a modpack ID. The ID for sevtech-ages is `268208` for example. +This can be found on the modpack page in the `About Project` section in the upper right corner. This will grabe the latest release when the version is set to latest. From f3d61e922420c63fc4bd9809bbcd3b4edcf1b00c Mon Sep 17 00:00:00 2001 From: Renaud Gaspard Date: Thu, 14 Nov 2019 21:54:08 +0100 Subject: [PATCH 038/107] Added SRCDS_APPID in Sven-Coop so it automatically updates on startup --- steamcmd_servers/svencoop/egg-sven-co-op.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/steamcmd_servers/svencoop/egg-sven-co-op.json b/steamcmd_servers/svencoop/egg-sven-co-op.json index 7bc00475..c341b5a7 100644 --- a/steamcmd_servers/svencoop/egg-sven-co-op.json +++ b/steamcmd_servers/svencoop/egg-sven-co-op.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-03-08T22:46:21+01:00", + "exported_at": "2019-11-14T21:43:14+01:00", "name": "Sven Co-op", "author": "pteroducktyl@yildri.nl", "description": "Sven Co-op is a co-operative game originally based around Valve Software's Half-Life. In this game players must work together against computer controlled enemies and solve puzzles as a team.", @@ -67,6 +67,15 @@ "user_viewable": 1, "user_editable": 1, "rules": "required|numeric|between:-1,255" + }, + { + "name": "Source AppID", + "description": "Required for game to update on server restart. Do not modify this.", + "env_variable": "SRCDS_APPID", + "default_value": "276060", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string|max:20" } ] } \ No newline at end of file From 635949add86c3c10054116cdf3b8e8defc811986 Mon Sep 17 00:00:00 2001 From: "Michael (Parker) Parker" Date: Fri, 15 Nov 2019 11:56:06 -0500 Subject: [PATCH 039/107] update curseforge install script changes to use the curseforge api to download mods. --- .../forge/curseforge-generic/egg-curseforge-generic.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json b/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json index 6f3b096c..82178d97 100644 --- a/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json +++ b/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-11-08T06:03:05-05:00", + "exported_at": "2019-11-15T11:54:24-05:00", "name": "Curseforge Generic", "author": "parker@parkervcp.com", "description": "A generic egg for a forge modpack", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nmkdir -p \/mnt\/server\r\n\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq unzip\r\n}\r\n\r\nfunction get_download {\r\n # get json data to work with\r\n echo -e \"Curling the json for the modpack\"\r\n echo -e \"running: curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\"\r\n JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID})\r\n\r\n # if no modpack version is set or is set to latest\r\n if [ -z ${MODPACK_VERSION} ] || [ \"${MODPACK_VERSION}\" = \"latest\" ]; then\r\n echo -e \"Getting latest download url\"\r\n # parse data to get the download url\r\n DOWNLOAD_URL=$(echo -e ${JSON_DATA} | jq -r .latestFiles[0].downloadUrl)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n else\r\n echo -e \"Looking for download url for version ${MODPACK_VERSION}\"\r\n # parse files for version match\r\n FILES_JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\/files)\r\n # get element number to get the exact location in the json\r\n FILES_JSON_ELEMENT=$(echo -e ${FILES_JSON_DATA} | jq --arg VERSION \"${MODPACK_VERSION}\" '.[] | select(.displayName) | .displayName | contains($VERSION)' | grep -n true | cut -f1 -d: | tail -1)\r\n # if there wasn't a match default to latest\r\n if [ ! -z ${FILES_JSON_ELEMENT} ]; then\r\n echo -e \"No matching version found\"\r\n echo -e \"defaulting to latest\"\r\n DOWNLOAD_URL=$(echo -e ${FILES_JSON_DATA} | jq --arg ELEMENT \"${FILES_JSON_ELEMENT}\" '.[$ELEMENT|tonumber-1] | .downloadUrl')\r\n else\r\n echo -e \"Version match found\"\r\n DOWNLOAD_URL=$(echo -e ${JSON_DATA} | jq -r .latestFiles[0].downloadUrl)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n fi\r\n fi\r\n\r\n ## download modpack files\r\n cd \/mnt\/server\r\n echo \"Executing curl -L ${DOWNLOAD_URL} -o server.zip\"\r\n curl -L \"${DOWNLOAD_URL}\" -o server.zip\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction forge_install {\r\n echo -e \"\\nInstalling forge server using the installer jar file.\\n\"\r\n if [ -f \/mnt\/server\/*installer.jar ]; then\r\n java -jar *installer.jar --installServer\r\n else\r\n echo \"No forge installer found moving on.\"\r\n fi\r\n}\r\n\r\nfunction forge_cleanup {\r\n echo -e \"\\nDeleting installer jar file and cleaning up.\\n\"\r\n rm -rf *installer.jar\r\n if [ ! -f \/mnt\/server\/*universal.jar ]; then\r\n mv -v \/mnt\/server\/*\/* \/mnt\/server\/\r\n mv *universal.jar server.jar\r\n else\r\n mv *universal.jar server.jar\r\n fi\r\n}\r\n\r\nfunction json_download_prework {\r\n mkdir -p \/mnt\/server\/mods\r\n cd \/mnt\/server\/mods\r\n}\r\n\r\nfunction json_download_mods {\r\n MANIFEST=\/mnt\/server\/manifest.json\r\n for mod in $(jq -c '.files[]' ${MANIFEST} ); do\r\n projID=$(echo $mod | jq -r \".projectID\")\r\n fileID=$(echo $mod | jq -r \".fileID\")\r\n URL=\"https:\/\/minecraft.curseforge.com\/projects\/${projID}\/files\/${fileID}\/download\"\r\n echo \"mods file url: ${URL}\"\r\n # this is saving everything as \/mnt\/server\/mods\/download\r\n FINAL_URL=$(curl $URL -s -L -o \/dev\/null -w '%{url_effective}')\r\n echo \"Mod direct url: $FINAL_URL\"\r\n curl -JLO ${FINAL_URL}\r\n done\r\n}\r\n\r\nfunction json_download_forge {\r\n cd \/mnt\/server\r\n FORGE=$(jq -r '.minecraft.modLoaders[0].id' \/mnt\/server\/manifest.json | cut -d '-' -f2)\r\n MCVER=$(jq -r '.minecraft.version' \/mnt\/server\/manifest.json)\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\nfunction json_download_overrides {\r\n if [ -d \/mnt\/server\/overrides ]; then\r\n mv \/mnt\/server\/overrides\/mods\/* \/mnt\/server\/mods\/\r\n rmdir \/mnt\/server\/overrides\/mods\r\n mv \/mnt\/server\/overrides\/* \/mnt\/server\r\n rmdir \/mnt\/server\/overrides\r\n fi\r\n}\r\n\r\nfunction cfg_download_forge {\r\n dos2unix settings.cfg # In case the pack was distributed with Windows-style line endings in the cfg file\r\n MCVER=`grep 'MCVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n FORGE=`grep 'FORGEVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n \r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n echo -e ${FORGE_VERSION}\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\ninstall_required\r\nget_download\r\nif [ -f \/mnt\/server\/manifest.json ]; then\r\n json_download_prework\r\n json_download_mods\r\n json_download_overrides\r\n json_download_forge\r\nelif [ -f \/mnt\/server\/settings.cfg ]; then\r\n cfg_download_forge\r\nelse\r\n forge_install\r\n forge_cleanup\r\nfi", + "script": "#!\/bin\/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nmkdir -p \/mnt\/server\r\n\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq unzip\r\n}\r\n\r\nfunction get_download {\r\n # get json data to work with\r\n echo -e \"Curling the json for the modpack\"\r\n echo -e \"running: curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\"\r\n JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID})\r\n\r\n # if no modpack version is set or is set to latest\r\n if [ -z ${MODPACK_VERSION} ] || [ \"${MODPACK_VERSION}\" = \"latest\" ]; then\r\n echo -e \"Getting latest download url\"\r\n # parse data to get the download url\r\n DOWNLOAD_URL=$(echo -e ${JSON_DATA} | jq -r .latestFiles[0].downloadUrl)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n else\r\n echo -e \"Looking for download url for version ${MODPACK_VERSION}\"\r\n # parse files for version match\r\n FILES_JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\/files)\r\n # get element number to get the exact location in the json\r\n FILES_JSON_ELEMENT=$(echo -e ${FILES_JSON_DATA} | jq --arg VERSION \"${MODPACK_VERSION}\" '.[] | select(.displayName) | .displayName | contains($VERSION)' | grep -n true | cut -f1 -d: | tail -1)\r\n # if there wasn't a match default to latest\r\n if [ ! -z ${FILES_JSON_ELEMENT} ]; then\r\n echo -e \"No matching version found\"\r\n echo -e \"defaulting to latest\"\r\n DOWNLOAD_URL=$(echo -e ${FILES_JSON_DATA} | jq --arg ELEMENT \"${FILES_JSON_ELEMENT}\" '.[$ELEMENT|tonumber-1] | .downloadUrl')\r\n else\r\n echo -e \"Version match found\"\r\n DOWNLOAD_URL=$(echo -e ${JSON_DATA} | jq -r .latestFiles[0].downloadUrl)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n fi\r\n fi\r\n\r\n ## download modpack files\r\n cd \/mnt\/server\r\n echo \"Executing curl -L ${DOWNLOAD_URL} -o server.zip\"\r\n curl -L \"${DOWNLOAD_URL}\" -o server.zip\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction forge_install {\r\n echo -e \"\\nInstalling forge server using the installer jar file.\\n\"\r\n if [ -f \/mnt\/server\/*installer.jar ]; then\r\n java -jar *installer.jar --installServer\r\n else\r\n echo \"No forge installer found moving on.\"\r\n fi\r\n}\r\n\r\nfunction forge_cleanup {\r\n echo -e \"\\nDeleting installer jar file and cleaning up.\\n\"\r\n rm -rf *installer.jar\r\n if [ ! -f \/mnt\/server\/*universal.jar ]; then\r\n mv -v \/mnt\/server\/*\/* \/mnt\/server\/\r\n mv *universal.jar server.jar\r\n else\r\n mv *universal.jar server.jar\r\n fi\r\n}\r\n\r\nfunction json_download_prework {\r\n mkdir -p \/mnt\/server\/mods\r\n cd \/mnt\/server\/mods\r\n}\r\n\r\nfunction json_download_mods {\r\n MANIFEST=\/mnt\/server\/manifest.json\r\n for mod in $(jq -c '.files[]' ${MANIFEST} ); do\r\n projID=$(echo $mod | jq -r \".projectID\")\r\n fileID=$(echo $mod | jq -r \".fileID\")\r\n URL=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${projID}\/file\/${fileID}\/download-url)\r\n # this is saving everything as \/mnt\/server\/mods\/download\r\n echo \"Mod direct url: ${URL}\"\r\n curl -JLO ${URL}\r\n done\r\n}\r\n\r\nfunction json_download_forge {\r\n cd \/mnt\/server\r\n FORGE=$(jq -r '.minecraft.modLoaders[0].id' \/mnt\/server\/manifest.json | cut -d '-' -f2)\r\n MCVER=$(jq -r '.minecraft.version' \/mnt\/server\/manifest.json)\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\nfunction json_download_overrides {\r\n if [ -d \/mnt\/server\/overrides ]; then\r\n mv \/mnt\/server\/overrides\/mods\/* \/mnt\/server\/mods\/\r\n rmdir \/mnt\/server\/overrides\/mods\r\n mv \/mnt\/server\/overrides\/* \/mnt\/server\r\n rmdir \/mnt\/server\/overrides\r\n fi\r\n}\r\n\r\nfunction cfg_download_forge {\r\n dos2unix settings.cfg # In case the pack was distributed with Windows-style line endings in the cfg file\r\n MCVER=`grep 'MCVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n FORGE=`grep 'FORGEVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n \r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n echo -e ${FORGE_VERSION}\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\ninstall_required\r\nget_download\r\nif [ -f \/mnt\/server\/manifest.json ]; then\r\n json_download_prework\r\n json_download_mods\r\n json_download_overrides\r\n json_download_forge\r\nelif [ -f \/mnt\/server\/settings.cfg ]; then\r\n cfg_download_forge\r\nelse\r\n forge_install\r\n forge_cleanup\r\nfi", "container": "openjdk:8-jdk-slim", "entrypoint": "bash" } From a89b5400fa2f01f303b86ad7a38c866b866e4b7b Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Fri, 15 Nov 2019 16:00:06 -0500 Subject: [PATCH 040/107] update download link --- .../forge/curseforge-generic/egg-curseforge-generic.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json b/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json index 82178d97..cf8b870b 100644 --- a/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json +++ b/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-11-15T11:54:24-05:00", + "exported_at": "2019-11-15T15:58:47-05:00", "name": "Curseforge Generic", "author": "parker@parkervcp.com", "description": "A generic egg for a forge modpack", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nmkdir -p \/mnt\/server\r\n\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq unzip\r\n}\r\n\r\nfunction get_download {\r\n # get json data to work with\r\n echo -e \"Curling the json for the modpack\"\r\n echo -e \"running: curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\"\r\n JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID})\r\n\r\n # if no modpack version is set or is set to latest\r\n if [ -z ${MODPACK_VERSION} ] || [ \"${MODPACK_VERSION}\" = \"latest\" ]; then\r\n echo -e \"Getting latest download url\"\r\n # parse data to get the download url\r\n DOWNLOAD_URL=$(echo -e ${JSON_DATA} | jq -r .latestFiles[0].downloadUrl)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n else\r\n echo -e \"Looking for download url for version ${MODPACK_VERSION}\"\r\n # parse files for version match\r\n FILES_JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\/files)\r\n # get element number to get the exact location in the json\r\n FILES_JSON_ELEMENT=$(echo -e ${FILES_JSON_DATA} | jq --arg VERSION \"${MODPACK_VERSION}\" '.[] | select(.displayName) | .displayName | contains($VERSION)' | grep -n true | cut -f1 -d: | tail -1)\r\n # if there wasn't a match default to latest\r\n if [ ! -z ${FILES_JSON_ELEMENT} ]; then\r\n echo -e \"No matching version found\"\r\n echo -e \"defaulting to latest\"\r\n DOWNLOAD_URL=$(echo -e ${FILES_JSON_DATA} | jq --arg ELEMENT \"${FILES_JSON_ELEMENT}\" '.[$ELEMENT|tonumber-1] | .downloadUrl')\r\n else\r\n echo -e \"Version match found\"\r\n DOWNLOAD_URL=$(echo -e ${JSON_DATA} | jq -r .latestFiles[0].downloadUrl)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n fi\r\n fi\r\n\r\n ## download modpack files\r\n cd \/mnt\/server\r\n echo \"Executing curl -L ${DOWNLOAD_URL} -o server.zip\"\r\n curl -L \"${DOWNLOAD_URL}\" -o server.zip\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction forge_install {\r\n echo -e \"\\nInstalling forge server using the installer jar file.\\n\"\r\n if [ -f \/mnt\/server\/*installer.jar ]; then\r\n java -jar *installer.jar --installServer\r\n else\r\n echo \"No forge installer found moving on.\"\r\n fi\r\n}\r\n\r\nfunction forge_cleanup {\r\n echo -e \"\\nDeleting installer jar file and cleaning up.\\n\"\r\n rm -rf *installer.jar\r\n if [ ! -f \/mnt\/server\/*universal.jar ]; then\r\n mv -v \/mnt\/server\/*\/* \/mnt\/server\/\r\n mv *universal.jar server.jar\r\n else\r\n mv *universal.jar server.jar\r\n fi\r\n}\r\n\r\nfunction json_download_prework {\r\n mkdir -p \/mnt\/server\/mods\r\n cd \/mnt\/server\/mods\r\n}\r\n\r\nfunction json_download_mods {\r\n MANIFEST=\/mnt\/server\/manifest.json\r\n for mod in $(jq -c '.files[]' ${MANIFEST} ); do\r\n projID=$(echo $mod | jq -r \".projectID\")\r\n fileID=$(echo $mod | jq -r \".fileID\")\r\n URL=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${projID}\/file\/${fileID}\/download-url)\r\n # this is saving everything as \/mnt\/server\/mods\/download\r\n echo \"Mod direct url: ${URL}\"\r\n curl -JLO ${URL}\r\n done\r\n}\r\n\r\nfunction json_download_forge {\r\n cd \/mnt\/server\r\n FORGE=$(jq -r '.minecraft.modLoaders[0].id' \/mnt\/server\/manifest.json | cut -d '-' -f2)\r\n MCVER=$(jq -r '.minecraft.version' \/mnt\/server\/manifest.json)\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\nfunction json_download_overrides {\r\n if [ -d \/mnt\/server\/overrides ]; then\r\n mv \/mnt\/server\/overrides\/mods\/* \/mnt\/server\/mods\/\r\n rmdir \/mnt\/server\/overrides\/mods\r\n mv \/mnt\/server\/overrides\/* \/mnt\/server\r\n rmdir \/mnt\/server\/overrides\r\n fi\r\n}\r\n\r\nfunction cfg_download_forge {\r\n dos2unix settings.cfg # In case the pack was distributed with Windows-style line endings in the cfg file\r\n MCVER=`grep 'MCVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n FORGE=`grep 'FORGEVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n \r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n echo -e ${FORGE_VERSION}\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\ninstall_required\r\nget_download\r\nif [ -f \/mnt\/server\/manifest.json ]; then\r\n json_download_prework\r\n json_download_mods\r\n json_download_overrides\r\n json_download_forge\r\nelif [ -f \/mnt\/server\/settings.cfg ]; then\r\n cfg_download_forge\r\nelse\r\n forge_install\r\n forge_cleanup\r\nfi", + "script": "#!\/bin\/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nmkdir -p \/mnt\/server\r\n\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq unzip\r\n}\r\n\r\nfunction get_download {\r\n # get json data to work with\r\n echo -e \"Curling the json for the modpack\"\r\n echo -e \"running: curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\"\r\n JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID})\r\n\r\n # if no modpack version is set or is set to latest\r\n if [ -z ${MODPACK_VERSION} ] || [ \"${MODPACK_VERSION}\" = \"latest\" ]; then\r\n echo -e \"Getting latest download url\"\r\n # parse data to get the download url\r\n DOWNLOAD_URL=$(echo -e ${JSON_DATA} | jq -r .latestFiles[0].downloadUrl)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n else\r\n echo -e \"Looking for download url for version ${MODPACK_VERSION}\"\r\n # parse files for version match\r\n FILES_JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\/files)\r\n # get element number to get the exact location in the json\r\n FILES_JSON_ELEMENT=$(echo -e ${FILES_JSON_DATA} | jq --arg VERSION \"${MODPACK_VERSION}\" '.[] | select(.displayName) | .displayName | contains($VERSION)' | grep -n true | cut -f1 -d: | tail -1)\r\n # if there wasn't a match default to latest\r\n if [ ! -z ${FILES_JSON_ELEMENT} ]; then\r\n echo -e \"No matching version found\"\r\n echo -e \"defaulting to latest\"\r\n DOWNLOAD_URL=$(echo -e ${FILES_JSON_DATA} | jq --arg ELEMENT \"${FILES_JSON_ELEMENT}\" '.[$ELEMENT|tonumber-1] | .downloadUrl')\r\n else\r\n echo -e \"Version match found\"\r\n DOWNLOAD_URL=$(echo -e ${JSON_DATA} | jq -r .latestFiles[0].downloadUrl)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n fi\r\n fi\r\n\r\n ## download modpack files\r\n cd \/mnt\/server\r\n echo \"Executing curl -L ${DOWNLOAD_URL} -o server.zip\"\r\n curl -L \"${DOWNLOAD_URL}\" -o server.zip\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction forge_install {\r\n echo -e \"\\nInstalling forge server using the installer jar file.\\n\"\r\n if [ -f \/mnt\/server\/*installer.jar ]; then\r\n java -jar *installer.jar --installServer\r\n else\r\n echo \"No forge installer found moving on.\"\r\n fi\r\n}\r\n\r\nfunction forge_cleanup {\r\n echo -e \"\\nDeleting installer jar file and cleaning up.\\n\"\r\n rm -rf *installer.jar\r\n if [ ! -f \/mnt\/server\/*universal.jar ]; then\r\n mv -v \/mnt\/server\/*\/* \/mnt\/server\/\r\n mv *universal.jar server.jar\r\n else\r\n mv *universal.jar server.jar\r\n fi\r\n}\r\n\r\nfunction json_download_prework {\r\n mkdir -p \/mnt\/server\/mods\r\n cd \/mnt\/server\/mods\r\n}\r\n\r\nfunction json_download_mods {\r\n MANIFEST=\/mnt\/server\/manifest.json\r\n for mod in $(jq -c '.files[]' ${MANIFEST} ); do\r\n projID=$(echo $mod | jq -r \".projectID\")\r\n fileID=$(echo $mod | jq -r \".fileID\")\r\n URL=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${projID}\/file\/${fileID}\/download-url)\r\n # this is saving everything as \/mnt\/server\/mods\/download\r\n echo \"Mod direct url: ${URL}\"\r\n curl -JLO \"${URL}\"\r\n done\r\n}\r\n\r\nfunction json_download_forge {\r\n cd \/mnt\/server\r\n FORGE=$(jq -r '.minecraft.modLoaders[0].id' \/mnt\/server\/manifest.json | cut -d '-' -f2)\r\n MCVER=$(jq -r '.minecraft.version' \/mnt\/server\/manifest.json)\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\nfunction json_download_overrides {\r\n if [ -d \/mnt\/server\/overrides ]; then\r\n mv \/mnt\/server\/overrides\/mods\/* \/mnt\/server\/mods\/\r\n rmdir \/mnt\/server\/overrides\/mods\r\n mv \/mnt\/server\/overrides\/* \/mnt\/server\r\n rmdir \/mnt\/server\/overrides\r\n fi\r\n}\r\n\r\nfunction cfg_download_forge {\r\n dos2unix settings.cfg # In case the pack was distributed with Windows-style line endings in the cfg file\r\n MCVER=`grep 'MCVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n FORGE=`grep 'FORGEVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n \r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n echo -e ${FORGE_VERSION}\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\ninstall_required\r\nget_download\r\nif [ -f \/mnt\/server\/manifest.json ]; then\r\n json_download_prework\r\n json_download_mods\r\n json_download_overrides\r\n json_download_forge\r\nelif [ -f \/mnt\/server\/settings.cfg ]; then\r\n cfg_download_forge\r\nelse\r\n forge_install\r\n forge_cleanup\r\nfi", "container": "openjdk:8-jdk-slim", "entrypoint": "bash" } From 1f4e06644c23b17fc6c27fb8054dbf9af59524f8 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sat, 16 Nov 2019 18:20:17 -0500 Subject: [PATCH 041/107] update default download link location --- .../forge/curseforge-generic/egg-curseforge-generic.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json b/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json index cf8b870b..6bec4389 100644 --- a/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json +++ b/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-11-15T15:58:47-05:00", + "exported_at": "2019-11-16T18:19:38-05:00", "name": "Curseforge Generic", "author": "parker@parkervcp.com", "description": "A generic egg for a forge modpack", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nmkdir -p \/mnt\/server\r\n\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq unzip\r\n}\r\n\r\nfunction get_download {\r\n # get json data to work with\r\n echo -e \"Curling the json for the modpack\"\r\n echo -e \"running: curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\"\r\n JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID})\r\n\r\n # if no modpack version is set or is set to latest\r\n if [ -z ${MODPACK_VERSION} ] || [ \"${MODPACK_VERSION}\" = \"latest\" ]; then\r\n echo -e \"Getting latest download url\"\r\n # parse data to get the download url\r\n DOWNLOAD_URL=$(echo -e ${JSON_DATA} | jq -r .latestFiles[0].downloadUrl)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n else\r\n echo -e \"Looking for download url for version ${MODPACK_VERSION}\"\r\n # parse files for version match\r\n FILES_JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\/files)\r\n # get element number to get the exact location in the json\r\n FILES_JSON_ELEMENT=$(echo -e ${FILES_JSON_DATA} | jq --arg VERSION \"${MODPACK_VERSION}\" '.[] | select(.displayName) | .displayName | contains($VERSION)' | grep -n true | cut -f1 -d: | tail -1)\r\n # if there wasn't a match default to latest\r\n if [ ! -z ${FILES_JSON_ELEMENT} ]; then\r\n echo -e \"No matching version found\"\r\n echo -e \"defaulting to latest\"\r\n DOWNLOAD_URL=$(echo -e ${FILES_JSON_DATA} | jq --arg ELEMENT \"${FILES_JSON_ELEMENT}\" '.[$ELEMENT|tonumber-1] | .downloadUrl')\r\n else\r\n echo -e \"Version match found\"\r\n DOWNLOAD_URL=$(echo -e ${JSON_DATA} | jq -r .latestFiles[0].downloadUrl)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n fi\r\n fi\r\n\r\n ## download modpack files\r\n cd \/mnt\/server\r\n echo \"Executing curl -L ${DOWNLOAD_URL} -o server.zip\"\r\n curl -L \"${DOWNLOAD_URL}\" -o server.zip\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction forge_install {\r\n echo -e \"\\nInstalling forge server using the installer jar file.\\n\"\r\n if [ -f \/mnt\/server\/*installer.jar ]; then\r\n java -jar *installer.jar --installServer\r\n else\r\n echo \"No forge installer found moving on.\"\r\n fi\r\n}\r\n\r\nfunction forge_cleanup {\r\n echo -e \"\\nDeleting installer jar file and cleaning up.\\n\"\r\n rm -rf *installer.jar\r\n if [ ! -f \/mnt\/server\/*universal.jar ]; then\r\n mv -v \/mnt\/server\/*\/* \/mnt\/server\/\r\n mv *universal.jar server.jar\r\n else\r\n mv *universal.jar server.jar\r\n fi\r\n}\r\n\r\nfunction json_download_prework {\r\n mkdir -p \/mnt\/server\/mods\r\n cd \/mnt\/server\/mods\r\n}\r\n\r\nfunction json_download_mods {\r\n MANIFEST=\/mnt\/server\/manifest.json\r\n for mod in $(jq -c '.files[]' ${MANIFEST} ); do\r\n projID=$(echo $mod | jq -r \".projectID\")\r\n fileID=$(echo $mod | jq -r \".fileID\")\r\n URL=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${projID}\/file\/${fileID}\/download-url)\r\n # this is saving everything as \/mnt\/server\/mods\/download\r\n echo \"Mod direct url: ${URL}\"\r\n curl -JLO \"${URL}\"\r\n done\r\n}\r\n\r\nfunction json_download_forge {\r\n cd \/mnt\/server\r\n FORGE=$(jq -r '.minecraft.modLoaders[0].id' \/mnt\/server\/manifest.json | cut -d '-' -f2)\r\n MCVER=$(jq -r '.minecraft.version' \/mnt\/server\/manifest.json)\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\nfunction json_download_overrides {\r\n if [ -d \/mnt\/server\/overrides ]; then\r\n mv \/mnt\/server\/overrides\/mods\/* \/mnt\/server\/mods\/\r\n rmdir \/mnt\/server\/overrides\/mods\r\n mv \/mnt\/server\/overrides\/* \/mnt\/server\r\n rmdir \/mnt\/server\/overrides\r\n fi\r\n}\r\n\r\nfunction cfg_download_forge {\r\n dos2unix settings.cfg # In case the pack was distributed with Windows-style line endings in the cfg file\r\n MCVER=`grep 'MCVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n FORGE=`grep 'FORGEVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n \r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n echo -e ${FORGE_VERSION}\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\ninstall_required\r\nget_download\r\nif [ -f \/mnt\/server\/manifest.json ]; then\r\n json_download_prework\r\n json_download_mods\r\n json_download_overrides\r\n json_download_forge\r\nelif [ -f \/mnt\/server\/settings.cfg ]; then\r\n cfg_download_forge\r\nelse\r\n forge_install\r\n forge_cleanup\r\nfi", + "script": "#!\/bin\/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nmkdir -p \/mnt\/server\r\n\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq unzip\r\n}\r\n\r\nfunction get_download {\r\n # get json data to work with\r\n echo -e \"Curling the json for the modpack\"\r\n echo -e \"running: curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\"\r\n JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID})\r\n\r\n # if no modpack version is set or is set to latest\r\n if [ -z ${MODPACK_VERSION} ] || [ \"${MODPACK_VERSION}\" = \"latest\" ]; then\r\n echo -e \"Getting latest download url\"\r\n # parse data to get the download url\r\n FILE_ID=$(echo -e ${JSON_DATA} | jq -r .defaultFileId)\r\n DOWNLOAD_URL=$(https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\/file\/${FILE_ID}\/download-url)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n else\r\n echo -e \"Looking for download url for version ${MODPACK_VERSION}\"\r\n # parse files for version match\r\n FILES_JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\/files)\r\n # get element number to get the exact location in the json\r\n FILES_JSON_ELEMENT=$(echo -e ${FILES_JSON_DATA} | jq --arg VERSION \"${MODPACK_VERSION}\" '.[] | select(.displayName) | .displayName | contains($VERSION)' | grep -n true | cut -f1 -d: | tail -1)\r\n # if there wasn't a match default to latest\r\n if [ ! -z ${FILES_JSON_ELEMENT} ]; then\r\n echo -e \"No matching version found\"\r\n echo -e \"defaulting to latest\"\r\n DOWNLOAD_URL=$(echo -e ${FILES_JSON_DATA} | jq --arg ELEMENT \"${FILES_JSON_ELEMENT}\" '.[$ELEMENT|tonumber-1] | .downloadUrl')\r\n else\r\n echo -e \"Version match found\"\r\n DOWNLOAD_URL=$(echo -e ${JSON_DATA} | jq -r .latestFiles[0].downloadUrl)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n fi\r\n fi\r\n\r\n ## download modpack files\r\n cd \/mnt\/server\r\n echo \"Executing curl -L ${DOWNLOAD_URL} -o server.zip\"\r\n curl -L \"${DOWNLOAD_URL}\" -o server.zip\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction forge_install {\r\n echo -e \"\\nInstalling forge server using the installer jar file.\\n\"\r\n if [ -f \/mnt\/server\/*installer.jar ]; then\r\n java -jar *installer.jar --installServer\r\n else\r\n echo \"No forge installer found moving on.\"\r\n fi\r\n}\r\n\r\nfunction forge_cleanup {\r\n echo -e \"\\nDeleting installer jar file and cleaning up.\\n\"\r\n rm -rf *installer.jar\r\n if [ ! -f \/mnt\/server\/*universal.jar ]; then\r\n mv -v \/mnt\/server\/*\/* \/mnt\/server\/\r\n mv *universal.jar server.jar\r\n else\r\n mv *universal.jar server.jar\r\n fi\r\n}\r\n\r\nfunction json_download_prework {\r\n mkdir -p \/mnt\/server\/mods\r\n cd \/mnt\/server\/mods\r\n}\r\n\r\nfunction json_download_mods {\r\n MANIFEST=\/mnt\/server\/manifest.json\r\n for mod in $(jq -c '.files[]' ${MANIFEST} ); do\r\n projID=$(echo $mod | jq -r \".projectID\")\r\n fileID=$(echo $mod | jq -r \".fileID\")\r\n URL=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${projID}\/file\/${fileID}\/download-url)\r\n # this is saving everything as \/mnt\/server\/mods\/download\r\n echo \"Mod direct url: ${URL}\"\r\n curl -JLO \"${URL}\"\r\n done\r\n}\r\n\r\nfunction json_download_forge {\r\n cd \/mnt\/server\r\n FORGE=$(jq -r '.minecraft.modLoaders[0].id' \/mnt\/server\/manifest.json | cut -d '-' -f2)\r\n MCVER=$(jq -r '.minecraft.version' \/mnt\/server\/manifest.json)\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\nfunction json_download_overrides {\r\n if [ -d \/mnt\/server\/overrides ]; then\r\n mv \/mnt\/server\/overrides\/mods\/* \/mnt\/server\/mods\/\r\n rmdir \/mnt\/server\/overrides\/mods\r\n mv \/mnt\/server\/overrides\/* \/mnt\/server\r\n rmdir \/mnt\/server\/overrides\r\n fi\r\n}\r\n\r\nfunction cfg_download_forge {\r\n dos2unix settings.cfg # In case the pack was distributed with Windows-style line endings in the cfg file\r\n MCVER=`grep 'MCVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n FORGE=`grep 'FORGEVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n \r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n echo -e ${FORGE_VERSION}\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\ninstall_required\r\nget_download\r\nif [ -f \/mnt\/server\/manifest.json ]; then\r\n json_download_prework\r\n json_download_mods\r\n json_download_overrides\r\n json_download_forge\r\nelif [ -f \/mnt\/server\/settings.cfg ]; then\r\n cfg_download_forge\r\nelse\r\n forge_install\r\n forge_cleanup\r\nfi", "container": "openjdk:8-jdk-slim", "entrypoint": "bash" } From 140b782e45ac94a4a7103abc0277a1f2d1b92b6a Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sun, 17 Nov 2019 11:02:39 -0500 Subject: [PATCH 042/107] update download url --- .../forge/curseforge-generic/egg-curseforge-generic.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json b/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json index 6bec4389..99325559 100644 --- a/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json +++ b/minecraft_java/forge/curseforge-generic/egg-curseforge-generic.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-11-16T18:19:38-05:00", + "exported_at": "2019-11-17T11:02:14-05:00", "name": "Curseforge Generic", "author": "parker@parkervcp.com", "description": "A generic egg for a forge modpack", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nmkdir -p \/mnt\/server\r\n\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq unzip\r\n}\r\n\r\nfunction get_download {\r\n # get json data to work with\r\n echo -e \"Curling the json for the modpack\"\r\n echo -e \"running: curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\"\r\n JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID})\r\n\r\n # if no modpack version is set or is set to latest\r\n if [ -z ${MODPACK_VERSION} ] || [ \"${MODPACK_VERSION}\" = \"latest\" ]; then\r\n echo -e \"Getting latest download url\"\r\n # parse data to get the download url\r\n FILE_ID=$(echo -e ${JSON_DATA} | jq -r .defaultFileId)\r\n DOWNLOAD_URL=$(https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\/file\/${FILE_ID}\/download-url)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n else\r\n echo -e \"Looking for download url for version ${MODPACK_VERSION}\"\r\n # parse files for version match\r\n FILES_JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\/files)\r\n # get element number to get the exact location in the json\r\n FILES_JSON_ELEMENT=$(echo -e ${FILES_JSON_DATA} | jq --arg VERSION \"${MODPACK_VERSION}\" '.[] | select(.displayName) | .displayName | contains($VERSION)' | grep -n true | cut -f1 -d: | tail -1)\r\n # if there wasn't a match default to latest\r\n if [ ! -z ${FILES_JSON_ELEMENT} ]; then\r\n echo -e \"No matching version found\"\r\n echo -e \"defaulting to latest\"\r\n DOWNLOAD_URL=$(echo -e ${FILES_JSON_DATA} | jq --arg ELEMENT \"${FILES_JSON_ELEMENT}\" '.[$ELEMENT|tonumber-1] | .downloadUrl')\r\n else\r\n echo -e \"Version match found\"\r\n DOWNLOAD_URL=$(echo -e ${JSON_DATA} | jq -r .latestFiles[0].downloadUrl)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n fi\r\n fi\r\n\r\n ## download modpack files\r\n cd \/mnt\/server\r\n echo \"Executing curl -L ${DOWNLOAD_URL} -o server.zip\"\r\n curl -L \"${DOWNLOAD_URL}\" -o server.zip\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction forge_install {\r\n echo -e \"\\nInstalling forge server using the installer jar file.\\n\"\r\n if [ -f \/mnt\/server\/*installer.jar ]; then\r\n java -jar *installer.jar --installServer\r\n else\r\n echo \"No forge installer found moving on.\"\r\n fi\r\n}\r\n\r\nfunction forge_cleanup {\r\n echo -e \"\\nDeleting installer jar file and cleaning up.\\n\"\r\n rm -rf *installer.jar\r\n if [ ! -f \/mnt\/server\/*universal.jar ]; then\r\n mv -v \/mnt\/server\/*\/* \/mnt\/server\/\r\n mv *universal.jar server.jar\r\n else\r\n mv *universal.jar server.jar\r\n fi\r\n}\r\n\r\nfunction json_download_prework {\r\n mkdir -p \/mnt\/server\/mods\r\n cd \/mnt\/server\/mods\r\n}\r\n\r\nfunction json_download_mods {\r\n MANIFEST=\/mnt\/server\/manifest.json\r\n for mod in $(jq -c '.files[]' ${MANIFEST} ); do\r\n projID=$(echo $mod | jq -r \".projectID\")\r\n fileID=$(echo $mod | jq -r \".fileID\")\r\n URL=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${projID}\/file\/${fileID}\/download-url)\r\n # this is saving everything as \/mnt\/server\/mods\/download\r\n echo \"Mod direct url: ${URL}\"\r\n curl -JLO \"${URL}\"\r\n done\r\n}\r\n\r\nfunction json_download_forge {\r\n cd \/mnt\/server\r\n FORGE=$(jq -r '.minecraft.modLoaders[0].id' \/mnt\/server\/manifest.json | cut -d '-' -f2)\r\n MCVER=$(jq -r '.minecraft.version' \/mnt\/server\/manifest.json)\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\nfunction json_download_overrides {\r\n if [ -d \/mnt\/server\/overrides ]; then\r\n mv \/mnt\/server\/overrides\/mods\/* \/mnt\/server\/mods\/\r\n rmdir \/mnt\/server\/overrides\/mods\r\n mv \/mnt\/server\/overrides\/* \/mnt\/server\r\n rmdir \/mnt\/server\/overrides\r\n fi\r\n}\r\n\r\nfunction cfg_download_forge {\r\n dos2unix settings.cfg # In case the pack was distributed with Windows-style line endings in the cfg file\r\n MCVER=`grep 'MCVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n FORGE=`grep 'FORGEVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n \r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n echo -e ${FORGE_VERSION}\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\ninstall_required\r\nget_download\r\nif [ -f \/mnt\/server\/manifest.json ]; then\r\n json_download_prework\r\n json_download_mods\r\n json_download_overrides\r\n json_download_forge\r\nelif [ -f \/mnt\/server\/settings.cfg ]; then\r\n cfg_download_forge\r\nelse\r\n forge_install\r\n forge_cleanup\r\nfi", + "script": "#!\/bin\/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nmkdir -p \/mnt\/server\r\n\r\nfunction install_required {\r\n apt update\r\n apt install -y curl jq unzip\r\n}\r\n\r\nfunction get_download {\r\n # get json data to work with\r\n echo -e \"Curling the json for the modpack\"\r\n echo -e \"running: curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\"\r\n JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID})\r\n\r\n # if no modpack version is set or is set to latest\r\n if [ -z ${MODPACK_VERSION} ] || [ \"${MODPACK_VERSION}\" = \"latest\" ]; then\r\n echo -e \"Getting latest download url\"\r\n # parse data to get the download url\r\n FILE_ID=$(echo -e ${JSON_DATA} | jq -r .defaultFileId)\r\n DOWNLOAD_URL=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\/file\/${FILE_ID}\/download-url)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n else\r\n echo -e \"Looking for download url for version ${MODPACK_VERSION}\"\r\n # parse files for version match\r\n FILES_JSON_DATA=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${MODPACK_ID}\/files)\r\n # get element number to get the exact location in the json\r\n FILES_JSON_ELEMENT=$(echo -e ${FILES_JSON_DATA} | jq --arg VERSION \"${MODPACK_VERSION}\" '.[] | select(.displayName) | .displayName | contains($VERSION)' | grep -n true | cut -f1 -d: | tail -1)\r\n # if there wasn't a match default to latest\r\n if [ ! -z ${FILES_JSON_ELEMENT} ]; then\r\n echo -e \"No matching version found\"\r\n echo -e \"defaulting to latest\"\r\n DOWNLOAD_URL=$(echo -e ${FILES_JSON_DATA} | jq --arg ELEMENT \"${FILES_JSON_ELEMENT}\" '.[$ELEMENT|tonumber-1] | .downloadUrl')\r\n else\r\n echo -e \"Version match found\"\r\n DOWNLOAD_URL=$(echo -e ${JSON_DATA} | jq -r .latestFiles[0].downloadUrl)\r\n echo -e \"Download url set to ${DOWNLOAD_URL}\"\r\n fi\r\n fi\r\n\r\n ## download modpack files\r\n cd \/mnt\/server\r\n echo \"Executing curl -L ${DOWNLOAD_URL} -o server.zip\"\r\n curl -L \"${DOWNLOAD_URL}\" -o server.zip\r\n unzip -o server.zip\r\n rm -rf server.zip\r\n}\r\n\r\nfunction forge_install {\r\n echo -e \"\\nInstalling forge server using the installer jar file.\\n\"\r\n if [ -f \/mnt\/server\/*installer.jar ]; then\r\n java -jar *installer.jar --installServer\r\n else\r\n echo \"No forge installer found moving on.\"\r\n fi\r\n}\r\n\r\nfunction forge_cleanup {\r\n echo -e \"\\nDeleting installer jar file and cleaning up.\\n\"\r\n rm -rf *installer.jar\r\n if [ ! -f \/mnt\/server\/*universal.jar ]; then\r\n mv -v \/mnt\/server\/*\/* \/mnt\/server\/\r\n mv *universal.jar server.jar\r\n else\r\n mv *universal.jar server.jar\r\n fi\r\n}\r\n\r\nfunction json_download_prework {\r\n mkdir -p \/mnt\/server\/mods\r\n cd \/mnt\/server\/mods\r\n}\r\n\r\nfunction json_download_mods {\r\n MANIFEST=\/mnt\/server\/manifest.json\r\n for mod in $(jq -c '.files[]' ${MANIFEST} ); do\r\n projID=$(echo $mod | jq -r \".projectID\")\r\n fileID=$(echo $mod | jq -r \".fileID\")\r\n URL=$(curl -sSL https:\/\/addons-ecs.forgesvc.net\/api\/v2\/addon\/${projID}\/file\/${fileID}\/download-url)\r\n # this is saving everything as \/mnt\/server\/mods\/download\r\n echo \"Mod direct url: ${URL}\"\r\n curl -JLO \"${URL}\"\r\n done\r\n}\r\n\r\nfunction json_download_forge {\r\n cd \/mnt\/server\r\n FORGE=$(jq -r '.minecraft.modLoaders[0].id' \/mnt\/server\/manifest.json | cut -d '-' -f2)\r\n MCVER=$(jq -r '.minecraft.version' \/mnt\/server\/manifest.json)\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\nfunction json_download_overrides {\r\n if [ -d \/mnt\/server\/overrides ]; then\r\n mv \/mnt\/server\/overrides\/mods\/* \/mnt\/server\/mods\/\r\n rmdir \/mnt\/server\/overrides\/mods\r\n mv \/mnt\/server\/overrides\/* \/mnt\/server\r\n rmdir \/mnt\/server\/overrides\r\n fi\r\n}\r\n\r\nfunction cfg_download_forge {\r\n dos2unix settings.cfg # In case the pack was distributed with Windows-style line endings in the cfg file\r\n MCVER=`grep 'MCVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n FORGE=`grep 'FORGEVER' settings.cfg | sed 's\/;\/\/g' | cut -d '=' -f 2-`\r\n\r\n\tif [ ${MCVER} == \"1.7.10\" ] || [ ${MCVER} == \"1.8.9\" ]; then\r\n\t\tFORGE=\"${FORGE}-${MCVER}\"\r\n\tfi\r\n \r\n FORGE_VERSION=\"${MCVER}-${FORGE}\"\r\n echo -e ${FORGE_VERSION}\r\n \r\n echo -e \"\\nDownloading Forge Version $FORGE_VERSION\\n\"\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-installer.jar -o installer.jar\r\n echo -r \"running curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O \\n\"\r\n curl -sS https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/$FORGE_VERSION\/forge-$FORGE_VERSION-universal.jar -O\r\n java -jar installer.jar --installServer\r\n mv *universal.jar server.jar\r\n rm installer.jar\r\n}\r\n\r\ninstall_required\r\nget_download\r\nif [ -f \/mnt\/server\/manifest.json ]; then\r\n json_download_prework\r\n json_download_mods\r\n json_download_overrides\r\n json_download_forge\r\nelif [ -f \/mnt\/server\/settings.cfg ]; then\r\n cfg_download_forge\r\nelse\r\n forge_install\r\n forge_cleanup\r\nfi", "container": "openjdk:8-jdk-slim", "entrypoint": "bash" } From 441c48212dda4f39b4d9f9224ad3a5ebcd6bd589 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sun, 1 Dec 2019 20:04:10 -0500 Subject: [PATCH 043/107] add steamcmd install script add a steamcmd install script for people to use. --- scripts/steamcmd_installer.sh | 37 +++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 scripts/steamcmd_installer.sh diff --git a/scripts/steamcmd_installer.sh b/scripts/steamcmd_installer.sh new file mode 100644 index 00000000..e99847e4 --- /dev/null +++ b/scripts/steamcmd_installer.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# steamcmd Base Installation Script +# +# Server Files: /mnt/server +# Image to install with is 'ubuntu:18.04' +apt -y update +apt -y --no-install-recommends install curl lib32gcc1 ca-certificates + +## just in case someone removed the defaults. +if [ "${STEAM_USER}" == "" ]; then + STEAM_USER=anonymous + STEAM_PASS="" + STEAM_AUTH="" +fi + +## download and install steamcmd +cd /tmp +mkdir -p /mnt/server/steamcmd +curl -sSL -o steamcmd.tar.gz http://media.steampowered.com/installer/steamcmd_linux.tar.gz +tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd +cd /mnt/server/steamcmd + +# SteamCMD fails otherwise for some reason, even running as root. +# This is changed at the end of the install process anyways. +chown -R root:root /mnt +export HOME=/mnt/server + +## install game using steamcmd +./steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir /mnt/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. + +## set up 32 bit libraries +mkdir -p /mnt/server/.steam/sdk32 +cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so + +## set up 64 bit libraries +mkdir -p /mnt/server/.steam/sdk64 +cp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so \ No newline at end of file From 3b378af9bf1d413488ef4cb49a692c97a7ed970b Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sun, 1 Dec 2019 20:06:13 -0500 Subject: [PATCH 044/107] update forge install script Update forge enhanced install script. --- minecraft_java/forge/forge/egg-forge-enhanced.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/minecraft_java/forge/forge/egg-forge-enhanced.json b/minecraft_java/forge/forge/egg-forge-enhanced.json index 06ce8b5c..c97fa8a6 100644 --- a/minecraft_java/forge/forge/egg-forge-enhanced.json +++ b/minecraft_java/forge/forge/egg-forge-enhanced.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-08-25T00:22:02-04:00", + "exported_at": "2019-12-01T20:05:28-05:00", "name": "Forge Enhanced", "author": "parker@parkervcp.com", "description": "Minecraft Forge Server. Minecraft Forge is a modding API (Application Programming Interface), which makes it easier to create mods, and also make sure mods are compatible with each other.", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl jq\r\n\r\necho -e \"minecraft version: ${MC_VERSION}\"\r\necho -e \"build type: ${BUILD_TYPE}\"\r\n\r\nif [ \"$MC_VERSION\" == \"latest\" ]; then\r\n echo -e \"getting latest recommended version of forge.\"\r\n LATEST_RECOMMENDED=$(curl -s https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/promotions_slim.json | jq -r '.promos.recommended')\r\n MC_VERSION=$(curl -s https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/promotions_slim.json | jq --arg LATEST \"$LATEST_RECOMMENDED\" '.promos | to_entries[] | select(.value==$LATEST)' | jq -rs '.[0].key' | sed 's\/-recommended\/\/g')\r\n\tBUILD_TYPE=recommended\r\n\t\r\n\techo -e \"minecraft version: ${MC_VERSION}\"\r\n\techo -e \"build type: ${BUILD_TYPE}\"\r\nfi\r\n\r\n## some variables for getting versions and things\r\nFILE_SITE=$(curl -s https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/promotions_slim.json | jq -r '.homepage')\r\nVERSION_KEY=$(curl -s https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/promotions_slim.json | jq -r --arg MC_VERSION \"$MC_VERSION\" --arg BUILD_TYPE \"$BUILD_TYPE\" '.promos | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains($BUILD_TYPE))')\r\n\r\n## locating the forge version\r\nif [ \"${VERSION_KEY}\" == \"\" ] && [ \"${BUILD_TYPE}\" == \"recommended\" ]; then\r\n echo -e \"dropping back to latest from recommended due to there not being a recommended version of forge for the mc version requested.\"\r\n VERSION_KEY=$(curl -s https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/promotions_slim.json | jq -r --arg MC_VERSION \"$MC_VERSION\" '.promos | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains(\"latest\"))')\r\nfi\r\n\r\n## Error if the mc version set wasn't valid.\r\nif [ \"${VERSION_KEY}\" == \"\" ]; then\r\n\techo -e \"The install failed because there is no valid version of forge for the version on minecraft selected.\"\r\n\texit 1\r\nfi\r\n\r\nFORGE_VERSION=$(curl -s https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/promotions_slim.json | jq -r --arg VERSION_KEY \"$VERSION_KEY\" '.promos | .[$VERSION_KEY]')\r\n\r\nif [ \"$MC_VERSION\" == \"1.7.10\" ] || [ \"$MC_VERSION\" == \"1.8.9\" ]; then\r\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\r\nelse\r\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}\r\nfi\r\n\r\n#Go into main direction\r\ncd \/mnt\/server\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! $SERVER_JARFILE = *\\.jar ]]; then\r\n SERVER_JARFILE=\"$SERVER_JARFILE.jar\"\r\nfi\r\n\r\n#Downloading jars\r\necho -e \"Downloading forge version ${FORGE_VERSION}\"\r\ncurl -s -o installer.jar -sS ${DOWNLOAD_LINK}-installer.jar\r\ncurl -s -o $SERVER_JARFILE -sS ${DOWNLOAD_LINK}-universal.jar\r\n\r\n#Checking if downloaded jars exist\r\nif [ ! -f .\/installer.jar ] || [ ! -f .\/$SERVER_JARFILE ]; then\r\n echo \"!!! Error by downloading forge version ${FORGE_VERSION} !!!\"\r\n exit\r\nfi\r\n\r\n#Installing server\r\necho -e \"Installing forge server.\\n\"\r\njava -jar installer.jar --installServer\r\n\r\n#Deleting installer.jar\r\necho -e \"Deleting installer.jar file.\\n\"\r\nrm -rf installer.jar", + "script": "#!\/bin\/bash\r\n# Forge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y curl jq\r\n\r\necho -e \"minecraft version: ${MC_VERSION}\"\r\necho -e \"build type: ${BUILD_TYPE}\"\r\n\r\nJSON_DATA=$(curl -sSL https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/promotions_slim.json)\r\n\r\nif [ \"${MC_VERSION}\" == \"latest\" ] || [ \"${MC_VERSION}\" == \"\" ] ; then\r\n echo -e \"getting latest recommended version of forge.\"\r\n MC_VERSION=$(echo -e ${JSON_DATA} | jq -r '.promos | del(.\"latest-1.7.10\") | del(.\"1.7.10-latest-1.7.10\") | to_entries[] | .key | select(contains(\"recommended\")) | split(\"-\")[0]' | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tail -1)\r\n\tBUILD_TYPE=recommended\r\n\t\r\n\techo -e \"minecraft version: ${MC_VERSION}\"\r\n\techo -e \"build type: ${BUILD_TYPE}\"\r\nfi\r\n\r\n## some variables for getting versions and things\r\nFILE_SITE=$(echo -e ${JSON_DATA} | jq -r '.homepage')\r\nVERSION_KEY=$(echo -e ${JSON_DATA} | jq -r --arg MC_VERSION \"${MC_VERSION}\" --arg BUILD_TYPE \"${BUILD_TYPE}\" '.promos | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains($BUILD_TYPE))')\r\n\r\n## locating the forge version\r\nif [ \"${VERSION_KEY}\" == \"\" ] && [ \"${BUILD_TYPE}\" == \"recommended\" ]; then\r\n echo -e \"dropping back to latest from recommended due to there not being a recommended version of forge for the mc version requested.\"\r\n VERSION_KEY=$(echo -e ${JSON_DATA} | jq -r --arg MC_VERSION \"${MC_VERSION}\" '.promos | to_entries[] | .key | select(contains($MC_VERSION)) | select(contains(\"latest\"))')\r\nfi\r\n\r\n## Error if the mc version set wasn't valid.\r\nif [ \"${VERSION_KEY}\" == \"\" ]; then\r\n\techo -e \"The install failed because there is no valid version of forge for the version on minecraft selected.\"\r\n\texit 1\r\nfi\r\n\r\nFORGE_VERSION=$(echo -e ${JSON_DATA} | jq -r --arg VERSION_KEY \"$VERSION_KEY\" '.promos | .[$VERSION_KEY]')\r\n\r\nif [ \"${MC_VERSION}\" == \"1.7.10\" ] || [ \"${MC_VERSION}\" == \"1.8.9\" ]; then\r\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}-${MC_VERSION}\r\nelse\r\n DOWNLOAD_LINK=${FILE_SITE}${MC_VERSION}-${FORGE_VERSION}\/forge-${MC_VERSION}-${FORGE_VERSION}\r\nfi\r\n\r\n#Go into main direction\r\ncd \/mnt\/server\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! $SERVER_JARFILE = *\\.jar ]]; then\r\n SERVER_JARFILE=\"$SERVER_JARFILE.jar\"\r\nfi\r\n\r\n#Downloading jars\r\necho -e \"Downloading forge version ${FORGE_VERSION}\"\r\nif [ ! -z \"${DOWNLOAD_LINK}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}-installer.jar; then\r\n echo -e \"installer jar download link is valid.\"\r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_LINK}-universal.jar; then\r\n echo -e \"universal jar download link is valid.\"\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 3\r\n fi\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\ncurl -s -o installer.jar -sS ${DOWNLOAD_LINK}-installer.jar\r\ncurl -s -o $SERVER_JARFILE -sS ${DOWNLOAD_LINK}-universal.jar\r\n\r\n#Checking if downloaded jars exist\r\nif [ ! -f .\/installer.jar ] || [ ! -f .\/$SERVER_JARFILE ]; then\r\n echo \"!!! Error by downloading forge version ${FORGE_VERSION} !!!\"\r\n exit\r\nfi\r\n\r\n#Installing server\r\necho -e \"Installing forge server.\\n\"\r\njava -jar installer.jar --installServer\r\n\r\n#Deleting installer.jar\r\necho -e \"Deleting installer.jar file.\\n\"\r\nrm -rf installer.jar", "container": "openjdk:8-jdk-slim", "entrypoint": "bash" } From bc042cc92bf4b71d4a80c545f397cd34756b61c3 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Thu, 5 Dec 2019 19:00:08 -0500 Subject: [PATCH 045/107] Fix config download link --- database/mariadb/egg-maria-d-b.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/mariadb/egg-maria-d-b.json b/database/mariadb/egg-maria-d-b.json index 8dd3015d..13b75295 100644 --- a/database/mariadb/egg-maria-d-b.json +++ b/database/mariadb/egg-maria-d-b.json @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# MariaDB Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nset -x\r\n\r\necho -e \"installing dependencies\"\r\napt-get -y update\r\napt-get -y install curl\r\n\r\n## add user\r\necho -e \"adding container user\"\r\nuseradd -d \/home\/container -m container -s \/bin\/bash\r\n\r\n## own server to container user\r\nchown container: \/mnt\/server\/\r\n\r\n## run install script as user\r\necho -e \"getting my.conf\"\r\nif [ -f \/mnt\/server\/.my.cnf ]; then\r\n echo -e \"moving current config for install\"\r\n mv \/mnt\/server\/.my.cnf \/mnt\/server\/custom.my.cnf\r\n runuser -l container -c 'curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/mariadb\/install.my.cnf > \/mnt\/server\/.my.cnf'\r\nelse\r\n runuser -l container -c 'curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/mariadb\/install.my.cnf > \/mnt\/server\/.my.cnf'\r\nfi\r\n\r\n## mkdir and install db\r\necho -e \"installing mysql database\"\r\nrunuser -l container -c 'mkdir -p \/mnt\/server\/run\/mysqld'\r\nrunuser -l container -c 'mkdir -p \/mnt\/server\/log\/mysql'\r\nrunuser -l container -c 'mkdir \/mnt\/server\/mysql'\r\n\r\nrunuser -l container -c 'mysql_install_db --defaults-file=\/mnt\/server\/.my.cnf'\r\n\r\nif [ -f \/mnt\/server\/custom.my.cnf ]; then\r\n echo -e \"moving current config back in place\"\r\n mv \/mnt\/server\/custom.my.cnf \/mnt\/server\/.my.cnf\r\nelse\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/add\/mariadb\/database\/mariadb\/my.cnf > \/mnt\/server\/.my.cnf\r\nfi\r\n\r\necho -e \"install complete\"\r\n\r\nexit", + "script": "#!\/bin\/bash\r\n# MariaDB Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nset -x\r\n\r\necho -e \"installing dependencies\"\r\napt-get -y update\r\napt-get -y install curl\r\n\r\n## add user\r\necho -e \"adding container user\"\r\nuseradd -d \/home\/container -m container -s \/bin\/bash\r\n\r\n## own server to container user\r\nchown container: \/mnt\/server\/\r\n\r\n## run install script as user\r\necho -e \"getting my.conf\"\r\nif [ -f \/mnt\/server\/.my.cnf ]; then\r\n echo -e \"moving current config for install\"\r\n mv \/mnt\/server\/.my.cnf \/mnt\/server\/custom.my.cnf\r\n runuser -l container -c 'curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/mariadb\/install.my.cnf > \/mnt\/server\/.my.cnf'\r\nelse\r\n runuser -l container -c 'curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/mariadb\/install.my.cnf > \/mnt\/server\/.my.cnf'\r\nfi\r\n\r\n## mkdir and install db\r\necho -e \"installing mysql database\"\r\nrunuser -l container -c 'mkdir -p \/mnt\/server\/run\/mysqld'\r\nrunuser -l container -c 'mkdir -p \/mnt\/server\/log\/mysql'\r\nrunuser -l container -c 'mkdir \/mnt\/server\/mysql'\r\n\r\nrunuser -l container -c 'mysql_install_db --defaults-file=\/mnt\/server\/.my.cnf'\r\n\r\nif [ -f \/mnt\/server\/custom.my.cnf ]; then\r\n echo -e \"moving current config back in place\"\r\n mv \/mnt\/server\/custom.my.cnf \/mnt\/server\/.my.cnf\r\nelse\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/mariadb\/database\/mariadb\/my.cnf > \/mnt\/server\/.my.cnf\r\nfi\r\n\r\necho -e \"install complete\"\r\n\r\nexit", "container": "mariadb:10.3", "entrypoint": "bash" } From 123e8e037ee830f95ca0c83fb95a3b18d5042919 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sun, 8 Dec 2019 10:17:37 -0500 Subject: [PATCH 046/107] Update ark install script use the new steamcmd install script. --- .../egg-ark--survival-evolved.json | 39 +++++++------------ 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/steamcmd_servers/ark_survival_evolved/egg-ark--survival-evolved.json b/steamcmd_servers/ark_survival_evolved/egg-ark--survival-evolved.json index 1017fefb..48cb562d 100644 --- a/steamcmd_servers/ark_survival_evolved/egg-ark--survival-evolved.json +++ b/steamcmd_servers/ark_survival_evolved/egg-ark--survival-evolved.json @@ -3,12 +3,12 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-10-29T20:51:32+01:00", + "exported_at": "2019-12-08T10:15:59-05:00", "name": "Ark: Survival Evolved", "author": "dev@shepper.fr", "description": "As a man or woman stranded, naked, freezing, and starving on the unforgiving shores of a mysterious island called ARK, use your skill and cunning to kill or tame and ride the plethora of leviathan dinosaurs and other primeval creatures roaming the land. Hunt, harvest resources, craft items, grow crops, research technologies, and build shelters to withstand the elements and store valuables, all while teaming up with (or preying upon) hundreds of other players to survive, dominate... and escape! \u2014 Gamepedia: ARK", "image": "quay.io\/pterodactyl\/core:source", - "startup": "\"cd ShooterGame\/Binaries\/Linux && .\/ShooterGameServer {{SERVER_MAP}}?listen?SessionName='{{SESSION_NAME}}'?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?Port={{PORT}}?MaxPlayers={{SERVER_MAX_PLAYERS}}?RCONPort={{RCON_PORT}}?QueryPort={{QUERY_PORT}}?RCONEnabled={{ENABLE_RCON}} -server -log\"", + "startup": "\"cd ShooterGame\/Binaries\/Linux && .\/ShooterGameServer {{SERVER_MAP}}?listen?SessionName='{{SESSION_NAME}}'?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?Port={{PORT}}?RCONPort={{RCON_PORT}}?QueryPort={{QUERY_PORT}}?RCONEnabled={{ENABLE_RCON}} -server -log\"", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Setting breakpad minidump AppID = 346110\",\r\n \"userInteraction\": []\r\n}", @@ -17,12 +17,21 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# ARK: Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\n\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\n\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update 376030 +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\ncd \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\n\r\nln -sf ..\/..\/..\/..\/..\/Steam\/steamapps steamapps\r\n\r\ncd \/mnt\/server", - "container": "ubuntu:16.04", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends --no-install-suggests install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## ARK specific setup.\r\n## copy steamcmd folder to the thirdparty folder for ark\r\ncp -r $(pwd) \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux", + "container": "ubuntu:18.04", "entrypoint": "bash" } }, "variables": [ + { + "name": "App ID", + "description": "ARK steam app id for auto updates. Leave blank to avoid auto update.", + "env_variable": "SRCDS_APPID", + "default_value": "376030", + "user_viewable": 1, + "user_editable": 0, + "rules": "nullable|numeric" + }, { "name": "Server Name", "description": "ARK server name", @@ -48,7 +57,7 @@ "default_value": "", "user_viewable": 1, "user_editable": 1, - "rules": "nullable|alpha_dash|between:1,100" + "rules": "nullable|alpha_dash|between:1,100" }, { "name": "Server Port", @@ -86,24 +95,6 @@ "user_editable": 1, "rules": "required|numeric" }, - { - "name": "Maximum Players", - "description": "Specifies the maximum number of players that can play on the server simultaneously.", - "env_variable": "SERVER_MAX_PLAYERS", - "default_value": "20", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|numeric|digits_between:1,4" - }, - { - "name": "App ID", - "description": "ARK steam app id for auto updates. Leave blank to avoid auto update.", - "env_variable": "SRCDS_APPID", - "default_value": "376030", - "user_viewable": 1, - "user_editable": 0, - "rules": "nullable|numeric" - }, { "name": "Server Map", "description": "Available Maps: TheIsland, TheCenter, Ragnarok, ScorchedEarth_P, Aberration_P, Extinction", @@ -114,4 +105,4 @@ "rules": "required|string|max:20" } ] -} +} \ No newline at end of file From 3f91a4d7b6c2ca3d1a8c80315261b23453702afb Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sun, 8 Dec 2019 10:18:25 -0500 Subject: [PATCH 047/107] update steamcmd script Use the newer steamcmd zip. --- scripts/steamcmd_installer.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/steamcmd_installer.sh b/scripts/steamcmd_installer.sh index e99847e4..876b2ab0 100644 --- a/scripts/steamcmd_installer.sh +++ b/scripts/steamcmd_installer.sh @@ -16,7 +16,7 @@ fi ## download and install steamcmd cd /tmp mkdir -p /mnt/server/steamcmd -curl -sSL -o steamcmd.tar.gz http://media.steampowered.com/installer/steamcmd_linux.tar.gz +curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd cd /mnt/server/steamcmd @@ -26,7 +26,7 @@ chown -R root:root /mnt export HOME=/mnt/server ## install game using steamcmd -./steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir /mnt/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. +./steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir /mnt/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6 ## set up 32 bit libraries mkdir -p /mnt/server/.steam/sdk32 From a7c9353fe44cbfe33979ac425ef21a9ab4836c6d Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sun, 8 Dec 2019 11:10:53 -0500 Subject: [PATCH 048/107] update stock egg install scripts --- .../egg-ark--survival-evolved.json | 99 ++++++++++++------- ...egg-counter--strike--global-offensive.json | 8 +- .../egg-custom-source-engine-game.json | 8 +- stock-eggs/source-engine/egg-garrys-mod.json | 10 +- stock-eggs/source-engine/egg-insurgency.json | 10 +- .../source-engine/egg-team-fortress2.json | 6 +- 6 files changed, 84 insertions(+), 57 deletions(-) diff --git a/stock-eggs/source-engine/egg-ark--survival-evolved.json b/stock-eggs/source-engine/egg-ark--survival-evolved.json index ad08c705..1017fefb 100644 --- a/stock-eggs/source-engine/egg-ark--survival-evolved.json +++ b/stock-eggs/source-engine/egg-ark--survival-evolved.json @@ -3,26 +3,35 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-07-07T06:35:40-04:00", + "exported_at": "2018-10-29T20:51:32+01:00", "name": "Ark: Survival Evolved", - "author": "support@pterodactyl.io", + "author": "dev@shepper.fr", "description": "As a man or woman stranded, naked, freezing, and starving on the unforgiving shores of a mysterious island called ARK, use your skill and cunning to kill or tame and ride the plethora of leviathan dinosaurs and other primeval creatures roaming the land. Hunt, harvest resources, craft items, grow crops, research technologies, and build shelters to withstand the elements and store valuables, all while teaming up with (or preying upon) hundreds of other players to survive, dominate... and escape! \u2014 Gamepedia: ARK", "image": "quay.io\/pterodactyl\/core:source", - "startup": ".\/ShooterGame\/Binaries\/Linux\/ShooterGameServer TheIsland?listen?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?Port={{SERVER_PORT}}?MaxPlayers={{SERVER_MAX_PLAYERS}}?QueryPort={{QUERY_PORT}}?bRawScokets?RCONPort={{RCON_PORT}}", + "startup": "\"cd ShooterGame\/Binaries\/Linux && .\/ShooterGameServer {{SERVER_MAP}}?listen?SessionName='{{SESSION_NAME}}'?ServerPassword={{ARK_PASSWORD}}?ServerAdminPassword={{ARK_ADMIN_PASSWORD}}?Port={{PORT}}?MaxPlayers={{SERVER_MAX_PLAYERS}}?RCONPort={{RCON_PORT}}?QueryPort={{QUERY_PORT}}?RCONEnabled={{ENABLE_RCON}} -server -log\"", "config": { - "files": "{\r\n \"ShooterGame\/Saved\/Config\/LinuxServer\/GameUserSettings.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"SessionName=\": \"SessionName={{server.build.env.SESSION_NAME}}\",\r\n \"RCONPort=\": \"RCONPort={{server.build.env.RCON_PORT}}\"\r\n }\r\n }\r\n}", + "files": "{}", "startup": "{\r\n \"done\": \"Setting breakpad minidump AppID = 346110\",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", - "stop": "quit" + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# ARK: Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\n\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\n\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\nHOME=\/mnt\/server\r\nln -s ~\/Steam\/steamapps ~\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux", - "container": "ubuntu:18.04", + "script": "#!\/bin\/bash\r\n# ARK: Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\r\nmkdir -p \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\n\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\n\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update 376030 +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\ncd \/mnt\/server\/Engine\/Binaries\/ThirdParty\/SteamCMD\/Linux\r\n\r\nln -sf ..\/..\/..\/..\/..\/Steam\/steamapps steamapps\r\n\r\ncd \/mnt\/server", + "container": "ubuntu:16.04", "entrypoint": "bash" } }, "variables": [ + { + "name": "Server Name", + "description": "ARK server name", + "env_variable": "SESSION_NAME", + "default_value": "ARK SERVER", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:128" + }, { "name": "Server Password", "description": "If specified, players must provide this password to join the server.", @@ -36,10 +45,46 @@ "name": "Admin Password", "description": "If specified, players must provide this password (via the in-game console) to gain access to administrator commands on the server.", "env_variable": "ARK_ADMIN_PASSWORD", - "default_value": "APa55word", + "default_value": "", "user_viewable": 1, "user_editable": 1, - "rules": "nullable|alpha_dash|between:1,100" + "rules": "nullable|alpha_dash|between:1,100" + }, + { + "name": "Server Port", + "description": "ARK server port used by client.", + "env_variable": "PORT", + "default_value": "7777", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|numeric" + }, + { + "name": "Use Rcon", + "description": "Enable or disable rcon system. (true or false)", + "env_variable": "ENABLE_RCON", + "default_value": "false", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:5" + }, + { + "name": "Rcon Port", + "description": "ARK rcon port used by rcon tools.", + "env_variable": "RCON_PORT", + "default_value": "27020", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|numeric" + }, + { + "name": "Query Port", + "description": "ARK query port used by steam server browser and ark client server browser.", + "env_variable": "QUERY_PORT", + "default_value": "27015", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|numeric" }, { "name": "Maximum Players", @@ -51,40 +96,22 @@ "rules": "required|numeric|digits_between:1,4" }, { - "name": "Game ID", - "description": "The ID corresponding to the game to download and run using SRCDS.", + "name": "App ID", + "description": "ARK steam app id for auto updates. Leave blank to avoid auto update.", "env_variable": "SRCDS_APPID", "default_value": "376030", - "user_viewable": 0, - "user_editable": 0, - "rules": "required|string|max:20" - }, - { - "name": "Query Port", - "description": "This is the steam query port.", - "env_variable": "QUERY_PORT", - "default_value": "27015", "user_viewable": 1, "user_editable": 0, - "rules": "required|string|max:20" + "rules": "nullable|numeric" }, { - "name": "Session Name", - "description": "The name that shows up in the server list", - "env_variable": "SESSION_NAME", - "default_value": "ARK Server", + "name": "Server Map", + "description": "Available Maps: TheIsland, TheCenter, Ragnarok, ScorchedEarth_P, Aberration_P, Extinction", + "env_variable": "SERVER_MAP", + "default_value": "TheIsland", "user_viewable": 1, "user_editable": 1, - "rules": "required|string|max:64" - }, - { - "name": "RCON Port", - "description": "This is the rcon port for the server", - "env_variable": "RCON_PORT", - "default_value": "27020", - "user_viewable": 1, - "user_editable": 0, "rules": "required|string|max:20" } ] -} \ No newline at end of file +} diff --git a/stock-eggs/source-engine/egg-counter--strike--global-offensive.json b/stock-eggs/source-engine/egg-counter--strike--global-offensive.json index ad921025..191aa99e 100644 --- a/stock-eggs/source-engine/egg-counter--strike--global-offensive.json +++ b/stock-eggs/source-engine/egg-counter--strike--global-offensive.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-06-19T07:46:06-04:00", + "exported_at": "2019-12-08T10:52:19-05:00", "name": "Counter-Strike: Global Offensive", "author": "support@pterodactyl.io", "description": "Counter-Strike: Global Offensive is a multiplayer first-person shooter video game developed by Hidden Path Entertainment and Valve Corporation.", @@ -17,8 +17,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\n# CSGO Installation Script\n#\n# Server Files: \/mnt\/server\napt -y update\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\n\ncd \/tmp\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\n\nmkdir -p \/mnt\/server\/steamcmd\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\ncd \/mnt\/server\/steamcmd\n\n# SteamCMD fails otherwise for some reason, even running as root.\n# This is changed at the end of the install process anyways.\nchown -R root:root \/mnt\n\nexport HOME=\/mnt\/server\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update 740 +quit\n\nmkdir -p \/mnt\/server\/.steam\/sdk32\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so", - "container": "ubuntu:16.04", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", + "container": "ubuntu:18.04", "entrypoint": "bash" } }, @@ -51,4 +51,4 @@ "rules": "required|string|max:20" } ] -} +} \ No newline at end of file diff --git a/stock-eggs/source-engine/egg-custom-source-engine-game.json b/stock-eggs/source-engine/egg-custom-source-engine-game.json index 7a7b40bd..aae3b3f3 100644 --- a/stock-eggs/source-engine/egg-custom-source-engine-game.json +++ b/stock-eggs/source-engine/egg-custom-source-engine-game.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-01-21T16:59:45-06:00", + "exported_at": "2019-12-08T10:54:26-05:00", "name": "Custom Source Engine Game", "author": "support@pterodactyl.io", "description": "This option allows modifying the startup arguments and other details to run a custom SRCDS based game on the panel.", @@ -17,8 +17,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\n# SRCDS Base Installation Script\n#\n# Server Files: \/mnt\/server\napt -y update\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\n\ncd \/tmp\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\n\nmkdir -p \/mnt\/server\/steamcmd\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\ncd \/mnt\/server\/steamcmd\n\n# SteamCMD fails otherwise for some reason, even running as root.\n# This is changed at the end of the install process anyways.\nchown -R root:root \/mnt\n\nexport HOME=\/mnt\/server\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} +quit\n\nmkdir -p \/mnt\/server\/.steam\/sdk32\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so", - "container": "ubuntu:16.04", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", + "container": "ubuntu:18.04", "entrypoint": "bash" } }, @@ -51,4 +51,4 @@ "rules": "required|string|alpha_dash" } ] -} +} \ No newline at end of file diff --git a/stock-eggs/source-engine/egg-garrys-mod.json b/stock-eggs/source-engine/egg-garrys-mod.json index c0e4f31b..17940e8f 100644 --- a/stock-eggs/source-engine/egg-garrys-mod.json +++ b/stock-eggs/source-engine/egg-garrys-mod.json @@ -3,12 +3,12 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-02-16T14:20:52-05:00", + "exported_at": "2019-12-08T10:56:42-05:00", "name": "Garrys Mod", "author": "support@pterodactyl.io", "description": "Garrys Mod, is a sandbox physics game created by Garry Newman, and developed by his company, Facepunch Studios.", "image": "quay.io\/pterodactyl\/core:source", - "startup": ".\/srcds_run -game garrysmod -console -port {{SERVER_PORT}} +ip 0.0.0.0 +map {{SRCDS_MAP}} +gamemode {{GAMEMODE}} -strictportbind -norestart +sv_setsteamaccount {{STEAM_ACC}} +host_workshop_collection {{WORKSHOP_ID}} +maxplayers {{MAX_PLAYERS}} -tickrate {{TICKRATE}}", + "startup": ".\/srcds_run -game garrysmod -console -port {{SERVER_PORT}} +ip 0.0.0.0 +host_workshop_collection {{WORKSHOP_ID}} +map {{SRCDS_MAP}} +gamemode {{GAMEMODE}} -strictportbind -norestart +sv_setsteamaccount {{STEAM_ACC}} +maxplayers {{MAX_PLAYERS}} -tickrate {{TICKRATE}}", "config": { "files": "{}", "startup": "{\r\n \"done\": \"gameserver Steam ID\",\r\n \"userInteraction\": []\r\n}", @@ -17,8 +17,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# Garry's Mod Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update 4020 +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n# Creating needed default files for the game\r\ncd \/mnt\/server\/garrysmod\/lua\/autorun\/server\r\necho '\r\n-- Docs: https:\/\/wiki.garrysmod.com\/page\/resource\/AddWorkshop\r\n-- Place the ID of the workshop addon you want to be downloaded to people who join your server, not the collection ID\r\n-- Use https:\/\/beta.configcreator.com\/create\/gmod\/resources.lua to easily create a list based on your collection ID\r\n\r\nresource.AddWorkshop( \"\" )\r\n' > workshop.lua\r\n\r\ncd \/mnt\/server\/garrysmod\/cfg\r\necho '\r\n\/\/ Please do not set RCon in here, use the startup parameters.\r\n\r\nhostname\t\t\"New Gmod Server\"\r\nsv_password\t\t\"\"\r\nsv_loadingurl \"\"\r\n\r\n\/\/ Steam Server List Settings\r\nsv_region \"255\"\r\nsv_lan \"0\"\r\nsv_max_queries_sec_global \"30000\"\r\nsv_max_queries_window \"45\"\r\nsv_max_queries_sec \"5\"\r\n\r\n\/\/ Server Limits\r\nsbox_maxprops\t\t100\r\nsbox_maxragdolls\t5\r\nsbox_maxnpcs\t\t10\r\nsbox_maxballoons\t10\r\nsbox_maxeffects\t\t10\r\nsbox_maxdynamite\t10\r\nsbox_maxlamps\t\t10\r\nsbox_maxthrusters\t10\r\nsbox_maxwheels\t\t10\r\nsbox_maxhoverballs\t10\r\nsbox_maxvehicles\t20\r\nsbox_maxbuttons\t\t10\r\nsbox_maxsents\t\t20\r\nsbox_maxemitters\t5\r\nsbox_godmode\t\t0\r\nsbox_noclip\t\t 0\r\n\r\n\/\/ Network Settings - Please keep these set to default.\r\n\r\nsv_minrate\t\t75000\r\nsv_maxrate\t\t0\r\ngmod_physiterations\t2\r\nnet_splitpacket_maxrate\t45000\r\ndecalfrequency\t\t12 \r\n\r\n\/\/ Execute Ban Files - Please do not edit\r\nexec banned_ip.cfg \r\nexec banned_user.cfg \r\n\r\n\/\/ Add custom lines under here\r\n' > server.cfg", - "container": "ubuntu:16.04", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n# Creating needed default files for the game\r\ncd \/mnt\/server\/garrysmod\/lua\/autorun\/server\r\necho '\r\n-- Docs: https:\/\/wiki.garrysmod.com\/page\/resource\/AddWorkshop\r\n-- Place the ID of the workshop addon you want to be downloaded to people who join your server, not the collection ID\r\n-- Use https:\/\/beta.configcreator.com\/create\/gmod\/resources.lua to easily create a list based on your collection ID\r\n\r\nresource.AddWorkshop( \"\" )\r\n' > workshop.lua\r\n\r\ncd \/mnt\/server\/garrysmod\/cfg\r\necho '\r\n\/\/ Please do not set RCon in here, use the startup parameters.\r\n\r\nhostname\t\t\"New Gmod Server\"\r\nsv_password\t\t\"\"\r\nsv_loadingurl \"\"\r\n\r\n\/\/ Steam Server List Settings\r\nsv_region \"255\"\r\nsv_lan \"0\"\r\nsv_max_queries_sec_global \"30000\"\r\nsv_max_queries_window \"45\"\r\nsv_max_queries_sec \"5\"\r\n\r\n\/\/ Server Limits\r\nsbox_maxprops\t\t100\r\nsbox_maxragdolls\t5\r\nsbox_maxnpcs\t\t10\r\nsbox_maxballoons\t10\r\nsbox_maxeffects\t\t10\r\nsbox_maxdynamite\t10\r\nsbox_maxlamps\t\t10\r\nsbox_maxthrusters\t10\r\nsbox_maxwheels\t\t10\r\nsbox_maxhoverballs\t10\r\nsbox_maxvehicles\t20\r\nsbox_maxbuttons\t\t10\r\nsbox_maxsents\t\t20\r\nsbox_maxemitters\t5\r\nsbox_godmode\t\t0\r\nsbox_noclip\t\t 0\r\n\r\n\/\/ Network Settings - Please keep these set to default.\r\n\r\nsv_minrate\t\t75000\r\nsv_maxrate\t\t0\r\ngmod_physiterations\t2\r\nnet_splitpacket_maxrate\t45000\r\ndecalfrequency\t\t12 \r\n\r\n\/\/ Execute Ban Files - Please do not edit\r\nexec banned_ip.cfg \r\nexec banned_user.cfg \r\n\r\n\/\/ Add custom lines under here\r\n' > server.cfg", + "container": "ubuntu:18.04", "entrypoint": "bash" } }, @@ -87,4 +87,4 @@ "rules": "required|integer|max:100" } ] -} +} \ No newline at end of file diff --git a/stock-eggs/source-engine/egg-insurgency.json b/stock-eggs/source-engine/egg-insurgency.json index 4e3df4a8..7f0c76be 100644 --- a/stock-eggs/source-engine/egg-insurgency.json +++ b/stock-eggs/source-engine/egg-insurgency.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-01-21T16:59:48-06:00", + "exported_at": "2019-12-08T10:57:32-05:00", "name": "Insurgency", "author": "support@pterodactyl.io", "description": "Take to the streets for intense close quarters combat, where a team's survival depends upon securing crucial strongholds and destroying enemy supply in this multiplayer and cooperative Source Engine based experience.", @@ -17,8 +17,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\n# SRCDS Base Installation Script\n#\n# Server Files: \/mnt\/server\napt -y update\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\n\ncd \/tmp\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\n\nmkdir -p \/mnt\/server\/steamcmd\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\ncd \/mnt\/server\/steamcmd\n\n# SteamCMD fails otherwise for some reason, even running as root.\n# This is changed at the end of the install process anyways.\nchown -R root:root \/mnt\n\nexport HOME=\/mnt\/server\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} +quit\n\nmkdir -p \/mnt\/server\/.steam\/sdk32\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so", - "container": "ubuntu:16.04", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", + "container": "ubuntu:18.04", "entrypoint": "bash" } }, @@ -27,10 +27,10 @@ "name": "Game ID", "description": "The ID corresponding to the game to download and run using SRCDS.", "env_variable": "SRCDS_APPID", - "default_value": "17705", + "default_value": "237410", "user_viewable": 1, "user_editable": 0, - "rules": "required|regex:\/^(17705)$\/" + "rules": "required|regex:\/^(237410)$\/" }, { "name": "Game Name", diff --git a/stock-eggs/source-engine/egg-team-fortress2.json b/stock-eggs/source-engine/egg-team-fortress2.json index ae443370..159e7bf9 100644 --- a/stock-eggs/source-engine/egg-team-fortress2.json +++ b/stock-eggs/source-engine/egg-team-fortress2.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-01-21T16:59:45-06:00", + "exported_at": "2019-12-08T10:58:48-05:00", "name": "Team Fortress 2", "author": "support@pterodactyl.io", "description": "Team Fortress 2 is a team-based first-person shooter multiplayer video game developed and published by Valve Corporation. It is the sequel to the 1996 mod Team Fortress for Quake and its 1999 remake.", @@ -17,8 +17,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\n# SRCDS Base Installation Script\n#\n# Server Files: \/mnt\/server\napt -y update\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\n\ncd \/tmp\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\n\nmkdir -p \/mnt\/server\/steamcmd\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\ncd \/mnt\/server\/steamcmd\n\n# SteamCMD fails otherwise for some reason, even running as root.\n# This is changed at the end of the install process anyways.\nchown -R root:root \/mnt\n\nexport HOME=\/mnt\/server\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} +quit\n\nmkdir -p \/mnt\/server\/.steam\/sdk32\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so", - "container": "ubuntu:16.04", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", + "container": "ubuntu:18.04", "entrypoint": "bash" } }, From 9c25b8ca8fd7397e95a7bdc9ceb04c207493c8ff Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sun, 8 Dec 2019 11:11:57 -0500 Subject: [PATCH 049/107] update tmodloader egg Use debian-mono-5 image as a base change startup command --- terraria/tmodloader/egg-t-modloader.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/terraria/tmodloader/egg-t-modloader.json b/terraria/tmodloader/egg-t-modloader.json index d49516c2..c18d8edb 100644 --- a/terraria/tmodloader/egg-t-modloader.json +++ b/terraria/tmodloader/egg-t-modloader.json @@ -3,12 +3,12 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-10-30T21:46:07-04:00", + "exported_at": "2019-12-08T11:10:18-05:00", "name": "tModloader", "author": "parker@parkervcp.com", "description": "tModLoader is essentially a mod that provides a way to load your own mods without having to work directly with Terraria's source code itself. This means you can easily make mods that are compatible with other people's mods, save yourself the trouble of having to decompile and recompile Terraria.exe, and escape from having to understand all of the obscure \"intricacies\" of Terraria's source code. It is made to work for Terraria 1.3+.", - "image": "quay.io\/parkervcp\/pterodactyl-images:base_ubuntu", - "startup": ".\/TerrariaServer.bin.x86_64 -ip 0.0.0.0 -port ${SERVER_PORT} -maxplayers ${MAX_PLAYERS} -world ~\/saves\/Worlds\/${WORLD_NAME}.wld -worldname ${WORLD_NAME} -autocreate ${WORLD_SIZE} -savedirectory ~\/ -tmlsavedirectory ~\/saves -modpath ~\/mods", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_mono-5", + "startup": ".\/tModLoaderServer -ip 0.0.0.0 -port ${SERVER_PORT} -maxplayers ${MAX_PLAYERS} -world ~\/saves\/Worlds\/${WORLD_NAME}.wld -worldname ${WORLD_NAME} -autocreate ${WORLD_SIZE} -savedirectory ~\/ -tmlsavedirectory ~\/saves -modpath ~\/mods", "config": { "files": "{}", "startup": "{\r\n \"done\": \"Type 'help' for a list of commands\",\r\n \"userInteraction\": []\r\n}", From 3167785e0891c92b86755cded5e9862f5fc8f0ce Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sun, 8 Dec 2019 11:55:36 -0500 Subject: [PATCH 050/107] update terraria readme files This adds a callout about the startup for tmodloader and tshock --- terraria/README.md | 1 - terraria/tmodloader/README.md | 10 ++++++++++ terraria/tshock/README.md | 11 ++++++++++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/terraria/README.md b/terraria/README.md index a91dae80..1a8469da 100644 --- a/terraria/README.md +++ b/terraria/README.md @@ -3,7 +3,6 @@ ## Minimum RAM warning You may want to assign a minimum of 768 mb of RAM to a server as it will use around 650 mb to generate the world on the first start. - ## Required Server Ports tModloader, like Terraria, only requires a single port to run. The default is 7777 diff --git a/terraria/tmodloader/README.md b/terraria/tmodloader/README.md index 932dc9fe..4fa490da 100644 --- a/terraria/tmodloader/README.md +++ b/terraria/tmodloader/README.md @@ -17,3 +17,13 @@ tModloader, like Terraria, only requires a single port to run. The default is 77 | Game | 7777 | #### Plugins may require ports to be added to the server. + +### Extra Information + +If you want to download mods in the console, the startup command has to be changed. + +New startup: +`./tModLoaderServer -ip 0.0.0.0 -port ${SERVER_PORT} -maxplayers ${MAX_PLAYERS} -savedirectory ~/ -tmlsavedirectory ~/saves -modpath ~/mods` + +This will remove the autocreate function, and will thus allow you to download mods and generate world. +Afterwards, you can change it back with the correct world name to start automatic. Word name is set in the configuration panel. \ No newline at end of file diff --git a/terraria/tshock/README.md b/terraria/tshock/README.md index 998d8bec..fec56632 100644 --- a/terraria/tshock/README.md +++ b/terraria/tshock/README.md @@ -12,4 +12,13 @@ TShock, like Terraria, only requires a single port to run. The default is 7777 |---------|---------| | Game | 7777 | -Plugins may require ports to be added to the server. \ No newline at end of file +#### Plugins may require ports to be added to the server. + +### Extra Information +If you want to download mods in the console, the startup command has to be changed. + +New startup: +`mono TerrariaServer.exe -ip 0.0.0.0 -port {{SERVER_PORT}} -maxplayers {{MAX_PLAYERS}}` + +This will remove the autocreate function, and will thus allow you to download mods and generate world. +Afterwards, you can change it back with the correct world name to start automatic. Word name is set in the configuration panel. \ No newline at end of file From 58963d627cb069e86bb6d99100c397c5adfe3231 Mon Sep 17 00:00:00 2001 From: Nikita Obrekht Date: Tue, 10 Dec 2019 22:50:25 +0200 Subject: [PATCH 051/107] Fix MariaDB config URL --- database/mariadb/egg-maria-d-b.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/mariadb/egg-maria-d-b.json b/database/mariadb/egg-maria-d-b.json index 13b75295..12afd857 100644 --- a/database/mariadb/egg-maria-d-b.json +++ b/database/mariadb/egg-maria-d-b.json @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# MariaDB Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nset -x\r\n\r\necho -e \"installing dependencies\"\r\napt-get -y update\r\napt-get -y install curl\r\n\r\n## add user\r\necho -e \"adding container user\"\r\nuseradd -d \/home\/container -m container -s \/bin\/bash\r\n\r\n## own server to container user\r\nchown container: \/mnt\/server\/\r\n\r\n## run install script as user\r\necho -e \"getting my.conf\"\r\nif [ -f \/mnt\/server\/.my.cnf ]; then\r\n echo -e \"moving current config for install\"\r\n mv \/mnt\/server\/.my.cnf \/mnt\/server\/custom.my.cnf\r\n runuser -l container -c 'curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/mariadb\/install.my.cnf > \/mnt\/server\/.my.cnf'\r\nelse\r\n runuser -l container -c 'curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/mariadb\/install.my.cnf > \/mnt\/server\/.my.cnf'\r\nfi\r\n\r\n## mkdir and install db\r\necho -e \"installing mysql database\"\r\nrunuser -l container -c 'mkdir -p \/mnt\/server\/run\/mysqld'\r\nrunuser -l container -c 'mkdir -p \/mnt\/server\/log\/mysql'\r\nrunuser -l container -c 'mkdir \/mnt\/server\/mysql'\r\n\r\nrunuser -l container -c 'mysql_install_db --defaults-file=\/mnt\/server\/.my.cnf'\r\n\r\nif [ -f \/mnt\/server\/custom.my.cnf ]; then\r\n echo -e \"moving current config back in place\"\r\n mv \/mnt\/server\/custom.my.cnf \/mnt\/server\/.my.cnf\r\nelse\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/mariadb\/database\/mariadb\/my.cnf > \/mnt\/server\/.my.cnf\r\nfi\r\n\r\necho -e \"install complete\"\r\n\r\nexit", + "script": "#!\/bin\/bash\r\n# MariaDB Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\nset -x\r\n\r\necho -e \"installing dependencies\"\r\napt-get -y update\r\napt-get -y install curl\r\n\r\n## add user\r\necho -e \"adding container user\"\r\nuseradd -d \/home\/container -m container -s \/bin\/bash\r\n\r\n## own server to container user\r\nchown container: \/mnt\/server\/\r\n\r\n## run install script as user\r\necho -e \"getting my.conf\"\r\nif [ -f \/mnt\/server\/.my.cnf ]; then\r\n echo -e \"moving current config for install\"\r\n mv \/mnt\/server\/.my.cnf \/mnt\/server\/custom.my.cnf\r\n runuser -l container -c 'curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/mariadb\/install.my.cnf > \/mnt\/server\/.my.cnf'\r\nelse\r\n runuser -l container -c 'curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/mariadb\/install.my.cnf > \/mnt\/server\/.my.cnf'\r\nfi\r\n\r\n## mkdir and install db\r\necho -e \"installing mysql database\"\r\nrunuser -l container -c 'mkdir -p \/mnt\/server\/run\/mysqld'\r\nrunuser -l container -c 'mkdir -p \/mnt\/server\/log\/mysql'\r\nrunuser -l container -c 'mkdir \/mnt\/server\/mysql'\r\n\r\nrunuser -l container -c 'mysql_install_db --defaults-file=\/mnt\/server\/.my.cnf'\r\n\r\nif [ -f \/mnt\/server\/custom.my.cnf ]; then\r\n echo -e \"moving current config back in place\"\r\n mv \/mnt\/server\/custom.my.cnf \/mnt\/server\/.my.cnf\r\nelse\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/database\/mariadb\/my.cnf > \/mnt\/server\/.my.cnf\r\nfi\r\n\r\necho -e \"install complete\"\r\n\r\nexit", "container": "mariadb:10.3", "entrypoint": "bash" } From 25e5e12be5c2c2877f45122d82b3199f9aece857 Mon Sep 17 00:00:00 2001 From: Nikita Obrekht Date: Wed, 11 Dec 2019 00:46:49 +0200 Subject: [PATCH 052/107] Fix SpongeForge Forge download url --- minecraft_java/spongeforge/egg-sponge-forge.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/minecraft_java/spongeforge/egg-sponge-forge.json b/minecraft_java/spongeforge/egg-sponge-forge.json index bf83b774..76fa3a1f 100644 --- a/minecraft_java/spongeforge/egg-sponge-forge.json +++ b/minecraft_java/spongeforge/egg-sponge-forge.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-09-13T20:47:26-04:00", + "exported_at": "2019-12-11T01:44:03+03:00", "name": "SpongeForge", "author": "parker@parkervcp.com", "description": "A community-driven open source Minecraft: Java Edition modding platform.", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# SpongeForge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y jq curl\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! ${SERVER_JARFILE} = *\\.jar ]]; then\r\n SERVER_JARFILE=\"${SERVER_JARFILE}.jar\"\r\nfi\r\n\r\n\r\nif [ -z ${SF_VERSION} ] || [ \"$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION})\" == \"Unknown version\" ]; then\r\n echo -e \"defaulting to recommended\"\r\n SF_VERSION=\"recommended\"\r\nfi\r\n\r\nif [ \"${SF_VERSION}\" == \"recommended\" ]; then\r\n echo -e \"using recommended SpongeForge version\"\r\n SF_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.version')\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.dependencies.forge')\r\n echo -e \"found Forge Version ${FORGE_DOWNLOAD_VERSION}\"\r\n FORGE_DL_LINK=https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/${FORGE_DOWNLOAD_VERSION}\/forge-${FORGE_DOWNLOAD_VERSION}\r\nelif [ \"${SF_VERSION}\" == \"latest\" ]; then\r\n echo -e \"using latest SpongForge version\"\r\n SF_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge | jq -r '.buildTypes.stable.latest.version')\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.forge')\r\n \r\n FORGE_DL_LINK=https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/${FORGE_DOWNLOAD_VERSION}\/forge-${FORGE_DOWNLOAD_VERSION}\r\nelse\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.forge')\r\n echo -e \"found Forge Version ${FORGE_DOWNLOAD_VERSION}\"\r\n FORGE_DL_LINK=https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/${FORGE_DOWNLOAD_VERSION}\/forge-${FORGE_DOWNLOAD_VERSION}\r\nfi\r\n\r\nif [ -f server.jar ] && [ $(sha1sum server.jar | awk '{ print $1 }') == $(curl -s ${FORGE_DL_LINK}-universal.jar.sha1) ]; then\r\n echo -e \"Already have the correct forge version\"\r\nelse\r\n echo -e \"Downloading forge version ${FORGE_VERSION}\"\r\n echo -e \"running: curl -s -o installer.jar -o ${FORGE_DL_LINK}-installer.jar\"\r\n curl -s -o installer.jar ${FORGE_DL_LINK}-installer.jar\r\n echo -e \"running: curl -s -o ${SERVER_JARFILE} -o ${FORGE_DL_LINK}-universal.jar\"\r\n curl -s -o ${SERVER_JARFILE} ${FORGE_DL_LINK}-universal.jar\r\n java -jar installer.jar --installServer\r\n rm installer.jar forge-${FORGE_DOWNLOAD_VERSION}-universal.jar\r\nfi\r\n\r\nif [ ! -d \/mnt\/server\/mods\/ ]; then\r\n echo -e \"making mods directory\"\r\n mkdir -p \/mnt\/server\/mods\/\r\nfi\r\n\r\nif [ -f \/mnt\/server\/mods\/spongeforge*.jar ]; then\r\n mkdir -p \/mnt\/server\/mods\/old\/\r\n mv -f \/mnt\/server\/mods\/spongeforge*.jar \/mnt\/server\/mods\/old\/spongeforge*.jar\r\nfi \r\n\r\necho -e \"running: curl -s ${SF_DL_LINK} -o \/mnt\/server\/mods\/spongeforge-${SF_VERSION}.jar\"\r\ncurl -s ${SF_DL_LINK} -o \/mnt\/server\/mods\/spongeforge-${SF_VERSION}.jar\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_java\/server.properties\r\nfi\r\n\r\necho -e \"Install for SpongeForge is complete\"", + "script": "#!\/bin\/bash\r\n# SpongeForge Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y jq curl\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\n#Adding .jar when not eding by SERVER_JARFILE\r\nif [[ ! ${SERVER_JARFILE} = *\\.jar ]]; then\r\n SERVER_JARFILE=\"${SERVER_JARFILE}.jar\"\r\nfi\r\n\r\n\r\nif [ -z ${SF_VERSION} ] || [ \"$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION})\" == \"Unknown version\" ]; then\r\n echo -e \"defaulting to recommended\"\r\n SF_VERSION=\"recommended\"\r\nfi\r\n\r\nif [ \"${SF_VERSION}\" == \"recommended\" ]; then\r\n echo -e \"using recommended SpongeForge version\"\r\n SF_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.version')\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/recommended | jq -r '.dependencies.forge')\r\n echo -e \"found Forge Version ${FORGE_DOWNLOAD_VERSION}\"\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nelif [ \"${SF_VERSION}\" == \"latest\" ]; then\r\n echo -e \"using latest SpongForge version\"\r\n SF_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge | jq -r '.buildTypes.stable.latest.version')\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.forge')\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nelse\r\n echo -e \"found SpongeForge Version ${SF_VERSION}\"\r\n SF_DL_LINK=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.artifacts.\"\".url')\r\n FORGE_DOWNLOAD_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.forge')\r\n echo -e \"found Forge Version ${FORGE_DOWNLOAD_VERSION}\"\r\n MC_VERSION=$(curl -s https:\/\/dl-api.spongepowered.org\/v1\/org.spongepowered\/spongeforge\/downloads\/${SF_VERSION} | jq -r '.dependencies.minecraft')\r\nfi\r\n\r\nFORGE_DL_LINK=https:\/\/files.minecraftforge.net\/maven\/net\/minecraftforge\/forge\/${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}\/forge-${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}\r\n\r\nif [ -f server.jar ] && [ $(sha1sum server.jar | awk '{ print $1 }') == $(curl -s ${FORGE_DL_LINK}-universal.jar.sha1) ]; then\r\n echo -e \"Already have the correct forge version\"\r\nelse\r\n echo -e \"Downloading forge version ${FORGE_VERSION}\"\r\n echo -e \"running: curl -s -o installer.jar -o ${FORGE_DL_LINK}-installer.jar\"\r\n curl -s -o installer.jar ${FORGE_DL_LINK}-installer.jar\r\n echo -e \"running: curl -s -o ${SERVER_JARFILE} -o ${FORGE_DL_LINK}-universal.jar\"\r\n curl -s -o ${SERVER_JARFILE} ${FORGE_DL_LINK}-universal.jar\r\n java -jar installer.jar --installServer\r\n rm installer.jar forge-${MC_VERSION}-${FORGE_DOWNLOAD_VERSION}-universal.jar\r\nfi\r\n\r\nif [ ! -d \/mnt\/server\/mods\/ ]; then\r\n echo -e \"making mods directory\"\r\n mkdir -p \/mnt\/server\/mods\/\r\nfi\r\n\r\nif [ -f \/mnt\/server\/mods\/spongeforge*.jar ]; then\r\n mkdir -p \/mnt\/server\/mods\/old\/\r\n mv -f \/mnt\/server\/mods\/spongeforge*.jar \/mnt\/server\/mods\/old\/spongeforge*.jar\r\nfi \r\n\r\necho -e \"running: curl -s ${SF_DL_LINK} -o \/mnt\/server\/mods\/spongeforge-${SF_VERSION}.jar\"\r\ncurl -s ${SF_DL_LINK} -o \/mnt\/server\/mods\/spongeforge-${SF_VERSION}.jar\r\n\r\nif [ ! -f server.properties ]; then\r\n echo -e \"Downloading MC server.properties\"\r\n curl -o server.properties https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_java\/server.properties\r\nfi\r\n\r\necho -e \"Install for SpongeForge is complete\"", "container": "openjdk:8-jre-slim", "entrypoint": "bash" } From 5dc4f3340acaadd76c59268d468862d82c74c209 Mon Sep 17 00:00:00 2001 From: "Michael (Parker) Parker" Date: Thu, 12 Dec 2019 12:45:50 -0500 Subject: [PATCH 053/107] Add Onset Dedicated Server Add egg for Onset Add Onset Readme Update Main Readme --- README.md | 3 +- steamcmd_servers/onset/README.md | 20 ++++++++++ steamcmd_servers/onset/egg-onset.json | 54 +++++++++++++++++++++++++++ 3 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 steamcmd_servers/onset/README.md create mode 100644 steamcmd_servers/onset/egg-onset.json diff --git a/README.md b/README.md index 68bcd040..b3a0619e 100644 --- a/README.md +++ b/README.md @@ -92,11 +92,12 @@ If you are reading this it looks like you are looking to add an egg to your serv * [7 Days to Die](/steamcmd_servers/7_days_to_die/) * [ARK Survival Evolved](/steamcmd_servers/ark_survival_evolved/) * [HLDS server](/steamcmd_servers/hlds_server) +* [Mordhau](/steamcmd_servers/mordhau) +* [Onset](/steamcmd_servers/onset) * [PixARK](/steamcmd_servers/pixark/) * [Rust Staging Branch](/steamcmd_servers/rust_staging/) * [Starbound](/steamcmd_servers/starbound) * [Sven Co-op](/steamcmd_servers/svencoop) -* [Mordhau](/steamcmd_servers/mordhau) [Squad](/squad/) diff --git a/steamcmd_servers/onset/README.md b/steamcmd_servers/onset/README.md new file mode 100644 index 00000000..274faf9e --- /dev/null +++ b/steamcmd_servers/onset/README.md @@ -0,0 +1,20 @@ +# Onset +From their [site](https://playonset.com/): +Onset is an open world multiplayer sandbox without predefined goals. Create and host your very own experience in Onset using scripting functions. Whether that is Roleplay, Cops and Robbers or classic Freeroam. Or just enjoy the different gamemodes created by other players. + +## Recommended server settings +### RAM +This server requires about 100M to run. + +See the following - https://dev.playonset.com/wiki/DedicatedServer#Minimum_requirements_2 + +### Disk +This server uses about 50M of disk. + +## Server Ports + +| Port | default | +|-------|---------| +| Game | 7777 | +| Query | 7776 | +| file | 7775 | \ No newline at end of file diff --git a/steamcmd_servers/onset/egg-onset.json b/steamcmd_servers/onset/egg-onset.json new file mode 100644 index 00000000..8815fdf7 --- /dev/null +++ b/steamcmd_servers/onset/egg-onset.json @@ -0,0 +1,54 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-12-12T12:43:34-05:00", + "name": "Onset", + "author": "parker@parkervcp.com", + "description": "Onset is an open world multiplayer sandbox without predefined goals. Create and host your very own experience in Onset using scripting functions. Whether that is Roleplay, Cops and Robbers or classic Freeroam. Or just enjoy the different gamemodes created by other players.", + "image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu_source", + "startup": ".\/OnsetServer", + "config": { + "files": "{\r\n \"server_config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"ipaddress\": \"0.0.0.0\",\r\n \"port\": \"{{server.build.default.port}}\",\r\n \"servername\": \"{{server.build.env.SERVER_NAME}}\",\r\n \"password\":\"{{server.build.env.SERVER_PASSWORD}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Entering simulation\",\r\n \"userInteraction\": []\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", + "container": "alpine:3.10", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "App ID", + "description": "ARK steam app id for auto updates. Leave blank to avoid auto update.", + "env_variable": "SRCDS_APPID", + "default_value": "1204170", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|string|max:20" + }, + { + "name": "ld lib path", + "description": "required to load server libraries.", + "env_variable": "LD_LIBRARY_PATH", + "default_value": ".", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string|max:20" + }, + { + "name": "Auto Update Server", + "description": "This flag will auto update the server on restart. (default is 1) \r\n\r\nSet to 1 to update\r\nSet to 0 to no update", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file From a50d383ecbd8a22e05efbbb1560295cd82facf26 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Thu, 12 Dec 2019 18:56:50 -0500 Subject: [PATCH 054/107] update install script Change install container --- steamcmd_servers/onset/egg-onset.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/steamcmd_servers/onset/egg-onset.json b/steamcmd_servers/onset/egg-onset.json index 8815fdf7..923fc507 100644 --- a/steamcmd_servers/onset/egg-onset.json +++ b/steamcmd_servers/onset/egg-onset.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-12-12T12:43:34-05:00", + "exported_at": "2019-12-12T18:56:28-05:00", "name": "Onset", "author": "parker@parkervcp.com", "description": "Onset is an open world multiplayer sandbox without predefined goals. Create and host your very own experience in Onset using scripting functions. Whether that is Roleplay, Cops and Robbers or classic Freeroam. Or just enjoy the different gamemodes created by other players.", @@ -18,8 +18,8 @@ "scripts": { "installation": { "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", - "container": "alpine:3.10", - "entrypoint": "ash" + "container": "ubuntu:18.04", + "entrypoint": "bash" } }, "variables": [ From 5e2175058bf5e2ee07d8c9c0a1cb54d8e9ba8b51 Mon Sep 17 00:00:00 2001 From: parkervcp Date: Sat, 14 Dec 2019 12:25:03 -0500 Subject: [PATCH 055/107] add cuberite This resolves #176 --- minecraft_java/cuberite/egg-cuberite.json | 54 +++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 minecraft_java/cuberite/egg-cuberite.json diff --git a/minecraft_java/cuberite/egg-cuberite.json b/minecraft_java/cuberite/egg-cuberite.json new file mode 100644 index 00000000..e6c6e0e7 --- /dev/null +++ b/minecraft_java/cuberite/egg-cuberite.json @@ -0,0 +1,54 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-12-14T12:24:30-05:00", + "name": "Cuberite", + "author": "parker@parkervcp.com", + "description": "A lightweight, fast and extensible game server for Minecraft", + "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", + "startup": ".\/Cuberite", + "config": { + "files": "{\r\n \"settings.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"Server.Ports\": \"{{server.build.default.port}}\",\r\n \"Server.Description\": \"{{server.build.env.SERV_DESC}}\"\r\n }\r\n },\r\n \"webadmin.ini\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"User:admin.Password\": \"{{server.build.env.ADMIN_PASS}}\",\r\n \"WebAdmin.Ports\":\"{{server.build.env.WEB_PORT}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Startup complete \"\r\n}", + "logs": "{}", + "stop": "stop" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n# Cuberite\r\n#\r\n# Server Files: \/mnt\/server\r\napt update\r\napt install -y wget\r\n\r\ncd \/mnt\/server\r\n\r\nwget https:\/\/builds.cuberite.org\/job\/Cuberite%20Linux%20x64%20Master\/lastSuccessfulBuild\/artifact\/Cuberite.tar.gz\r\n\r\ntar --strip-components=1 -xf Cuberite.tar.gz", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Server Description", + "description": "Server Description", + "env_variable": "SERV_DESC", + "default_value": "Cuberite on Pterodactyl!", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string" + }, + { + "name": "Admin Password", + "description": "The password for the webadmin panel 'admin' user", + "env_variable": "ADMIN_PASS", + "default_value": "ChangeMe", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string" + }, + { + "name": "WebAdmin Port", + "description": "Port for the cuberite webadmin panel.", + "env_variable": "WEB_PORT", + "default_value": "8080", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|integer|between:1,65535" + } + ] +} \ No newline at end of file From c7cae37fa2462bda598396ea1f45589d98d40aad Mon Sep 17 00:00:00 2001 From: parkervcp Date: Sat, 14 Dec 2019 12:37:28 -0500 Subject: [PATCH 056/107] Update README files Update necessary readme files. --- README.md | 1 + minecraft_java/README.md | 6 +++++- minecraft_java/cuberite/README.md | 11 +++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 minecraft_java/cuberite/README.md diff --git a/README.md b/README.md index 68bcd040..1588192d 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [PocketMine MP](/minecraft_bedrock/pocketmine_mp/) [Minecraft Java](/minecraft_java/) +* [Cuberite]/minecraft_java/cuberite/) * [Forge](/minecraft_java/forge/) * [Feed The Beast](/minecraft_java/ftb/) * [Paper](/minecraft_java/paper) diff --git a/minecraft_java/README.md b/minecraft_java/README.md index 38fd583f..68d2b300 100644 --- a/minecraft_java/README.md +++ b/minecraft_java/README.md @@ -7,6 +7,10 @@ It’s set in infinitely-generated worlds of wide open terrain - icy mountains, ## Server Ports The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. +## Cuberite +A lightweight, fast and extensible game server for Minecraft +[Cuberite](https://cuberite.org/) + ## Forge [Forge MC](https://files.minecraftforge.net/) This is a direct fork of the default forge service @@ -51,4 +55,4 @@ Gear up and set forth on a campaign worthy of legend, for Hexxit has been uneart Blightfall is a combination modpack and adventure map about surviving on an alien planet. [Tekkit Legends](https://www.technicpack.net/modpack/tekkit-legends) -The ancient power of Tekkits past return in this legendary pack! +The ancient power of Tekkits past return in this legendary pack! \ No newline at end of file diff --git a/minecraft_java/cuberite/README.md b/minecraft_java/cuberite/README.md new file mode 100644 index 00000000..b5c0b2a5 --- /dev/null +++ b/minecraft_java/cuberite/README.md @@ -0,0 +1,11 @@ +# Cuberite +A lightweight, fast and extensible game server for Minecraft + +## Server Ports +The minecraft server requires a single port for access (default 25565) but plugins may require extra ports to enabled for the server. + + +| Port | default | +|----------|---------| +| Game | 25565 | +| WebAdmin | 8080 | \ No newline at end of file From 4d05d3e2302c5930885b7b51c3ec22fc4cee8286 Mon Sep 17 00:00:00 2001 From: parkervcp Date: Sat, 14 Dec 2019 12:39:00 -0500 Subject: [PATCH 057/107] add default config files This adds files that can be pulled for configs --- minecraft_java/cuberite/settings.ini | 52 ++++++++++++++++++++++++++++ minecraft_java/cuberite/webadmin.ini | 14 ++++++++ 2 files changed, 66 insertions(+) create mode 100644 minecraft_java/cuberite/settings.ini create mode 100644 minecraft_java/cuberite/webadmin.ini diff --git a/minecraft_java/cuberite/settings.ini b/minecraft_java/cuberite/settings.ini new file mode 100644 index 00000000..a6b1afbb --- /dev/null +++ b/minecraft_java/cuberite/settings.ini @@ -0,0 +1,52 @@ +; This is the main server configuration +; Most of the settings here can be configured using the webadmin interface, if enabled in webadmin.ini + +[Authentication] +Authenticate=1 +AllowBungeeCord=0 +Server=sessionserver.mojang.com +Address=/session/minecraft/hasJoined?username=%USERNAME%&serverId=%SERVERID% + +[MojangAPI] +NameToUUIDServer=api.mojang.com +NameToUUIDAddress=/profiles/minecraft +UUIDToProfileServer=sessionserver.mojang.com +UUIDToProfileAddress=/session/minecraft/profile/%UUID%?unsigned=false + +[Server] +Description=Cuberite - in C++! +ShutdownMessage=Server shutdown +MaxPlayers=100 +HardcoreEnabled=0 +AllowMultiLogin=0 +Ports=25565 +AllowMultiWorldTabCompletion=1 +DefaultViewDistance=10 + +[RCON] +Enabled=0 + +[AntiCheat] +LimitPlayerBlockChanges=1 + +[PlayerData] +LoadOfflinePlayerData=0 +LoadNamedPlayerData=1 + +[Worlds] +DefaultWorld=world +World=world_nether +World=world_the_end + +[WorldPaths] +world=world +world_nether=world_nether +world_the_end=world_the_end + +[Plugins] +Plugin=Core +Plugin=ChatLog + +[DeadlockDetect] +Enabled=1 +IntervalSec=20 diff --git a/minecraft_java/cuberite/webadmin.ini b/minecraft_java/cuberite/webadmin.ini new file mode 100644 index 00000000..64652b85 --- /dev/null +++ b/minecraft_java/cuberite/webadmin.ini @@ -0,0 +1,14 @@ +; This file controls the webadmin feature of Cuberite +; It specifies whether webadmin is enabled, and what logins are allowed. +; Username format: [User:*username*] +; Password format: Password=*password*; for example: +; [User:admin] +; Password=admin +; Please restart Cuberite to apply changes made in this file! + +[WebAdmin] +Ports=8080 +Enabled=1 + +[User:admin] +Password= \ No newline at end of file From 1e45eafc17071800a867687d281a54bd13096889 Mon Sep 17 00:00:00 2001 From: parkervcp Date: Sat, 14 Dec 2019 19:42:28 -0500 Subject: [PATCH 058/107] add starbound files --- .../starbound/starbound_server.config | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 steamcmd_servers/starbound/starbound_server.config diff --git a/steamcmd_servers/starbound/starbound_server.config b/steamcmd_servers/starbound/starbound_server.config new file mode 100644 index 00000000..c9785af0 --- /dev/null +++ b/steamcmd_servers/starbound/starbound_server.config @@ -0,0 +1,50 @@ +{ + "allowAdminCommands" : true, + "allowAdminCommandsFromAnyone" : false, + "allowAnonymousConnections" : true, + "allowAssetsMismatch" : true, + "anonymousConnectionsAreAdmin" : false, + "bannedIPs" : [], + "bannedUuids" : [], + "checkAssetsDigest" : false, + "clearPlayerFiles" : false, + "clearUniverseFiles" : false, + "clientIPJoinable" : false, + "clientP2PJoinable" : true, + "configurationVersion" : { + "basic" : 2, + "server" : 4 + }, + "crafting" : { + "filterHaveMaterials" : false + }, + "gameServerBind" : "::", + "gameServerPort" : 21025, + "interactiveHighlight" : true, + "inventory" : { + "pickupToActionBar" : true + }, + "maxPlayers" : 8, + "maxTeamSize" : 4, + "monochromeLighting" : false, + "playerBackupFileCount" : 3, + "queryServerBind" : "::", + "queryServerPort" : 21025, + "rconServerBind" : "::", + "rconServerPassword" : "", + "rconServerPort" : 21026, + "rconServerTimeout" : 1000, + "runQueryServer" : false, + "runRconServer" : false, + "safeScripts" : true, + "scriptInstructionLimit" : 10000000, + "scriptInstructionMeasureInterval" : 10000, + "scriptProfilingEnabled" : false, + "scriptRecursionLimit" : 100, + "serverFidelity" : "automatic", + "serverName" : "A Starbound Server", + "serverOverrideAssetsDigest" : null, + "serverUsers" : { + }, + "tutorialMessages" : true +} \ No newline at end of file From 7167e1c5dc320cb5679963f45405ec0b0963e170 Mon Sep 17 00:00:00 2001 From: parkervcp Date: Sun, 15 Dec 2019 10:07:37 -0500 Subject: [PATCH 059/107] update starbound installer This updates the starbound installed to use the same steamcmd installer as my other steamdcmd eggs. --- steamcmd_servers/starbound/egg-starbound.json | 47 +++++++++++-------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/steamcmd_servers/starbound/egg-starbound.json b/steamcmd_servers/starbound/egg-starbound.json index 06930e29..b8cc0c4e 100644 --- a/steamcmd_servers/starbound/egg-starbound.json +++ b/steamcmd_servers/starbound/egg-starbound.json @@ -3,31 +3,31 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-08-14T10:11:29-05:00", + "exported_at": "2019-12-15T10:05:42-05:00", "name": "Starbound", - "author": "hostmaster@watefallnetwork.net", + "author": "parker@parkervcp.com", "description": "Starbound takes place in a two-dimensional, procedurally generated universe which the player is able to explore in order to obtain new weapons, armor, and items, and to visit towns and villages inhabited by various intelligent lifeforms.", - "image": "quay.io\/pterodactyl\/core:source", + "image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu_source", "startup": ".\/starbound_server", "config": { - "files": "{\r\n \"storage\/starbound_server.config\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"gameServerPort\": \"{{server.build.default.port}}\",\r\n \"queryServerPort\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"storage\/starbound_server.config\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"gameServerPort\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Starting UniverseServer\",\r\n \"userInteraction\": []\r\n}", "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", "stop": "^C" }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} validate +quit\r\n\r\nmv \/mnt\/server\/linux\/* \/mnt\/server\/\r\nrm -rf \/mnt\/server\/linux\r\nsed -i -e 's\/\\.\\.\/\\.\/g' \/mnt\/server\/sbinit.config\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\nmkdir \/mnt\/server\/storage\r\n\r\ncat <> \/mnt\/server\/storage\/starbound_server.config\r\n{\r\n \"allowAdminCommands\" : true,\r\n \"allowAdminCommandsFromAnyone\" : false,\r\n \"allowAnonymousConnections\" : true,\r\n \"allowAssetsMismatch\" : true,\r\n \"anonymousConnectionsAreAdmin\" : false,\r\n \"bannedIPs\" : [],\r\n \"bannedUuids\" : [],\r\n \"checkAssetsDigest\" : false,\r\n \"clearPlayerFiles\" : false,\r\n \"clearUniverseFiles\" : false,\r\n \"clientIPJoinable\" : false,\r\n \"clientP2PJoinable\" : true,\r\n \"configurationVersion\" : {\r\n \"basic\" : 2,\r\n \"server\" : 4\r\n },\r\n \"crafting\" : {\r\n \"filterHaveMaterials\" : false\r\n },\r\n \"gameServerBind\" : \"::\",\r\n \"gameServerPort\" : 21025,\r\n \"interactiveHighlight\" : true,\r\n \"inventory\" : {\r\n \"pickupToActionBar\" : true\r\n },\r\n \"maxPlayers\" : 8,\r\n \"maxTeamSize\" : 4,\r\n \"monochromeLighting\" : false,\r\n \"playerBackupFileCount\" : 3,\r\n \"queryServerBind\" : \"::\",\r\n \"queryServerPort\" : 21025,\r\n \"rconServerBind\" : \"::\",\r\n \"rconServerPassword\" : \"\",\r\n \"rconServerPort\" : 21026,\r\n \"rconServerTimeout\" : 1000,\r\n \"runQueryServer\" : false,\r\n \"runRconServer\" : false,\r\n \"safeScripts\" : true,\r\n \"scriptInstructionLimit\" : 10000000,\r\n \"scriptInstructionMeasureInterval\" : 10000,\r\n \"scriptProfilingEnabled\" : false,\r\n \"scriptRecursionLimit\" : 100,\r\n \"serverFidelity\" : \"automatic\",\r\n \"serverName\" : \"A Starbound Server\",\r\n \"serverOverrideAssetsDigest\" : null,\r\n \"serverUsers\" : {\r\n },\r\n \"tutorialMessages\" : true\r\n}\r\nEOF", - "container": "ubuntu:16.04", - "entrypoint": "bash" + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## Starbound specific setup.\r\ncd \/mnt\/server\/\r\n\r\n## edit sbinit config\r\nmv \/mnt\/server\/linux\/* \/mnt\/server\/\r\nrm -rf \/mnt\/server\/linux\r\nsed -i -e 's\/\\.\\.\/\\.\/g' \/mnt\/server\/sbinit.config\r\n\r\n## pull starbound_server.config\r\nmkdir -p \/mnt\/server\/storage\r\ncurl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/starbound\/starbound_server.config > \/mnt\/server\/storage\/starbound_server.config", + "container": "ubuntu:18.04", + "entrypoint": "\/bin\/bash" } }, "variables": [ { "name": "Steam User", - "description": "A Steam username with Starbound on the account.", + "description": "This is a required setting and cannot be set to anonymous.", "env_variable": "STEAM_USER", - "default_value": "anonymous", + "default_value": "", "user_viewable": 0, "user_editable": 0, "rules": "required|string" @@ -41,15 +41,6 @@ "user_editable": 0, "rules": "nullable|string" }, - { - "name": "Steam Auth Code", - "description": "Steam Auth Code only when you're using Steam Auth", - "env_variable": "STEAM_AUTH", - "default_value": "", - "user_viewable": 0, - "user_editable": 0, - "rules": "nullable|string" - }, { "name": "Game ID", "description": "The ID corresponding to the game to download and run using SRCDS.", @@ -58,6 +49,24 @@ "user_viewable": 1, "user_editable": 0, "rules": "string" + }, + { + "name": "Steam Auth", + "description": "Steam account auth code. Required if you have 2fa enabled.", + "env_variable": "STEAM_AUTH", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string|max:5" + }, + { + "name": "Auto Update Server", + "description": "This is to auto-update the game server.", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|bool" } ] -} +} \ No newline at end of file From 82a16e4dafc7d45206359c95a3a6b7cfa088148d Mon Sep 17 00:00:00 2001 From: parkervcp Date: Sun, 15 Dec 2019 10:08:23 -0500 Subject: [PATCH 060/107] update steamcmd script Makes the script more noisy saying what it's doing. --- scripts/steamcmd_installer.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/steamcmd_installer.sh b/scripts/steamcmd_installer.sh index 876b2ab0..eba1d2c2 100644 --- a/scripts/steamcmd_installer.sh +++ b/scripts/steamcmd_installer.sh @@ -8,9 +8,13 @@ apt -y --no-install-recommends install curl lib32gcc1 ca-certificates ## just in case someone removed the defaults. if [ "${STEAM_USER}" == "" ]; then + echo -e "steam user is not set.\n" + echo -e "Using anonymous user.\n" STEAM_USER=anonymous STEAM_PASS="" STEAM_AUTH="" +else + echo -e "user set to ${STEAM_USER}" fi ## download and install steamcmd @@ -26,7 +30,7 @@ chown -R root:root /mnt export HOME=/mnt/server ## install game using steamcmd -./steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir /mnt/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} +quit ## other flags may be needed depending on install. looking at you cs 1.6 +./steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir /mnt/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6 ## set up 32 bit libraries mkdir -p /mnt/server/.steam/sdk32 From 31a39ccac3b85d17408f5abedd3f04e46d040531 Mon Sep 17 00:00:00 2001 From: fenpaws Date: Tue, 17 Dec 2019 08:18:57 +0100 Subject: [PATCH 061/107] added worksop support --- steamcmd_servers/starbound/egg-starbound.json | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/steamcmd_servers/starbound/egg-starbound.json b/steamcmd_servers/starbound/egg-starbound.json index b8cc0c4e..f0c0d07a 100644 --- a/steamcmd_servers/starbound/egg-starbound.json +++ b/steamcmd_servers/starbound/egg-starbound.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-12-15T10:05:42-05:00", + "exported_at": "2019-12-17T08:01:28+01:00", "name": "Starbound", "author": "parker@parkervcp.com", "description": "Starbound takes place in a two-dimensional, procedurally generated universe which the player is able to explore in order to obtain new weapons, armor, and items, and to visit towns and villages inhabited by various intelligent lifeforms.", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## Starbound specific setup.\r\ncd \/mnt\/server\/\r\n\r\n## edit sbinit config\r\nmv \/mnt\/server\/linux\/* \/mnt\/server\/\r\nrm -rf \/mnt\/server\/linux\r\nsed -i -e 's\/\\.\\.\/\\.\/g' \/mnt\/server\/sbinit.config\r\n\r\n## pull starbound_server.config\r\nmkdir -p \/mnt\/server\/storage\r\ncurl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/starbound\/starbound_server.config > \/mnt\/server\/storage\/starbound_server.config", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## Starbound specific setup.\r\ncd \/mnt\/server\/\r\n\r\n\r\n## edit sbinit config\r\nmv \/mnt\/server\/linux\/* \/mnt\/server\/\r\nrm -rf \/mnt\/server\/linux\r\nsed -i -e 's\/\\.\\.\/\\.\/g' \/mnt\/server\/sbinit.config\r\n\r\n## pull starbound_server.config\r\nmkdir -p \/mnt\/server\/storage\r\ncurl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/starbound\/starbound_server.config > \/mnt\/server\/storage\/starbound_server.config\r\n\r\n## use Worksop content\r\nif [ \"${WORKSHOP}\" == \"1\" ]; then\r\n for dir in \/mnt\/server\/steamapps\/workshop\/content\/211820\/*\/\r\n do\r\n dir=${dir%*\/}\r\n echo Sym-linking mod ${dir##*\/} into the mods folder\r\n ln -r -s \/mnt\/server\/steamapps\/workshop\/content\/211820\/${dir##*\/}\/contents.pak \/mnt\/server\/mods\/${dir##*\/}.pak\r\n done\r\nfi", "container": "ubuntu:18.04", "entrypoint": "\/bin\/bash" } @@ -67,6 +67,15 @@ "user_viewable": 1, "user_editable": 1, "rules": "required|bool" + }, + { + "name": "Use Workshop content", + "description": "Set to true if you want to use your subscribed Workshop content", + "env_variable": "WORKSHOP", + "default_value": "0", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|bool" } ] } \ No newline at end of file From 5e71a011048ae6f3880cd3a62f28cf4f8d27e52e Mon Sep 17 00:00:00 2001 From: "Michael (Parker) Parker" Date: Wed, 18 Dec 2019 13:44:12 -0500 Subject: [PATCH 062/107] move openttd to tycoon_games folder Renames the OpenTTD base folder. --- {openttd => tycoon_games}/openttd/README.md | 0 {openttd => tycoon_games}/openttd/egg-open-t-t-d-server.json | 0 {openttd => tycoon_games}/openttd/openttd.cfg | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename {openttd => tycoon_games}/openttd/README.md (100%) rename {openttd => tycoon_games}/openttd/egg-open-t-t-d-server.json (100%) rename {openttd => tycoon_games}/openttd/openttd.cfg (100%) diff --git a/openttd/openttd/README.md b/tycoon_games/openttd/README.md similarity index 100% rename from openttd/openttd/README.md rename to tycoon_games/openttd/README.md diff --git a/openttd/openttd/egg-open-t-t-d-server.json b/tycoon_games/openttd/egg-open-t-t-d-server.json similarity index 100% rename from openttd/openttd/egg-open-t-t-d-server.json rename to tycoon_games/openttd/egg-open-t-t-d-server.json diff --git a/openttd/openttd/openttd.cfg b/tycoon_games/openttd/openttd.cfg similarity index 100% rename from openttd/openttd/openttd.cfg rename to tycoon_games/openttd/openttd.cfg From 6d1419a3b655b475341d7b5438217588a6884718 Mon Sep 17 00:00:00 2001 From: parkervcp Date: Wed, 18 Dec 2019 22:08:51 -0500 Subject: [PATCH 063/107] Reorganize main folder Updates main README Moves many games to steamcmd as that installs them. Removes Mount and Blade: Warband. --- README.md | 48 +++++------ mount_and_blade/warband/README.md | 17 ---- mount_and_blade/warband/egg-m--b-warband.json | 81 ------------------- .../conan_exiles/README.md | 0 .../conan_exiles/egg-conan-exiles.json | 0 .../dont_starve/README.md | 0 .../dont_starve/egg-don-t-starve.json | 0 {squad => steamcmd_servers}/squad/README.md | 0 .../squad/egg-squad.json | 0 9 files changed, 21 insertions(+), 125 deletions(-) delete mode 100644 mount_and_blade/warband/README.md delete mode 100644 mount_and_blade/warband/egg-m--b-warband.json rename {conan_exiles => steamcmd_servers}/conan_exiles/README.md (100%) rename {conan_exiles => steamcmd_servers}/conan_exiles/egg-conan-exiles.json (100%) rename {dont_starve => steamcmd_servers}/dont_starve/README.md (100%) rename {dont_starve => steamcmd_servers}/dont_starve/egg-don-t-starve.json (100%) rename {squad => steamcmd_servers}/squad/README.md (100%) rename {squad => steamcmd_servers}/squad/egg-squad.json (100%) diff --git a/README.md b/README.md index c885dec2..a33eedb5 100644 --- a/README.md +++ b/README.md @@ -44,14 +44,6 @@ If you are reading this it looks like you are looking to add an egg to your serv ## Game Eggs -[Arma](/arma/) -* [Arma 3](/arma/arma3/) -* [Arma 3 HC](/arma/arma3_headless_client/) - -[Conan Exiles](/conan_exiles/conan_exiles) - -[Don't Starve](/dont_starve/dont_starve) - [ET Legacy](/enemy_territory/etlegacy/) [Factorio](/factorio/factorio/) @@ -64,13 +56,13 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Multi Theft Auto](/gta/mtasa/) * [SA-MP](/gta/samp/) -[Minecraft Bedrock](/minecraft_bedrock/) +[Minecraft Bedrock](/minecraft_bedrock/) Servers for Bedrock Minecraft * [Bedrock](/minecraft_bedrock/bedrock/) * [Nukkit](/minecraft_bedrock/nukkit/) * [PocketMine MP](/minecraft_bedrock/pocketmine_mp/) -[Minecraft Java](/minecraft_java/) -* [Cuberite]/minecraft_java/cuberite/) +[Minecraft Java](/minecraft_java/) Servers for Java Minecraft +* [Cuberite](/minecraft_java/cuberite/) * [Forge](/minecraft_java/forge/) * [Feed The Beast](/minecraft_java/ftb/) * [Paper](/minecraft_java/paper) @@ -85,22 +77,27 @@ If you are reading this it looks like you are looking to add an egg to your serv * [TyphoonLimbo](/minecraft_proxy/typhoonlimbo/) * [Velocity](/minecraft_proxy/velocity/) -[Mount & Blade Warband](/mount_and_blade/warband/) - -[OpenTTD](/openttd/) +[Tycoon Games](/tycoon_games/) +* [OpenTTD](/tycoon_games/openttd/) [steamcmd servers](/steamcmd_servers/) These eggs use steamcmd to install * [7 Days to Die](/steamcmd_servers/7_days_to_die/) -* [ARK Survival Evolved](/steamcmd_servers/ark_survival_evolved/) -* [HLDS server](/steamcmd_servers/hlds_server) -* [Mordhau](/steamcmd_servers/mordhau) -* [Onset](/steamcmd_servers/onset) +* [ARK Survival Evolved](/steamcmd_servers/ark_survival_evolved/) +* [Arma](/arma/) + * [Arma 3](/arma/arma3/) + * [Arma 3 HC](/arma/arma3_headless_client/) +* [Conan Exiles](/steamcmd_servers/conan_exiles) +* [Don't Starve](/steamcmd_servers/dont_starve) +* [HLDS server](/steamcmd_servers/hlds_server) +* [Mordhau](/steamcmd_servers/mordhau) +* [Onset](/steamcmd_servers/onset) * [PixARK](/steamcmd_servers/pixark/) -* [Rust Staging Branch](/steamcmd_servers/rust_staging/) -* [Starbound](/steamcmd_servers/starbound) -* [Sven Co-op](/steamcmd_servers/svencoop) - -[Squad](/squad/) +* [Rust Staging Branch](/steamcmd_servers/rust_staging/) +* [Starbound](/steamcmd_servers/starbound) +* [Sven Co-op](/steamcmd_servers/svencoop) +* [Squad](/steamcmd_servers/squad/) +* [Unturned](/unturned/) + * [RocketMod](/unturned/rocketmod/) [Unreal Engine](/unreal_engine) * [Tower Unite](/unreal_engine/tower_unite/) @@ -109,7 +106,4 @@ If you are reading this it looks like you are looking to add an egg to your serv * [tmodloader](/terraria/tmodloader) * [tshock](/terraria/tshock/) -[Unturned](/unturned/) -* [RocketMod](/unturned/rocketmod/) - -[Xonotic](/xonotic/) +[Xonotic](/xonotic/xonotic/) diff --git a/mount_and_blade/warband/README.md b/mount_and_blade/warband/README.md deleted file mode 100644 index 0798ccfd..00000000 --- a/mount_and_blade/warband/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Mount & Blade Warband - -Mount & Blade: Warband is a stand alone expansion pack for the game that brought medieval battlefields to life with its realistic mounted combat and detailed fighting system. Many modifications have been developed to bring the Warband universe into different eras, including the popular Napoleonic Wars DLC, among many others, featuring battles of up to concurrent 200 players. - -### Server Ports - -Warband requires a single port (default 7240) - -| Port | default | -|---------|---------| -| Game | 7240 | - -### Other Notes - -* The server can only use the main IP address of the node due to limitations in the way Warband's server reporting system operates, no alias or secondary IP addresses can be used. -* A complete list of modules supported by this egg can be found [here](https://github.com/masonr/pterodactyl-images/tree/mb-warband), the module name will need to be copied exactly as shown. -* The current module can be changed at any time and will automatically download the new files upon restart after changing the module name diff --git a/mount_and_blade/warband/egg-m--b-warband.json b/mount_and_blade/warband/egg-m--b-warband.json deleted file mode 100644 index 9d46ddd4..00000000 --- a/mount_and_blade/warband/egg-m--b-warband.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v1" - }, - "exported_at": "2018-07-28T22:01:58-04:00", - "name": "M&B Warband", - "author": "mason@rowe.sh", - "description": "Mount & Blade Warband server", - "image": "masonr\/pterodactyl-images:mb-warband", - "startup": "WINEDEBUG=\"fixme-all\" wine mb_warband_dedicated.exe -r Config.txt -m {{MODULE}}", - "config": { - "files": "{}", - "startup": "{\r\n \"done\": \"Starting mission\",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": false,\r\n \"location\": \"Logs\/\"\r\n}", - "stop": "^C" - }, - "scripts": { - "installation": { - "script": "#!\/bin\/bash\r\napt update\r\napt install -y wget dos2unix\r\ncd \/mnt\/server\/\r\n\r\nif [[ -z \"$MODULE\" ]] ; then\r\n\tMODULE=\"Native\"\r\nfi\r\n\r\n# Download helper script with all server file links\r\nwget \"https:\/\/files.rowe.sh\/pterodactyl\/mb-warband\/mb-warband-links.sh\"\r\nchmod +x mb-warband-links.sh\r\n\r\n# Generate links for server files\r\nMODULE_BASE_LINK=`.\/mb-warband-links.sh link \"$MODULE\" base`\r\nMODULE_LINK=`.\/mb-warband-links.sh link \"$MODULE\" mod`\r\n\r\n# Ensure module files link has been obtained, exit if not\r\nif [[ -z \"$MODULE_LINK\" ]] ; then\r\n\techo \"ERROR: Module name was mistyped or is not currently supported.\"\r\n\techo \"Available modules:\"\r\n\t.\/mb-warband-links.sh modules\r\n\texit 1\r\nfi\r\n\r\n# Install base server files, if needed\r\nif [[ ! -z \"$MODULE_BASE_LINK\" ]] ; then\r\n\twget -qO- $MODULE_BASE_LINK | tar xvz --strip-components=1\r\nfi\r\n\r\n# Install module files\r\nwget -qO- $MODULE_LINK | tar xvz --strip-components=1\r\ncp -rf \"$MODULE\"_Sample_Config.txt Config.txt\r\ndos2unix Config.txt\r\n\r\necho \"Module: $MODULE has been sucessfully installed.\"\r\nrm mb-warband-links.sh\r\n\r\n# Edit Server Name ($SERVER_NAME)\r\nsed -i 's\/.*set_server_name.*\/set_server_name '\"$SERVER_NAME\"'\/g' Config.txt\r\n\r\n# Edit Server Admin Password ($ADMIN_PASSWORD)\r\nsed -i 's\/.*set_pass_admin.*\/set_pass_admin '\"$ADMIN_PASS\"'\/g' Config.txt\r\n\r\n# Edit Server Password ($SERVER_PASS)\r\nsed -i 's\/.*set_pass .*\/set_pass '\"$SERVER_PASS\"'\/g' Config.txt\r\nsed -i 's\/.*set_pass$\/set_pass '\"$SERVER_PASS\"'\/g' Config.txt\r\n\r\n# Edit Server Welcome Message ($MOTD)\r\nsed -i 's\/.*set_welcome_message.*\/set_welcome_message '\"$MOTD\"'\/g' Config.txt\r\n\r\n# Edit Player Count ($PLAYERS)\r\nsed -i 's\/.*set_max_players.*\/set_max_players '\"$PLAYERS\"' '\"$PLAYERS\"'\/g' Config.txt\r\n\r\n# Edit Server Port ($SERVER_PORT)\r\nsed -i 's\/.*set_port.*\/set_port '\"$SERVER_PORT\"'\/g' Config.txt", - "container": "ubuntu:16.04", - "entrypoint": "bash" - } - }, - "variables": [ - { - "name": "Module", - "description": "Name of the module. For a full list of supported modules visit --- https:\/\/github.com\/masonr\/pterodactyl-images\/tree\/mb-warband --- and copy the module name from the first column exactly as shown.", - "env_variable": "MODULE", - "default_value": "Native", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:200" - }, - { - "name": "Player Count", - "description": "Number of players", - "env_variable": "PLAYERS", - "default_value": "32", - "user_viewable": 1, - "user_editable": 0, - "rules": "required|integer|max:200" - }, - { - "name": "Server Name", - "description": "Name of the game server", - "env_variable": "SERVER_NAME", - "default_value": "Pterodactyl_Server", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:100" - }, - { - "name": "Admin Password", - "description": "Password for admin login", - "env_variable": "ADMIN_PASS", - "default_value": "ptero", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:50" - }, - { - "name": "Welcome Message", - "description": "Welcome message \/ MOTD", - "env_variable": "MOTD", - "default_value": "Welcome!", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:500" - }, - { - "name": "Server Password", - "description": "Password for the server.\r\nLeave blank to keep server unlocked.", - "env_variable": "SERVER_PASS", - "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "nullable|string|max:50" - } - ] -} diff --git a/conan_exiles/conan_exiles/README.md b/steamcmd_servers/conan_exiles/README.md similarity index 100% rename from conan_exiles/conan_exiles/README.md rename to steamcmd_servers/conan_exiles/README.md diff --git a/conan_exiles/conan_exiles/egg-conan-exiles.json b/steamcmd_servers/conan_exiles/egg-conan-exiles.json similarity index 100% rename from conan_exiles/conan_exiles/egg-conan-exiles.json rename to steamcmd_servers/conan_exiles/egg-conan-exiles.json diff --git a/dont_starve/dont_starve/README.md b/steamcmd_servers/dont_starve/README.md similarity index 100% rename from dont_starve/dont_starve/README.md rename to steamcmd_servers/dont_starve/README.md diff --git a/dont_starve/dont_starve/egg-don-t-starve.json b/steamcmd_servers/dont_starve/egg-don-t-starve.json similarity index 100% rename from dont_starve/dont_starve/egg-don-t-starve.json rename to steamcmd_servers/dont_starve/egg-don-t-starve.json diff --git a/squad/squad/README.md b/steamcmd_servers/squad/README.md similarity index 100% rename from squad/squad/README.md rename to steamcmd_servers/squad/README.md diff --git a/squad/squad/egg-squad.json b/steamcmd_servers/squad/egg-squad.json similarity index 100% rename from squad/squad/egg-squad.json rename to steamcmd_servers/squad/egg-squad.json From c0b600d008d8a9b0ed5d16a89cbece8d97028cf8 Mon Sep 17 00:00:00 2001 From: "Michael (Parker) Parker" Date: Fri, 20 Dec 2019 10:49:23 -0500 Subject: [PATCH 064/107] update waterfall egg Update install script Add variables for the install script resolves #384 --- minecraft_proxy/waterfall/egg-waterfall.json | 28 ++++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/minecraft_proxy/waterfall/egg-waterfall.json b/minecraft_proxy/waterfall/egg-waterfall.json index b092cb4a..7d5364a6 100644 --- a/minecraft_proxy/waterfall/egg-waterfall.json +++ b/minecraft_proxy/waterfall/egg-waterfall.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-07-24T10:01:37-04:00", + "exported_at": "2019-12-20T10:47:29-05:00", "name": "Waterfall", "author": "hostmaster@waterfallgaming.net", "description": "Waterfall is a fork of the well-known BungeeCord server teleportation suite.", @@ -17,16 +17,16 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Paper Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache --update curl jq\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n echo -e \"using supplied download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n VER_EXISTS=`curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | IN($VERSION)' | grep true`\r\n LATEST_WATERFALL_VERSION=`curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r '.versions' | jq -r '.[0]'`\r\n \r\n if [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n else\r\n echo -e \"Using the latest waterfall version\"\r\n MINECRAFT_VERSION=${LATEST_WATERFALL_VERSION}\r\n fi\r\n \r\n BUILD_EXISTS=`curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all[] | IN($BUILD)' | grep true`\r\n LATEST_PAPER_BUILD=`curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION} | jq -r '.builds.latest'`\r\n \r\n if [ \"${BUILD_EXISTS}\" == \"true\" ] || [ ${BUILD_NUMBER} == \"latest\" ]; then\r\n echo -e \"Build is valid. Using version ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest paper build\"\r\n BUILD_NUMBER=${LATEST_PAPER_BUILD}\r\n fi\r\n \r\n echo \"Version being downloaded\"\r\n echo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n DOWNLOAD_URL=https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION}\/${BUILD_NUMBER}\/download \r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f config.yml ]; then\r\n echo -e \"Downloading waterfall config.yml\"\r\n curl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_proxy\/waterfall\/config.yml\r\nelse\r\n echo -e \"Waterfall config.yml exists. Will not pull a new file\"\r\nfi", + "script": "#!\/bin\/ash\r\n# Paper Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache --update curl jq\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n echo -e \"using supplied download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n if [ -z \"$VANILLA_VERSION\" ] || [ \"${MINECRAFT_VERSION}\" == \"latest\" ]; then\r\n MINECRAFT_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r '.versions[0]')\r\n else\r\n VER_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | IN($VERSION)' | grep true)\r\n fi\r\n \r\n if [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n else\r\n echo -e \"Using the latest waterfall version\"\r\n MINECRAFT_VERSION=${LATEST_WATERFALL_VERSION}\r\n fi\r\n \r\n BUILD_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all[] | IN($BUILD)' | grep true)\r\n LATEST_PAPER_BUILD=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION} | jq -r '.builds.latest')\r\n \r\n if [ \"${BUILD_EXISTS}\" == \"true\" ] || [ ${BUILD_NUMBER} == \"latest\" ]; then\r\n echo -e \"Build is valid. Using version ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest paper build\"\r\n BUILD_NUMBER=${LATEST_PAPER_BUILD}\r\n fi\r\n \r\n echo \"Version being downloaded\"\r\n echo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n DOWNLOAD_URL=https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION}\/${BUILD_NUMBER}\/download \r\nfi\r\n\r\necho -e \"running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f config.yml ]; then\r\n echo -e \"Downloading waterfall config.yml\"\r\n curl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_proxy\/waterfall\/config.yml\r\nelse\r\n echo -e \"Waterfall config.yml exists. Will not pull a new file\"\r\nfi", "container": "alpine:3.10", "entrypoint": "ash" } }, "variables": [ { - "name": "Waterfall Version", - "description": "The version of Waterfall to download and use.", - "env_variable": "WATERFALL_VERSION", + "name": "Minecraft Version", + "description": "The version of Minecraft that water was built to support.", + "env_variable": "MINECRAFT_VERSION", "default_value": "latest", "user_viewable": 1, "user_editable": 1, @@ -40,6 +40,24 @@ "user_viewable": 1, "user_editable": 1, "rules": "required|regex:\/^([\\w\\d._-]+)(\\.jar)$\/" + }, + { + "name": "Download Link", + "description": "A link to the server jar to download the waterfall jar.", + "env_variable": "DL_LINK", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string" + }, + { + "name": "Waterfall build number", + "description": "Default is latest.\r\n\r\nif set to latest or an invalid version will grab the latest build number.", + "env_variable": "BUILD_NUMBER", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" } ] } \ No newline at end of file From f4c069eb93a1e8ac0a11c4324c19e1c744d1e86e Mon Sep 17 00:00:00 2001 From: parkervcp Date: Sat, 21 Dec 2019 14:21:00 -0500 Subject: [PATCH 065/107] organize repo update readme for steamcmd games move arma into the right folder. --- README.md | 86 +++++++++---------- steamcmd_servers/README.md | 17 ++++ steamcmd_servers/arma/README.md | 9 ++ .../arma}/arma3/README.md | 0 .../arma}/arma3/egg-arma3-config/basic.cfg | 0 .../arma}/arma3/egg-arma3-config/server.cfg | 0 .../arma}/arma3/egg-arma3.json | 0 .../arma}/arma3_headless_client/README.md | 0 .../egg-arma3-headless-client.json | 0 9 files changed, 69 insertions(+), 43 deletions(-) create mode 100644 steamcmd_servers/arma/README.md rename {arma => steamcmd_servers/arma}/arma3/README.md (100%) rename {arma => steamcmd_servers/arma}/arma3/egg-arma3-config/basic.cfg (100%) rename {arma => steamcmd_servers/arma}/arma3/egg-arma3-config/server.cfg (100%) rename {arma => steamcmd_servers/arma}/arma3/egg-arma3.json (100%) rename {arma => steamcmd_servers/arma}/arma3_headless_client/README.md (100%) rename {arma => steamcmd_servers/arma}/arma3_headless_client/egg-arma3-headless-client.json (100%) diff --git a/README.md b/README.md index a33eedb5..1c5aa0dd 100644 --- a/README.md +++ b/README.md @@ -26,15 +26,15 @@ If you are reading this it looks like you are looking to add an egg to your serv ## Bot Eggs -[Discord](/bots/discord/) +[Discord](/bots/discord/) * [ATL Bot](/bots/discord/atlbot/) Node JS -* [Bastion](/bots/discord/bastion/) -* [discord.js](bots/discord/discord.js/) Node JS generic -* [fragbot](/bots/discord/fragbot/) Golang +* [Bastion](/bots/discord/bastion/) +* [discord.js](bots/discord/discord.js/) Node JS generic +* [fragbot](/bots/discord/fragbot/) Golang * [jmusicbot](/bots/discord/jmusicbot) Java -* [parkertron](/bots/discord/parkertron/) Golang -* [pixel-bot](/bots/discord/pixelbot/) Python -* [Sinusbot](/bots/discord/sinusbot/) +* [parkertron](/bots/discord/parkertron/) Golang +* [pixel-bot](/bots/discord/pixelbot/) Python +* [Sinusbot](/bots/discord/sinusbot/) [TeamSpeak3](bots/teamspeak3) * [JTS3ServerMod](/bots/teamspeak3/jts3servermod/) @@ -46,64 +46,64 @@ If you are reading this it looks like you are looking to add an egg to your serv [ET Legacy](/enemy_territory/etlegacy/) -[Factorio](/factorio/factorio/) +[Factorio](/factorio/factorio/) -[Grand Theft Auto](/gta/) +[Grand Theft Auto](/gta/) * GTA V - * [FiveM](/gta/fivem/) - * [RageMP](/gta/ragemp/) + * [FiveM](/gta/fivem/) + * [RageMP](/gta/ragemp/) * GTA SA * [Multi Theft Auto](/gta/mtasa/) * [SA-MP](/gta/samp/) -[Minecraft Bedrock](/minecraft_bedrock/) Servers for Bedrock Minecraft -* [Bedrock](/minecraft_bedrock/bedrock/) -* [Nukkit](/minecraft_bedrock/nukkit/) -* [PocketMine MP](/minecraft_bedrock/pocketmine_mp/) +[Minecraft Bedrock](/minecraft_bedrock/) Servers for Bedrock Minecraft +* [Bedrock](/minecraft_bedrock/bedrock/) +* [Nukkit](/minecraft_bedrock/nukkit/) +* [PocketMine MP](/minecraft_bedrock/pocketmine_mp/) -[Minecraft Java](/minecraft_java/) Servers for Java Minecraft +[Minecraft Java](/minecraft_java/) Servers for Java Minecraft * [Cuberite](/minecraft_java/cuberite/) -* [Forge](/minecraft_java/forge/) -* [Feed The Beast](/minecraft_java/ftb/) +* [Forge](/minecraft_java/forge/) +* [Feed The Beast](/minecraft_java/ftb/) * [Paper](/minecraft_java/paper) * [Spigot](/minecraft_java/spigot/) * [spongeforge](/minecraft_java/spongeforge/) * [SpongeVanilla](/minecraft_java/spongevanilla/) -* [Technic](/minecraft_java/technic/) +* [Technic](/minecraft_java/technic/) * [VanillaCord](/minecraft_java/vanillacord/) -[Minecraft Proxies](/minecraft_proxy/) (these are for the java version of minecraft) -* [Waterfall](/minecraft_proxy/waterfall/) +[Minecraft Proxies](/minecraft_proxy/) (these are for the java version of minecraft) +* [Waterfall](/minecraft_proxy/waterfall/) * [TyphoonLimbo](/minecraft_proxy/typhoonlimbo/) * [Velocity](/minecraft_proxy/velocity/) [Tycoon Games](/tycoon_games/) * [OpenTTD](/tycoon_games/openttd/) -[steamcmd servers](/steamcmd_servers/) These eggs use steamcmd to install -* [7 Days to Die](/steamcmd_servers/7_days_to_die/) -* [ARK Survival Evolved](/steamcmd_servers/ark_survival_evolved/) -* [Arma](/arma/) - * [Arma 3](/arma/arma3/) - * [Arma 3 HC](/arma/arma3_headless_client/) -* [Conan Exiles](/steamcmd_servers/conan_exiles) -* [Don't Starve](/steamcmd_servers/dont_starve) -* [HLDS server](/steamcmd_servers/hlds_server) -* [Mordhau](/steamcmd_servers/mordhau) -* [Onset](/steamcmd_servers/onset) -* [PixARK](/steamcmd_servers/pixark/) -* [Rust Staging Branch](/steamcmd_servers/rust_staging/) -* [Starbound](/steamcmd_servers/starbound) -* [Sven Co-op](/steamcmd_servers/svencoop) -* [Squad](/steamcmd_servers/squad/) -* [Unturned](/unturned/) - * [RocketMod](/unturned/rocketmod/) +[steamcmd servers](/steamcmd_servers/) These eggs use steamcmd to install +* [7 Days to Die](/steamcmd_servers/7_days_to_die/) +* [ARK Survival Evolved](/steamcmd_servers/ark_survival_evolved/) +* [Arma](/steamcmd_servers/arma/) + * [Arma 3](/steamcmd_servers/arma/arma3/) + * [Arma 3 HC](/steamcmd_servers/arma/arma3_headless_client/) +* [Conan Exiles](/steamcmd_servers/conan_exiles) +* [Don't Starve](/steamcmd_servers/dont_starve) +* [HLDS server](/steamcmd_servers/hlds_server) +* [Mordhau](/steamcmd_servers/mordhau) +* [Onset](/steamcmd_servers/onset) +* [PixARK](/steamcmd_servers/pixark/) +* [Rust Staging Branch](/steamcmd_servers/rust_staging/) +* [Starbound](/steamcmd_servers/starbound) +* [Sven Co-op](/steamcmd_servers/svencoop) +* [Squad](/steamcmd_servers/squad/) +* [Unturned](/unturned/) + * [RocketMod](/unturned/rocketmod/) [Unreal Engine](/unreal_engine) * [Tower Unite](/unreal_engine/tower_unite/) -[Terraria](/terraria/) -* [tmodloader](/terraria/tmodloader) -* [tshock](/terraria/tshock/) +[Terraria](/terraria/) +* [tmodloader](/terraria/tmodloader) +* [tshock](/terraria/tshock/) -[Xonotic](/xonotic/xonotic/) +[Xonotic](/xonotic/xonotic/) diff --git a/steamcmd_servers/README.md b/steamcmd_servers/README.md index a0b70ee8..6f123f7a 100644 --- a/steamcmd_servers/README.md +++ b/steamcmd_servers/README.md @@ -8,15 +8,32 @@ This is a collection of servers that use steamcmd to install. ## ARK [ark](ark_survival_evolved/) +## ARMA +[arma](arma/) +* [arma 3](arma/arma3/) +* [arma 3 headless](arma/arma3_headless_client/) + +## Conan Exiles +[conan_exiles](conan_exiles/) + +## Don't Starve +[dont_starve](dont_starve/) + ## HLDS Server [hlds](hlds_server/) ## Mordhau [mordhau](mordhau/) +## Onset +[onset](onset/) + ## Rust Staging [rust staging](rust_staging/) +## Squad +[squad](squad/) + ## Starbound [starbound](starbound/) diff --git a/steamcmd_servers/arma/README.md b/steamcmd_servers/arma/README.md new file mode 100644 index 00000000..f90116a9 --- /dev/null +++ b/steamcmd_servers/arma/README.md @@ -0,0 +1,9 @@ +# ARMA + +ARMA is a series of first-person tactical military shooters, originally released for Microsoft Windows. It features large elements of realism and simulation; a blend of large-scale military conflict spread across large areas alongside the more close quartered battles. + +## ARMA III +[arma 3](arma3/) + +## ARMA III headless client +[arma 3 headless](arma3_headless_client/) \ No newline at end of file diff --git a/arma/arma3/README.md b/steamcmd_servers/arma/arma3/README.md similarity index 100% rename from arma/arma3/README.md rename to steamcmd_servers/arma/arma3/README.md diff --git a/arma/arma3/egg-arma3-config/basic.cfg b/steamcmd_servers/arma/arma3/egg-arma3-config/basic.cfg similarity index 100% rename from arma/arma3/egg-arma3-config/basic.cfg rename to steamcmd_servers/arma/arma3/egg-arma3-config/basic.cfg diff --git a/arma/arma3/egg-arma3-config/server.cfg b/steamcmd_servers/arma/arma3/egg-arma3-config/server.cfg similarity index 100% rename from arma/arma3/egg-arma3-config/server.cfg rename to steamcmd_servers/arma/arma3/egg-arma3-config/server.cfg diff --git a/arma/arma3/egg-arma3.json b/steamcmd_servers/arma/arma3/egg-arma3.json similarity index 100% rename from arma/arma3/egg-arma3.json rename to steamcmd_servers/arma/arma3/egg-arma3.json diff --git a/arma/arma3_headless_client/README.md b/steamcmd_servers/arma/arma3_headless_client/README.md similarity index 100% rename from arma/arma3_headless_client/README.md rename to steamcmd_servers/arma/arma3_headless_client/README.md diff --git a/arma/arma3_headless_client/egg-arma3-headless-client.json b/steamcmd_servers/arma/arma3_headless_client/egg-arma3-headless-client.json similarity index 100% rename from arma/arma3_headless_client/egg-arma3-headless-client.json rename to steamcmd_servers/arma/arma3_headless_client/egg-arma3-headless-client.json From d4fcfb93852b1bada7712f35a3f1a69eeefb33bb Mon Sep 17 00:00:00 2001 From: Fern <15272073+Fernthedev@users.noreply.github.com> Date: Mon, 23 Dec 2019 12:59:44 -0400 Subject: [PATCH 066/107] Waterfall Installation and Startup command modification Fixed issues such as failure to parse Waterfall latest build, version and latest Minecraft version Changed startup command to use https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/ --- minecraft_proxy/waterfall/egg-waterfall.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/minecraft_proxy/waterfall/egg-waterfall.json b/minecraft_proxy/waterfall/egg-waterfall.json index 7d5364a6..84f50a33 100644 --- a/minecraft_proxy/waterfall/egg-waterfall.json +++ b/minecraft_proxy/waterfall/egg-waterfall.json @@ -3,12 +3,12 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-12-20T10:47:29-05:00", + "exported_at": "2019-12-23T12:28:53-04:00", "name": "Waterfall", "author": "hostmaster@waterfallgaming.net", "description": "Waterfall is a fork of the well-known BungeeCord server teleportation suite.", "image": "quay.io\/pterodactyl\/core:java", - "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", + "startup": "java -Xms{{SERVER_MEMORY}}M -Xmx{{SERVER_MEMORY}}M -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=100 -XX:+DisableExplicitGC -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=50 -XX:G1MaxNewSizePercent=80 -XX:G1MixedGCLiveThresholdPercent=35 -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -Dusing.aikars.flags=mcflags.emc.gs -jar {{SERVER_JARFILE}}", "config": { "files": "{\r\n \"config.yml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"listeners[0].host\": \"0.0.0.0:{{server.build.default.port}}\",\r\n \"servers.*.address\": {\r\n \"127.0.0.1\": \"{{config.docker.interface}}\",\r\n \"localhost\": \"{{config.docker.interface}}\"\r\n }\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Listening on \",\r\n \"userInteraction\": [\r\n \"Listening on \/0.0.0.0:\"\r\n ]\r\n}", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Paper Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache --update curl jq\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n echo -e \"using supplied download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n if [ -z \"$VANILLA_VERSION\" ] || [ \"${MINECRAFT_VERSION}\" == \"latest\" ]; then\r\n MINECRAFT_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r '.versions[0]')\r\n else\r\n VER_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | IN($VERSION)' | grep true)\r\n fi\r\n \r\n if [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n else\r\n echo -e \"Using the latest waterfall version\"\r\n MINECRAFT_VERSION=${LATEST_WATERFALL_VERSION}\r\n fi\r\n \r\n BUILD_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all[] | IN($BUILD)' | grep true)\r\n LATEST_PAPER_BUILD=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION} | jq -r '.builds.latest')\r\n \r\n if [ \"${BUILD_EXISTS}\" == \"true\" ] || [ ${BUILD_NUMBER} == \"latest\" ]; then\r\n echo -e \"Build is valid. Using version ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest paper build\"\r\n BUILD_NUMBER=${LATEST_PAPER_BUILD}\r\n fi\r\n \r\n echo \"Version being downloaded\"\r\n echo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n DOWNLOAD_URL=https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION}\/${BUILD_NUMBER}\/download \r\nfi\r\n\r\necho -e \"running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f config.yml ]; then\r\n echo -e \"Downloading waterfall config.yml\"\r\n curl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_proxy\/waterfall\/config.yml\r\nelse\r\n echo -e \"Waterfall config.yml exists. Will not pull a new file\"\r\nfi", + "script": "#!\/bin\/ash\r\n# Paper Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache --update curl jq\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n echo -e \"using supplied download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n if [ -z \"$VANILLA_VERSION\" ] || [ \"${MINECRAFT_VERSION}\" == \"latest\" ]; then\r\n MINECRAFT_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r '.versions[0]')\r\n echo ${MINECRAFT_VERSION} is mc ver\r\n else\r\n echo Result: $(curl -s https:\/\/papermc.io\/api\/v1\/waterfall)\r\n VER_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r --arg VERSION $MINECRAFT_VERSION '.versions | contains ([$VERSION])')\r\n# VER_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | IN($VERSION)' | grep true)\r\n fi\r\n \r\n if [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n else\r\n echo -e \"Using the latest waterfall version\"\r\n LATEST_WATERFALL_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/ | jq -r '.versions[0]')\r\n MINECRAFT_VERSION=${LATEST_WATERFALL_VERSION}\r\n fi\r\n \r\n if [ ! ${BUILD_NUMBER} == \"latest\" ] ; then\r\n BUILD_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all[] | IN($BUILD)' | grep true)\r\n LATEST_WATERFALL_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/ | jq -r '.versions[0]')\r\n \r\n if [ \"${BUILD_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Build is valid. Using version ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest paper build\"\r\n BUILD_NUMBER=${LATEST_WATERFALL_VERSION}\r\n fi\r\n fi\r\n \r\n echo \"Version being downloaded: ${BUILD_NUMBER}\"\r\n echo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n DOWNLOAD_URL=https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION}\/${BUILD_NUMBER}\/download \r\nfi\r\n\r\necho -e \"running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f config.yml ]; then\r\n echo -e \"Downloading waterfall config.yml\"\r\n curl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_proxy\/waterfall\/config.yml\r\nelse\r\n echo -e \"Waterfall config.yml exists. Will not pull a new file\"\r\nfi", "container": "alpine:3.10", "entrypoint": "ash" } From 9cd38f33cb32ede59c0179e896751986a93c8e39 Mon Sep 17 00:00:00 2001 From: Fern <15272073+Fernthedev@users.noreply.github.com> Date: Mon, 23 Dec 2019 13:10:24 -0400 Subject: [PATCH 067/107] Removed flags --- minecraft_proxy/waterfall/egg-waterfall.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/minecraft_proxy/waterfall/egg-waterfall.json b/minecraft_proxy/waterfall/egg-waterfall.json index 84f50a33..f494adf5 100644 --- a/minecraft_proxy/waterfall/egg-waterfall.json +++ b/minecraft_proxy/waterfall/egg-waterfall.json @@ -3,12 +3,12 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-12-23T12:28:53-04:00", + "exported_at": "2019-12-23T13:10:08-04:00", "name": "Waterfall", "author": "hostmaster@waterfallgaming.net", "description": "Waterfall is a fork of the well-known BungeeCord server teleportation suite.", "image": "quay.io\/pterodactyl\/core:java", - "startup": "java -Xms{{SERVER_MEMORY}}M -Xmx{{SERVER_MEMORY}}M -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=100 -XX:+DisableExplicitGC -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=50 -XX:G1MaxNewSizePercent=80 -XX:G1MixedGCLiveThresholdPercent=35 -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -Dusing.aikars.flags=mcflags.emc.gs -jar {{SERVER_JARFILE}}", + "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", "config": { "files": "{\r\n \"config.yml\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"listeners[0].host\": \"0.0.0.0:{{server.build.default.port}}\",\r\n \"servers.*.address\": {\r\n \"127.0.0.1\": \"{{config.docker.interface}}\",\r\n \"localhost\": \"{{config.docker.interface}}\"\r\n }\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Listening on \",\r\n \"userInteraction\": [\r\n \"Listening on \/0.0.0.0:\"\r\n ]\r\n}", From f8f6cf22f5330058663f26f74bdc1808552cee10 Mon Sep 17 00:00:00 2001 From: Fern <15272073+Fernthedev@users.noreply.github.com> Date: Mon, 23 Dec 2019 13:23:33 -0400 Subject: [PATCH 068/107] Used parkervcp's suggestions --- minecraft_proxy/waterfall/egg-waterfall.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/minecraft_proxy/waterfall/egg-waterfall.json b/minecraft_proxy/waterfall/egg-waterfall.json index f494adf5..3af57a1e 100644 --- a/minecraft_proxy/waterfall/egg-waterfall.json +++ b/minecraft_proxy/waterfall/egg-waterfall.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-12-23T13:10:08-04:00", + "exported_at": "2019-12-23T13:23:16-04:00", "name": "Waterfall", "author": "hostmaster@waterfallgaming.net", "description": "Waterfall is a fork of the well-known BungeeCord server teleportation suite.", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Paper Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache --update curl jq\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n echo -e \"using supplied download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n if [ -z \"$VANILLA_VERSION\" ] || [ \"${MINECRAFT_VERSION}\" == \"latest\" ]; then\r\n MINECRAFT_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r '.versions[0]')\r\n echo ${MINECRAFT_VERSION} is mc ver\r\n else\r\n echo Result: $(curl -s https:\/\/papermc.io\/api\/v1\/waterfall)\r\n VER_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r --arg VERSION $MINECRAFT_VERSION '.versions | contains ([$VERSION])')\r\n# VER_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r --arg VERSION $MINECRAFT_VERSION '.versions[] | IN($VERSION)' | grep true)\r\n fi\r\n \r\n if [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n else\r\n echo -e \"Using the latest waterfall version\"\r\n LATEST_WATERFALL_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/ | jq -r '.versions[0]')\r\n MINECRAFT_VERSION=${LATEST_WATERFALL_VERSION}\r\n fi\r\n \r\n if [ ! ${BUILD_NUMBER} == \"latest\" ] ; then\r\n BUILD_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all[] | IN($BUILD)' | grep true)\r\n LATEST_WATERFALL_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/ | jq -r '.versions[0]')\r\n \r\n if [ \"${BUILD_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Build is valid. Using version ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest paper build\"\r\n BUILD_NUMBER=${LATEST_WATERFALL_VERSION}\r\n fi\r\n fi\r\n \r\n echo \"Version being downloaded: ${BUILD_NUMBER}\"\r\n echo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n DOWNLOAD_URL=https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION}\/${BUILD_NUMBER}\/download \r\nfi\r\n\r\necho -e \"running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f config.yml ]; then\r\n echo -e \"Downloading waterfall config.yml\"\r\n curl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_proxy\/waterfall\/config.yml\r\nelse\r\n echo -e \"Waterfall config.yml exists. Will not pull a new file\"\r\nfi", + "script": "#!\/bin\/ash\r\n# Paper Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache --update curl jq\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -n \"${DL_PATH}\" ]; then\r\n echo -e \"using supplied download url\"\r\n DOWNLOAD_URL=`eval echo $(echo ${DL_PATH} | sed -e 's\/{{\/${\/g' -e 's\/}}\/}\/g')`\r\nelse\r\n if [ -z \"$VANILLA_VERSION\" ] || [ \"${MINECRAFT_VERSION}\" == \"latest\" ]; then\r\n MINECRAFT_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r '.versions[0]')\r\n else\r\n VER_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall | jq -r --arg VERSION $MINECRAFT_VERSION '.versions | contains ([$VERSION])')\r\n fi\r\n \r\n if [ \"${VER_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Version is valid. Using version ${MINECRAFT_VERSION}\"\r\n else\r\n echo -e \"Using the latest waterfall version\"\r\n MINECRAFT_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/ | jq -r '.versions[0]')\r\n fi\r\n \r\n if [ ! ${BUILD_NUMBER} == \"latest\" ] ; then\r\n BUILD_EXISTS=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION} | jq -r --arg BUILD ${BUILD_NUMBER} '.builds.all[] | IN($BUILD)' | grep true)\r\n LATEST_WATERFALL_VERSION=$(curl -s https:\/\/papermc.io\/api\/v1\/waterfall\/ | jq -r '.versions[0]')\r\n \r\n if [ \"${BUILD_EXISTS}\" == \"true\" ]; then\r\n echo -e \"Build is valid. Using version ${BUILD_NUMBER}\"\r\n else\r\n echo -e \"Using the latest paper build\"\r\n BUILD_NUMBER=${LATEST_WATERFALL_VERSION}\r\n fi\r\n fi\r\n \r\n echo \"Version being downloaded: ${BUILD_NUMBER}\"\r\n echo -e \"MC Version: ${MINECRAFT_VERSION}\"\r\n echo -e \"Build: ${BUILD_NUMBER}\"\r\n DOWNLOAD_URL=https:\/\/papermc.io\/api\/v1\/waterfall\/${MINECRAFT_VERSION}\/${BUILD_NUMBER}\/download \r\nfi\r\n\r\necho -e \"running curl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\"\r\n\r\ncurl -o ${SERVER_JARFILE} ${DOWNLOAD_URL}\r\n\r\nif [ ! -f config.yml ]; then\r\n echo -e \"Downloading waterfall config.yml\"\r\n curl -o config.yml https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_proxy\/waterfall\/config.yml\r\nelse\r\n echo -e \"Waterfall config.yml exists. Will not pull a new file\"\r\nfi", "container": "alpine:3.10", "entrypoint": "ash" } From 3b4eb847c6553a2ef1f76d146acb15e1bdce2448 Mon Sep 17 00:00:00 2001 From: parkervcp Date: Mon, 23 Dec 2019 12:24:38 -0500 Subject: [PATCH 069/107] more organizing Moves more servers into the steamcmd folder. --- .gitignore | 4 +- .gitignore_global | 1 - steamcmd_servers/tower_unite/README.md | 11 ++++ .../tower_unite/egg-tower-unite.json | 63 +++++++++++++++++++ steamcmd_servers/unturned/rocketmod/README.md | 17 +++++ .../unturned/rocketmod/egg-rocketmod.json | 54 ++++++++++++++++ 6 files changed, 148 insertions(+), 2 deletions(-) delete mode 100644 .gitignore_global create mode 100644 steamcmd_servers/tower_unite/README.md create mode 100644 steamcmd_servers/tower_unite/egg-tower-unite.json create mode 100644 steamcmd_servers/unturned/rocketmod/README.md create mode 100644 steamcmd_servers/unturned/rocketmod/egg-rocketmod.json diff --git a/.gitignore b/.gitignore index ccc9fd93..378f0ca5 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -*.DS_Store \ No newline at end of file +*.DS_Store +node_modules/ +.vuepress/ \ No newline at end of file diff --git a/.gitignore_global b/.gitignore_global deleted file mode 100644 index 496ee2ca..00000000 --- a/.gitignore_global +++ /dev/null @@ -1 +0,0 @@ -.DS_Store \ No newline at end of file diff --git a/steamcmd_servers/tower_unite/README.md b/steamcmd_servers/tower_unite/README.md new file mode 100644 index 00000000..f43f9408 --- /dev/null +++ b/steamcmd_servers/tower_unite/README.md @@ -0,0 +1,11 @@ +# Tower Unite +Their desctiption: +Every aspect of Tower Unite allows for online multiplayer interaction. It is a living and evolving online game world, driven by the community. Play games online with your friends, or make new friends from across the globe. + +### Server Ports +Tower Unite requires a single port to be opened + +| Port | default | +|---------|---------| +| Game | 7778 | +| Query | 27016 | diff --git a/steamcmd_servers/tower_unite/egg-tower-unite.json b/steamcmd_servers/tower_unite/egg-tower-unite.json new file mode 100644 index 00000000..43f7687b --- /dev/null +++ b/steamcmd_servers/tower_unite/egg-tower-unite.json @@ -0,0 +1,63 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-02-08T01:46:57+01:00", + "name": "Tower Unite", + "author": "teamwuffy@gmail.com", + "description": "Tower Unite\r\n\r\nDefault Port: 7778\r\nDefault Query Port: 27016\r\n\r\nConfig Path: Tower\/Saved\/Config\/TowerServer.ini", + "image": "quay.io\/pterodactyl\/core:source", + "startup": ".\/Tower\/Binaries\/Linux\/TowerServer-Linux-Shipping -log -Port={{SERVER_PORT}} -MULTIHOME=0.0.0.0 -TowerServerINI=..\/..\/Saved\/Config\/TowerServer.ini", + "config": { + "files": "{\r\n \"Tower\/Saved\/Config\/TowerServer.ini\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"MaxPlayers\": \"{{server.build.env.SERVER_MAX_PLAYER}}\",\r\n \"ServerTitle\": \"{{server.build.env.SERVER_TITLE}}\",\r\n \"SteamLoginToken\": \"{{server.build.env.STEAM_LOGIN_TOKEN}}\",\r\n \"AdminSteamID\": \"{{server.build.env.STEAM_ADMIN_ID}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Match State Changed from EnteringMap to WaitingToStart\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# Tower Unite Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --install-recommends install curl ca-certificates lib32gcc1\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\r\n\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\n\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update 439660 validate +quit\r\n\r\ncd mnt\/server\r\n\r\nmkdir -p Tower\/Saved\/Config\r\nmkdir -p Tower\/Binaries\/Linux\r\n\r\nmv \/mnt\/server\/steamcmd\/linux64\/steamclient.so \/mnt\/server\/Tower\/Binaries\/Linux\r\n\r\ncat <> Tower\/Saved\/Config\/TowerServer.ini\r\n[\/script\/towernetworking.dedicatedserveroptions]\r\nMaxPlayers=$SERVER_MAX_PLAYER\r\nServerTitle=$SERVER_TITLE\r\nSteamLoginToken=$STEAM_LOGIN_TOKEN\r\n\r\n[Administration]\r\nAdminSteamID=$STEAM_ADMIN_ID\r\nEOF", + "container": "ubuntu:18.10", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Steam Login Token", + "description": "Login and generate a token for the app-id: 394690\r\nhttps:\/\/steamcommunity.com\/dev\/managegameservers", + "env_variable": "STEAM_LOGIN_TOKEN", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:100" + }, + { + "name": "Steam Admin ID", + "description": "Note that your admin id is only a number!", + "env_variable": "STEAM_ADMIN_ID", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|integer|max:76561202255233023" + }, + { + "name": "Server Title", + "description": "", + "env_variable": "SERVER_TITLE", + "default_value": "Tower Unite Server", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:512" + }, + { + "name": "Max Players", + "description": "", + "env_variable": "SERVER_MAX_PLAYER", + "default_value": "40", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|integer|max:512" + } + ] +} \ No newline at end of file diff --git a/steamcmd_servers/unturned/rocketmod/README.md b/steamcmd_servers/unturned/rocketmod/README.md new file mode 100644 index 00000000..b4386da3 --- /dev/null +++ b/steamcmd_servers/unturned/rocketmod/README.md @@ -0,0 +1,17 @@ +# Unturned + +Steam Description +You're one of the few not yet turned zombie. Keeping it that way will be a challenge. +- Go in guns blazing and attract the attention of everything, living and dead. +- Take a subtle approach sneaking around and making use of distractions. +- Confront and learn to counter special abilities ranging from invisibility to fire breathing to lightning attacks. + +### Server Ports +Rocketmod requires 2 ports to run properly. +game port (default 8907) +game +1 (default 8908) + +| Port | default | +|---------|---------| +| Game | 8907 | +| Game +1 | 8908 | \ No newline at end of file diff --git a/steamcmd_servers/unturned/rocketmod/egg-rocketmod.json b/steamcmd_servers/unturned/rocketmod/egg-rocketmod.json new file mode 100644 index 00000000..acaf657f --- /dev/null +++ b/steamcmd_servers/unturned/rocketmod/egg-rocketmod.json @@ -0,0 +1,54 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2018-04-27T21:30:05+00:00", + "name": "RocketMod", + "author": "isaac@isaacs.site", + "description": "The RocketMod server mod for Unturned.", + "image": "registry.gitlab.com\/tenten8401\/pterodactyl-unturned", + "startup": "mono RocketLauncher.exe unturned", + "config": { + "files": "{\r\n \"Servers\/unturned\/Server\/Commands.dat\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"Port\": \"Port {{server.build.default.port}}\"\r\n }\r\n}\r\n}", + "startup": "{\r\n \"done\": \"Loading level: 100%\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"latest.log\"\r\n}", + "stop": "shutdown" + }, + "scripts": { + "installation": { + "script": "apt update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\r\n\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +@sSteamCmdForcePlatformBitness 32 +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update 304930 +quit\r\n\r\nmkdir -p \/mnt\/server\/Servers\/unturned\/Server\r\necho \"Port 27015\" > \/mnt\/server\/Servers\/unturned\/Server\/Commands.dat\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so", + "container": "ubuntu:16.04", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Steam User", + "description": "A Steam username with Unturned on the account.", + "env_variable": "STEAM_USER", + "default_value": "anonymous", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string" + }, + { + "name": "Steam Password", + "description": "Steam User Password", + "env_variable": "STEAM_PASS", + "default_value": "", + "user_viewable": 0, + "user_editable": 0, + "rules": "nullable|string" + }, + { + "name": "Steam Auth Code", + "description": "Steam Auth Code only when you're using Steam Auth", + "env_variable": "STEAM_AUTH", + "default_value": "", + "user_viewable": 0, + "user_editable": 0, + "rules": "nullable|string" + } + ] +} \ No newline at end of file From 6406b1894d8ca011c12d31bb6240901ccce4210f Mon Sep 17 00:00:00 2001 From: parkervcp Date: Wed, 25 Dec 2019 19:09:30 -0500 Subject: [PATCH 070/107] update minecraft install script fixes a bug with the minecraft install script. --- stock-eggs/minecraft/egg-vanilla-minecraft.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/stock-eggs/minecraft/egg-vanilla-minecraft.json b/stock-eggs/minecraft/egg-vanilla-minecraft.json index 5937fc17..baaa63db 100644 --- a/stock-eggs/minecraft/egg-vanilla-minecraft.json +++ b/stock-eggs/minecraft/egg-vanilla-minecraft.json @@ -3,22 +3,22 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-06-19T17:09:18-04:00", + "exported_at": "2019-12-25T19:08:05-05:00", "name": "Vanilla Minecraft", "author": "support@pterodactyl.io", "description": "Minecraft is a game about placing blocks and going on adventures. Explore randomly generated worlds and build amazing things from the simplest of homes to the grandest of castles. Play in Creative Mode with unlimited resources or mine deep in Survival Mode, crafting weapons and armor to fend off dangerous mobs. Do all this alone or with friends.", "image": "quay.io\/pterodactyl\/core:java", "startup": "java -Xms128M -Xmx{{SERVER_MEMORY}}M -jar {{SERVER_JARFILE}}", "config": { - "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"query.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \")! For help, type \",\r\n \"userInteraction\": [\r\n \"Go to eula.txt for more info.\"\r\n ]\r\n}", "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", "stop": "stop" }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Vanilla MC Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk update\r\napk add curl jq\r\n\r\ncd \/mnt\/server\r\n\r\nLATEST_VERSION=`curl https:\/\/launchermeta.mojang.com\/mc\/game\/version_manifest.json | jq -r '.latest.release'`\r\n\r\nif [ -z \"$VANILLA_VERSION\" ] || [ \"$VANILLA_VERSION\" == \"latest\" ]; then\r\n MANIFEST_URL=$(curl https:\/\/launchermeta.mojang.com\/mc\/game\/version_manifest.json | jq .versions | jq -r '.[] | select(.id == \"'$LATEST_VERSION'\") | .url')\r\nelse\r\n MANIFEST_URL=$(curl https:\/\/launchermeta.mojang.com\/mc\/game\/version_manifest.json | jq .versions | jq -r '.[] | select(.id == \"'$VANILLA_VERSION'\") | .url')\r\nfi\r\n\r\nDOWNLOAD_URL=`curl $MANIFEST_URL | jq .downloads.server | jq -r '. | .url'`\r\n\r\ncurl -o ${SERVER_JARFILE} $DOWNLOAD_URL", - "container": "alpine:3.9", + "script": "#!\/bin\/ash\r\n# Vanilla MC Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk update\r\napk add curl jq\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nLATEST_VERSION=`curl https:\/\/launchermeta.mojang.com\/mc\/game\/version_manifest.json | jq -r '.latest.release'`\r\n\r\nif [ -z \"$VANILLA_VERSION\" ] || [ \"$VANILLA_VERSION\" == \"latest\" ]; then\r\n MANIFEST_URL=$(curl -sSL https:\/\/launchermeta.mojang.com\/mc\/game\/version_manifest.json | jq --arg VERSION $LATEST_VERSION -r '.versions | .[] | select(.id== $VERSION )|.url'))\r\nelse\r\n MANIFEST_URL=$(curl -sSL https:\/\/launchermeta.mojang.com\/mc\/game\/version_manifest.json | jq --arg VERSION $VANILLA_VERSION -r '.versions | .[] | select(.id== $VERSION )|.url')\r\nfi\r\n\r\nDOWNLOAD_URL=$(curl ${MANIFEST_URL} | jq .downloads.server | jq -r '. | .url')\r\n\r\ncurl -o ${SERVER_JARFILE} $DOWNLOAD_URL", + "container": "alpine:3.10", "entrypoint": "ash" } }, @@ -42,4 +42,4 @@ "rules": "required|string|between:3,15" } ] -} +} \ No newline at end of file From e360567f3a2322411ae5e984784f05bc7f58fcae Mon Sep 17 00:00:00 2001 From: parkervcp Date: Wed, 25 Dec 2019 19:57:48 -0500 Subject: [PATCH 071/107] update script corrently --- stock-eggs/minecraft/egg-vanilla-minecraft.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stock-eggs/minecraft/egg-vanilla-minecraft.json b/stock-eggs/minecraft/egg-vanilla-minecraft.json index baaa63db..f613c815 100644 --- a/stock-eggs/minecraft/egg-vanilla-minecraft.json +++ b/stock-eggs/minecraft/egg-vanilla-minecraft.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-12-25T19:08:05-05:00", + "exported_at": "2019-12-25T19:55:01-05:00", "name": "Vanilla Minecraft", "author": "support@pterodactyl.io", "description": "Minecraft is a game about placing blocks and going on adventures. Explore randomly generated worlds and build amazing things from the simplest of homes to the grandest of castles. Play in Creative Mode with unlimited resources or mine deep in Survival Mode, crafting weapons and armor to fend off dangerous mobs. Do all this alone or with friends.", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n# Vanilla MC Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk update\r\napk add curl jq\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nLATEST_VERSION=`curl https:\/\/launchermeta.mojang.com\/mc\/game\/version_manifest.json | jq -r '.latest.release'`\r\n\r\nif [ -z \"$VANILLA_VERSION\" ] || [ \"$VANILLA_VERSION\" == \"latest\" ]; then\r\n MANIFEST_URL=$(curl -sSL https:\/\/launchermeta.mojang.com\/mc\/game\/version_manifest.json | jq --arg VERSION $LATEST_VERSION -r '.versions | .[] | select(.id== $VERSION )|.url'))\r\nelse\r\n MANIFEST_URL=$(curl -sSL https:\/\/launchermeta.mojang.com\/mc\/game\/version_manifest.json | jq --arg VERSION $VANILLA_VERSION -r '.versions | .[] | select(.id== $VERSION )|.url')\r\nfi\r\n\r\nDOWNLOAD_URL=$(curl ${MANIFEST_URL} | jq .downloads.server | jq -r '. | .url')\r\n\r\ncurl -o ${SERVER_JARFILE} $DOWNLOAD_URL", + "script": "#!\/bin\/ash\r\n# Vanilla MC Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add curl --no-cache --update jq\r\n\r\nmkdir -p \/mnt\/server\r\ncd \/mnt\/server\r\n\r\nLATEST_VERSION=`curl https:\/\/launchermeta.mojang.com\/mc\/game\/version_manifest.json | jq -r '.latest.release'`\r\n\r\necho -e \"latest version is $LATEST_VERSION\"\r\n\r\nif [ -z \"$VANILLA_VERSION\" ] || [ \"$VANILLA_VERSION\" == \"latest\" ]; then\r\n MANIFEST_URL=$(curl -sSL https:\/\/launchermeta.mojang.com\/mc\/game\/version_manifest.json | jq --arg VERSION $LATEST_VERSION -r '.versions | .[] | select(.id== $VERSION )|.url')\r\nelse\r\n MANIFEST_URL=$(curl -sSL https:\/\/launchermeta.mojang.com\/mc\/game\/version_manifest.json | jq --arg VERSION $VANILLA_VERSION -r '.versions | .[] | select(.id== $VERSION )|.url')\r\nfi\r\n\r\nDOWNLOAD_URL=$(curl ${MANIFEST_URL} | jq .downloads.server | jq -r '. | .url')\r\n\r\necho -e \"running: curl -o ${SERVER_JARFILE} $DOWNLOAD_URL\"\r\ncurl -o ${SERVER_JARFILE} $DOWNLOAD_URL\r\n\r\necho -e \"Install Complete\"", "container": "alpine:3.10", "entrypoint": "ash" } From 2b069811178e8008a5946c476853a216c2ae0849 Mon Sep 17 00:00:00 2001 From: parkervcp Date: Thu, 26 Dec 2019 15:51:38 -0500 Subject: [PATCH 072/107] update arma 3 config links Updates the arma3 config links. Also updates the install scripts. --- steamcmd_servers/arma/arma3/egg-arma3.json | 28 +++++++++---------- .../egg-arma3-headless-client.json | 8 +++--- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/steamcmd_servers/arma/arma3/egg-arma3.json b/steamcmd_servers/arma/arma3/egg-arma3.json index 6cafce19..66496d91 100644 --- a/steamcmd_servers/arma/arma3/egg-arma3.json +++ b/steamcmd_servers/arma/arma3/egg-arma3.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-03-13T18:40:40-04:00", + "exported_at": "2019-12-26T15:50:38-05:00", "name": "Arma 3", "author": "daave@aaathats3as.com", "description": "Experience true combat gameplay in a massive military sandbox. Deploying a wide variety of single- and multiplayer content, over 20 vehicles and 40 weapons, and limitless opportunities for content creation, this is the PC's premier military game. Authentic, diverse, open - Arma 3 sends you to war.", @@ -17,8 +17,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl\r\napt -y --no-install-recommends install lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSLO http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd \/mnt\/server\/logs\r\nmkdir -p \"\/mnt\/server\/.local\/share\/Arma 3\" \"\/mnt\/server\/.local\/share\/Arma 3 - Other Profiles\"\r\n\r\ntouch \/mnt\/server\/latest.log\r\nchown -R root:root \/mnt\r\n\r\ntar -xzvf \/tmp\/steamcmd_linux.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\nexport HOME=\/mnt\/server\r\n\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${APP_ID} validate +quit\r\n\r\ncd \/mnt\/server\/\r\n[[ -f basic.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/arma\/arma3\/egg-arma3-config\/basic.cfg\r\n[[ -f server.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/arma\/arma3\/egg-arma3-config\/server.cfg", - "container": "ubuntu:18.04", + "script": "#!\/bin\/bash\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## ARMA III specific setup\r\ncd \/mnt\/server\/\r\n\r\nmkdir -p \"\/mnt\/server\/.local\/share\/Arma 3\" \"\/mnt\/server\/.local\/share\/Arma 3 - Other Profiles\"\r\n\r\n[[ -f basic.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/basic.cfg\r\n[[ -f server.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/server.cfg", + "container": "debian:buster-slim", "entrypoint": "bash" } }, @@ -26,21 +26,12 @@ { "name": "Game App ID", "description": "Steam CMD App ID.", - "env_variable": "APP_ID", + "env_variable": "SRCDS_APPID", "default_value": "233780", "user_viewable": 1, "user_editable": 0, "rules": "required|alpha_dash|between:1,100" }, - { - "name": "Basic", - "description": "Basic network config", - "env_variable": "BASIC", - "default_value": "basic.cfg", - "user_viewable": 1, - "user_editable": 1, - "rules": "string|nullable" - }, { "name": "Config", "description": "Server config", @@ -95,6 +86,15 @@ "user_editable": 0, "rules": "nullable|string" }, + { + "name": "Basic", + "description": "Basic network config", + "env_variable": "BASIC", + "default_value": "basic.cfg", + "user_viewable": 1, + "user_editable": 1, + "rules": "string|nullable" + }, { "name": "Steam Auth Code", "description": "Steam Auth Code only when you're using Steam Auth", @@ -105,4 +105,4 @@ "rules": "nullable|string" } ] -} +} \ No newline at end of file diff --git a/steamcmd_servers/arma/arma3_headless_client/egg-arma3-headless-client.json b/steamcmd_servers/arma/arma3_headless_client/egg-arma3-headless-client.json index b0cb6e02..775b722a 100644 --- a/steamcmd_servers/arma/arma3_headless_client/egg-arma3-headless-client.json +++ b/steamcmd_servers/arma/arma3_headless_client/egg-arma3-headless-client.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-03-25T14:09:36+01:00", + "exported_at": "2019-12-26T15:50:34-05:00", "name": "Arma 3 Headless Client", "author": "brainp4in@blueberry-hood-clan.de", "description": "Headless Clients are used to offload AI calculations from the Arma 3 Server.", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl\r\napt -y --no-install-recommends install lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSLO http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd \/mnt\/server\/logs\r\nmkdir -p \"\/mnt\/server\/.local\/share\/Arma 3\" \"\/mnt\/server\/.local\/share\/Arma 3 - Other Profiles\"\r\n\r\ntouch \/mnt\/server\/latest.log\r\nchown -R root:root \/mnt\r\n\r\ntar -xzvf \/tmp\/steamcmd_linux.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\nexport HOME=\/mnt\/server\r\n\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${APP_ID} validate +quit\r\n\r\ncd \/mnt\/server\/\r\ncurl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/arma\/arma3\/egg-arma3-config\/server.cfg\r\ncurl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/arma\/arma3\/egg-arma3-config\/basic.cfg", + "script": "#!\/bin\/bash\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n## ARMA III specific setup\r\ncd \/mnt\/server\/\r\n\r\nmkdir -p \"\/mnt\/server\/.local\/share\/Arma 3\" \"\/mnt\/server\/.local\/share\/Arma 3 - Other Profiles\"\r\n\r\n[[ -f basic.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/basic.cfg\r\n[[ -f server.cfg ]] || curl -sSLO https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/steamcmd_servers\/arma\/arma3\/egg-arma3-config\/server.cfg", "container": "ubuntu:18.04", "entrypoint": "bash" } @@ -26,7 +26,7 @@ { "name": "Game App ID", "description": "Steam CMD App ID.", - "env_variable": "APP_ID", + "env_variable": "SRCDS_APPID", "default_value": "233780", "user_viewable": 1, "user_editable": 0, @@ -96,4 +96,4 @@ "rules": "nullable|string" } ] -} +} \ No newline at end of file From f47d632378d66a1e4159f544a7d6d058283866f5 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Fri, 27 Dec 2019 12:28:14 +0100 Subject: [PATCH 073/107] add/eco New PR for ECO Server. Original Author deleted his Account --- steamcmd_servers/eco/README.md | 15 +++++++++++ steamcmd_servers/eco/egg-eco.json | 45 +++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 steamcmd_servers/eco/README.md create mode 100644 steamcmd_servers/eco/egg-eco.json diff --git a/steamcmd_servers/eco/README.md b/steamcmd_servers/eco/README.md new file mode 100644 index 00000000..147bda91 --- /dev/null +++ b/steamcmd_servers/eco/README.md @@ -0,0 +1,15 @@ +# Eco +Steam Description +Eco is a community-based game; the players develop laws, government, and an economy to determine the success of their world. We need extensive playtesting to get the balance of our core features just right. Early Access is the perfect fit for finding an audience for this while also funding additional development. + +### Server Ports +Eco requires up to 2 ports + +game port (default 3000) +web port (default 3001) + + +| Port | default | +|---------|---------------| +| Game | 3000 | +| Web | 3001 | \ No newline at end of file diff --git a/steamcmd_servers/eco/egg-eco.json b/steamcmd_servers/eco/egg-eco.json new file mode 100644 index 00000000..d9a7056f --- /dev/null +++ b/steamcmd_servers/eco/egg-eco.json @@ -0,0 +1,45 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-12-27T12:17:53+01:00", + "name": "Eco", + "author": "parker@parkervcp.com", + "description": "Eco is a community-based game", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_mono-5-complete", + "startup": "mono EcoServer.exe -nogui", + "config": { + "files": "{\r\n \"Configs\/Network.eco\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"GameServerPort\": \"{{server.build.default.port}}\",\r\n \"WebServerPort\": \"{{server.build.env.WEB_PORT}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Server Initialization \",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "exit" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates wget\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} +app_set_config \u201c90 mod ${HLDS_GAME} +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so", + "container": "ubuntu:18.04", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Game ID", + "description": "ID", + "env_variable": "SRCDS_APPID", + "default_value": "739590", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|numeric|digits_between:1,6" + }, + { + "name": "Web server port", + "description": "port", + "env_variable": "WEB_PORT", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file From 26f6165fff04dc682ec532144437226d6c5d44fa Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Fri, 27 Dec 2019 14:04:04 +0100 Subject: [PATCH 074/107] Update README.md --- steamcmd_servers/README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/steamcmd_servers/README.md b/steamcmd_servers/README.md index 6f123f7a..0d3285d9 100644 --- a/steamcmd_servers/README.md +++ b/steamcmd_servers/README.md @@ -19,6 +19,9 @@ This is a collection of servers that use steamcmd to install. ## Don't Starve [dont_starve](dont_starve/) +## ECO +[ECO](eco/) + ## HLDS Server [hlds](hlds_server/) @@ -38,4 +41,4 @@ This is a collection of servers that use steamcmd to install. [starbound](starbound/) ## Sven coop -[svencoop](svencoop) \ No newline at end of file +[svencoop](svencoop) From a7ff957c71b413f14869540314d77cabd3fd0f4a Mon Sep 17 00:00:00 2001 From: Torsten Widmann Date: Sat, 28 Dec 2019 08:57:25 +0100 Subject: [PATCH 075/107] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1c5aa0dd..5942be30 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Arma 3 HC](/steamcmd_servers/arma/arma3_headless_client/) * [Conan Exiles](/steamcmd_servers/conan_exiles) * [Don't Starve](/steamcmd_servers/dont_starve) +* [ECO](/steamcmd_servers/eco/) * [HLDS server](/steamcmd_servers/hlds_server) * [Mordhau](/steamcmd_servers/mordhau) * [Onset](/steamcmd_servers/onset) From 04eddb8cd35e290a875cd037f822e6e4ca0af288 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sat, 28 Dec 2019 16:38:09 +0100 Subject: [PATCH 076/107] Updated startup command and Installscript --- steamcmd_servers/eco/egg-eco.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/steamcmd_servers/eco/egg-eco.json b/steamcmd_servers/eco/egg-eco.json index d9a7056f..199a0b29 100644 --- a/steamcmd_servers/eco/egg-eco.json +++ b/steamcmd_servers/eco/egg-eco.json @@ -3,12 +3,12 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-12-27T12:17:53+01:00", + "exported_at": "2019-12-28T16:37:09+01:00", "name": "Eco", "author": "parker@parkervcp.com", "description": "Eco is a community-based game", "image": "quay.io\/parkervcp\/pterodactyl-images:debian_mono-5-complete", - "startup": "mono EcoServer.exe -nogui", + "startup": "\/usr\/bin\/mono .\/EcoServer.exe -nogui", "config": { "files": "{\r\n \"Configs\/Network.eco\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"GameServerPort\": \"{{server.build.default.port}}\",\r\n \"WebServerPort\": \"{{server.build.env.WEB_PORT}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Server Initialization \",\r\n \"userInteraction\": []\r\n}", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# SRCDS Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates wget\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steamcmd\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +login anonymous +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} +app_set_config \u201c90 mod ${HLDS_GAME} +quit\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", "container": "ubuntu:18.04", "entrypoint": "bash" } From 6dffcd3c7ed4921ba4a946e390290f80141024e2 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 29 Dec 2019 10:27:38 +0100 Subject: [PATCH 077/107] Updated Description and eMail --- steamcmd_servers/eco/egg-eco.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/steamcmd_servers/eco/egg-eco.json b/steamcmd_servers/eco/egg-eco.json index 199a0b29..4f40a5a0 100644 --- a/steamcmd_servers/eco/egg-eco.json +++ b/steamcmd_servers/eco/egg-eco.json @@ -3,10 +3,10 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-12-28T16:37:09+01:00", + "exported_at": "2019-12-29T10:25:38+01:00", "name": "Eco", - "author": "parker@parkervcp.com", - "description": "Eco is a community-based game", + "author": "info@goover.de", + "description": "Eco is an online world from Strange Loop Games where players must build civilization using resources from an ecosystem that can be damaged and destroyed. The world of Eco is an incredibly reactive one, and whatever any player does in the world affects the underlying ecosystem.", "image": "quay.io\/parkervcp\/pterodactyl-images:debian_mono-5-complete", "startup": "\/usr\/bin\/mono .\/EcoServer.exe -nogui", "config": { @@ -42,4 +42,4 @@ "rules": "required|string|max:20" } ] -} \ No newline at end of file +} From c938b86acda0817d70c8a3631461662f6523519d Mon Sep 17 00:00:00 2001 From: gOOvER Date: Sun, 29 Dec 2019 11:24:33 +0100 Subject: [PATCH 078/107] Added Publicserver and Passwort Variable --- steamcmd_servers/eco/egg-eco.json | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/steamcmd_servers/eco/egg-eco.json b/steamcmd_servers/eco/egg-eco.json index 4f40a5a0..e7c016f6 100644 --- a/steamcmd_servers/eco/egg-eco.json +++ b/steamcmd_servers/eco/egg-eco.json @@ -3,14 +3,14 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-12-29T10:25:38+01:00", + "exported_at": "2019-12-29T11:23:06+01:00", "name": "Eco", "author": "info@goover.de", "description": "Eco is an online world from Strange Loop Games where players must build civilization using resources from an ecosystem that can be damaged and destroyed. The world of Eco is an incredibly reactive one, and whatever any player does in the world affects the underlying ecosystem.", "image": "quay.io\/parkervcp\/pterodactyl-images:debian_mono-5-complete", "startup": "\/usr\/bin\/mono .\/EcoServer.exe -nogui", "config": { - "files": "{\r\n \"Configs\/Network.eco\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"GameServerPort\": \"{{server.build.default.port}}\",\r\n \"WebServerPort\": \"{{server.build.env.WEB_PORT}}\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"Configs\/Network.eco\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"GameServerPort\": \"{{server.build.default.port}}\",\r\n \"WebServerPort\": \"{{server.build.env.WEB_PORT}}\",\r\n \"PublicServer\": \"{{server.build.env.PUB_SRV}}\",\r\n \"Password\": \"{{server.build.env.SRV_PWD}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"Server Initialization \",\r\n \"userInteraction\": []\r\n}", "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", "stop": "exit" @@ -39,7 +39,25 @@ "default_value": "", "user_viewable": 1, "user_editable": 1, + "rules": "required|numeric|digits_between:1,6" + }, + { + "name": "Public Server", + "description": "Public Server = true | Private Server = false", + "env_variable": "PUB_SRV", + "default_value": "false", + "user_viewable": 1, + "user_editable": 1, "rules": "required|string|max:20" + }, + { + "name": "Server Password", + "description": "Password to join the Server", + "env_variable": "SRV_PWD", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string|max:20" } ] -} +} \ No newline at end of file From 5805ab86c04b56039366b1856e437437427ee3fe Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sun, 29 Dec 2019 17:54:25 -0500 Subject: [PATCH 079/107] update scripts folder Change steamcmd recommended to debian-buster-slim Update release grabber with curly braces on variables (readability). Add script for validating that download links actually exist with no errors. update gitignore. --- .gitignore | 2 +- scripts/download_link_validator.sh | 11 +++++++++++ scripts/github_release_grabber.sh | 21 ++++++++++----------- scripts/steamcmd_installer.sh | 2 +- 4 files changed, 23 insertions(+), 13 deletions(-) create mode 100644 scripts/download_link_validator.sh diff --git a/.gitignore b/.gitignore index 378f0ca5..615b2764 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ *.DS_Store node_modules/ -.vuepress/ \ No newline at end of file +.vuepress/* \ No newline at end of file diff --git a/scripts/download_link_validator.sh b/scripts/download_link_validator.sh new file mode 100644 index 00000000..10a6d69a --- /dev/null +++ b/scripts/download_link_validator.sh @@ -0,0 +1,11 @@ +## this is a simple script to validate a download url actaully exists + +if [ ! -z "${DOWNLOAD_URL}"]; then + if curl --output /dev/null --silent --head --fail ${DOWNLOAD_URL}; then + echo -e "link is valid. setting download link to ${DOWNLOAD_URL}" + DOWNLOAD_LINK=${DOWNLOAD_URL} + else + echo -e "link is invalid closing out" + exit 2 + fi +fi \ No newline at end of file diff --git a/scripts/github_release_grabber.sh b/scripts/github_release_grabber.sh index d05120c8..14d4e70e 100644 --- a/scripts/github_release_grabber.sh +++ b/scripts/github_release_grabber.sh @@ -3,26 +3,25 @@ ## this supports using oauth/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.) ## if you are getting hit with GitHub API limit issues then you need to have the user and token set. - -if [ -z "$GITHUB_USER" ] && [ -z "$GITHUB_OAUTH_TOKEN" ] ; then +if [ -z "${GITHUB_USER}" ] && [ -z "${GITHUB_OAUTH_TOKEN}" ] ; then echo -e "using anon api call" else echo -e "user and oauth token set" - alias curl='curl -u $GITHUB_USER:$GITHUB_OAUTH_TOKEN ' + alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} ' fi ## get release info and download links -LATEST_JSON=$(curl --silent "https://api.github.com/repos/$GITHUB_PACKAGE/releases/latest") -RELEASES=$(curl --silent "https://api.github.com/repos/$GITHUB_PACKAGE/releases") +LATEST_JSON=$(curl --silent "https://api.github.com/repos/${GITHUB_PACKAGE}/releases/latest") +RELEASES=$(curl --silent "https://api.github.com/repos/${GITHUB_PACKAGE}/releases") -if [ -z "$VERSION" ] || [ "$VERSION" == "latest" ]; then - DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH}) +if [ -z "${VERSION}" ] || [ "${VERSION}" == "latest" ]; then + DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH}) else - VERSION_CHECK=$(echo $RELEASES | jq -r --arg VERSION "$VERSION" '.[] | select(.tag_name==$VERSION) | .tag_name') - if [ "$VERSION" == "$VERSION_CHECK" ]; then - DOWNLOAD_LINK=$(echo $RELEASES | jq -r --arg VERSION "$VERSION" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH}) + VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .tag_name') + if [ "${VERSION}" == "${VERSION_CHECK}" ]; then + DOWNLOAD_LINK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH}) else echo -e "defaulting to latest release" - DOWNLOAD_LINK=$(echo $LATEST_JSON | jq .assets | jq -r .[].browser_download_url) + DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url) fi fi \ No newline at end of file diff --git a/scripts/steamcmd_installer.sh b/scripts/steamcmd_installer.sh index eba1d2c2..c36fa040 100644 --- a/scripts/steamcmd_installer.sh +++ b/scripts/steamcmd_installer.sh @@ -2,7 +2,7 @@ # steamcmd Base Installation Script # # Server Files: /mnt/server -# Image to install with is 'ubuntu:18.04' +# Image to install with is 'debian:buster-slim' apt -y update apt -y --no-install-recommends install curl lib32gcc1 ca-certificates From 0be5d837412ca6ce5392e9bfb571847c8d3523e5 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Mon, 30 Dec 2019 09:05:45 +0100 Subject: [PATCH 080/107] Updated installscript to lastest --- steamcmd_servers/eco/egg-eco.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/steamcmd_servers/eco/egg-eco.json b/steamcmd_servers/eco/egg-eco.json index e7c016f6..49041fa0 100644 --- a/steamcmd_servers/eco/egg-eco.json +++ b/steamcmd_servers/eco/egg-eco.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-12-29T11:23:06+01:00", + "exported_at": "2019-12-30T09:04:05+01:00", "name": "Eco", "author": "info@goover.de", "description": "Eco is an online world from Strange Loop Games where players must build civilization using resources from an ecosystem that can be damaged and destroyed. The world of Eco is an incredibly reactive one, and whatever any player does in the world affects the underlying ecosystem.", @@ -17,8 +17,8 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'ubuntu:18.04'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", - "container": "ubuntu:18.04", + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so", + "container": "debian:buster-slim", "entrypoint": "bash" } }, From 01e4f9d8a892d161624521069e0067002805f66c Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Tue, 31 Dec 2019 18:51:23 -0500 Subject: [PATCH 081/107] update teamspeak egg --- .../voice-servers/egg-teamspeak3-server.json | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/stock-eggs/voice-servers/egg-teamspeak3-server.json b/stock-eggs/voice-servers/egg-teamspeak3-server.json index 2058ec22..d96ee5c4 100644 --- a/stock-eggs/voice-servers/egg-teamspeak3-server.json +++ b/stock-eggs/voice-servers/egg-teamspeak3-server.json @@ -3,22 +3,22 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-05-01T16:35:15+00:00", + "exported_at": "2019-12-31T18:49:40-05:00", "name": "Teamspeak3 Server", "author": "support@pterodactyl.io", "description": "VoIP software designed with security in mind, featuring crystal clear voice quality, endless customization options, and scalabilty up to thousands of simultaneous users.", - "image": "quay.io\/pterodactyl\/core:glibc", - "startup": ".\/ts3server_minimal_runscript.sh default_voice_port={{SERVER_PORT}} query_port={{SERVER_PORT}} license_accepted=1", + "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", + "startup": ".\/ts3server default_voice_port={{SERVER_PORT}} query_port={{SERVER_PORT}} filetransfer_ip=0.0.0.0 filetransfer_port={{FILE_TRANSFER}} license_accepted=1", "config": { "files": "{}", - "startup": "{\"done\": \"listening on 0.0.0.0:\", \"userInteraction\": []}", - "logs": "{\"custom\": true, \"location\": \"logs\/ts3.log\"}", + "startup": "{\r\n \"done\": \"listening on 0.0.0.0:\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/ts3.log\"\r\n}", "stop": "^C" }, "scripts": { "installation": { - "script": "#!\/bin\/ash\n# TS3 Installation Script\n#\n# Server Files: \/mnt\/server\napk update\napk add tar curl\n\ncd \/mnt\/server\n\ncurl http:\/\/dl.4players.de\/ts\/releases\/${TS_VERSION}\/teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2 | tar xj --strip-components=1", - "container": "alpine:3.9", + "script": "#!\/bin\/ash\r\n# TS3 Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add --no-cache tar curl jq\r\n\r\nif [ -z ${TS_VERSION} ] || [ ${TS_VERSION} == latest ]; then\r\n TS_VERSION=$(wget https:\/\/teamspeak.com\/versions\/server.json -qO - | jq -r '.linux.x86_64.version')\r\nfi\r\n\r\ncd \/mnt\/server\r\n\r\n\r\necho -e \"getting files from http:\/\/files.teamspeak-services.com\/releases\/server\/${TS_VERSION}\/teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2\"\r\ncurl http:\/\/files.teamspeak-services.com\/releases\/server\/${TS_VERSION}\/teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2 | tar xj --strip-components=1", + "container": "alpine:3.10", "entrypoint": "ash" } }, @@ -27,10 +27,19 @@ "name": "Server Version", "description": "The version of Teamspeak 3 to use when running the server.", "env_variable": "TS_VERSION", - "default_value": "3.7.1", + "default_value": "latest", "user_viewable": 1, "user_editable": 1, - "rules": "required|regex:\/^([0-9_\\.-]{5,10})$\/" + "rules": "required|string|max:6" + }, + { + "name": "File Transfer Port", + "description": "The Teamspeak file transfer port", + "env_variable": "FILE_TRANSFER", + "default_value": "30033", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|integer|between:1,65535" } ] } \ No newline at end of file From 2180299d63cfb1df9f404d08fe9943111fc02f5e Mon Sep 17 00:00:00 2001 From: gOOvER Date: Wed, 1 Jan 2020 11:56:08 +0100 Subject: [PATCH 082/107] SCPSL Dedicated Server Egg --- steamcmd_servers/scpsl/README.md | 20 +++++++++++++++ steamcmd_servers/scpsl/egg-scpsl.json | 36 +++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 steamcmd_servers/scpsl/README.md create mode 100644 steamcmd_servers/scpsl/egg-scpsl.json diff --git a/steamcmd_servers/scpsl/README.md b/steamcmd_servers/scpsl/README.md new file mode 100644 index 00000000..65aff1f2 --- /dev/null +++ b/steamcmd_servers/scpsl/README.md @@ -0,0 +1,20 @@ +# SCP: Secret Laboratory +### From their [Github](https://github.com/parkervcp/eggs) +A link to the site that you download game files from. +The description of the server usually provided by the game/server maker. + +### Install notes +Due to rate limiting the console on the panel cannot keep up with the game console and the build will complete before the panel console may show it. Reloading the console will load it to the latest part of the log. + +### Minimum RAM warning +Minimum required memory to run the server: 3096 MB + + +### Server Ports +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 25565 | + +#### Mods/Plugins may require ports to be added to the server. diff --git a/steamcmd_servers/scpsl/egg-scpsl.json b/steamcmd_servers/scpsl/egg-scpsl.json new file mode 100644 index 00000000..7ea23c90 --- /dev/null +++ b/steamcmd_servers/scpsl/egg-scpsl.json @@ -0,0 +1,36 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-01-01T11:55:32+01:00", + "name": "SCP:SL", + "author": "info@goover.de", + "description": "Egg for SCP: Secret Laboratory Dedicated Linux Server", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_mono-5-complete", + "startup": ".\/LocalAdmin {{SERVER_PORT}}", + "config": { + "files": "{\r\n \"config_gameplay.txt\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"server_ip\": \"0.0.0.0\",\r\n \"forward_ports\": \"false\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Waiting for players\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so ..\/.steam\/sdk64\/steamclient.so\r\n\r\n#echo 'gamedir_for_configs: true' >> \/mnt\/server\/hoster_policy.txt\r\n#chmod +x \/mnt\/server\/hoster_policy.txt\r\n\r\n#URL=$(curl https:\/\/api.github.com\/repos\/Grover-c13\/MultiAdmin\/releases\/latest | grep browser_download_url | cut -d '\"' -f 4)\r\n#wget -P \/mnt\/server\/ $URL\r\n#chmod +x \/mnt\/server\/MultiAdmin.exe\r\n\r\n#SmodVersion=$(curl https:\/\/api.github.com\/repos\/Grover-c13\/Smod2\/releases\/latest | grep tag_name | cut -d '\"' -f 4)\r\n#AssemblyURL=\"https:\/\/github.com\/Grover-c13\/Smod2\/releases\/download\/${SmodVersion}\/Assembly-CSharp.dll\"\r\n#SmodURL=\"https:\/\/github.com\/Grover-c13\/Smod2\/releases\/download\/${SmodVersion}\/Smod2.dll\"\r\n#wget -O \/mnt\/server\/SCPSL_Data\/Managed\/Smod2.dll $SmodURL\r\n#wget -O \/mnt\/server\/SCPSL_Data\/Managed\/Assembly-CSharp.dll $AssemblyURL\r\n#chmod +x \/mnt\/server\/SCPSL_Data\/Managed\/Smod2.dll\r\n#chmod +x \/mnt\/server\/SCPSL_Data\/Managed\/Assembly-CSharp.dll", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "SRCDS_APPID", + "description": "", + "env_variable": "SRCDS_APPID", + "default_value": "996560", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|string|max:20" + } + ] +} \ No newline at end of file From d2d35d671643d3d4cd86c63a385f05946d262d5b Mon Sep 17 00:00:00 2001 From: gOOvER Date: Wed, 1 Jan 2020 12:02:04 +0100 Subject: [PATCH 083/107] Update README.md --- steamcmd_servers/scpsl/README.md | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/steamcmd_servers/scpsl/README.md b/steamcmd_servers/scpsl/README.md index 65aff1f2..832a5dd4 100644 --- a/steamcmd_servers/scpsl/README.md +++ b/steamcmd_servers/scpsl/README.md @@ -1,10 +1,8 @@ # SCP: Secret Laboratory -### From their [Github](https://github.com/parkervcp/eggs) -A link to the site that you download game files from. -The description of the server usually provided by the game/server maker. +SCP: Secret Laboratory Dedicated Linux Server AddID: [996560](https://steamdb.info/app/996560/) + +This Server is NOT compatible with ServerMod2 or MultiAdmin -### Install notes -Due to rate limiting the console on the panel cannot keep up with the game console and the build will complete before the panel console may show it. Reloading the console will load it to the latest part of the log. ### Minimum RAM warning Minimum required memory to run the server: 3096 MB @@ -15,6 +13,19 @@ Ports required to run the server in a table format. | Port | default | |---------|---------| -| Game | 25565 | +| Game | 7777 | + +### Verification + +The server must be verified to be visible in the Server Browser. + +Before requesting verification make sure your server follows the Verified Server Rules. + +#### Requesting Verification +Once ready send an email to server.verification@scpslgame.com with the following info: + +* The server's external IPv4 address +* The port used by the server +* If the server IP is static or dynamic #### Mods/Plugins may require ports to be added to the server. From 4701bc4b952cd43a49af8b92d28c4c7678d36848 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Wed, 1 Jan 2020 12:04:22 +0100 Subject: [PATCH 084/107] Update README.md --- steamcmd_servers/scpsl/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/steamcmd_servers/scpsl/README.md b/steamcmd_servers/scpsl/README.md index 832a5dd4..60411e1b 100644 --- a/steamcmd_servers/scpsl/README.md +++ b/steamcmd_servers/scpsl/README.md @@ -19,7 +19,7 @@ Ports required to run the server in a table format. The server must be verified to be visible in the Server Browser. -Before requesting verification make sure your server follows the Verified Server Rules. +Before requesting verification make sure your server follows the [Verified Server Rules](https://scpslgame.com/Verified_server_rules.pdf). #### Requesting Verification Once ready send an email to server.verification@scpslgame.com with the following info: From ae5b0ae8ceba9781c36bb82f32fb13e1dd624d31 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Thu, 2 Jan 2020 00:09:05 -0500 Subject: [PATCH 085/107] update pocketmine egg update link for server.properties. --- minecraft_bedrock/pocketmine_mp/egg-pocketmine-m-p.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/minecraft_bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/minecraft_bedrock/pocketmine_mp/egg-pocketmine-m-p.json index 9989c575..8d752d82 100644 --- a/minecraft_bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/minecraft_bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-08-18T09:29:46-04:00", + "exported_at": "2020-01-02T00:07:42-05:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n\r\napk add --no-cache curl\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"\\n downloading pocketmine MP build ${PMMP_VERSION}\"\r\nif [ -z \"$PMMP_VERSION\" ] || [ \"$PMMP_VERSION\" == \"latest\" ]; then\r\n curl -sSL -o PocketMine-MP.phar https:\/\/jenkins.pmmp.io\/job\/PocketMine-MP\/Stable\/artifact\/PocketMine-MP.phar\r\nelse \r\n curl -sSL -o PocketMine-MP.phar https:\/\/jenkins.pmmp.io\/job\/PocketMine-MP\/${PMMP_VERSION}\/artifact\/PocketMine-MP.phar\r\nfi\r\n\r\necho -e \"\\n downloading latest php7.3 build from pocketmine\"\r\ncurl -sSL -o php.binary.tar.gz https:\/\/jenkins.pmmp.io\/job\/PHP-7.3-Linux-x86_64\/lastSuccessfulBuild\/artifact\/PHP_Linux-x86_64.tar.gz\r\n\r\necho -e \"\\n getting default server.properties\"\r\ncurl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/Minecraft%20PE\/PocketmineMP\/server.properties > server.properties\r\necho -e \"\\n unpacking php7 binaries\"\r\ntar -xzvf php.binary.tar.gz\r\necho -e \"\\n removing pvp7 packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.tx banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs", + "script": "#!\/bin\/ash\r\n\r\napk add --no-cache curl\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"\\n downloading pocketmine MP build ${PMMP_VERSION}\"\r\nif [ -z \"$PMMP_VERSION\" ] || [ \"$PMMP_VERSION\" == \"latest\" ]; then\r\n curl -sSL -o PocketMine-MP.phar https:\/\/jenkins.pmmp.io\/job\/PocketMine-MP\/Stable\/artifact\/PocketMine-MP.phar\r\nelse \r\n curl -sSL -o PocketMine-MP.phar https:\/\/jenkins.pmmp.io\/job\/PocketMine-MP\/${PMMP_VERSION}\/artifact\/PocketMine-MP.phar\r\nfi\r\n\r\necho -e \"\\n downloading latest php7.3 build from pocketmine\"\r\ncurl -sSL -o php.binary.tar.gz https:\/\/jenkins.pmmp.io\/job\/PHP-7.3-Linux-x86_64\/lastSuccessfulBuild\/artifact\/PHP_Linux-x86_64.tar.gz\r\n\r\necho -e \"\\n getting default server.properties\"\r\ncurl -sSL https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/minecraft_bedrock\/pocketmine_mp\/server.properties > server.properties\r\n\r\necho -e \"\\n unpacking php7 binaries\"\r\ntar -xzvf php.binary.tar.gz\r\n\r\necho -e \"\\n removing pvp7 packages\"\r\nrm -rf \/mnt\/server\/php.binary.tar.gz\r\n\r\necho -e \"\\n creating files and folders\"\r\ntouch banned-ips.tx banned-players.txt ops.txt white-list.txt server.log\r\nmkdir -p players worlds plugins resource_packs", "container": "alpine:3.10", "entrypoint": "ash" } From 403031bddf8dce91821b543126cb6e150a7912fa Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Thu, 2 Jan 2020 15:26:05 -0500 Subject: [PATCH 086/107] add altV resolves #402 --- README.md | 1 + gta/README.md | 5 +++- gta/altv/README.md | 11 +++++++ gta/altv/egg-alt--v.json | 63 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 gta/altv/README.md create mode 100644 gta/altv/egg-alt--v.json diff --git a/README.md b/README.md index 5942be30..e3b4005c 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * GTA V * [FiveM](/gta/fivem/) * [RageMP](/gta/ragemp/) + * [alt:V](/gta/altv/) * GTA SA * [Multi Theft Auto](/gta/mtasa/) * [SA-MP](/gta/samp/) diff --git a/gta/README.md b/gta/README.md index 0106aa42..64bdd40e 100644 --- a/gta/README.md +++ b/gta/README.md @@ -5,9 +5,12 @@ [FiveM](https://fivem.net/) FiveM is a modification for Grand Theft Auto V enabling you to play multiplayer on customized dedicated servers. -[Rage MP](https://rage.mp/?) +[Rage MP](https://rage.mp/) RAGE Multiplayer is an multiplayer modification for Grand Theft Auto V that is alternative to GTA Online. +[alt:V](https://altv.mp) +alt:V Multiplayer a third-party multiplayer modification for Grand Theft Auto: V + ## San Andreas [GTA SA:MP](https://www.sa-mp.com/) diff --git a/gta/altv/README.md b/gta/altv/README.md new file mode 100644 index 00000000..dddd7a36 --- /dev/null +++ b/gta/altv/README.md @@ -0,0 +1,11 @@ +# alt:v + +### From the [alt:V](https://altv.mp) Site +alt:V Multiplayer a third-party multiplayer modification for Grand Theft Auto: V. + +### Server Ports +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 7788 | diff --git a/gta/altv/egg-alt--v.json b/gta/altv/egg-alt--v.json new file mode 100644 index 00000000..f1a31b78 --- /dev/null +++ b/gta/altv/egg-alt--v.json @@ -0,0 +1,63 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-01-02T15:11:11-05:00", + "name": "alt:V", + "author": "parker@parkervcp.com", + "description": "alt:V Multiplayer a third-party multiplayer modification for Grand Theft Auto: V", + "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", + "startup": "sleep 2 && .\/altv-server", + "config": { + "files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"host:\": \"host: 0.0.0.0\",\r\n \"port:\": \"port: {{server.build.default.port}}\",\r\n \"password:\": \"password: {{server.build.env.PASSWORD}}\",\r\n \"description:\": \"description: {{server.build.env.SERVER_DESC}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"Server started\"\r\n}", + "logs": "{}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# AltV Install Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# BUILD=stable ## this should be an egg variable.\r\nBASE_URL=\"https:\/\/cdn.altv.mp\/\" ## Where the files are stored.\r\n\r\n## install required dependancies.\r\nfunction install_deps () {\r\n apt update\r\n apt install -y libatomic1 zip unzip jq curl wget\r\n echo -e \"deps installed\"\r\n echo -e\r\n}\r\n\r\n## check the has on files and compare to a remote source.\r\n## usage 'check_hash \"file\" \"remote_hash_source\"'\r\nfunction check_hash () {\r\n echo -e \"Checking for file ${1}\"\r\n echo -e \"running: curl -sSL ${2} | jq -r --arg FILENAME \\\"${3}\\\" '.hashList | .[\\$FILENAME]'\"\r\n hash=$(curl -sSL ${2} | jq -r --arg FILENAME ${3} '.hashList | .[$FILENAME]')\r\n echo -e \"hash: $hash\"\r\n\r\n if [ -f ${2} ]; then\r\n\r\n echo -e \"hash is $(sha1sum ${1} | awk '{ print $1 }')\"\r\n echo -e \"current has is ${hash}\"\r\n\r\n if [ \"$(sha1sum ${2} | awk '{ print $1 }')\" == \"${hash}\" ]; then\r\n echo -e \"Hash matched\"\r\n echo -e \"No need to download new file.\"\r\n return 0\r\n else\r\n echo -e \"Hash didn't match\"\r\n echo -e \"Need to download the correct version\"\r\n return 1\r\n fi\r\n else\r\n echo \"No file found\"\r\n return 1\r\n fi\r\n}\r\n\r\n## makes sure a download link is valid.\r\nfunction validate_download () {\r\n DOWNLOAD_URL=${1}\r\n\r\n echo -e \"Download url is ${DOWNLOAD_URL}\"\r\n\r\n if [ ! -z \"${DOWNLOAD_URL}\" ]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else \r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\n fi\r\n\r\n}\r\n\r\nfunction download_files () {\r\n ## validate download link and get files\r\n validate_download ${1}\r\n echo -e \"running wget ${DOWNLOAD_URL} -O ${2}\"\r\n wget ${DOWNLOAD_URL} -O ${2}\r\n}\r\n\r\n## This is a file array for files to get downloaded.\r\n## They are all comma separated lists.\r\n## remote folder (0), json file with hashes (1), file name in json file (2), file name (3), file folder (4), extra commands (5)\r\nfile_array=( \\\r\n\"server\/${BUILD}\/x64_linux\/\",\"update.json\",\"altv-server\",\"altv-server\",\/mnt\/server\/,execute \\\r\n\"server\/${BUILD}\/x64_linux\/\",\"update.json\",\"data\/vehmodels.bin\",\"vehmodels.bin\",\/mnt\/server\/data\/ \\\r\n\"server\/${BUILD}\/x64_linux\/\",\"update.json\",\"data\/vehmods.bin\",\"vehmods.bin\",\/mnt\/server\/data\/ \\\r\n\"others\/\",,\"server.cfg\",server.cfg,\/mnt\/server\/ \\\r\n\"node-module\/${BUILD}\/x64_linux\/\",\"update.json\",\"libnode.so.72\",\"libnode.so.72\",\/mnt\/server\/ \\\r\n\"node-module\/${BUILD}\/x64_linux\/\",\"update.json\",\"modules\/libnode-module.so\",\"libnode-module.so\",\/mnt\/server\/modules\/ \\\r\n\"coreclr-module\/${BUILD}\/x64_linux\/\",,\"AltV.Net.Host.dll\",\"AltV.Net.Host.dll\",\/mnt\/server\/ \\\r\n\"coreclr-module\/${BUILD}\/x64_linux\/\",,\"AltV.Net.Host.runtimeconfig.json\",\"AltV.Net.Host.runtimeconfig.json\",\/mnt\/server\/ \\\r\n\"coreclr-module\/stable\/x64_linux\/\",\"update.json\",\"modules\/libcsharp-module.so\",\"libcsharp-module.so\",\/mnt\/server\/modules\/ \\\r\n\"samples\/\",,\"resources.zip\",\"resources.zip\",\/mnt\/server\/,unzip \\\r\n)\r\n\r\ninstall_deps\r\n\r\n## this goes through each value in the array and then checks the hash\r\nfor EACH in ${file_array[@]}\r\ndo\r\n ## this needs to be here to break apart the arrays.\r\n IFS=',' read -r -a array <<< \"$EACH\"\r\n\r\n if [ ! -z \"${array[1]}\" ]; then\r\n ## check hash on 'folder\/file' with 'remote file base url\/remote folder\/ json file' 'json file name' \r\n if check_hash \"${array[4]}${array[3]}\" \"${BASE_URL}${array[0]}${array[1]}\" \"${array[2]}\"; then\r\n echo -e \"file up to date\"\r\n else\r\n echo -e \"downloading most recent file\"\r\n fi\r\n ## make the directory if it doesn't exist.\r\n if [ ! -d ${array[4]} ]; then\r\n mkdir ${array[4]}\r\n fi\r\n download_files \"${BASE_URL}${array[0]}${array[2]}\" \"${array[4]}${array[3]}\"\r\n else\r\n ## make the directory if it doesn't exist.\r\n if [ ! -d ${array[4]} ]; then\r\n mkdir ${array[4]}\r\n fi\r\n download_files \"${BASE_URL}${array[0]}${array[2]}\" \"${array[4]}${array[3]}\"\r\n fi\r\n\r\n ## run extra commands if needed.\r\n case ${array[5]} in\r\n unzip)\r\n cd ${array[4]}\r\n unzip -o ${array[3]}\r\n rm ${array[3]}\r\n ;;\r\n execute)\r\n chmod +x ${array[4]}${array[3]}\r\n ;;\r\n esac\r\n\r\n# echo -e \"HashFile: ${BASE_URL}${array[0]}${array[1]}\"\r\n# echo -e \"Download URL ${BASE_URL}${array[0]}${array[2]}\"\r\n# echo -e \"Filename ${array[3]}\"\r\n# echo -e \"File Folder ${array[4]}\"\r\n# echo -e \"commands to run ${array[5]}\"\r\n# echo -e\r\ndone\r\n\r\necho -e \"install complete\"", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "ld lib path", + "description": "Needed to load modules correctly.", + "env_variable": "LD_LIBRARY_PATH", + "default_value": ".", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string|max:20" + }, + { + "name": "Which alt:V build to download", + "description": "The supported versions are alpha, beta, stable (default).\r\n\r\nIf you don't know what you are doing leave it on stable", + "env_variable": "BUILD", + "default_value": "stable", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:20" + }, + { + "name": "Server Password", + "description": "The password to join the server", + "env_variable": "PASSWORD", + "default_value": "ChangeMe", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string|min:6" + }, + { + "name": "Server Description", + "description": "Description for the server.", + "env_variable": "SERVER_DESC", + "default_value": "A Pterodactyl Hosted Server", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string" + } + ] +} \ No newline at end of file From d25ab80f3f488bda6acad9ca11e53cc9428361d9 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Mon, 6 Jan 2020 09:37:15 +0100 Subject: [PATCH 087/107] Updated Readme --- README.md | 5 +++-- steamcmd_servers/README.md | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5942be30..4a444e52 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ If you are submitting PR's try and keep names and titles the same. If you are reading this it looks like you are looking to add an egg to your server. -1. Download any of the json files located in the folders below. +1. Download any of the json files located in the folders below. 1. It's easiest to right click the `raw` button and save as. 2. In your panel go to the `Nests` section in the admin part of the panel 3. Click the green `Import Egg` button @@ -26,7 +26,7 @@ If you are reading this it looks like you are looking to add an egg to your serv ## Bot Eggs -[Discord](/bots/discord/) +[Discord](/bots/discord/) * [ATL Bot](/bots/discord/atlbot/) Node JS * [Bastion](/bots/discord/bastion/) * [discord.js](bots/discord/discord.js/) Node JS generic @@ -94,6 +94,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Onset](/steamcmd_servers/onset) * [PixARK](/steamcmd_servers/pixark/) * [Rust Staging Branch](/steamcmd_servers/rust_staging/) +* [SCP: Secret Laboratory](/steamcmd_servers/scpsl/) * [Starbound](/steamcmd_servers/starbound) * [Sven Co-op](/steamcmd_servers/svencoop) * [Squad](/steamcmd_servers/squad/) diff --git a/steamcmd_servers/README.md b/steamcmd_servers/README.md index 0d3285d9..3ca7e76d 100644 --- a/steamcmd_servers/README.md +++ b/steamcmd_servers/README.md @@ -34,6 +34,9 @@ This is a collection of servers that use steamcmd to install. ## Rust Staging [rust staging](rust_staging/) +## SCP: Secret Laboratory +[SCP: Secret Laboratory](/scpsl/) + ## Squad [squad](squad/) From ef8de3b766a748879da427dc5c004b6f78a9f863 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sat, 18 Jan 2020 18:15:07 -0500 Subject: [PATCH 088/107] update unturned This is a new unturned egg that uses a generic image to run the server. It still uses the rocketmod files for the workable console but also doesn't need mono to run. --- README.md | 5 +- steamcmd_servers/README.md | 7 +++ steamcmd_servers/unturned/rocketmod/README.md | 4 +- .../unturned/unturned}/README.md | 7 +-- .../unturned/unturned/egg-unturned.json | 63 +++++++++++++++++++ unturned/rocketmod/egg-rocketmod.json | 54 ---------------- 6 files changed, 78 insertions(+), 62 deletions(-) rename {unturned/rocketmod => steamcmd_servers/unturned/unturned}/README.md (84%) create mode 100644 steamcmd_servers/unturned/unturned/egg-unturned.json delete mode 100644 unturned/rocketmod/egg-rocketmod.json diff --git a/README.md b/README.md index e3b4005c..ffa46401 100644 --- a/README.md +++ b/README.md @@ -98,11 +98,10 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Starbound](/steamcmd_servers/starbound) * [Sven Co-op](/steamcmd_servers/svencoop) * [Squad](/steamcmd_servers/squad/) +* [Tower Unite](/unreal_engine/tower_unite/) * [Unturned](/unturned/) * [RocketMod](/unturned/rocketmod/) - -[Unreal Engine](/unreal_engine) -* [Tower Unite](/unreal_engine/tower_unite/) + * [Unturned](/unturned/unturned/) [Terraria](/terraria/) * [tmodloader](/terraria/tmodloader) diff --git a/steamcmd_servers/README.md b/steamcmd_servers/README.md index 0d3285d9..4c500d3d 100644 --- a/steamcmd_servers/README.md +++ b/steamcmd_servers/README.md @@ -42,3 +42,10 @@ This is a collection of servers that use steamcmd to install. ## Sven coop [svencoop](svencoop) + +## Tower Unite +[Tower Unite](tower_unite) + +## Unturned + * [RocketMod](rocketmod) + * [Unturned](unturned) \ No newline at end of file diff --git a/steamcmd_servers/unturned/rocketmod/README.md b/steamcmd_servers/unturned/rocketmod/README.md index b4386da3..d2ad1551 100644 --- a/steamcmd_servers/unturned/rocketmod/README.md +++ b/steamcmd_servers/unturned/rocketmod/README.md @@ -1,4 +1,4 @@ -# Unturned +# Unturned - RocketMod Steam Description You're one of the few not yet turned zombie. Keeping it that way will be a challenge. @@ -6,6 +6,8 @@ You're one of the few not yet turned zombie. Keeping it that way will be a chall - Take a subtle approach sneaking around and making use of distractions. - Confront and learn to counter special abilities ranging from invisibility to fire breathing to lightning attacks. +Unturned 3 implementation of the RocketMod — .NET Game Server Plugin Framework + ### Server Ports Rocketmod requires 2 ports to run properly. game port (default 8907) diff --git a/unturned/rocketmod/README.md b/steamcmd_servers/unturned/unturned/README.md similarity index 84% rename from unturned/rocketmod/README.md rename to steamcmd_servers/unturned/unturned/README.md index b4386da3..209522f2 100644 --- a/unturned/rocketmod/README.md +++ b/steamcmd_servers/unturned/unturned/README.md @@ -8,10 +8,9 @@ You're one of the few not yet turned zombie. Keeping it that way will be a chall ### Server Ports Rocketmod requires 2 ports to run properly. -game port (default 8907) -game +1 (default 8908) | Port | default | |---------|---------| -| Game | 8907 | -| Game +1 | 8908 | \ No newline at end of file +| Game | 27015 | +| Game +1 | 27016 | +| Game +2 | 27017 | \ No newline at end of file diff --git a/steamcmd_servers/unturned/unturned/egg-unturned.json b/steamcmd_servers/unturned/unturned/egg-unturned.json new file mode 100644 index 00000000..ca38ecfc --- /dev/null +++ b/steamcmd_servers/unturned/unturned/egg-unturned.json @@ -0,0 +1,63 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-01-18T18:06:35-05:00", + "name": "Unturned", + "author": "parker@parkervcp.com", + "description": "The RocketMod server mod for Unturned.", + "image": "quay.io\/parkervcp\/pterodactyl-images:base_debian", + "startup": "wget https:\/\/github.com\/RocketMod\/Rocket.Unturned\/releases\/download\/4.9.3.0\/Rocket.Unturned.zip && unzip -o Rocket.Unturned.zip && .\/Unturned_Headless.x86_64 -batchmode -nographics -bind 0.0.0.0 -port {{SERVER_PORT}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"Loading level: 100%\",\r\n \"userInteraction\": []\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"latest.log\"\r\n}", + "stop": "shutdown" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/bash\r\n# steamcmd Base Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\n# Image to install with is 'debian:buster-slim'\r\n\r\nDEBIAN_FRONTEND=noninteractive\r\n\r\napt -y update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\n## just in case someone removed the defaults.\r\nif [ \"${STEAM_USER}\" == \"\" ]; then\r\n echo -e \"steam user is not set.\\n\"\r\n echo -e \"Using anonymous user.\\n\"\r\n STEAM_USER=anonymous\r\n STEAM_PASS=\"\"\r\n STEAM_AUTH=\"\"\r\nelse\r\n echo -e \"user set to ${STEAM_USER}\"\r\nfi\r\n\r\n## download and install steamcmd\r\ncd \/tmp\r\nmkdir -p \/mnt\/server\/steamcmd\r\ncurl -sSL -o steamcmd.tar.gz https:\/\/steamcdn-a.akamaihd.net\/client\/installer\/steamcmd_linux.tar.gz\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steamcmd\r\ncd \/mnt\/server\/steamcmd\r\n\r\n# SteamCMD fails otherwise for some reason, even running as root.\r\n# This is changed at the end of the install process anyways.\r\nchown -R root:root \/mnt\r\nexport HOME=\/mnt\/server\r\n\r\n## install game using steamcmd\r\n.\/steamcmd.sh +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update ${SRCDS_APPID} ${EXTRA_FLAGS} validate +quit ## other flags may be needed depending on install. looking at you cs 1.6\r\n\r\n## set up 32 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\n\r\n## set up 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk64\r\ncp -v linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n## Specific to Unturned\r\ncp -v linux64\/steamclient.so \/mnt\/server\/Unturned_Headless_Data\/Plugins\/x86_64\/steamclient.so", + "container": "debian:buster-slim", + "entrypoint": "bash" + } + }, + "variables": [ + { + "name": "Steam App ID", + "description": "Steam App ID require for install and startup update", + "env_variable": "SRCDS_APPID", + "default_value": "1110390", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string|max:20" + }, + { + "name": "ld lib path", + "description": "This is needed to load specific libraries", + "env_variable": "LD_LIBRARY_PATH", + "default_value": ".\/Unturned_Headless_Data\/Plugins\/x86_64\/", + "user_viewable": 0, + "user_editable": 0, + "rules": "required|string" + }, + { + "name": "Steam User", + "description": "Should be left blank for anon user", + "env_variable": "STEAM_USER", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string" + }, + { + "name": "Steam Password", + "description": "", + "env_variable": "STEAM_PASS", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "nullable|string" + } + ] +} \ No newline at end of file diff --git a/unturned/rocketmod/egg-rocketmod.json b/unturned/rocketmod/egg-rocketmod.json deleted file mode 100644 index acaf657f..00000000 --- a/unturned/rocketmod/egg-rocketmod.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", - "meta": { - "version": "PTDL_v1" - }, - "exported_at": "2018-04-27T21:30:05+00:00", - "name": "RocketMod", - "author": "isaac@isaacs.site", - "description": "The RocketMod server mod for Unturned.", - "image": "registry.gitlab.com\/tenten8401\/pterodactyl-unturned", - "startup": "mono RocketLauncher.exe unturned", - "config": { - "files": "{\r\n \"Servers\/unturned\/Server\/Commands.dat\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"Port\": \"Port {{server.build.default.port}}\"\r\n }\r\n}\r\n}", - "startup": "{\r\n \"done\": \"Loading level: 100%\",\r\n \"userInteraction\": []\r\n}", - "logs": "{\r\n \"custom\": true,\r\n \"location\": \"latest.log\"\r\n}", - "stop": "shutdown" - }, - "scripts": { - "installation": { - "script": "apt update\r\napt -y --no-install-recommends install curl lib32gcc1 ca-certificates\r\n\r\ncd \/tmp\r\ncurl -sSL -o steamcmd.tar.gz http:\/\/media.steampowered.com\/installer\/steamcmd_linux.tar.gz\r\n\r\nmkdir -p \/mnt\/server\/steam\r\ntar -xzvf steamcmd.tar.gz -C \/mnt\/server\/steam\r\ncd \/mnt\/server\/steam\r\n\r\nchown -R root:root \/mnt\r\n\r\nexport HOME=\/mnt\/server\r\n.\/steamcmd.sh +@sSteamCmdForcePlatformBitness 32 +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +force_install_dir \/mnt\/server +app_update 304930 +quit\r\n\r\nmkdir -p \/mnt\/server\/Servers\/unturned\/Server\r\necho \"Port 27015\" > \/mnt\/server\/Servers\/unturned\/Server\/Commands.dat\r\n\r\nmkdir -p \/mnt\/server\/.steam\/sdk32\r\ncp -v linux32\/steamclient.so ..\/.steam\/sdk32\/steamclient.so", - "container": "ubuntu:16.04", - "entrypoint": "bash" - } - }, - "variables": [ - { - "name": "Steam User", - "description": "A Steam username with Unturned on the account.", - "env_variable": "STEAM_USER", - "default_value": "anonymous", - "user_viewable": 0, - "user_editable": 0, - "rules": "required|string" - }, - { - "name": "Steam Password", - "description": "Steam User Password", - "env_variable": "STEAM_PASS", - "default_value": "", - "user_viewable": 0, - "user_editable": 0, - "rules": "nullable|string" - }, - { - "name": "Steam Auth Code", - "description": "Steam Auth Code only when you're using Steam Auth", - "env_variable": "STEAM_AUTH", - "default_value": "", - "user_viewable": 0, - "user_editable": 0, - "rules": "nullable|string" - } - ] -} \ No newline at end of file From bf630af9be7cc612780a406ffb886c3d4838ef65 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sun, 19 Jan 2020 11:12:35 -0500 Subject: [PATCH 089/107] update pixelbot image Updating to use the updated python image. --- bots/discord/pixelbot/egg-pixel-bot.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bots/discord/pixelbot/egg-pixel-bot.json b/bots/discord/pixelbot/egg-pixel-bot.json index d149e036..5949b3b1 100644 --- a/bots/discord/pixelbot/egg-pixel-bot.json +++ b/bots/discord/pixelbot/egg-pixel-bot.json @@ -3,11 +3,11 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2018-03-27T08:57:41-04:00", + "exported_at": "2020-01-19T11:11:24-05:00", "name": "pixel-bot", "author": "parker@parkervcp.com", "description": "A Discord bot written in Python using discord.py\r\n\r\nhttps:\/\/github.com\/Ispira\/pixel-bot", - "image": "quay.io\/parkervcp\/pterodactyl-images:python3", + "image": "quay.io\/parkervcp\/pterodactyl-images:alpine_python-3", "startup": "python bot.py", "config": { "files": "{\r\n \"config\/config.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"owner\": \"{{server.build.env.OWNER_UID}}\",\r\n \"token\": \"{{server.build.env.BOT_TOKEN}}\",\r\n \"bot_name\": \"{{server.build.env.BOT_NAME}}\",\r\n \"log_file\": \"latest.log\"\r\n }\r\n },\r\n \"plugins\/settings\/imgur.json\": {\r\n \"parser\": \"json\",\r\n \"find\": {\r\n \"client_id\": \"{{server.build.env.IMGUR_KEY}}\",\r\n \"client_secret\": \"{{server.build.env.IMGUR_SECRET}}\"\r\n }\r\n }\r\n}", From b948d2f18de64eaa3759ca1dcda4b1ff3b7e7348 Mon Sep 17 00:00:00 2001 From: "Michael (Parker) Parker" Date: Fri, 24 Jan 2020 09:01:45 -0500 Subject: [PATCH 090/107] change pocketmine image --- minecraft_bedrock/pocketmine_mp/egg-pocketmine-m-p.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/minecraft_bedrock/pocketmine_mp/egg-pocketmine-m-p.json b/minecraft_bedrock/pocketmine_mp/egg-pocketmine-m-p.json index 8d752d82..8f0f3877 100644 --- a/minecraft_bedrock/pocketmine_mp/egg-pocketmine-m-p.json +++ b/minecraft_bedrock/pocketmine_mp/egg-pocketmine-m-p.json @@ -3,11 +3,11 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2020-01-02T00:07:42-05:00", + "exported_at": "2020-01-24T08:59:24-05:00", "name": "PocketmineMP", "author": "info@swisscrafting.ch", "description": "Pocketmine Egg\r\nby onekintaro from swisscrafting.ch\r\nwith the nice help from #eggs Channel on Pterodactyl-Discord :)", - "image": "quay.io\/parkervcp\/pterodactyl-images:ubuntu", + "image": "quay.io\/parkervcp\/pterodactyl-images:base_ubuntu", "startup": ".\/bin\/php7\/bin\/php .\/PocketMine-MP.phar --no-wizard --disable-ansi", "config": { "files": "{\r\n \"server.properties\": {\r\n \"parser\": \"properties\",\r\n \"find\": {\r\n \"server-ip\": \"0.0.0.0\",\r\n \"enable-query\": \"true\",\r\n \"server-port\": \"{{server.build.default.port}}\",\r\n \"query.port\": \"{{server.build.default.port}}\"\r\n }\r\n }\r\n}", From c9d46bd966332ade1ad0175040902cbac4c25e87 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Wed, 29 Jan 2020 19:50:01 +0100 Subject: [PATCH 091/107] Fixed Server Started Message --- steamcmd_servers/scpsl/egg-scpsl.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/steamcmd_servers/scpsl/egg-scpsl.json b/steamcmd_servers/scpsl/egg-scpsl.json index 7ea23c90..73ee4e68 100644 --- a/steamcmd_servers/scpsl/egg-scpsl.json +++ b/steamcmd_servers/scpsl/egg-scpsl.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2020-01-01T11:55:32+01:00", + "exported_at": "2020-01-29T19:49:19+01:00", "name": "SCP:SL", "author": "info@goover.de", "description": "Egg for SCP: Secret Laboratory Dedicated Linux Server", @@ -11,7 +11,7 @@ "startup": ".\/LocalAdmin {{SERVER_PORT}}", "config": { "files": "{\r\n \"config_gameplay.txt\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"server_ip\": \"0.0.0.0\",\r\n \"forward_ports\": \"false\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"Waiting for players\",\r\n \"userInteraction\": []\r\n}", + "startup": "{\r\n \"done\": \"Nickname of is now \",\r\n \"userInteraction\": []\r\n}", "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", "stop": "^C" }, From d4cd86e01684c0e9f47658be8c07e6244b03f6b6 Mon Sep 17 00:00:00 2001 From: gOOvER Date: Wed, 29 Jan 2020 19:54:52 +0100 Subject: [PATCH 092/107] reverted last Fix. No chnage in Server --- steamcmd_servers/scpsl/egg-scpsl.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/steamcmd_servers/scpsl/egg-scpsl.json b/steamcmd_servers/scpsl/egg-scpsl.json index 73ee4e68..fff58d92 100644 --- a/steamcmd_servers/scpsl/egg-scpsl.json +++ b/steamcmd_servers/scpsl/egg-scpsl.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2020-01-29T19:49:19+01:00", + "exported_at": "2020-01-29T19:54:33+01:00", "name": "SCP:SL", "author": "info@goover.de", "description": "Egg for SCP: Secret Laboratory Dedicated Linux Server", @@ -11,7 +11,7 @@ "startup": ".\/LocalAdmin {{SERVER_PORT}}", "config": { "files": "{\r\n \"config_gameplay.txt\": {\r\n \"parser\": \"yaml\",\r\n \"find\": {\r\n \"server_ip\": \"0.0.0.0\",\r\n \"forward_ports\": \"false\"\r\n }\r\n }\r\n}", - "startup": "{\r\n \"done\": \"Nickname of is now \",\r\n \"userInteraction\": []\r\n}", + "startup": "{\r\n \"done\": \"Waiting for players..\",\r\n \"userInteraction\": []\r\n}", "logs": "{\r\n \"custom\": false,\r\n \"location\": \"logs\/latest.log\"\r\n}", "stop": "^C" }, From e38bc2aeed341fba299ed9361dd599a3f3e09cfe Mon Sep 17 00:00:00 2001 From: gOOvER Date: Thu, 30 Jan 2020 15:44:18 +0100 Subject: [PATCH 093/107] Renamed folder, because its also possible to use gamefiles as Server --- steamcmd_servers/{scpsl => scpsl-dedicated}/README.md | 0 steamcmd_servers/{scpsl => scpsl-dedicated}/egg-scpsl.json | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename steamcmd_servers/{scpsl => scpsl-dedicated}/README.md (100%) rename steamcmd_servers/{scpsl => scpsl-dedicated}/egg-scpsl.json (100%) diff --git a/steamcmd_servers/scpsl/README.md b/steamcmd_servers/scpsl-dedicated/README.md similarity index 100% rename from steamcmd_servers/scpsl/README.md rename to steamcmd_servers/scpsl-dedicated/README.md diff --git a/steamcmd_servers/scpsl/egg-scpsl.json b/steamcmd_servers/scpsl-dedicated/egg-scpsl.json similarity index 100% rename from steamcmd_servers/scpsl/egg-scpsl.json rename to steamcmd_servers/scpsl-dedicated/egg-scpsl.json From ed82d0f497732012ba80e6eaf44b0087a1134116 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Thu, 30 Jan 2020 20:48:28 -0500 Subject: [PATCH 094/107] update openttd Update install script to use wget instead of curl. Remove server password variable. Remove admin password variable. resolves #419 --- .../openttd/egg-open-t-t-d-server.json | 26 +++---------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/tycoon_games/openttd/egg-open-t-t-d-server.json b/tycoon_games/openttd/egg-open-t-t-d-server.json index 834d51c7..89b5bb1b 100644 --- a/tycoon_games/openttd/egg-open-t-t-d-server.json +++ b/tycoon_games/openttd/egg-open-t-t-d-server.json @@ -3,22 +3,22 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-04-09T22:59:20-04:00", + "exported_at": "2020-01-30T20:47:45-05:00", "name": "OpenTTD Server", "author": "admin@justmyrandomstuff.com", "description": "OpenTTD is an open source simulation game based upon the popular Microprose game \"Transport Tycoon Deluxe\", written by Chris Sawyer. It attempts to mimic the original game as closely as possible while extending it with new features.\r\n\r\nOpenTTD is modelled after the original Transport Tycoon game by Chris Sawyer and enhances the game experience dramatically. Many features were inspired by TTDPatch while others are original.", "image": "quay.io\/parkervcp\/pterodactyl-images:base_ubuntu", "startup": ".\/openttd -D", "config": { - "files": "{\r\n \"openttd.cfg\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"network.server_port\": \"{{server.build.default.port}}\",\r\n \"network.server_name\": \"{{server.build.env.srv_name}}\",\r\n \"network.server_password\": \"{{server.build.env.srv_pass}}\",\r\n \"network.lan_internet\": 0,\r\n \"network.server_advertise\": \"{{server.build.env.srv_advertise}}\",\r\n \"network.admin_password\": \"{{server.build.env.srv_adminpass}}\"\r\n }\r\n }\r\n}", + "files": "{\r\n \"openttd.cfg\": {\r\n \"parser\": \"ini\",\r\n \"find\": {\r\n \"network.server_port\": \"{{server.build.default.port}}\",\r\n \"network.server_name\": \"{{server.build.env.srv_name}}\",\r\n \"network.lan_internet\": 0,\r\n \"network.server_advertise\": \"{{server.build.env.srv_advertise}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"[net] Map generated, starting game\",\r\n \"userInteraction\": []\r\n}", "logs": "{\r\n \"custom\": false,\r\n \"location\": \"latest.log\"\r\n}", "stop": "exit" }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\n\r\napk add --no-cache curl binutils xz\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"getting file from: https:\/\/proxy.binaries.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-ubuntu-bionic-amd64.deb\"\r\n\r\ncurl -LSs https:\/\/proxy.binaries.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-ubuntu-bionic-amd64.deb -o openttd.deb\r\n\r\nar -x openttd.deb\r\n\r\ntar -xvf data.tar.xz\r\n\r\nmv usr\/share\/games\/openttd\/* .\/\r\n\r\nmv usr\/games\/openttd .\/\r\n\r\nchmod +x openttd\r\n\r\ncurl -LSs https:\/\/binaries.openttd.org\/extra\/opengfx\/${OPENGFX_VERSION}\/opengfx-${OPENGFX_VERSION}-all.zip -o opengfx.zip\r\n\r\nunzip opengfx.zip \r\n\r\ntar --strip-components=1 -C baseset\/ -xvf opengfx*.tar\r\n\r\nrm open*zip open*tar open*gz debian-binary open*deb\r\n\r\n[ -f \/home\/container\/openttd.cfg ] || curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/openttd\/openttd\/openttd.cfg > openttd.cfg", - "container": "alpine:3.9", + "script": "#!\/bin\/ash\r\n\r\napk add --no-cache wget binutils xz\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"getting file from: https:\/\/proxy.binaries.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-ubuntu-bionic-amd64.deb\"\r\n\r\nwget https:\/\/proxy.binaries.openttd.org\/openttd-releases\/${OPENTTD_VERSION}\/openttd-${OPENTTD_VERSION}-linux-ubuntu-bionic-amd64.deb -O openttd.deb\r\n\r\nar -x openttd.deb\r\n\r\ntar -xvf data.tar.xz\r\n\r\nmv usr\/share\/games\/openttd\/* .\/\r\n\r\nmv usr\/games\/openttd .\/\r\n\r\nchmod +x openttd\r\n\r\nwget https:\/\/binaries.openttd.org\/extra\/opengfx\/${OPENGFX_VERSION}\/opengfx-${OPENGFX_VERSION}-all.zip -O opengfx.zip\r\n\r\nunzip opengfx.zip \r\n\r\ntar --strip-components=1 -C baseset\/ -xvf opengfx*.tar\r\n\r\nrm open*zip open*tar open*gz debian-binary open*deb\r\n\r\n[ -f \/home\/container\/openttd.cfg ] || curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/tycoon_games\/openttd\/openttd.cfg > openttd.cfg", + "container": "alpine:3.10", "entrypoint": "ash" } }, @@ -32,15 +32,6 @@ "user_editable": 1, "rules": "required|string|max:20" }, - { - "name": "Server Password", - "description": "The password required to join the server", - "env_variable": "srv_pass", - "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "nullable|string|max:20" - }, { "name": "Show in masterlist?", "description": "Show the server in the serverlist on the client, true or false", @@ -50,15 +41,6 @@ "user_editable": 1, "rules": "required|string|max:5" }, - { - "name": "Admin Password", - "description": "Password to access admin controls in-game", - "env_variable": "srv_adminpass", - "default_value": "", - "user_viewable": 1, - "user_editable": 1, - "rules": "required|string|max:20" - }, { "name": "OpenTTD Version", "description": "The version of OpenTTD i.e. 1.9.1", From 3fa05227d2663f5f7e1b9978ec5b908c2f38d57b Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sat, 1 Feb 2020 08:00:48 -0500 Subject: [PATCH 095/107] add/RedM support resolved #379 --- rdr/README.md | 6 ++++ rdr/redm/README.md | 16 +++++++++ rdr/redm/egg-red-m.json | 72 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 rdr/README.md create mode 100644 rdr/redm/README.md create mode 100644 rdr/redm/egg-red-m.json diff --git a/rdr/README.md b/rdr/README.md new file mode 100644 index 00000000..abade62b --- /dev/null +++ b/rdr/README.md @@ -0,0 +1,6 @@ +# Read Dead Redemption + +## RedM + +[RedM](https://redm.gg/) +RedM, for Red Dead Redemption 2 on PC. Launching now, based on the CitizenFX framework and Cfx.re technology. \ No newline at end of file diff --git a/rdr/redm/README.md b/rdr/redm/README.md new file mode 100644 index 00000000..469e3f07 --- /dev/null +++ b/rdr/redm/README.md @@ -0,0 +1,16 @@ +# Red M + +### From the [RedM](https://redm.gg/) Site +RedM, for Red Dead Redemption 2 on PC. Launching now, based on the CitizenFX framework and Cfx.re technology. + +### Install notes +- Only installs latest version versions are not selectable. + +### Server Ports +Ports required to run the server in a table format. + +| Port | default | +|---------|---------| +| Game | 30120 | +| ServerListing | 30110 | +| cfx join links | 30130 | \ No newline at end of file diff --git a/rdr/redm/egg-red-m.json b/rdr/redm/egg-red-m.json new file mode 100644 index 00000000..f61bec80 --- /dev/null +++ b/rdr/redm/egg-red-m.json @@ -0,0 +1,72 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2020-02-01T08:00:01-05:00", + "name": "RedM", + "author": "parker@parkervcp.com", + "description": "A new RedM egg for the latest builds due to recent changes in RedM", + "image": "quay.io\/parkervcp\/pterodactyl-images:base_alpine", + "startup": "$(pwd)\/alpine\/opt\/cfx-server\/ld-musl-x86_64.so.1 --library-path \"$(pwd)\/alpine\/usr\/lib\/v8\/:$(pwd)\/alpine\/lib\/:$(pwd)\/alpine\/usr\/lib\/\" -- $(pwd)\/alpine\/opt\/cfx-server\/FXServer +set citizen_dir $(pwd)\/alpine\/opt\/cfx-server\/citizen\/ +set sv_licenseKey {{CFX_LICENSE}} +set sv_maxplayers {{MAX_PLAYERS}} +exec server.cfg gamename rdr3", + "config": { + "files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"endpoint_add_tcp\": \"endpoint_add_tcp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"endpoint_add_udp\": \"endpoint_add_udp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"sv_hostname\": \"sv_hostname \\\"{{server.build.env.SERVER_HOSTNAME}}\\\"\",\r\n \"sv_maxclients\": \"sv_maxclients {{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", + "startup": "{\r\n \"done\": \"succeeded. Welcome!\"\r\n}", + "logs": "{\r\n \"custom\": true,\r\n \"location\": \"logs\/latest.log\"\r\n}", + "stop": "^C" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n# CFx Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk add openssl tar xz curl wget git file --no-cache\r\n\r\nmkdir -p \/mnt\/server\/resources \/mnt\/server\/logs\/\r\n\r\ncd \/mnt\/server\r\n\r\necho \"updating citizenfx resource files\"\r\ngit clone https:\/\/github.com\/citizenfx\/cfx-server-data.git \/tmp\r\ncp -Rf \/tmp\/resources\/* resources\/ \r\n\r\nRELEASE_PAGE=$(curl -sSL https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/)\r\n\r\nif [ \"${CFX_VERSION}\" == \"latest\" ] || [ -z ${CFX_VERSION} ] ; then\r\n LATEST_RECOMMENDED=$(echo -e \"${RELEASE_PAGE}\" | grep \"LATEST RECOMMENDED\" -B1 | grep -Eo 'href=\".*\/*.tar.xz\"' | grep -Eo '\".*\"' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1')\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${LATEST_RECOMMENDED})\r\nelse\r\n VERSION_LINK=$(echo -e \"${RELEASE_PAGE}\" | grep -Eo 'href=\".*\/*.tar.xz\"' | grep -Eo '\".*\"' | sed 's\/\\\"\/\/g' | sed 's\/\\.\\\/\/\/1' | grep ${CFX_VERSION})\r\n if [ \"${VERSION_LINK}\" == \"\" ]; then\r\n echo -e \"defaulting to latest as the version requested was invalid.\"\r\n else\r\n DOWNLOAD_LINK=$(echo https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/${VERSION_LINK})\r\n fi\r\nfi\r\n\r\nif [ ! -z \"${DOWNLOAD_URL}\"]; then \r\n if curl --output \/dev\/null --silent --head --fail ${DOWNLOAD_URL}; then\r\n echo -e \"link is valid. setting download link to ${DOWNLOAD_URL}\"\r\n DOWNLOAD_LINK=${DOWNLOAD_URL}\r\n else\r\n echo -e \"link is invalid closing out\"\r\n exit 2\r\n fi\r\nfi\r\n\r\necho -e \"Running curl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\"\r\n\r\ncurl -sSL ${DOWNLOAD_LINK} -o ${DOWNLOAD_LINK##*\/}\r\n\r\necho \"Extracting fivem files\"\r\n\r\nFILETYPE=$(file -F ',' ${DOWNLOAD_LINK##*\/} | cut -d',' -f2 | cut -d' ' -f2)\r\nif [ \"$FILETYPE\" == \"gzip\" ]; then\r\n tar xzvf ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"Zip\" ]; then\r\n unzip ${DOWNLOAD_LINK##*\/}\r\nelif [ \"$FILETYPE\" == \"XZ\" ]; then\r\n tar xvf ${DOWNLOAD_LINK##*\/}\r\nelse\r\n echo -e \"unknown filetype. Exeting\"\r\n exit 2 \r\nfi\r\n\r\nrm -rf ${DOWNLOAD_LINK##*\/} run.sh\r\n\r\nif [ -e server.cfg ]; then\r\n echo \"server config file exists\"\r\nelse\r\n echo \"Downloading default fivem config\"\r\n curl https:\/\/raw.githubusercontent.com\/parkervcp\/eggs\/master\/gta\/fivem\/server.cfg >> server.cfg\r\nfi\r\n\r\necho \"install complete\"", + "container": "alpine:3.10", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "fivem license", + "description": "Required to start the service. Get your keys at https:\/\/keymaster.fivem.net\/", + "env_variable": "CFX_LICENSE", + "default_value": "", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "Max Players", + "description": "Set the fivem max play count", + "env_variable": "MAX_PLAYERS", + "default_value": "32", + "user_viewable": 1, + "user_editable": 0, + "rules": "required|integer|between:1,32" + }, + { + "name": "Server Hostname", + "description": "The name that shows up in the server browser", + "env_variable": "SERVER_HOSTNAME", + "default_value": "My new FXServer!", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, + { + "name": "fivem version", + "description": "The fivem version that is to be installed.\r\n\r\nan example is `1383-e5ea040353ce1b8bc86e37982bf5d888938e3096`\r\n\r\nYou can the latest version from here - https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/", + "env_variable": "CFX_VERSION", + "default_value": "latest", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:50" + }, + { + "name": "Download Link", + "description": "This is the link to download fivem from. This is only used in the install script.\r\n\r\nThe file you link to needs to be an fx.tar.zx file.\r\n\r\nExample:\r\nhttps:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/1626-8c06e8bc3ed7e6690c6c2d9e0b90e29df65b3ea6\/fx.tar.xz", + "env_variable": "DOWNLOAD_URL", + "default_value": "", + "user_viewable": 0, + "user_editable": 0, + "rules": "string|nullable" + } + ] +} \ No newline at end of file From 10c81977b6322f4d68fb4a7a4e9900a9edf8beff Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sat, 1 Feb 2020 08:03:20 -0500 Subject: [PATCH 096/107] update main readme --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e3b4005c..c5fda26b 100644 --- a/README.md +++ b/README.md @@ -78,8 +78,8 @@ If you are reading this it looks like you are looking to add an egg to your serv * [TyphoonLimbo](/minecraft_proxy/typhoonlimbo/) * [Velocity](/minecraft_proxy/velocity/) -[Tycoon Games](/tycoon_games/) -* [OpenTTD](/tycoon_games/openttd/) +[Red Dead Redemption](/rdr/) +* [RedM](/rdr/redm/) [steamcmd servers](/steamcmd_servers/) These eggs use steamcmd to install * [7 Days to Die](/steamcmd_servers/7_days_to_die/) @@ -101,6 +101,9 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Unturned](/unturned/) * [RocketMod](/unturned/rocketmod/) +[Tycoon Games](/tycoon_games/) +* [OpenTTD](/tycoon_games/openttd/) + [Unreal Engine](/unreal_engine) * [Tower Unite](/unreal_engine/tower_unite/) From 1c92b6f11fbdd4dd3591a343a627a93edcbe65ea Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sat, 1 Feb 2020 21:37:44 -0500 Subject: [PATCH 097/107] update discordjs egg --- .../discord.js/egg-discord-js-generic.json | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/bots/discord/discord.js/egg-discord-js-generic.json b/bots/discord/discord.js/egg-discord-js-generic.json index 9ea8f656..6d16fcf6 100644 --- a/bots/discord/discord.js/egg-discord-js-generic.json +++ b/bots/discord/discord.js/egg-discord-js-generic.json @@ -3,12 +3,12 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-06-16T11:06:52-04:00", + "exported_at": "2020-02-01T21:36:43-05:00", "name": "discord.js generic", "author": "parker@parkervcp.com", "description": "a generic discord js bot egg\r\n\r\nThis will clone a git repo for a bot. it defaults to master if no branch is specified.\r\n\r\nInstalls the node_modules on install. If you set user_upload then I assume you know what you are doing.", - "image": "quay.io\/parkervcp\/pterodactyl-images:bot_discordjs", - "startup": "`if [[ -d .git ]] && [[ ${AUTO_UPDATE} == \"1\" ]]; then git pull; fi && \/usr\/local\/bin\/npm install --production && \/usr\/local\/bin\/node \/home\/container\/index.js`", + "image": "quay.io\/parkervcp\/pterodactyl-images:debian_nodejs-10", + "startup": "if [[ -d .git ]] && [[ {{AUTO_UPDATE}} == \"1\" ]]; then git pull; fi && \/usr\/local\/bin\/npm install --production && \/usr\/local\/bin\/node \/home\/container\/{{BOT_JS_FILE}}", "config": { "files": "{}", "startup": "{\r\n \"done\": \"change this part\"\r\n}", @@ -17,7 +17,7 @@ }, "scripts": { "installation": { - "script": "#\/bin\/ash\r\n\r\napk add --no-cache git make gcc g++ python\r\n\r\ncd \/mnt\/server\r\n\r\necho -e \"working on installing a discord.js bot from ${INSTALL_REPO}\"\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n\techo -e \"assuming user knows what they are doing have a good day.\"\r\n\texit 0\r\nelse\r\n\tif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n\t\techo -e \"\/mnt\/server directory is not empty.\"\r\n\t if [ -d .git ]; then\r\n\t\t\techo -e \".git directory exists\" \r\n\t\t\tif [ -f .git\/config ]; then\r\n\t\t\t\techo -e \"loading info from git config\"\r\n\t\t\t\tORIGIN=$(git config --get remote.origin.url)\r\n\t\t\telse\r\n\t\t\t\techo -e \"files found with no git config\"\r\n\t\t\t\techo -e \"closing out without touching things to not break anything\"\r\n\t\t\t\texit 10\r\n\t\t\tfi\r\n\t\tfi\r\n\t\tif [ \"${ORIGIN}\" == \"${INSTALL_REPO}\" ]; then\r\n\t\t\techo \"pulling latest from github\"\r\n\t\t\tgit pull \r\n\t\t\techo -e \"updating local npm modules\"\r\n\t\t\t\/usr\/local\/bin\/npm install --production\r\n\t\tfi\r\n\telse\r\n \techo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n\t\tif [ -z ${INSTALL_BRANCH} ]; then\r\n\t\t\techo -e \"assuming master branch\"\r\n\t\t\tINSTALL_BRANCH=master\r\n\t\tfi\r\n \r\n\t\techo -e \"running 'git clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .'\"\r\n\t\tgit clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .\r\n\t\techo -e \"install npm modules locally\"\r\n\t\t\/usr\/local\/bin\/npm install --production\r\n\tfi\r\nfi \r\n\r\necho -e \"install complete\"\r\nexit 0", + "script": "#\/bin\/ash\r\n\r\napk add --no-cache git make gcc g++ python\r\n\r\ncd \/mnt\/server\r\n\r\nif [[ ! ${INSTALL_REPO} = *\\.git ]]; then\r\n INSTALL_REPO=$(echo -e ${INSTALL_REPO} | sed 's:\/*$::')\r\n INSTALL_REPO=\"${INSTALL_REPO}.git\"\r\nfi\r\n\r\necho -e \"working on installing a discord.js bot from ${INSTALL_REPO}\"\r\n\r\nif [ \"${USER_UPLOAD}\" == \"true\" ] || [ \"${USER_UPLOAD}\" == \"1\" ]; then\r\n\techo -e \"assuming user knows what they are doing have a good day.\"\r\n\texit 0\r\nelse\r\n\tif [ \"$(ls -A \/mnt\/server)\" ]; then\r\n\t\techo -e \"\/mnt\/server directory is not empty.\"\r\n\t if [ -d .git ]; then\r\n\t\t\techo -e \".git directory exists\" \r\n\t\t\tif [ -f .git\/config ]; then\r\n\t\t\t\techo -e \"loading info from git config\"\r\n\t\t\t\tORIGIN=$(git config --get remote.origin.url)\r\n\t\t\telse\r\n\t\t\t\techo -e \"files found with no git config\"\r\n\t\t\t\techo -e \"closing out without touching things to not break anything\"\r\n\t\t\t\texit 10\r\n\t\t\tfi\r\n\t\tfi\r\n\t\tif [ \"${ORIGIN}\" == \"${INSTALL_REPO}\" ]; then\r\n\t\t\techo \"pulling latest from github\"\r\n\t\t\tgit pull \r\n\t\t\techo -e \"updating local npm modules\"\r\n\t\t\t\/usr\/local\/bin\/npm install --production\r\n\t\tfi\r\n\telse\r\n \techo -e \"\/mnt\/server is empty.\\ncloning files into repo\"\r\n\t\tif [ -z ${INSTALL_BRANCH} ]; then\r\n\t\t\techo -e \"assuming master branch\"\r\n\t\t\tINSTALL_BRANCH=master\r\n\t\tfi\r\n \r\n\t\techo -e \"running 'git clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .'\"\r\n\t\tgit clone --single-branch --branch ${INSTALL_BRANCH} ${INSTALL_REPO} .\r\n\t\techo -e \"install npm modules locally\"\r\n\t\t\/usr\/local\/bin\/npm install --production\r\n\tfi\r\nfi \r\n\r\necho -e \"install complete\"\r\nexit 0", "container": "node:10-alpine", "entrypoint": "ash" } @@ -58,6 +58,15 @@ "user_viewable": 1, "user_editable": 1, "rules": "required|boolean" + }, + { + "name": "Bot js file", + "description": "The file that starts the bot.", + "env_variable": "BOT_JS_FILE", + "default_value": "index.js", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" } ] } \ No newline at end of file From d8feef569c20523c1be266590a11b87ecc4bde2d Mon Sep 17 00:00:00 2001 From: Rustypredator Date: Sat, 27 Jul 2019 21:57:14 +0200 Subject: [PATCH 098/107] Add Starmade Egg --- starmade/egg-starmade.json | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 starmade/egg-starmade.json diff --git a/starmade/egg-starmade.json b/starmade/egg-starmade.json new file mode 100644 index 00000000..3a20b6e8 --- /dev/null +++ b/starmade/egg-starmade.json @@ -0,0 +1,36 @@ +{ + "_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO", + "meta": { + "version": "PTDL_v1" + }, + "exported_at": "2019-07-14T13:03:01+02:00", + "name": "starmade", + "author": "contact@hunters-tavern.de", + "description": "starmade", + "image": "quay.io\/pterodactyl\/core:java", + "startup": "java -Xms128m -Xmx{{SERVER_MEMORY}}m -jar {{SERVER_JARFILE}} -server -port:{{SERVER_PORT}}", + "config": { + "files": "{}", + "startup": "{\r\n \"done\": \"SenableGameState(1)\"\r\n}", + "logs": "{}", + "stop": "\/shutdown 0" + }, + "scripts": { + "installation": { + "script": "#!\/bin\/ash\r\n# starmade Installation Script\r\n#\r\n# Server Files: \/mnt\/server\r\napk update\r\napk add curl\r\n\r\ncd \/mnt\/server\r\n\r\nwget -O starter.jar http:\/\/files.star-made.org\/StarMade-Starter.jar\r\n\r\njava -jar starter.jar -nogui\r\n\r\nmv .\/StarMade\/* .\/\r\nrm -r .\/StarMade", + "container": "openjdk:13-ea-27-jdk-alpine3.9", + "entrypoint": "ash" + } + }, + "variables": [ + { + "name": "Server Jarfile", + "description": "", + "env_variable": "SERVER_JARFILE", + "default_value": "StarMade.jar", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string|max:64" + } + ] +} From 4098777c5f57ee3b71778a23a9652a70fc94390e Mon Sep 17 00:00:00 2001 From: Rustypredator Date: Sat, 27 Jul 2019 21:57:55 +0200 Subject: [PATCH 099/107] Add Readme for Starmade --- starmade/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 starmade/README.md diff --git a/starmade/README.md b/starmade/README.md new file mode 100644 index 00000000..33583884 --- /dev/null +++ b/starmade/README.md @@ -0,0 +1,10 @@ +# Starmade Server +### From their [Homepage](https://starmadedock.net/) - [Guide](https://www.star-made.org/help/setting_up_a_server) +The ultimate space sandbox. Participate in epic fleet battles, form alliances, strive to dominate entire galaxies and harness the universe’s resources for your industrious empire or the destruction of others. Customise your experience, the universe is yours! + +### Server Ports +Ports required to run the server + +| Port | default | +|---------|---------| +| Game | 4242 | From 724acbd39cf1f223686bd2dc19d6d412a60e9e04 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sat, 1 Feb 2020 21:52:30 -0500 Subject: [PATCH 100/107] update starmade update starmade location update core readme --- README.md | 8 +++++--- starmade/{ => starmade}/README.md | 0 starmade/{ => starmade}/egg-starmade.json | 0 3 files changed, 5 insertions(+), 3 deletions(-) rename starmade/{ => starmade}/README.md (100%) rename starmade/{ => starmade}/egg-starmade.json (100%) diff --git a/README.md b/README.md index ffa46401..ab882ace 100644 --- a/README.md +++ b/README.md @@ -78,8 +78,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [TyphoonLimbo](/minecraft_proxy/typhoonlimbo/) * [Velocity](/minecraft_proxy/velocity/) -[Tycoon Games](/tycoon_games/) -* [OpenTTD](/tycoon_games/openttd/) +[Starmade](/starmade/starmade/) [steamcmd servers](/steamcmd_servers/) These eggs use steamcmd to install * [7 Days to Die](/steamcmd_servers/7_days_to_die/) @@ -107,4 +106,7 @@ If you are reading this it looks like you are looking to add an egg to your serv * [tmodloader](/terraria/tmodloader) * [tshock](/terraria/tshock/) -[Xonotic](/xonotic/xonotic/) +[Tycoon Games](/tycoon_games/) +* [OpenTTD](/tycoon_games/openttd/) + +[Xonotic](/xonotic/xonotic/) \ No newline at end of file diff --git a/starmade/README.md b/starmade/starmade/README.md similarity index 100% rename from starmade/README.md rename to starmade/starmade/README.md diff --git a/starmade/egg-starmade.json b/starmade/starmade/egg-starmade.json similarity index 100% rename from starmade/egg-starmade.json rename to starmade/starmade/egg-starmade.json From e4932f9e5ba194bcf04a16be2779f06bf1c7433c Mon Sep 17 00:00:00 2001 From: KungRaseri Date: Thu, 6 Feb 2020 09:45:15 -0700 Subject: [PATCH 101/107] A few updates to the new RedM egg This should properly set the gamename to rdr3. A few changes to the variables to reflect the proper game name. --- rdr/redm/egg-red-m.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rdr/redm/egg-red-m.json b/rdr/redm/egg-red-m.json index f61bec80..63e8b28b 100644 --- a/rdr/redm/egg-red-m.json +++ b/rdr/redm/egg-red-m.json @@ -8,7 +8,7 @@ "author": "parker@parkervcp.com", "description": "A new RedM egg for the latest builds due to recent changes in RedM", "image": "quay.io\/parkervcp\/pterodactyl-images:base_alpine", - "startup": "$(pwd)\/alpine\/opt\/cfx-server\/ld-musl-x86_64.so.1 --library-path \"$(pwd)\/alpine\/usr\/lib\/v8\/:$(pwd)\/alpine\/lib\/:$(pwd)\/alpine\/usr\/lib\/\" -- $(pwd)\/alpine\/opt\/cfx-server\/FXServer +set citizen_dir $(pwd)\/alpine\/opt\/cfx-server\/citizen\/ +set sv_licenseKey {{CFX_LICENSE}} +set sv_maxplayers {{MAX_PLAYERS}} +exec server.cfg gamename rdr3", + "startup": "$(pwd)\/alpine\/opt\/cfx-server\/ld-musl-x86_64.so.1 --library-path \"$(pwd)\/alpine\/usr\/lib\/v8\/:$(pwd)\/alpine\/lib\/:$(pwd)\/alpine\/usr\/lib\/\" -- $(pwd)\/alpine\/opt\/cfx-server\/FXServer +set citizen_dir $(pwd)\/alpine\/opt\/cfx-server\/citizen\/ +set sv_licenseKey {{CFX_LICENSE}} +set sv_maxplayers {{MAX_PLAYERS}} +exec server.cfg +set gamename rdr3", "config": { "files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"endpoint_add_tcp\": \"endpoint_add_tcp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"endpoint_add_udp\": \"endpoint_add_udp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"sv_hostname\": \"sv_hostname \\\"{{server.build.env.SERVER_HOSTNAME}}\\\"\",\r\n \"sv_maxclients\": \"sv_maxclients {{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"succeeded. Welcome!\"\r\n}", @@ -24,7 +24,7 @@ }, "variables": [ { - "name": "fivem license", + "name": "CFX license", "description": "Required to start the service. Get your keys at https:\/\/keymaster.fivem.net\/", "env_variable": "CFX_LICENSE", "default_value": "", @@ -51,8 +51,8 @@ "rules": "required|string" }, { - "name": "fivem version", - "description": "The fivem version that is to be installed.\r\n\r\nan example is `1383-e5ea040353ce1b8bc86e37982bf5d888938e3096`\r\n\r\nYou can the latest version from here - https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/", + "name": "CFX version", + "description": "The CFX Server version that is to be installed.\r\n\r\nan example is `1383-e5ea040353ce1b8bc86e37982bf5d888938e3096`\r\n\r\nYou can the latest version from here - https:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/", "env_variable": "CFX_VERSION", "default_value": "latest", "user_viewable": 1, @@ -61,7 +61,7 @@ }, { "name": "Download Link", - "description": "This is the link to download fivem from. This is only used in the install script.\r\n\r\nThe file you link to needs to be an fx.tar.zx file.\r\n\r\nExample:\r\nhttps:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/1626-8c06e8bc3ed7e6690c6c2d9e0b90e29df65b3ea6\/fx.tar.xz", + "description": "This is the link to download redm from. This is only used in the install script.\r\n\r\nThe file you link to needs to be an fx.tar.zx file.\r\n\r\nExample:\r\nhttps:\/\/runtime.fivem.net\/artifacts\/fivem\/build_proot_linux\/master\/1626-8c06e8bc3ed7e6690c6c2d9e0b90e29df65b3ea6\/fx.tar.xz", "env_variable": "DOWNLOAD_URL", "default_value": "", "user_viewable": 0, @@ -69,4 +69,4 @@ "rules": "string|nullable" } ] -} \ No newline at end of file +} From ac9b60215a38265eccf632d0b5fbee660185bd6b Mon Sep 17 00:00:00 2001 From: KungRaseri Date: Thu, 6 Feb 2020 09:58:27 -0700 Subject: [PATCH 102/107] added steam_webApiKey variable --- rdr/redm/egg-red-m.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/rdr/redm/egg-red-m.json b/rdr/redm/egg-red-m.json index 63e8b28b..8e2c3f9d 100644 --- a/rdr/redm/egg-red-m.json +++ b/rdr/redm/egg-red-m.json @@ -8,7 +8,7 @@ "author": "parker@parkervcp.com", "description": "A new RedM egg for the latest builds due to recent changes in RedM", "image": "quay.io\/parkervcp\/pterodactyl-images:base_alpine", - "startup": "$(pwd)\/alpine\/opt\/cfx-server\/ld-musl-x86_64.so.1 --library-path \"$(pwd)\/alpine\/usr\/lib\/v8\/:$(pwd)\/alpine\/lib\/:$(pwd)\/alpine\/usr\/lib\/\" -- $(pwd)\/alpine\/opt\/cfx-server\/FXServer +set citizen_dir $(pwd)\/alpine\/opt\/cfx-server\/citizen\/ +set sv_licenseKey {{CFX_LICENSE}} +set sv_maxplayers {{MAX_PLAYERS}} +exec server.cfg +set gamename rdr3", + "startup": "$(pwd)\/alpine\/opt\/cfx-server\/ld-musl-x86_64.so.1 --library-path \"$(pwd)\/alpine\/usr\/lib\/v8\/:$(pwd)\/alpine\/lib\/:$(pwd)\/alpine\/usr\/lib\/\" -- $(pwd)\/alpine\/opt\/cfx-server\/FXServer +set citizen_dir $(pwd)\/alpine\/opt\/cfx-server\/citizen\/ +set sv_licenseKey {{CFX_LICENSE}} +set steam_webApiKey {{STEAM_WEBAPIKEY}} +set sv_maxplayers {{MAX_PLAYERS}} +exec server.cfg +set gamename rdr3", "config": { "files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"endpoint_add_tcp\": \"endpoint_add_tcp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"endpoint_add_udp\": \"endpoint_add_udp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"sv_hostname\": \"sv_hostname \\\"{{server.build.env.SERVER_HOSTNAME}}\\\"\",\r\n \"sv_maxclients\": \"sv_maxclients {{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"succeeded. Welcome!\"\r\n}", @@ -32,6 +32,15 @@ "user_editable": 1, "rules": "required|string" }, + { + "name": "Steam Web Api Key", + "description": "Use your Steam WebApiKey or set to 'none'. Get your key at https:\/\/steamcommunity.com\/dev\/apikey\/", + "env_variable": "STEAM_WEBAPIKEY", + "default_value": "none", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, { "name": "Max Players", "description": "Set the fivem max play count", From 9ad7616f266b57cab7823dd0df44c059ca07be5b Mon Sep 17 00:00:00 2001 From: KungRaseri Date: Thu, 6 Feb 2020 10:34:58 -0700 Subject: [PATCH 103/107] added steam_webApiKey Added `steam_webApiKey` to the variables and startup command. --- gta/fivem/egg-five-m.json | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gta/fivem/egg-five-m.json b/gta/fivem/egg-five-m.json index 8d9baef5..6aa4b4b0 100644 --- a/gta/fivem/egg-five-m.json +++ b/gta/fivem/egg-five-m.json @@ -8,7 +8,7 @@ "author": "parker@parkervcp.com", "description": "A new FiveM egg for the latest builds due to recent changes in FiveM", "image": "quay.io\/parkervcp\/pterodactyl-images:base_alpine", - "startup": "$(pwd)\/alpine\/opt\/cfx-server\/ld-musl-x86_64.so.1 --library-path \"$(pwd)\/alpine\/usr\/lib\/v8\/:$(pwd)\/alpine\/lib\/:$(pwd)\/alpine\/usr\/lib\/\" -- $(pwd)\/alpine\/opt\/cfx-server\/FXServer +set citizen_dir $(pwd)\/alpine\/opt\/cfx-server\/citizen\/ +set sv_licenseKey {{FIVEM_LICENSE}} +set sv_maxplayers {{MAX_PLAYERS}} +exec server.cfg", + "startup": "$(pwd)\/alpine\/opt\/cfx-server\/ld-musl-x86_64.so.1 --library-path \"$(pwd)\/alpine\/usr\/lib\/v8\/:$(pwd)\/alpine\/lib\/:$(pwd)\/alpine\/usr\/lib\/\" -- $(pwd)\/alpine\/opt\/cfx-server\/FXServer +set citizen_dir $(pwd)\/alpine\/opt\/cfx-server\/citizen\/ +set sv_licenseKey {{FIVEM_LICENSE}} +set steam_webApiKey {{STEAM_WEBAPIKEY}} +set sv_maxplayers {{MAX_PLAYERS}} +exec server.cfg", "config": { "files": "{\r\n \"server.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"endpoint_add_tcp\": \"endpoint_add_tcp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"endpoint_add_udp\": \"endpoint_add_udp \\\"0.0.0.0:{{server.build.default.port}}\\\"\",\r\n \"sv_hostname\": \"sv_hostname \\\"{{server.build.env.SERVER_HOSTNAME}}\\\"\",\r\n \"sv_maxclients\": \"sv_maxclients {{server.build.env.MAX_PLAYERS}}\"\r\n }\r\n }\r\n}", "startup": "{\r\n \"done\": \"succeeded. Welcome!\"\r\n}", @@ -32,6 +32,15 @@ "user_editable": 1, "rules": "required|string|max:32" }, + { + "name": "Steam Web Api Key", + "description": "Use your Steam WebApiKey or set to 'none'. Get your key at https:\/\/steamcommunity.com\/dev\/apikey\/", + "env_variable": "STEAM_WEBAPIKEY", + "default_value": "none", + "user_viewable": 1, + "user_editable": 1, + "rules": "required|string" + }, { "name": "Max Players", "description": "Set the fivem max play count", @@ -69,4 +78,4 @@ "rules": "string|nullable" } ] -} \ No newline at end of file +} From 5e7659dcb64dfa2224a3bbf9826af948457a0729 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Sat, 8 Feb 2020 09:08:00 -0500 Subject: [PATCH 104/107] Fix main readme links --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3db13067..10b72c1a 100644 --- a/README.md +++ b/README.md @@ -98,10 +98,10 @@ If you are reading this it looks like you are looking to add an egg to your serv * [Starbound](/steamcmd_servers/starbound) * [Sven Co-op](/steamcmd_servers/svencoop) * [Squad](/steamcmd_servers/squad/) -* [Tower Unite](/unreal_engine/tower_unite/) -* [Unturned](/unturned/) - * [RocketMod](/unturned/rocketmod/) - * [Unturned](/unturned/unturned/) +* [Tower Unite](/steamcmd_servers/tower_unite/) +* [Unturned](/steamcmd_servers/unturned/) + * [RocketMod](/steamcmd_servers/unturned/rocketmod/) + * [Unturned](/steamcmd_servers/unturned/unturned/) [Terraria](/terraria/) * [tmodloader](/terraria/tmodloader) From 93a70766173ab3fca274d8c72bee34b2e5664919 Mon Sep 17 00:00:00 2001 From: AreYouScared Date: Mon, 10 Feb 2020 04:06:11 -0500 Subject: [PATCH 105/107] Spelling fix Fixed spelling.... Unless `somf` was intended... --- .github/ISSUE_TEMPLATE/request.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/request.md b/.github/ISSUE_TEMPLATE/request.md index 0de43824..1590d3a8 100644 --- a/.github/ISSUE_TEMPLATE/request.md +++ b/.github/ISSUE_TEMPLATE/request.md @@ -14,6 +14,6 @@ Does this expand an already existing service: Y/N Link to game: (Ex. minecraft.net/factorio.com/etc) -Links for server downloads: This needs to be an official link and not one that is hosted on somf forum page or a personal github page. +Links for server downloads: This needs to be an official link and not one that is hosted on some forum page or a personal github page. -Links for install steps/docs: \ No newline at end of file +Links for install steps/docs: From a07af6fa55bcb72fe5257993b90d724b3baa7a10 Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Wed, 19 Feb 2020 21:51:29 -0500 Subject: [PATCH 106/107] update altv default variable update build variable default values update description to match new values --- gta/altv/egg-alt--v.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gta/altv/egg-alt--v.json b/gta/altv/egg-alt--v.json index f1a31b78..944fdd7d 100644 --- a/gta/altv/egg-alt--v.json +++ b/gta/altv/egg-alt--v.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2020-01-02T15:11:11-05:00", + "exported_at": "2020-02-19T21:48:36-05:00", "name": "alt:V", "author": "parker@parkervcp.com", "description": "alt:V Multiplayer a third-party multiplayer modification for Grand Theft Auto: V", @@ -34,9 +34,9 @@ }, { "name": "Which alt:V build to download", - "description": "The supported versions are alpha, beta, stable (default).\r\n\r\nIf you don't know what you are doing leave it on stable", + "description": "The supported versions are release, rc, dev (default: release).\r\n\r\nIf you don't know what you are doing leave it on stable", "env_variable": "BUILD", - "default_value": "stable", + "default_value": "release", "user_viewable": 1, "user_editable": 1, "rules": "required|string|max:20" From b17e60e3845557673ad7bfa44c04872d39c80ddd Mon Sep 17 00:00:00 2001 From: Michael Parker Date: Fri, 21 Feb 2020 13:02:40 -0500 Subject: [PATCH 107/107] update jmusic bot fixes the install script. --- bots/discord/jmusicbot/egg-j-music-bot.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bots/discord/jmusicbot/egg-j-music-bot.json b/bots/discord/jmusicbot/egg-j-music-bot.json index 1fb7b94e..99cce2a7 100644 --- a/bots/discord/jmusicbot/egg-j-music-bot.json +++ b/bots/discord/jmusicbot/egg-j-music-bot.json @@ -3,7 +3,7 @@ "meta": { "version": "PTDL_v1" }, - "exported_at": "2019-05-08T07:52:52-04:00", + "exported_at": "2020-02-21T13:00:39-05:00", "name": "JMusicBot", "author": "parker@parkervcp.com", "description": "A Discord music bot that's easy to set up and run yourself!", @@ -17,9 +17,9 @@ }, "scripts": { "installation": { - "script": "#!\/bin\/ash\r\napk add --no-cache curl\r\n\r\nget_latest_release() {\r\n curl --silent \"https:\/\/api.github.com\/repos\/$1\/releases\/latest\" |\r\n grep '\"tag_name\":' |\r\n sed -E 's\/.*\"([^\"]+)\".*\/\\1\/'\r\n}\r\n\r\nPACKAGE=\"jagrosh\/MusicBot\"\r\nVERSION=`get_latest_release \"${PACKAGE}\"`\r\necho \"Latest version=${VERSION}\"\r\n\r\ncd \/mnt\/server\r\n\r\ncurl -Lo JMusicBot.jar https:\/\/github.com\/jagrosh\/MusicBot\/releases\/download\/${VERSION}\/JMusicBot-${VERSION}.jar\r\n\r\nif [ -f config.txt ]; then\r\n echo -e \"config found\"\r\nelse\r\n echo -e \"config not found getting default\"\r\n curl -Lo config.txt https:\/\/github.com\/jagrosh\/MusicBot\/releases\/download\/${VERSION}\/config.txt\r\nfi\r\n\r\necho \"Job's Done\"", - "container": "alpine:3.9", - "entrypoint": "ash" + "script": "#!\/bin\/bash\r\n## this is a simple script to use the github API for release versions.\r\n## this requires the egg has a variable for GITHUB_PACKAGE, VERSION and MATCH (match is to match the filename in some way)\r\n## this supports using oauth\/personal access tokens via GITHUB_USER and GITHUB_OAUTH_TOKEN (both are required.)\r\n## if you are getting hit with GitHub API limit issues then you need to have the user and token set.\r\n\r\napt update\r\napt install -y jq curl\r\n\r\nGITHUB_PACKAGE=\"jagrosh\/MusicBot\"\r\nMATCH=\"All\"\r\n\r\nif [ -z \"${GITHUB_USER}\" ] && [ -z \"${GITHUB_OAUTH_TOKEN}\" ] ; then\r\n echo -e \"using anon api call\"\r\nelse\r\n echo -e \"user and oauth token set\"\r\n alias curl='curl -u ${GITHUB_USER}:${GITHUB_OAUTH_TOKEN} '\r\nfi\r\n\r\n## get release info and download links\r\nLATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\/latest\")\r\nRELEASES=$(curl --silent \"https:\/\/api.github.com\/repos\/${GITHUB_PACKAGE}\/releases\")\r\n\r\nif [ -z \"${VERSION}\" ] || [ \"${VERSION}\" == \"latest\" ]; then\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\n CONFIG_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i config)\r\nelse\r\n VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .tag_name')\r\n if [ \"${VERSION}\" == \"${VERSION_CHECK}\" ]; then\r\n DOWNLOAD_LINK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i config)\r\n else\r\n echo -e \"defaulting to latest release\"\r\n DOWNLOAD_LINK=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})\r\n CONFIG_LINK=$(echo ${RELEASES} | jq -r --arg VERSION \"${VERSION}\" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})\r\n fi\r\nfi\r\n\r\n[ ! -d \/mnt\/server ] && mkdir \/mnt\/server\r\n\r\ncd \/mnt\/server\r\n\r\nif [ -f JMusicBot.jar ]; then\r\n mv -f JMusicBot.jar JMusicBot.jar-old\r\nfi\r\n\r\ncurl -Lo JMusicBot.jar ${DOWNLOAD_LINK}\r\n\r\nif [ -f config.txt ]; then\r\n echo -e \"config found\"\r\nelse\r\n echo -e \"config not found getting default\"\r\n curl -Lo config.txt ${CONFIG_LINK}\r\nfi\r\n\r\necho \"Job's Done\"", + "container": "debian:buster-slim", + "entrypoint": "\/bin\/bash" } }, "variables": [