Commit graph

18 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
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
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
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
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
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
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
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
19bf33706e Remove unnecessary libSDl packages. 2023-06-16 18:07:01 -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
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