pterodactyl / panel

Pterodactyl® is a free, open-source game server management panel built with PHP, React, and Go. Designed with security in mind, Pterodactyl runs all game servers in isolated Docker containers while exposing a beautiful and intuitive UI to end users.
https://pterodactyl.io
Other
6.5k stars 1.61k forks source link

Feature request - Auto update #240

Closed jffz closed 6 years ago

jffz commented 7 years ago

This has been discussed some times on discord, it would be a really nice enhancement (think about people running 10+ nodes :D)

Would be nice to have an 'update' button for panel and nodes.

xyeLz commented 7 years ago

I do agree that this would be a nice option to have. I'm sure you guys will come up with a clever way of implementing this, but in my head here is what I quickly thought of:

When a user logs in, they can select their server and are, by default, dropped into the Server Overview section and the Control Server tab where they are given the ability to start/stop/restart etc. their server. Perhaps here would be a decent option (or maybe even a completely separate tab dedicated to backups?) to add an "Update" button. The admin (myself or jffz or whomever) would need to specify what that button actually does. For source games, obviously it would be a simple steamcmd app_update. However, for other games such as Rust, it might be a little more complicated and thus would require myself or whomever the admin is to "customize" what needs to be done.

Just thinking out loud. You guys are doing great. Thanks for all the help!

DaneEveritt commented 6 years ago

There are way too many security concerns with things like this for me to feel comfortable implementing something like this at this stage. In addition, it can be very hard to automate the changes that need to be made and make them work across all systems and setups.

jmgraeffe commented 6 years ago

I would prefer to have some native update solution built-in, for example, for the beginning an update script beneath the install script which we can define would be fine. And then you could just make an option like "Update on startup", and the update script will be called on startup if activated.

The way it's currently implemented with the custom shell script in the image is somewhat like that, but honestly it's not that easy for every game, indicating that it would be nice to have the ability to edit such a script directly in the webinterface (at least admins). For example, Maniaplanet servers have no update script afaik which is like "hey, here is the path, update it and we're done", you need to manually search a link to a zip file there and unpack it. It would be much easier and more convenient to do this on the interface directly, + quick fixes are much easier (like, oh, something breaks, we need to adjust something like deleting some files for the next version).

Please consider reopening this issue again. That saying, an "Update" button is not necessary, though it would be good for better control (maybe people don't want to update everytime, because new versions are somewhat buggy on Steam).

lancepioch commented 6 years ago

For the most part you can follow this:

  1. Get the latest copy of the panel
  2. php artisan down Turn maintenance mode on
  3. Update the symlink or replace the directory
  4. php artisan migrate Migrate the database
  5. php artisan queue:restart Restart the queue worker
  6. php artisan up Turn maintenance mode off
jmgraeffe commented 6 years ago

Thank you for your tutorial but my post was about updating gameservers, like the one from @xyeLz. I misunderstood the OP's original concern, and I think xyeLz did so too.

Will make a new issue then, to not mislead people furthermore. Updating the panel automatically would be a nice feature for sometime too, but I can understand that it's not the right thing to do in the current state of Pterodactyl.