From 052304f4501a754d3ce282c4b66bce797e458c36 Mon Sep 17 00:00:00 2001 From: Daniel Ceregatti Date: Fri, 26 May 2023 22:59:36 -0700 Subject: [PATCH] Lots of layout changes. Add placeholders for future functions. Add buttons for install, update, update mods, etc. Add bootstrap icons CDN. Remove old CSS in favor of Bootstrap classes. Add favico. Update docs. --- README.md | 6 +- web/root/favicon.png | Bin 0 -> 82691 bytes web/root/index.css | 26 +++------ web/root/index.html | 3 +- web/root/index.js | 127 +++++++++++++++++++++++++++---------------- web/web.js | 78 +++++++++++++++++++++++++- 6 files changed, 170 insertions(+), 70 deletions(-) create mode 100644 web/root/favicon.png diff --git a/README.md b/README.md index 619ff70..e67f03b 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,10 @@ This volume can get quite large. It will require at least 2G of disk space for t Some map mods are as large as 10G. Make sure you have that much disk space in the location where docker stores its volumes, usually `/var/lib/docker/volumes`. +## Goals + +* Provide a turnkey DayZ server with mod support. + ## Configure and Build Ensure [Docker](https://docs.docker.com/engine/install/) and [Docker compose](https://docs.docker.com/compose/install/) @@ -152,7 +156,7 @@ docker compose exec main dayzserver force When the server exits cleanly, i.e. exit code 0, the container also stops. Otherwise, a crash is presumed, and the server will be restarted. NOTE: As DayZ Experimental 1.19, the server is known to not exit upon SIGINT when mods are installed. This makes force stopping the server -required. This is not a clean exit, and will cause the server to restart. Manually take the server [down](#down) to stop the container. +required. This is not a clean exit, and will cause the server to restart. Manually take the server [down](#stop) to stop the container. ### Workshop - Add / List / Remove / Update mods diff --git a/web/root/favicon.png b/web/root/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..bb3ae7451710d17d50bd22362c7d46b23575d4b5 GIT binary patch literal 82691 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ÐI?*vxj&(s)w#Yj%wTC*i2)VUnHZ` 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 DayZ Docker Server + - + diff --git a/web/root/index.js b/web/root/index.js index 3c07c04..c0b279d 100644 --- a/web/root/index.js +++ b/web/root/index.js @@ -1,31 +1,48 @@ const template = ` -
-
-
-

DayZ Docker Server

+
+
+
+

DayZ Docker Server

+
+
+
+ + + +
+
+ +
-
+
-
-
- Server files installed: {{ installed }} +
+
+ Server files installed: + +
-
- Version: {{ version }} +
+ Version: {{ version }}
{{ fetchError }}
-
-
+
+

Mods

@@ -39,7 +56,7 @@ const template = `
{{ mod.id }} @@ -51,7 +68,40 @@ const template = `
-
+
+
+

{{ modInfo.name }}

+
+
+
+ ID: {{ modInfo.id }} +
+
+ Size: {{ modInfo.size.toLocaleString("en-US") }} +
+
+ Custom XML files: + +
+
+
+
+ +
+
+
+
+
+
@@ -65,9 +115,9 @@ const template = ` @@ -81,37 +131,6 @@ const template = `
Steam Link - + {{ result.title }}
-
-
-

{{ modInfo.name }} mod info:

