Commit graph

42 commits

Author SHA1 Message Date
Daniel Ceregatti
569e45c93c Implement much missing stuff:
Login. Still WIP, but works.
Install server files. Once logged in, this works.
Add support for experimental in both web and scripts. WIP.
Continuous streaming text web interface for long-running server processes.
Large refactor of the config file. Use arrays instead of delimited strings.
Large refactor of the express server to support the above.
Add Steam API key to env for when we do mod searches.
Customize the bash shell of the web container should we exec into it.
Ignore the env file.
2024-08-26 09:13:30 -07:00
Daniel Ceregatti
9cf22998d2 Add support for experimental.
Add streaming text modal for steamcmd operations that run over time with output that will do the same. So far this is just as a test, but it works.
Refactor the store to use actions to set variables that are required to be boolean.
Continue staging test components so when it comes time to do things for real, they'll be ready. Working backwards, always.
Implement Steam login. Needs polish.
Figure out styles. Our index.css is still being loaded before the theme, and its overrides only take effect when those don't set anything in the theme beforehand. Still not working.
Consolidate the config between Vue and express.
Monitor config changes in nodemon.
Everything is WIP.
2024-08-09 10:56:41 -07:00
Daniel Ceregatti
53dea0f45d Second working version with vite-express integration.
Replace Bootstrap with Privemue.
Add i18n support. English and Brazilian Portuguese to start.
New UI with Primevue. Use tabbed menu, nice theme, etc..
WIP with Steam login.
2024-07-29 07:54:16 -07:00
Daniel Ceregatti
85e59ae8c6 First working version with vite-express integration.
Refactor the main page to show the Steam login when none is detected. We can't do anything without it at first. Later, we can detect if the server is installed and allow operations. Or not.
Remove server container. This will be created and maintained by the web container going forward.
Use node 18, as vite requires it.
Use a single package.json for everything. This way it can be installed at the root of the container and not show up in the bind mount.
Refactor store to include actions. We can just define them and call them, instead of using fetch directly everywhere. WIP.
Begin to implement some of the backend methods, like the steam login. It works!

