pelican-eggs / eggs

Service eggs for the pterodactyl panel
MIT License
2.81k stars 2.31k forks source link

CSMM - 7 days to die server manager #1074

Closed niekcandaele closed 2 years ago

niekcandaele commented 3 years ago

Service: (Ex. minecraft/factorio/etc) CSMM

Does this expand an already existing service: Y/N No, but it's semi-related to 7d2d egg.

Link to game: (Ex. minecraft.net/factorio.com/etc) https://csmm.app/

Links for server downloads: This needs to be an official link and not one that is hosted on some forum page or a personal github page.

https://github.com/CatalysmsServerManager/7-days-to-die-server-manager/releases There's also containers built, which is the primary distribution method

Links for install steps/docs: https://docs.csmm.app/en/CSMM/self-host/installation.html


I already have created an egg: https://github.com/CatalysmsServerManager/Pterodactyl

I'd like to add it to this central repo so other people can find it more easily. However, there's some possible snags.

CSMM is primarily a web application. While it works by accessing via IP, if you want proper security, you should use TLS. In my setup, I solved this with Traefik and a dynamic http config. I realize that this is more involved than other eggs in this repo. This webserver setup is also not part of the egg and is not trivial to add as far as I can tell.

gOOvER commented 3 years ago

Best way to add it, do a PR :)

As i see you need also do a Image PR

niekcandaele commented 3 years ago

As i see you need also do a Image PR

This is one of those snags. The image this eggs uses is also the application code. This egg does not install the app like other eggs here. The application code is inside the container, mounted as read only. I designed it like that for security reasons, allowing users to arbitrarily modify code can lead to a whole lot of issues that I rather not think about.

That means, every time the app is updated, the image needs to be rebuilt. I've automated that in my repo via a respository_dispatch event. I don't know if that'll be feasible in https://github.com/parkervcp/images .


I made this issue to first ask about possible problems before working on creating a PR. If the maintainers of this repo are ok with the problems I've listed (and possibly ones I'm not aware of) then I'll go ahead and create the PR :)

parkervcp commented 3 years ago

That means, every time the app is updated, the image needs to be rebuilt

Several of my images already do this.

parkervcp commented 3 years ago

So this is just a panel to host inside the panel? fivem ships with txadmin which is the only reason I have it as part of the egg.

I feel like you could just install this outside the normal install and make it work.

niekcandaele commented 3 years ago

So this is just a panel to host inside the panel? fivem ships with txadmin which is the only reason I have it as part of the egg.

Yeah it's a webapplication that helpers users manage their 7d2d servers.

I feel like you could just install this outside the normal install and make it work.

This does work! My original version of the egg was like that. I changed it so that users cannot easily modify the code though. Partly because hackers but mostly because I know users will break their install.

I realize my method isn't the conventional installation method so I'll use the method you suggest.

It just got really busy at work though, it might take me a while before I get around to making this PR

parkervcp commented 3 years ago

Keeping it in the image is more annoying on software updates. Having to maintain the image is a pain. Most of the custom images I have are for specific packages needed to run the server not to actually contain the software.

DatMayo commented 3 years ago

Yeah it's a webapplication that helpers users manage their 7d2d servers.

@niekcandaele So, if you can manage multiple servers. Why not create a seperate egg, where users can add their own servers as needed

niekcandaele commented 3 years ago

Yeah it's a webapplication that helpers users manage their 7d2d servers.

@niekcandaele So, if you can manage multiple servers. Why not create a seperate egg, where users can add their own servers as needed

I don't follow, creating an egg is the whole idea here. :wink:

Sorry for disappearing on this PR. I am using the egg/image I made successfully in production. Considering the extra requirements to get it added to this repo, I'm afraid I wont be able to make this PR happen. It's not feasible for me to maintain two different versions of the egg.

If anyone wants to modify my solution so CSMM isn't baked into the image directly, I am happy to help troubleshoot/debug though.

parkervcp commented 2 years ago

Closing as it sounds like it's not coming to the repo