-
-
-
-
- ID: {{ modInfo.id }} -
-
- Size: {{ modInfo.size.toLocaleString("en-US") }} -
-
- Custom XML files: - -
-
-
- -
-
-
` @@ -126,6 +145,7 @@ export default { mods: [], modInfo: "", searchResults: [], + steamURL: 'https://steamcommunity.com/sharedfiles/filedetails/?id=', version: "Unknown", XMLFile: "", XMLInfo: "", @@ -196,6 +216,17 @@ export default { this.fetchError = error.message }) }, + removeMod(modId) { + fetch('/remove/' + modId) + .then(response => response.text()) + .then(response => { + console.log(response) + }) + .catch((error) => { + console.error(error) + this.fetchError = error.message + }) + }, BKMG(val) { const units = ['bytes', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'] let l = 0, n = parseInt(val, 10) || 0 diff --git a/web/web.js b/web/web.js index e54acd7..63d4e1a 100644 --- a/web/web.js +++ b/web/web.js @@ -1,3 +1,11 @@ +/* + A DayZ Linux server provisioning system. + + This is the web UI for provisioning a DayZ server running under Linux. + It manages the main container that installs and maintains the base DayZ server files + along with all mod base files. The goal being to keep all of these centralized and consistent, + but to also make them available for the creation of server containers. + */ import express from 'express' import path from 'path' import fs from 'fs' @@ -45,6 +53,49 @@ const configFiles = [ 'types.xml', ] +// From https://helpthedeadreturn.wordpress.com/2019/07/17/dayz-sa-mission-file +const allConfigFiles = { + "db": [ // global server config and core loot economy files + "events.xml", // dynamic events + "globals.xml", // global settings + "messages.xml", // server broadcast messages and shutdown + "types.xml" // loot table + ], + "env": [ // coordinates, static and dynamic spawns for each entity + "cattle_territories.xml", + "domestic_animals_territories.xml", + "hare_territories.xml", + "hen_territories.xml", + "pig_territories.xml", + "red_deer_territories.xml", + "roe_deer_territories.xml", + "sheep_goat_territories.xml", + "wild_boar_territories.xml", + "wolf_territories.xml", + "zombie_territories.xml" + ], + "root": [ + "cfgeconomycore.xml", // loot economy core settings and extensions + "cfgeffectarea.json", // static contaminated area coordinates and other properties + "cfgenvironment.xml", // includes env\* files and parameters + "cfgeventgroups.xml", // definitions of groups of objects that spawn together in a dynamic event + "cfgeventspawns.xml", // coordinates where events may occur + "cfggameplay.json", // gameplay configuration settings. + "cfgIgnoreList.xml", // list of items that won’t be loaded from the storage + "cfglimitsdefinition.xml", // list of valid categories, tags, usageflags and valueflags + "cfglimitsdefinitionuser.xml", // shortcut groups of usageflags and valueflags + "cfgplayerspawnpoints.xml", // new character spawn points + "cfgrandompresets.xml", // collection of groups of items + "cfgspawnabletypes.xml", // loot categorization (ie hoarder) as well as set of items that spawn as cargo or as attachment on weapons, vehicles or infected. + "cfgundergroundtriggers.json", // used for triggering light and sounds in the Livonia bunker, not used for Chernarus + "cfgweather.xml", // weather configuration + "init.c", // mission startup file (PC only) + "map*.xml", + "mapgroupproto.xml", // structures, tags, maxloot and lootpoints + "mapgrouppos.xml" // all valid lootpoints + ] +} + const config = { installFile: serverFiles + "/DayZServer", modDir: modDir + "/" + client_appid, @@ -52,6 +103,13 @@ const config = { steamAPIKey: process.env["STEAMAPIKEY"] } +const getVersion = (installed) => { + if(installed) { + return "1.20.bogus" + } + return "" +} + const getDirSize = (dirPath) => { let size = 0 const files = fs.readdirSync(dirPath) @@ -144,6 +202,23 @@ app.get(('/install/:modId'), (req, res) => { res.send(modId + " was installed") }) +// Remove a mod +app.get(('/remove/:modId'), (req, res) => { + const modId = req.params["modId"] + // Shell out to steamcmd, monitor the process, and display the output as it runs + res.send(modId + " was removed") +}) + +// Update base files +app.get('/updatebase', (req, res) => { + res.send("Base files were updates") +}) + +// Update mods +app.get('/updatemods', (req, res) => { + res.send("Mod files were updates") +}) + /* Get the status of things: If the base files are installed, the version of the server, a list of mods, etc. @@ -152,9 +227,10 @@ app.get('/status', (req, res) => { // FIXME Async/await this stuff... const installed = fs.existsSync(config.installFile) const mods = getMods() + const version = getVersion(installed) const ret = { "installed": installed, - "version": "1.20.bogus", + "version": version, "mods": mods } res.send(ret)