Remove the old code.
2024-07-28 10:35:43 -07:00
Daniel Ceregatti
8a87edf798 Refactor docker compose build so a single server image is built for however many servers.
Add horse mod, despite it being known to crash the Linux server. One day...
Fix bashrc getting appended to instead of written to. Oops!
2024-07-26 21:44:21 -07:00
Daniel Ceregatti
24f9ff2508 Merge from main by hand. 2024-07-09 09:10:41 -07:00
Daniel Ceregatti
6fbb9bf2ad Add support for two servers. This is a breaking change from before, as it creates new volumes with 1 and 2 in their names, allowing for 3, 4, ..., n. 2024-05-29 02:45:11 -07:00
Daniel Ceregatti
088d5d3e51 Implement server restarting via messages.xml.
Trim down the container to only what it really needs.
Upgrade containers to bookworm.
Upgrade web's node to 20.
Add bercon to the web container.
Remove rcon from the server container.
Remove motd text from config.
Add roadmap and update docs.
2024-04-19 08:03:18 -07:00
Daniel Ceregatti
93f65760ac Remove version from docker compose, as it seems this is obsolete.
Get status from a different file, as the previous file's stats were changing, and therefore unreliable.
Add Namalsk maps to config.
2024-03-22 23:10:21 -07:00
Daniel Ceregatti
788bac39a4 Add entrypoint.sh so we don't have to wait 10 seconds to down our stack.
Make scripts just run from each container's respective bin directory.
Upgrade to node 18.18.2 and nvm 0.39.5.
Remove unnecessary output.
2023-11-03 16:11:11 -07:00
Daniel Ceregatti
f153f3db18 Use the local user's user id in the container when building and running, otherwise bind mounts don't have the correct ownership.
Correct output from steamcmd to avoid red herrings by creating a directory it expects as well as providing a shared object it also expects.
Update docs.
2023-10-12 18:44:37 -07:00
Daniel Ceregatti
4c3823d9bc Use a .env file to drive states of the stack, i.e. development or not.
Ignore the .env file.
2023-09-11 14:41:27 -07:00
Daniel Ceregatti
887374587d There are no mpmissions in the server container when it starts for the first time. Ensure Chernarus is copied over as a default when this is detected, as the server is expected to start successfully. Presumes a default config where the map hasn't been changed.
Make development work by setting an environment variable.
Set the web container to restart instead of not, should the express server crash.
Copy XML files that are merged when the server  starts only when the mpmissions directory exists.
Refactor XML functions for better naming.
Handle display of lists when no mods are installed.
Add support for adding mpmissions for Deer Isle and mpmissions in general via mod integrations.
Add support for Red Falcon Watercraft XML files. WIP.
Add a deer isle DayZ bicycle spawn file.
2023-09-07 12:08:12 -07:00
Daniel Ceregatti
703ab57bd3 Fix RCON port 2023-07-25 15:04:57 -07:00
Daniel Ceregatti
fd1774cf1c Begin large refactor of Vue to move it into a proper development environment:
No more CNDs. All software is now bundled and served from a proper node-based development server.
Switch to using proper Vue files, so we can have proper IDE integration.
Open new port for the dev server mentioned above.
Split status and mod info requests in the back end.
Bypass CORS while developing.
2023-06-05 11:14:24 -07:00
Daniel Ceregatti
8db515313b Add mod search.
Renamed main container to web.
Added the STEAMAPIKEY environment variable placeholder, as this is necessary when searching for mods.
Refactor locations of scripts and paths.
Rename start scripts to be more consistent with their new locations.
Run the web server under nodemon to prevent manual restarting.
2023-05-25 17:32:58 -07:00
Daniel Ceregatti
f755b6fe6d First version where XML merging is working using the cfgeconomy method!
Split up the XML wrangling between the two containers. This means the web one needs xmlstarlet.
2023-05-20 20:07:47 -07:00
Daniel Ceregatti
ebf961bb73 Split off mpmissions so there's always a pristine version of it in the server container, for when we merge XML.
Forget xmlmerge. Switch to xmlstarlet.
Add the two shared objects required to get a release server running. This is just to get around having to host them/fish them up from elsewhere.
Update docs.
2023-05-18 21:09:01 -07:00
Daniel Ceregatti
2fc31fea37 The server doesn't like read only directories where it finds its files. Removing read-only flags from mounts for now.
Rework directories so there are fewer volumes within volumes.
Keep splitting up the code between the two scripts, removing unused variables, etc..
Add XML file merging integration. WIP.
Fix lack of comma in cfg file that _might_ have been causing issues...
2023-05-18 17:29:27 -07:00
Daniel Ceregatti
64f162001d Continue refactoring file locations in the two containers.
Also refactor variables so they're consistent.
Set container names in PS1.
Update docs.
2023-05-16 09:03:41 -07:00
Daniel Ceregatti
4cb4a4409d Mount each script into /usr/local/bin.
Keep separating out the functionality between the two scripts.
2023-05-15 08:56:51 -07:00
Daniel Ceregatti
71004b4fcc Start turning this project into a provisioning system: The main image will manage the base server files and mod files, then run servers as separate containers with these volumes mounted read-only, so they can be shared across server instances.
Add command line xml merge tool for when that time comes.
Add Red Falcon Heliz mod as the work-in-progress for getting a turnkey system that merges many different XML files that a full server mod installation will require.
Fix finding a mod by index and use that for all mod operations.
Start re-working how mods are added/removed/activated/deactivated. Split the script up into separate files with distinct functionality. WIP.
Add a template system for handling mod XML files.
Add an express web server to be the provisioning container frontend.
Add lots of comments.
Add TL;DR for turnkey release server install.
2023-05-13 20:58:35 -07:00
Daniel Ceregatti
169018665f Start turning this project into a provisioning system: The main image will manage the base server files and mod files, then run servers as separate containers with these volumes mounted read-only, so they can be shared across server instances.
Add command line xml merge tool for when that time comes.
Add Red Falcon Heliz mod as the work-in-progress for getting a turnkey system that merges many different XML files that a full server mod installation will require.
Fix finding a mod by index and use that for all mod operations.
Start re-working how mods are added/removed/activated/deactivated.
Add a template system for handling mod XML files.
Add lots of comments.
2023-05-10 19:35:36 -07:00
Daniel Ceregatti
b3781c2fcd Add debugging comments. 2023-03-30 10:19:05 -07:00
Daniel Ceregatti
28a741ffba Make the container always restart unless explicitly stopped. 2023-02-22 21:21:25 -08:00
Daniel Ceregatti
109a18f22c Add debugging to the compose file. 2022-07-30 17:40:38 -07:00
Daniel Ceregatti
e8d0893569 Add ability to attach a host-based debugger. 2022-07-22 18:11:46 -07:00
Daniel Ceregatti
e3daab9d25 Add host mode support so the server shows up in LAN browsers. Keep ports with comments so the old setting can remain as an option. 2022-07-10 11:24:06 -07:00
Daniel Ceregatti
8ba598b549 Bind mount the server script in the container for now, to dev. 2022-07-09 14:48:15 -07:00
Daniel Ceregatti
c9edc5eb59 Use new RCON port.
Start the server with a command line here so we can dev more rapidly.
2022-07-09 14:23:09 -07:00
Daniel Ceregatti
ee3ee48ff0 Add rcon port. 2022-07-09 11:34:36 -07:00
Daniel Ceregatti
4377404e07 Add rcon port. 2022-07-08 22:39:19 -07:00
Daniel Ceregatti
368ec600f7 Remove all the Battle Eye rcon crap. Let the game manage that.
Remove the default.cfg file as that's just been incorporated into the dayzserver script.
Set some saner defaults in serverDZ.cfg.
Remove the faking of the install.
Integrate steamcmd from Debian.
Updated docs.
2022-03-31 00:34:57 -07:00
Daniel Ceregatti
618488224f Add the ability to fake the DayZ install while developing, as it's very large and takes a lot of time.
Remove actions that will not become part of the set of features.
Update usage output.
2022-03-26 17:36:08 -07:00
Daniel Ceregatti
164d5b41d6 Add more interactive functionality: Login, update, rcon, etc. All WIPs.
Simplify things by consolidating all the bash stuff into dayzserver and removing files where the content has become managed interactively.
Make sure steamcmd has proper permissions in the container.
More updated documentation.
2022-03-26 16:37:39 -07:00
Daniel Ceregatti
d87c5fad0e Create a dedicated means by which we can run interactive prompts to effect tasks such as (all WIP):
Logging into to Steam, accounting for Steam Guard. These credentials persist throughout the lifetime of the docker volume storing the data.
  Adding/removing/managing workshop items. The goal is to also manage the "=mod=" parameter.
  Listing the auto-generated RCON password.
  Backing up.
