forked from pelican-eggs/games-steamcmd
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathegg-day-z.json
387 lines (387 loc) · 23.4 KB
/
egg-day-z.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
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PANEL",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2024-06-13T12:52:57+07:00",
"name": "DayZ",
"author": "[email protected]",
"uuid": "ef7d4603-175b-4c7c-a827-516a6c19c101",
"description": "How long can you survive a post-apocalyptic world? A land overrun with an infected \"zombie\" population, where you compete with other survivors for limited resources. Will you team up with strangers and stay strong together? Or play as a lone wolf to avoid betrayal? This is DayZ \u2013 this is your story.",
"features": [
"steam_disk_space"
],
"docker_images": {
"ghcr.io\/parkervcp\/games:dayz": "ghcr.io\/parkervcp\/games:dayz"
},
"file_denylist": [],
"startup": ".\/{{SERVER_BINARY}} -port={{SERVER_PORT}} -profiles=profiles -bepath=.\/ -config=serverDZ.cfg -mod={{CLIENT_MODS}} -serverMod={{SERVERMODS}} {{STARTUP_PARAMS}}",
"config": {
"files": "{\r\n \"serverDZ.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"hostname =\": \"hostname = \\\"{{server.environment.SERVER_HOSTNAME}}\\\";\",\r\n \"password =\": \"password = \\\"{{server.environment.SERVER_PASSWORD}}\\\";\",\r\n \"passwordAdmin =\": \"passwordAdmin = \\\"{{server.environment.ADMIN_PASSWORD}}\\\";\",\r\n \"maxPlayers\": \"maxPlayers = {{server.environment.MAX_PLAYERS}};\",\r\n \"verifySignatures\": \"verifySignatures = {{server.environment.VERIFY_SIGNATURES}};\",\r\n \"forceSameBuild\": \"forceSameBuild = {{server.environment.ENFORCE_BUILD}};\",\r\n \"disableVoN\": \"disableVoN = {{server.environment.DISABLE_VON}};\",\r\n \"vonCodecQuality\": \"vonCodecQuality = {{server.environment.VON_QUALITY}};\",\r\n \"disable3rdPerson\": \"disable3rdPerson = {{server.environment.DISABLE_THIRD}};\",\r\n \"disableCrosshair\": \"disableCrosshair = {{server.environment.DISABLE_CROSSHAIR}};\",\r\n \"disablePersonalLight\": \"disablePersonalLight = {{server.environment.DISABLE_PERSONAL_LIGHT}};\",\r\n \"lightingConfig\": \"lightingConfig = {{server.environment.LIGHTING_CONFIG}};\",\r\n \"serverTimeAcceleration\": \"serverTimeAcceleration = {{server.environment.TIME_MULT}};\",\r\n \"serverNightTimeAcceleration\": \"serverNightTimeAcceleration = {{server.environment.NIGHT_MULT}};\",\r\n \"serverTimePersistent\": \"serverTimePersistent = {{server.environment.PERSISTENT_TIME}};\",\r\n \"steamQueryPort\": \"steamQueryPort = {{server.environment.QUERY_PORT}};\"\r\n }\r\n },\r\n \"battleye\/beserver_x64.cfg\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"RConPort\": \"RConPort {{server.environment.RCON_PORT}}\",\r\n \"RConPassword\": \"RConPassword {{server.environment.RCON_PASSWORD}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \"Mission read.\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/bash\r\n\r\n## File: Pelican DayZ Egg - egg-day-z.json\r\n## Author: David Wolfe (Red-Thirten)\r\n## Date: 2024\/07\/04\r\n## License: MIT License\r\n## Image to install with is 'ghcr.io\/parkervcp\/installers:debian'\r\n\r\nexport HOME=\/mnt\/server\r\nCONFIG_URL=\"https:\/\/raw.githubusercontent.com\/pelican-eggs\/games-steamcmd\/main\/dayz\/config\/serverDZ.cfg\"\r\nMISSIONS_GITHUB_PACKAGE=\"BohemiaInteractive\/DayZ-Central-Economy\"\r\n\r\n## Download and install SteamCMD\r\ncd \/tmp\r\nmkdir -p $HOME\/steamcmd $HOME\/steamapps\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 $HOME\/steamcmd\r\ncd $HOME\/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\nif [ \"$SKIP_INSTALL\" -eq 1 ]; then\r\n # This is for the minority of hosts who want to install this server with Steam Guard enabled.\r\n # Please read the README for instructions on how to do this properly!\r\n echo -e '\"Skip Game Server Install\" variable is set to enabled!'\r\n echo -e \"\\tOnly SteamCMD will be installed...\"\r\n .\/steamcmd.sh +quit\r\nelse\r\n # Install\/Verify game server using SteamCMD\r\n .\/steamcmd.sh +force_install_dir $HOME \"+login \\\"${STEAM_USER}\\\" \\\"${STEAM_PASS}\\\"\" +app_update ${STEAMCMD_APPID} $( [[ -z ${STEAMCMD_BETAID} ]] || printf %s \"-beta ${STEAMCMD_BETAID}\" ) $( [[ -z ${STEAMCMD_BETAPASS} ]] || printf %s \"-betapassword ${STEAMCMD_BETAPASS}\" ) ${INSTALL_FLAGS} validate +quit\r\nfi\r\necho -e \"\"\r\n\r\n# Set up 32 and 64 bit libraries\r\nmkdir -p $HOME\/.steam\/sdk{32,64}\r\ncp -v linux32\/steamclient.so $HOME\/.steam\/sdk32\/steamclient.so\r\ncp -v linux64\/steamclient.so $HOME\/.steam\/sdk64\/steamclient.so\r\n\r\n## DayZ Setup\r\ncd $HOME\r\n\r\n# Check for successful server binary installation\r\nif [ ! -f DayZServer ] && [ \"$SKIP_INSTALL\" -ne 1 ]; then\r\n echo -e \"\\n\\n[ERROR] SteamCMD failed to install the DayZ Dedicated Server!\"\r\n echo -e \"\\tTry reinstalling the server again.\\n\"\r\n exit 1\r\nfi\r\n\r\n# Download default serverDZ.cfg if it is missing or empty (occurs when Steam account *owns* the DayZ game)\r\nif [ ! -f serverDZ.cfg ] || [ ! -s serverDZ.cfg ]; then\r\n echo -e \"'serverDZ.cfg' is missing or empty. Downloading default config file...\"\r\n curl -LO ${CONFIG_URL}\r\n if [ ! -f serverDZ.cfg ]; then\r\n echo -e \"\\n\\n[ERROR] Failed to download default server config file!\"\r\n exit 1\r\n fi\r\n chmod 644 serverDZ.cfg\r\nfi\r\n\r\n# Add required 'steamQueryPort' parameter to the end of serverDZ.cfg (if it's missing)\r\nif ! grep -q \"steamQueryPort\" serverDZ.cfg; then\r\n echo -e \"Adding additional required parameters to the end of 'serverDZ.cfg'...\"\r\n cat >> serverDZ.cfg << EOL\r\n\r\n\r\nsteamQueryPort = ${QUERY_PORT};\r\nEOL\r\nfi\r\n\r\n# Download vanilla mission files if they are missing (occurs when Steam account *does not own* the DayZ game)\r\nif { [ ! -d \"mpmissions\" ] || [ -z \"$(ls -A mpmissions 2>\/dev\/null)\" ]; } && [ \"$SKIP_INSTALL\" -ne 1 ]; then\r\n echo -e \"[WARNING] The Steam account used to install this server does not own the DayZ game!\"\r\n echo -e \"\\tVanilla mission files will have to be MANUALLY updated in the future if they update! (See Egg's README for instructions)\"\r\n echo -e \"\\tDownloading and installing vanilla mission files...\"\r\n mkdir -p $HOME\/mpmissions\r\n cd $HOME\/mpmissions\r\n LATEST_JSON=$(curl --silent \"https:\/\/api.github.com\/repos\/${MISSIONS_GITHUB_PACKAGE}\/releases\/latest\")\r\n DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq -r .tarball_url)\r\n curl -Lo mpmissions.tar.gz ${DOWNLOAD_URL}\r\n if [ ! -f mpmissions.tar.gz ]; then\r\n echo -e \"\\n\\n[ERROR] Failed to download vanilla mission files!\"\r\n exit 1\r\n fi\r\n tar -xzvf mpmissions.tar.gz --strip-components=1 --wildcards '*\/dayzOffline.chernarusplus\/*' '*\/dayzOffline.enoch\/*'\r\n rm -f mpmissions.tar.gz\r\nfi\r\n\r\n# Check for BattlEye RCon configuration\r\nmkdir -p $HOME\/battleye\r\ncd $HOME\/battleye\r\nif [ ! -f beserver_x64.cfg ]; then\r\n echo -e \"Creating BattlEye RCon Configuration...\"\r\n cat > beserver_x64.cfg << EOF\r\nRConPort ${RCON_PORT}\r\nRConPassword ${RCON_PASSWORD}\r\nRestrictRCon 0\r\nEOF\r\nfi\r\n\r\necho -e \"\\nDayZ Dedicated Server successfully installed!\\n\"",
"container": "ghcr.io\/parkervcp\/installers:debian",
"entrypoint": "\/bin\/bash"
}
},
"variables": [
{
"name": "[Host] Steam Query Port",
"description": "UDP port for Steam server list features. Helps the server be visible in the client server browser.",
"env_variable": "QUERY_PORT",
"default_value": "27016",
"user_viewable": true,
"user_editable": false,
"rules": "required|integer|between:1024,65536",
"sort": 1,
"field_type": "text"
},
{
"name": "[Host] Steam Username",
"description": "Used for installation and updates. Account does not need to own DayZ, but MUST BE a VALID Steam account (anonymous login cannot be used). For security reasons it is recommended that you create a new Steam account just for your dedicated servers. *This info is not visible to the server owner.*",
"env_variable": "STEAM_USER",
"default_value": "",
"user_viewable": false,
"user_editable": false,
"rules": "required|string|not_in:anonymous",
"sort": 2,
"field_type": "text"
},
{
"name": "[Host] Steam Password",
"description": "Used for installation and updates. Steam Guard MUST be completely TURNED OFF for the server and mods to download efficiently. *This info is not visible to the server owner, BUT IS stored in PLAIN TEXT. It is NOT advised to use a personal account; best to use a dummy account.*",
"env_variable": "STEAM_PASS",
"default_value": "",
"user_viewable": false,
"user_editable": false,
"rules": "required|string",
"sort": 3,
"field_type": "text"
},
{
"name": "[Host] Disable Mod Downloads\/Updates",
"description": "If the Steam account does not own the base DayZ game, Steam Workshop mod downloads\/updates will not work. If so, this setting allows disabling of this feature to avoid errors. (1 ON | 0 OFF)",
"env_variable": "DISABLE_MOD_UPDATES",
"default_value": "0",
"user_viewable": false,
"user_editable": false,
"rules": "boolean",
"sort": 4,
"field_type": "text"
},
{
"name": "[Host] Number of SteamCMD Retry Attempts",
"description": "How many times SteamCMD should retry downloading a server or mod after a recoverable error. (ie. A particularly large mod download times out)",
"env_variable": "STEAMCMD_ATTEMPTS",
"default_value": "3",
"user_viewable": false,
"user_editable": false,
"rules": "required|integer",
"sort": 5,
"field_type": "text"
},
{
"name": "[Host] Skip Game Server Install",
"description": "Skips the installation of game server files via SteamCMD during the installation script. Should only be enabled if you are trying to install the server with a Steam account that has Steam Guard enabled (not recommended).",
"env_variable": "SKIP_INSTALL",
"default_value": "0",
"user_viewable": false,
"user_editable": false,
"rules": "boolean",
"sort": 6,
"field_type": "text"
},
{
"name": "Automatic Updates",
"description": "Quickly checks for any server or mod updates on startup, and updates if necessary.",
"env_variable": "UPDATE_SERVER",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"sort": 7,
"field_type": "text"
},
{
"name": "Server Name",
"description": "Name of the server that will appear in the server list.",
"env_variable": "SERVER_HOSTNAME",
"default_value": "DayZ Server",
"user_viewable": true,
"user_editable": true,
"rules": "required|string",
"sort": 8,
"field_type": "text"
},
{
"name": "Max Players",
"description": "Maximum number of players allowed to join the server.",
"env_variable": "MAX_PLAYERS",
"default_value": "64",
"user_viewable": true,
"user_editable": true,
"rules": "required|integer|gt:0",
"sort": 9,
"field_type": "text"
},
{
"name": "Server Password",
"description": "Password required to join the server. Leave blank to have no password.",
"env_variable": "SERVER_PASSWORD",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"sort": 10,
"field_type": "text"
},
{
"name": "Admin Password",
"description": "Password to log in as an admin on the server.",
"env_variable": "ADMIN_PASSWORD",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"sort": 11,
"field_type": "text"
},
{
"name": "RCON Port",
"description": "Used by Tools or Battlemetrics to manage servers from outside. RCON Port is recommended to be at Game Port +3. For example, If the Game Port is 2302, then RCON Port should be 2305.",
"env_variable": "RCON_PORT",
"default_value": "2305",
"user_viewable": true,
"user_editable": false,
"rules": "required|integer|between:1024,65536",
"sort": 12,
"field_type": "text"
},
{
"name": "RCON Password",
"description": "This password is used to authenticate third parties to access server controls via RCON.",
"env_variable": "RCON_PASSWORD",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20",
"sort": 13,
"field_type": "text"
},
{
"name": "Modlist File (Exported from DayZ Launcher)",
"description": "Filename for an exported modlist. This file will be parsed for mod installation and loading. Upload your HTML file to the root directory (eg. \/home\/container\/modlist.html). Leave blank to disable loading mods from a modlist.",
"env_variable": "MOD_FILE",
"default_value": "modlist.html",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"sort": 14,
"field_type": "text"
},
{
"name": "Additional Mods",
"description": "A semicolon-separated list of mod folders to load from the root directory. Useful for loading manually uploaded mods. Any mods in this list that are in \"@workshopID\" form will also be included in Automatic Updates (if enabled). NO capital letters, spaces, or folders starting with a number! (ex. myMod;@123456789;@987654321;etc;)",
"env_variable": "MODIFICATIONS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"sort": 15,
"field_type": "text"
},
{
"name": "Verify Signatures",
"description": "Ensures all clients have exactly the same version of mods or addons that the server is running. Otherwise, they will be kicked upon connection. (2 ON | 0 OFF)",
"env_variable": "VERIFY_SIGNATURES",
"default_value": "2",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|in:0,2",
"sort": 16,
"field_type": "text"
},
{
"name": "Enforce Game Version",
"description": "When ON, the server will allow the connection only to clients with same the version as the server.",
"env_variable": "ENFORCE_BUILD",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"sort": 17,
"field_type": "text"
},
{
"name": "Disable VoN",
"description": "When ON, will disable Voice over Network (voice chat) in the server.",
"env_variable": "DISABLE_VON",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"sort": 18,
"field_type": "text"
},
{
"name": "VoN Quality",
"description": "Voice over Network codec quality; the higher the better. (Values 0-30)",
"env_variable": "VON_QUALITY",
"default_value": "20",
"user_viewable": true,
"user_editable": true,
"rules": "required|integer|between:0,30",
"sort": 19,
"field_type": "text"
},
{
"name": "Disable Third Person",
"description": "When ON, will disable third person view while on the server.",
"env_variable": "DISABLE_THIRD",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"sort": 20,
"field_type": "text"
},
{
"name": "Disable Crosshair",
"description": "When ON, will disable the crosshair from being visible while on the server.",
"env_variable": "DISABLE_CROSSHAIR",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"sort": 21,
"field_type": "text"
},
{
"name": "Disable Personal Light",
"description": "When ON, will disable a personal light positioned above all clients during the night time while on the server.",
"env_variable": "DISABLE_PERSONAL_LIGHT",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"sort": 22,
"field_type": "text"
},
{
"name": "Darker Nights",
"description": "When ON, will make nights darker (more accurate nights, but hard to see without a light).",
"env_variable": "LIGHTING_CONFIG",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"sort": 23,
"field_type": "text"
},
{
"name": "Persistent Time",
"description": "The actual server time is saved to storage, so when ON, the next server start will use the saved time value.",
"env_variable": "PERSISTENT_TIME",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"sort": 24,
"field_type": "text"
},
{
"name": "Time Multiplier",
"description": "This is a time multiplier for in-game time (ie. 12 would move a full 24-hour day in-game 12 times faster, making it last 2 hours \"in real life\"). (Values: 0-24)",
"env_variable": "TIME_MULT",
"default_value": "12",
"user_viewable": true,
"user_editable": true,
"rules": "required|integer|between:0,24",
"sort": 25,
"field_type": "text"
},
{
"name": "Night Multiplier",
"description": "This is an additional multiplier to either speed up or slow down nights in-game. It is multiplied with the \"Time Multiplier\" variable to get it's final multiplier for night time speed. (Values: 0.1-64.0)",
"env_variable": "NIGHT_MULT",
"default_value": "1",
"user_viewable": true,
"user_editable": true,
"rules": "required|numeric|between:0.1,64",
"sort": 26,
"field_type": "text"
},
{
"name": "[Repair] Make Mod Files Lowercase",
"description": "Every mod that is set to be loaded will have its folder and files changed to lowercase (to prevent errors). It is recommended to enable this for one server boot after copying a mod from a Windows machine to the server, or if mods seem to not be loading.",
"env_variable": "MODS_LOWERCASE",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"sort": 27,
"field_type": "text"
},
{
"name": "[Repair] Validate Server Files",
"description": "Validates all server files when Automatic Updates is ON. Note: This will significantly increase server startup times, so it is recommended to only enable this when needed.",
"env_variable": "VALIDATE_SERVER",
"default_value": "0",
"user_viewable": true,
"user_editable": true,
"rules": "boolean",
"sort": 28,
"field_type": "text"
},
{
"name": "[Advanced] Server-Side Only Mods",
"description": "Mod folders to be used with the \"-serverMods\" startup option. They only run server-side and are not required by clients if \"Verify Signatures\" is ON. Any mods in this list that are in \"@workshopID\" form will also be included in Automatic Updates (if enabled). NO capital letters, spaces, or folders starting with a number! Each folder must be followed with a semicolon (ex. @123456789;@987654321;etc;)",
"env_variable": "SERVERMODS",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"sort": 29,
"field_type": "text"
},
{
"name": "[Advanced] Extra Startup Parameters",
"description": "See https:\/\/community.bistudio.com\/wiki\/DayZ:Server_Configuration#Launch_Parameters for more info on valid flags for this field.",
"env_variable": "STARTUP_PARAMS",
"default_value": "-dologs -adminlog -netlog -freezecheck",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"sort": 30,
"field_type": "text"
},
{
"name": "[Advanced] Server Binary",
"description": "Cannot currently be changed. Left in case other branches with different executable names are introduced at a later date.",
"env_variable": "SERVER_BINARY",
"default_value": "DayZServer",
"user_viewable": true,
"user_editable": false,
"rules": "required|string|in:DayZServer",
"sort": 31,
"field_type": "text"
},
{
"name": "[Advanced] DayZ Dedicated Server App ID",
"description": "Used for installation and updates. Rarely needs to be changed. 223350 is for Stable branch and 1042420 is for experimental branch. Changing branches may require deleting all server files and reinstalling.",
"env_variable": "STEAMCMD_APPID",
"default_value": "223350",
"user_viewable": true,
"user_editable": false,
"rules": "required|integer|in:223350,1042420",
"sort": 32,
"field_type": "text"
}
]
}