forked from pelican-eggs/eggs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
egg-longvinter.json
164 lines (164 loc) · 10.7 KB
/
egg-longvinter.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2023-11-13T18:49:35+01:00",
"name": "Longvinter",
"author": "tueye@tuworld.de",
"description": "Longvinter is a multiplayer, third-person sandbox game that implements Crafting, Farming, Building, Trading, and PVP.",
"features": [
"steam_disk_space"
],
"docker_images": {
"ghcr.io\/parkervcp\/yolks:debian": "ghcr.io\/parkervcp\/yolks:debian"
},
"file_denylist": [],
"startup": "\/home\/container\/longvinter-linux-server\/Longvinter\/Binaries\/Linux\/LongvinterServer-Linux-Shipping Longvinter -Port={{SERVER_PORT}} -QueryPort={{QUERY_PORT}}",
"config": {
"files": "{\r\n \"longvinter-linux-server\/Longvinter\/Saved\/Config\/LinuxServer\/Game.ini\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"ServerName\": \"ServerName={{server.build.env.SERVER_NAME}}\",\r\n \"ServerTag\": \"ServerTag={{server.build.env.SERVER_TAG}}\",\r\n \"MaxPlayers\": \"MaxPlayers={{server.build.env.MAX_PLAYERS}}\",\r\n \"ServerMOTD\": \"ServerMOTD={{server.build.env.SERVER_MOTD}}\",\r\n \"Password\": \"Password={{server.build.env.SERVER_PASSWORD}}\",\r\n \"CommunityWebsite\": \"CommunityWebsite={{server.build.env.COMMUNITY_WEBSITE}}\",\r\n \"AdminSteamID\": \"AdminSteamID={{server.build.env.ADMIN_ID}}\",\r\n \"PVP\": \"PVP={{server.build.env.ENABLE_PVP}}\",\r\n \"TentDecay\": \"TentDecay={{server.build.env.ENABLE_TENTDECAY}}\",\r\n \"MaxTents\": \"MaxTents={{server.build.env.MAX_TENTS}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"CreateSession: Successfully created session\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n\r\n# File: Pterodactyl Longvinter Egg - egg-longvinter.json\r\n# Authors: TuEye\r\n# Date: 2022\/05\/15\r\n# License: MIT License\r\n\r\n\r\n## Install Git LFS\r\ncurl -s https:\/\/packagecloud.io\/install\/repositories\/github\/git-lfs\/script.deb.sh | bash\r\napt -y install git-lfs\r\n\r\nif [[ \"${STEAM_USER}\" == \"\" ]] || [[ \"${STEAM_PASS}\" == \"\" ]]; 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\nmkdir -p \/mnt\/server\/steamapps # Fix steamcmd disk write error when this folder is missing\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 +force_install_dir \/mnt\/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ \"${WINDOWS_INSTALL}\" == \"1\" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} $( [[ -z ${SRCDS_BETAID} ]] || printf %s \"-beta ${SRCDS_BETAID}\" ) $( [[ -z ${SRCDS_BETAPASS} ]] || printf %s \"-betapassword ${SRCDS_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit\r\n\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p \/mnt\/server\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so \/mnt\/server\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so \/mnt\/server\/.steam\/sdk64\/steamclient.so\r\n\r\n## Longvinter setup\r\n# If not using auto update and gamedir exist, remove it\r\nif [ ! \"${AUTO_UPDATE}\" ] && [ -d \"$HOME\/longvinter-linux-server\" ]; then\r\n echo -e \"\\nDelete game dir\\n\"\r\n rm -r $HOME\/longvinter-linux-server\r\nfi\r\n\r\n# Clone Longvinter Dedicated Server repo or do auto update if activated\r\ncd $HOME\r\nif [ ! -d \"$HOME\/longvinter-linux-server\" ]; then\r\n git clone \"https:\/\/github.com\/Uuvana-Studios\/longvinter-linux-server.git\"\r\nelif [ \"${AUTO_UPDATE}\" ]; then\r\n echo -e \"\\nUpdating gamefiles\\n\"\r\n cd $HOME\/longvinter-linux-server\r\n git config pull.rebase false\r\n git restore .\r\n git stash\r\n git pull \"https:\/\/github.com\/Uuvana-Studios\/longvinter-linux-server.git\" main\r\nfi\r\nchmod -R ugo+rwx $HOME\/longvinter-linux-server\/\r\n\r\n\r\n# Create base config if not exist\r\nif [ ! -f $HOME\/longvinter-linux-server\/Longvinter\/Saved\/Config\/LinuxServer\/Game.ini ]; then\r\n echo -e \"\\nCreating game config\\n\"\r\n cp $HOME\/longvinter-linux-server\/Longvinter\/Saved\/Config\/LinuxServer\/Game.ini.default $HOME\/longvinter-linux-server\/Longvinter\/Saved\/Config\/LinuxServer\/Game.ini\r\n if ! grep -q \"ServerTag=\" \"$HOME\/longvinter-linux-server\/Longvinter\/Saved\/Config\/LinuxServer\/Game.ini\"; then\r\n sed -i '\/^ServerName=.*\/a ServerTag=Default' $HOME\/longvinter-linux-server\/Longvinter\/Saved\/Config\/LinuxServer\/Game.ini\r\n fi\r\nfi\r\n\r\necho -e \"\\nLongvinter Dedicated Server successfully installed!\\n\"",
"container": "ghcr.io\/parkervcp\/installers:debian",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Server Name",
"description": "Name of the server, appears in Game browser.",
"env_variable": "SERVER_NAME",
"default_value": "Pterodactyl Longvinter Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:64",
"field_type": "text"
},
{
"name": "Server Tag",
"description": "It's the tag that allows for easier search of the server. Please don't use the word OFFICIAL on it. \r\nAnd only place one tag.",
"env_variable": "SERVER_TAG",
"default_value": "Pterodactyl",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20",
"field_type": "text"
},
{
"name": "Max Players",
"description": "Maximum allowed players that can connect at any given time.",
"env_variable": "MAX_PLAYERS",
"default_value": "32",
"user_viewable": true,
"user_editable": true,
"rules": "required|integer|min:1",
"field_type": "text"
},
{
"name": "Server MOTD",
"description": "Server message that is on a signs around the island.",
"env_variable": "SERVER_MOTD",
"default_value": "Welcome to Pterodactyl Island!",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:64",
"field_type": "text"
},
{
"name": "Server Password",
"description": "Add you password here. Use only number and letters. If left empty there is no password on the server.",
"env_variable": "SERVER_PASSWORD",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|alpha_num|max:20",
"field_type": "text"
},
{
"name": "Community Website",
"description": "Allows you to promote a website on a same place where the server message is shown. This link can be opened in-game.",
"env_variable": "COMMUNITY_WEBSITE",
"default_value": "pterodactyl.io",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string|max:64",
"field_type": "text"
},
{
"name": "Admin EOS Account ID",
"description": "Here you can add all the admins that you want to have in the server. If you want to add multiple separate the ID's with single space.\r\nThe ID is found in-game under Options > General.",
"env_variable": "ADMIN_ID",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|regex:\/^([a-z0-9]{32} ?)*$\/",
"field_type": "text"
},
{
"name": "Enable PVP",
"description": "Here you write true or false if you want to enable\/disable Player versus Player fights.",
"env_variable": "ENABLE_PVP",
"default_value": "true",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:true,false",
"field_type": "text"
},
{
"name": "Tent Decay",
"description": "Here you write true or false if you want to enable\/disable tent decay to make sure there isn't an abundant number of abandoned tents in the server.",
"env_variable": "ENABLE_TENTDECAY",
"default_value": "true",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:true,false",
"field_type": "text"
},
{
"name": "Max Tents",
"description": "Maximum allowed of tents that players that can place in the server",
"env_variable": "MAX_TENTS",
"default_value": "2",
"user_viewable": true,
"user_editable": true,
"rules": "required|integer|min:1",
"field_type": "text"
},
{
"name": "Auto Update",
"description": "Updates gamefiles when reinstalling. Otherwise the server is freshly installed and you will loose your savegames.",
"env_variable": "AUTO_UPDATE",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "required|boolean",
"field_type": "text"
},
{
"name": "Query Port",
"description": "Query port used by steam",
"env_variable": "QUERY_PORT",
"default_value": "27015",
"user_viewable": true,
"user_editable": false,
"rules": "required|integer|between:1024,65536",
"field_type": "text"
},
{
"name": "App ID",
"description": "",
"env_variable": "SRCDS_APPID",
"default_value": "1007",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|in:1007",
"field_type": "text"
}
]
}