Further refine the original dayzserver script. In docker, a lot of the other stuff wasn't necessary so a lot is just being removed.
Install steamcmd into the container in Dockerfile and adjust paths.
Vastly updated docs!
2022-03-26 13:02:54 -07:00
Daniel Ceregatti
e7ba76acf7 Added Steam login step, which is done interactively.
Factor out all the unused stuff from dayzserver. Rework the logic.
Started support for workshop items.
Updated docs.
2022-03-26 03:16:04 -07:00
Daniel Ceregatti
6be82b1adc Make configuration changes come from changes to the files rather than setting environment variables.
Updated documentation.
2022-03-25 23:52:06 -07:00
Daniel Ceregatti
b141d2b0da Refactor to use only one volume, one for the entire contents of the user's home directory. This simplifies a lot.
Make all bash changes to the dayzserver script instead of creating a wrapper.
Handle the server config and Battle Eye string substitution.
Add the default.cfg from upstream and handle it locally.
2022-03-25 23:17:55 -07:00
Daniel Ceregatti
0e25ac2bcf Lower the docker compose version, as the one on my server didn't like this one. 2022-03-25 19:09:50 -07:00
Daniel Ceregatti
c07ad683ca Just use the anonymous steam user. 2022-03-25 19:06:02 -07:00
Daniel Ceregatti
8eed898bd4 First working prototype. It "works", but it still segs, which is the problem I was hoping to fix. Bummer.
Add the dayzserver from upstream, but a modified version that doesn't do all the tmux stuff.
2022-03-25 18:54:25 -07:00