Commit graph

58 commits

Author SHA1 Message Date
Daniel Ceregatti
bbd8e32d4c Fix argument parsing. 2025-03-10 21:20:07 -07:00
Daniel Ceregatti
44aaede5a6 WIP 2025-01-31 15:06:13 -07:00
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
20700cdc26 Refactor Error to Dialog.
Comment out Steam API key handling. We'll need some other way to get the key other than reading the environment.
Separate alert from steamcmd "server output" dialog.
Remove the old CSS file, as that will need to be figured out.
Look into the IDE not resolving files. WIP.
2024-08-09 17:25:53 -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
28fba94599 Delete old file. 2024-07-27 18:03:23 -07:00
Daniel Ceregatti
e49bbe19dd Merge branch 'dotnet-client' 2024-07-27 18:02:01 -07:00
Daniel Ceregatti
1dcf5c9eac Audit and fix npm packages. 2024-07-27 11:13:50 -07:00
Daniel Ceregatti
176c06fd48 Add a Steam API client. WIP. 2024-07-26 21:48:38 -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
2f1509fb65 Change the default maps to always come from github. One used to be able to install the server using the anonymous steam user, but now the mpmissions aren't included if the anonymous user is used.
Handle multiple env files for now while we transition server orchestration entirely to the web container.
Add MuchStuffPack mod integration.
Add git to the web container so we can checkout server resources from github as git. Allows us to just pull on git to keep up to date.
2024-06-19 16:59:33 -07:00
Daniel Ceregatti
a905435bfc Add support for detecting the version of the server. It's very ghetto. There must be a better way. 2024-05-29 01:42:38 -07:00
Daniel Ceregatti
4ac44660d0 unset DEVELOPMENT in bashrc. 2024-05-28 11:17:42 -07:00
Daniel Ceregatti
90f67dc065 Put curl back into the web container, as it's used to download remote XML from mod integrations that have these. 2024-05-28 11:17:09 -07:00
Daniel Ceregatti
abceedf9c0 Switch to bookworm-slim.
Remove unnecessary packages.
2024-05-19 14:12:30 -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
80adb60aa8 As of today, we have a release version! I can't believe it!
We no longer need to lower case the files.
Switch to the release server id.
Move rcon from the web container to the server container.
Handle .c files on a per-map basis.
Update per-map .c files.
2024-02-20 14:28:59 -08:00
Daniel Ceregatti
d1d3069500 Add Diesel Jerry can mod. 2023-12-21 16:02:39 -08:00
Daniel Ceregatti
287d60fe1d Refactor install to map, as that's more relevant.
Update docs.
2023-11-03 17:13:18 -07:00
Daniel Ceregatti
b8b0a43df1 WIP on web UI:
Make selected items show as selected.
Break out XML file handling so the tree component could just handle elements and leave the XML parsing to the parent.
Sort mods by name, not id.
2023-11-03 16:13:14 -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
a5560962bc Fix issue where a fresh install's web UI returns an error because the mods directory does not exist. 2023-10-15 12:01:26 -07:00
Daniel Ceregatti
4c09ef752c Switch from CMD to ENTRYPOINT, then use exec in both start.sh scripts, so process id 1 can be the process it needs to be, as this is what gets SIGTERM on docker compose down.
We now get a .bashrc by default, so switch the logic to detecting the custom PS1 before putting it in .bashrc.
Account for a directory that steamcmd expects.
2023-10-12 21:52:33 -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
9513fc4d97 Add support for custom integrations. The first is no food, which makes a new types.xml of all the food class items for use with CE, then sets nominal to 0 in all entries.
Have server logs go into a logs directory, with sub-directories in there with the date to contain that run's logs.
Fix XML handling output.
Update bogus DayZ version.
Add custom integration docs.
2023-09-28 15:39:13 -07:00
Daniel Ceregatti
6da2c62eea Set the content type header for XML files. 2023-09-12 15:13:18 -07:00
Daniel Ceregatti
07eb8ac7ff Add a config object to hold values like API hosts, instead of hard coding it to my local machine's name.
Make sure the file exists before trying to read it.
2023-09-11 17:26:16 -07:00
Daniel Ceregatti
b1448d8860 Add cfgeventspawns.xml integration!
Add quirk to handle upstream XMLs not having the correct nodes.
Add initial map install based on the map in the config.
Add package to allow for XML merging in the server container.
Add an environment variable that prevents the server from starting, to test mod XML integration at server start.
Back up logs into dedicated directories based on the date when the server exits.
Improve logic for copying XML files into mpmissions.
Fix status output formatting.
Get map name from the config at script start in the server script.
Refactor XML env scripts so they don't have a hashbang.
Refactor one mod's integration with the new file naming convention.
2023-09-09 11:02:24 -07:00
Daniel Ceregatti
67cbb8319f Remove packages from the web container that were only needed in the server container. 2023-09-08 17:17:57 -07:00
Daniel Ceregatti
e6a381315f Fix lack of root node in XML when normalizing.
Refine output to only show relevant info when starting the server.
Filter mod integration by current map, even if other mpmissions directories should exist.
Remove previous cfgeconomy directories when starting, to prevent previous files from possibly existing.
Orchestrate the retrieval and normalization of XML files as 'dz x ID' now does both.
2023-09-08 12:13:29 -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
ad2f547845 Refactor function name so it's different between web and server containers.
Fix typo.
2023-08-31 17:05:57 -07:00
Daniel Ceregatti
65840a79c5 Refactor everything the relies on getting a mod by index in a listing. This had to account for context such needing to maintain mod ordering when starting the server.
Moved a lot of the functions out of scripts and into common and consolidated.
Fix some output formatting.
Make key copying only happen in a server.
2023-08-30 18:08:08 -07:00
Daniel Ceregatti
745788560f When creating symlinks, remove more than just spaces from mod names. 2023-08-25 17:41:46 -07:00
Daniel Ceregatti
29ce456543 Let's just use the store to do all reactivity.
Refactor the DOM to allow for "sections".
Add our start.sh scripts to /usr/local/bin in the image.
Add a config for Vue.
Remove globalproperties, as this...sucks.
2023-08-14 09:10:35 -07:00
Daniel Ceregatti
5e6c31aaf3 Fix path to xml.sh 2023-07-25 15:05:13 -07:00
Daniel Ceregatti
19bf33706e Remove unnecessary libSDl packages. 2023-06-16 18:07:01 -07:00
Daniel Ceregatti
2395f43024 Move this to the correct script. 2023-06-16 17:13:09 -07:00
Daniel Ceregatti
0872b2ceb7 Don't forget to npm install! 2023-06-16 15:51:00 -07:00
Daniel Ceregatti
46b8cce5cf Remove debug.
Add mods README.
Update docs to reflect the current state of the code...up to a point...WIP.
2023-06-14 19:49:39 -07:00
Daniel Ceregatti
4a6427f893 Add Pinia store so we can have disparate components.
Add Vueuse core library for useFetch.
Get async requests working with the above.
Start using Vue's Suspense feature.
Make Status its own component.
Start adding search results.
Continued work on error modal.
Add CORS headers to the backend.
Remove error store, as we only have one store.
Rename favicon.png to favicon.ico.
Remove functions from scripts where they are not used. Move functions to where they are used.
Lots of WIP.
2023-06-11 18:20:14 -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
cf47b7fe1f Continued work on the web UI:
XML "editor" WIP.
Add xmltree component.
Start work on shelling out to steamcmd from node.
Move script functions out of common and into individual scripts.
Update docs.
2023-06-03 21:57:14 -07:00
Daniel Ceregatti
052304f450 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.
2023-05-26 22:59:36 -07:00
Daniel Ceregatti
8a50a69599 Search, add, and remove mods from the web UI WIP.
Better display of search results.
2023-05-25 22:32:26 -07:00
Daniel Ceregatti
d0b54a7475 Search WIP.
Other small refactors.
2023-05-25 20:24:04 -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