mirror of
https://github.com/pelican-dev/panel.git
synced 2025-09-09 00:58:36 +02:00
281 lines
7.9 KiB
YAML
281 lines
7.9 KiB
YAML
_comment: 'DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL'
|
||
meta:
|
||
version: PLCN_v2
|
||
update_url: 'https://github.com/pelican-dev/panel/raw/main/database/Seeders/eggs/rust/egg-rust.yaml'
|
||
exported_at: '2025-07-25T13:30:56+00:00'
|
||
name: Rust
|
||
author: panel@example.com
|
||
uuid: bace2dfb-209c-452a-9459-7d6f340b07ae
|
||
description: |-
|
||
The only aim in Rust is to survive. To do this you will need to overcome struggles such as hunger,
|
||
thirst and cold. Build a fire. Build a shelter. Kill animals for meat. Protect yourself from other
|
||
players, and kill them for meat. Create alliances with other players and form a town. Do whatever it
|
||
takes to survive.
|
||
tags:
|
||
- source
|
||
- steamcmd
|
||
features:
|
||
- steam_disk_space
|
||
docker_images:
|
||
'ghcr.io/parkervcp/games:rust': 'ghcr.io/parkervcp/games:rust'
|
||
file_denylist: { }
|
||
startup: './RustDedicated -batchmode +server.port {{SERVER_PORT}} +server.queryport {{QUERY_PORT}} +server.identity "rust" +rcon.port {{RCON_PORT}} +rcon.web true +server.hostname \"{{SERVER_HOSTNAME}}\" +server.level \"{{LEVEL}}\" +server.description \"{{DESCRIPTION}}\" +server.url \"{{SERVER_URL}}\" +server.headerimage \"{{SERVER_IMG}}\" +server.logoimage \"{{SERVER_LOGO}}\" +server.maxplayers {{MAX_PLAYERS}} +rcon.password \"{{RCON_PASS}}\" +server.saveinterval {{SAVEINTERVAL}} +app.port {{APP_PORT}} $( [ -z ${MAP_URL} ] && printf %s "+server.worldsize \"{{WORLD_SIZE}}\" +server.seed \"{{WORLD_SEED}}\"" || printf %s "+server.levelurl {{MAP_URL}}" ) {{ADDITIONAL_ARGS}}'
|
||
config:
|
||
files: { }
|
||
startup:
|
||
done: 'Server startup complete'
|
||
logs: { }
|
||
stop: quit
|
||
scripts:
|
||
installation:
|
||
script: |-
|
||
#!/bin/bash
|
||
# steamcmd Base Installation Script
|
||
#
|
||
# Server Files: /mnt/server
|
||
|
||
|
||
## just in case someone removed the defaults.
|
||
if [ "${STEAM_USER}" == "" ]; then
|
||
echo -e "steam user is not set.
|
||
"
|
||
echo -e "Using anonymous user.
|
||
"
|
||
STEAM_USER=anonymous
|
||
STEAM_PASS=""
|
||
STEAM_AUTH=""
|
||
else
|
||
echo -e "user set to ${STEAM_USER}"
|
||
fi
|
||
|
||
## download and install steamcmd
|
||
cd /tmp
|
||
mkdir -p /mnt/server/steamcmd
|
||
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
|
||
mkdir -p /mnt/server/steamapps # Fix steamcmd disk write error when this folder is missing
|
||
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 +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} +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
|
||
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
|
||
container: 'ghcr.io/parkervcp/installers:debian'
|
||
entrypoint: bash
|
||
variables:
|
||
-
|
||
name: 'Additional Arguments'
|
||
description: 'Add additional startup parameters to the server.'
|
||
env_variable: ADDITIONAL_ARGS
|
||
default_value: ''
|
||
user_viewable: true
|
||
user_editable: true
|
||
rules:
|
||
- nullable
|
||
- string
|
||
sort: 14
|
||
-
|
||
name: 'App ID'
|
||
description: ''
|
||
env_variable: SRCDS_APPID
|
||
default_value: 258550
|
||
user_viewable: false
|
||
user_editable: false
|
||
rules:
|
||
- required
|
||
- string
|
||
- 'in:258550'
|
||
sort: 18
|
||
-
|
||
name: 'App Port'
|
||
description: 'Port for the Rust+ App. -1 to disable.'
|
||
env_variable: APP_PORT
|
||
default_value: 28082
|
||
user_viewable: true
|
||
user_editable: false
|
||
rules:
|
||
- required
|
||
- integer
|
||
sort: 15
|
||
-
|
||
name: 'Custom Map URL'
|
||
description: |-
|
||
Overwrites the map with the one from the direct download URL. Invalid URLs will cause the server to
|
||
crash.
|
||
env_variable: MAP_URL
|
||
default_value: ''
|
||
user_viewable: true
|
||
user_editable: true
|
||
rules:
|
||
- nullable
|
||
- url
|
||
sort: 17
|
||
-
|
||
name: Description
|
||
description: 'The description under your server title. Commonly used for rules & info. Use \n for newlines.'
|
||
env_variable: DESCRIPTION
|
||
default_value: 'Powered by Panel'
|
||
user_viewable: true
|
||
user_editable: true
|
||
rules:
|
||
- required
|
||
- string
|
||
sort: 4
|
||
-
|
||
name: Level
|
||
description: 'The world file for Rust to use.'
|
||
env_variable: LEVEL
|
||
default_value: 'Procedural Map'
|
||
user_viewable: true
|
||
user_editable: true
|
||
rules:
|
||
- required
|
||
- string
|
||
- 'max:20'
|
||
sort: 3
|
||
-
|
||
name: 'Max Players'
|
||
description: 'The maximum amount of players allowed in the server at once.'
|
||
env_variable: MAX_PLAYERS
|
||
default_value: 40
|
||
user_viewable: true
|
||
user_editable: true
|
||
rules:
|
||
- required
|
||
- integer
|
||
sort: 8
|
||
-
|
||
name: 'Modding Framework'
|
||
description: "The modding framework to be used: carbon, oxide, vanilla.\r\nDefaults to \"vanilla\" for a non-modded server installation."
|
||
env_variable: FRAMEWORK
|
||
default_value: vanilla
|
||
user_viewable: true
|
||
user_editable: true
|
||
rules:
|
||
- required
|
||
- 'in:vanilla,oxide,carbon'
|
||
sort: 2
|
||
-
|
||
name: 'Query Port'
|
||
description: "Server Query Port. Can't be the same as Game's primary port."
|
||
env_variable: QUERY_PORT
|
||
default_value: 27017
|
||
user_viewable: true
|
||
user_editable: false
|
||
rules:
|
||
- required
|
||
- integer
|
||
sort: 10
|
||
-
|
||
name: 'RCON Password'
|
||
description: 'RCON access password.'
|
||
env_variable: RCON_PASS
|
||
default_value: ''
|
||
user_viewable: true
|
||
user_editable: true
|
||
rules:
|
||
- required
|
||
- 'regex:/^[\w.-]*$/'
|
||
- 'max:64'
|
||
sort: 12
|
||
-
|
||
name: 'RCON Port'
|
||
description: 'Port for RCON connections.'
|
||
env_variable: RCON_PORT
|
||
default_value: 28016
|
||
user_viewable: true
|
||
user_editable: false
|
||
rules:
|
||
- required
|
||
- integer
|
||
sort: 11
|
||
-
|
||
name: 'Save Interval'
|
||
description: 'Sets the server’s auto-save interval in seconds.'
|
||
env_variable: SAVEINTERVAL
|
||
default_value: 60
|
||
user_viewable: true
|
||
user_editable: true
|
||
rules:
|
||
- required
|
||
- integer
|
||
sort: 13
|
||
-
|
||
name: 'Server Image'
|
||
description: 'The header image for the top of your server listing.'
|
||
env_variable: SERVER_IMG
|
||
default_value: ''
|
||
user_viewable: true
|
||
user_editable: true
|
||
rules:
|
||
- nullable
|
||
- url
|
||
sort: 9
|
||
-
|
||
name: 'Server Logo'
|
||
description: 'The circular server logo for the Rust+ app.'
|
||
env_variable: SERVER_LOGO
|
||
default_value: ''
|
||
user_viewable: true
|
||
user_editable: true
|
||
rules:
|
||
- nullable
|
||
- url
|
||
sort: 16
|
||
-
|
||
name: 'Server Name'
|
||
description: 'The name of your server in the public server list.'
|
||
env_variable: SERVER_HOSTNAME
|
||
default_value: 'A Rust Server'
|
||
user_viewable: true
|
||
user_editable: true
|
||
rules:
|
||
- required
|
||
- string
|
||
- 'max:60'
|
||
sort: 1
|
||
-
|
||
name: URL
|
||
description: 'The URL for your server. This is what comes up when clicking the "Visit Website" button.'
|
||
env_variable: SERVER_URL
|
||
default_value: 'http://example.com'
|
||
user_viewable: true
|
||
user_editable: true
|
||
rules:
|
||
- nullable
|
||
- url
|
||
sort: 5
|
||
-
|
||
name: 'World Seed'
|
||
description: 'The seed for a procedural map.'
|
||
env_variable: WORLD_SEED
|
||
default_value: ''
|
||
user_viewable: true
|
||
user_editable: true
|
||
rules:
|
||
- nullable
|
||
- string
|
||
sort: 7
|
||
-
|
||
name: 'World Size'
|
||
description: 'The world size for a procedural map.'
|
||
env_variable: WORLD_SIZE
|
||
default_value: 3000
|
||
user_viewable: true
|
||
user_editable: true
|
||
rules:
|
||
- required
|
||
- integer
|
||
sort: 6
|