PufferPanel - The Trusted Open Source Game Management Panel Since 2013

PufferPanel Logo


Website | Community Chat | Documentation


PufferPanel is an open source game server management panel, designed for everyone from single users to large networks. PufferPanel is easy to install, easy to use, friendly, robust, reliable, and most importantly, fun.

As a community project we have been around for a few years and we hope you’ll join us for the years to come. We invite anyone interested in the project to join our community on IRC or on our forums. We listen to our users and genuinely care about your feedback.

Over the past few years PufferPanel has grown into an incredible project, and more importantly, an incredible community. With over 12k downloads on GitHub, a highly active community forum, and tons of active users, PufferPanel remains the best free and open source game server management panel.

Please see our documentation for instructions on installing PufferPanel.


Features:

  • Easy Automated Installer
  • Live Server Statistics
  • Web Based File Manager
  • Single-Line Node Installer
  • Multi-language support with over 16 languages
  • Subusers
  • SFTP
  • Support for Minecraft, Sponge, SRCDS, and more

Screenshots:
https://www.pufferpanel.com/docs/general-user-feature-tour
https://www.pufferpanel.com/docs/administrative-feature-tour

5 Likes

The Delay News

This status update is a bit later than usual, but that’s because we’ve not had as much time to effectively push into testing of the new daemon as much as we need. We’ve hoped to have the daemon ready some time ago, and I’ve postponed my usual status updates on the hope that I can instead have them in the release, but alas. It’s been 2 weeks since the day I would have posted it, so I believe I need to just provide the status update.

Daemon news

We have been slowly working our way through the daemon, finding new ways we can handle the complexity of Source servers, while making the daemon not truly care about what is going on with it. It took us time, but we found a way to achieve that. pufferd will be able to handle programs that require ttys (Source for example) properly for the software that needs it, while using the standard process for others. pufferd is still Windows supported, and so we have not removed any features to handle that.

We’ve been cleaning up how the daemon works as well, to try to limit our maintenance of it, and making it easier to work on things in the future. An example is our environment loader. Depending on the OS you are on, different environments are available. This mostly impacts TTY processes (Source) as this does not exist on Windows, but is required on Linux. We will properly handle running them depending on the OS, so Source will work on Windows just as it would work on Linux to you. How it runs is handled by pufferd.

pufferd also supports data migration from Scales. While this is not perfect, and could fail, pufferd will (when used with a commandline argument) attempt to migrate your existing Scales servers over to pufferd. It will attempt to do the following:

  • Migrate data from /home to /srv/pufferd
  • Create new server jsons based on the Scales config for that server

This process is not 100% tested, but has worked for a few test servers on our end. We hope this will help push you to try out pufferd.

Panel news

The panel has been updated to handle the new daemon, but we’ve had to remove some features for now to handle it until we work out the best way to achieve them.

Subusers has been removed for now until we build the new system around them. While the old worked, it’s not going to be compatible in a way to the new system that I’d consider acceptable. The addition of oauth partly covers how subusers worked, but since our usage of Oauth is not completely integrated, we’ve not migrated subusers.

File Manager has been disabled for now. Due to the new daemon, the existing file manager does not communicate correctly. While the daemon supports the functionality it needs for it, the code to migrate the manager over is more difficult due to the horrendous way that it was built. Instead of simply making it work, we are building it from the ground up to make it work, and make it work well.

Roadmap

Knowing what I have said, I’ve already determined the following roadmap to which will be our goals for our future version.

PufferPanel/pufferd version
0.9.0/0.1.0 - Initial release with the above features
0.9.1/0.1.1 - Inclusion of new file manager
0.9.1/0.1.2 - Inclusion of docker with proper implementation and support
0.9.2/0.1.3 - Complete control over editing servers
0.9.3/0.1.4 - Bug fixes from previous releases
1.0.0/1.0.0 - Complete refractor of existing panel to a proper and sustainable codebase

pufferd is built to be compatible with any major version below it (or will be), and the panel will always use the latest version that’s most compatible with it. With the current versions, they will not appear to be in sync, but when we refractor the panel, the daemon will become synced with the versions, so that you can rely on the major version to decide compatibility.

Security concerns

Those who believe that simply using containers is the “solution” are only fooling themselves. There exists many places of weakness for security, not just at the server level.

We will absolutely be integrating container support into pufferd very soon, as the ability to support multiple different environment was one of the key motivators to make pufferd. We will be implementing docker properly and natively, in ways that other game server daemons do not.

Since we are not targeting hosting companies for this release but instead you, the general administrator, you gain no benefit with containers because you know the servers and plugins running on them. While it’d be nice to have, we know it’s not the only security you need.

We know security is only as good as your weakest point, and that will lie within the panel itself. This is why we focus our efforts on the panel level as well, making sure that the panel is secure, so that your servers are not going to be compromised because of our panel. After all, if your panel is compromised, that container for your server will be meaningless. Who needs to delete the server when someone can just delete your database and files?

Ending notes

That’s all we have for today really. Our release is much closer, although I’ve made the decision to clean up some of the newly implemented code to use the database even more, so that it is much easier to maintain. This does delay the release, but we will be able to ship a more functional and professional product. We know what a database can do, and we will make sure we take advantage of its functionality, not just be a place where your data exists. It has power to manage and work with the data, and we are going to use that.

As always, thank you for using PufferPanel!

Something is coming from the dark waters…

It shall soon arrive…

PufferPanel and pufferd v1.0.0 has arrived

We are finally happy to introduce the latest (alpha) release of our new daemon along with the updated panel to handle this new sea monster.

This release is more targeted to small time server owners, who just run a few servers and need a simple panel to manage them. This release is not meant for server hosts yet.

Simply called pufferd (puffer daemon, clever, isn’t she), this new daemon offers a much more flexible configuration than Scales did, and even more than what others want to try.

pufferd has 0 code that handles a specific game, and is completely driven by JSON data files, which are dynamically loaded, so one does not need to restart the daemon to implement changes to the default templates or to even add new ones. If you want to add another game entirely, you’re no longer forced to wait for some dev to go and create some code to do it, then wait for them to release it (or having to deal with creating your own docker containers and all that joy).

It also uses a proper authorization system called OAuth2 (if you work with APIs elsewhere, you’ve probably seen this before), which is a huge improvement to your security and using the API.

We also changed SFTP to now use your own credentials, so that now you don’t have to share your SFTP password with anyone (subject to the implementation of subusers though). Not only does this greatly improve security over Scales, it’s less hassle for you.

We also broke the hard connection on pufferd version from the panel. This means that any 1.0 build of pufferd we release will be deployed when you create a new node, and can easily be updated. All builds of the same major version (1.0 is a major version, 1.1 is another) will work with each other, so any bug fixes will not require you to reinstall or update your panel.

We have also proper support for Ubuntu 16.04 and PHP 7, along with Apache. Our installer will now try to handle all those cases and try to install the panel as best as it can, but you can still configure that manually if needed.

The new daemon also works with your Linux distro, and properly installs itself as a service, so you can now use systemctl start pufferd and even enable that to auto-start. No wonky “fake” daemon systems that hide data from you, just proper integration into your OS.

This release also changes how we store data. In the spirit of Linux, we try to properly follow their setup for our data files. This means our config is now located in /etc/pufferd and our server data is located in /var/lib/pufferd. No more craziness in your home directory and the mass amount of system users being created.

While not significantly tested, we also now support Windows installations of the daemon. We will be updating our documentation as time goes on to explain how to create your Windows daemon.

Sadly, this release does come with several removed features due to the massive undertaking of the new daemon:

Subusers have been disabled functionally in this release while we migrate the system to work with the new OAuth2 infrastructure.
File Manager has been removed while we port the code to use the new daemon, the existing code would not work with the daemon due the complicated logic it decided to use and we decided it’s better to re-build it.
Docker has been disabled in this release. We currently are working on adding this support back and already have the code on our repo, but it’s imcomplete and will not run.
We know that some of those decisions will prevent some of you from switching to pufferd from Scales, and we are working hard to get pufferd to be as feature-supported as Scales was, so that we can properly send it off.

If you are interested in migrating to pufferd from Scales, we have written a page here (http://www.pufferpanel.com/docs/upgrading-to-pufferd) to try to get you through that process. (We still recommend backups, because trying to clean up Scales isn’t fun)

We thank you for the support and patience since the attempt at sabotage of our project a year ago, and hope that you continue to use our software.

With all the pins of a pufferfish, we thank you.

We are happy to introduce v1.0.3 into the wild! I’ll try to keep this short.

This new release re-enables the Subuser interface which was disabled on the previous releases.
This release also fixes the admin users, which could not see servers they did not own, oops.

To update to the new version from any 1.0 release, please follow our documentation: http://www.pufferpanel.com/docs/updating-pufferpanel#updating-to-103

Because of the database changes, you will need to manually cycle accounts to re-enable proper support for subusers and admins.

This is simple as re-saving subusers (open their edit menu through the Subuser interface, hit “Save”) and toggling admin users (open their account settings, set them to No, save, then set to Yes and save).

As always, thanks for flying with PufferPanel!

By popular request, we have bridged our community chat on IRC to a Discord server. Messages will be relayed between the two, so feel free to join whichever you prefer.

We are happy to release into the ocean PufferPanel and pufferd v1.1.

This release provides the file manager functionality that was removed in 1.0, along with a cleaned up database structure that should help when you start deleting your users and servers.

As following semantic versioning to the best of our ability, 1.1 is not compatible with 1.0 nor is 1.0 compatible with 1.1 due to the API changes made to pufferd.

Functionally, pufferd has just has an API standardization, in which all API calls should follow the same structure in their responses.

It also has a new SFTP library, which fixes file name which was not wired up correctly in 1.0, but it still has reported issues with Filezilla such that it does not render folders correctly. We are still looking into this issue.

As always, we attempt to make your updates even easier and safer.

To update PufferPanel to 1.1, please follow this guide: https://www.pufferpanel.com/docs/updating-pufferpanel
To update pufferd to 1.1, please follow this guide: https://www.pufferpanel.com/docs/updating-pufferd

We value your time too much to ask for reviews or testimonials, but please feel free to leave us your feedback

As always, thank you for using PufferPanel!

1 Like

Hello,

We have just released PufferPanel v1.1.1, which fixes many of the bugs users were experiencing with v1.1.0 and adds a few other additions. Alongside of this release, we are releasing pufferd v1.1.2.

Ubuntu 14.04 support has been re-added, including an init.d script for pufferd. This means starting and stopping pufferd is as easy as service pufferd start on Ubuntu 14.04. This will be especially helpful for those on OpenVZ systems, as many of those only have a 14.04 template available.

Newer distributions should be using systemctl to manage pufferd, however we have made some changes to the systemd service file and it does need to be updated. Please see the documentation on updating pufferd for more information.

We have added a template for PocketMine servers, and pufferd will now gracefully shutdown and wait for running servers to stop before exiting.

Other usability issues and issues relating to updating PufferPanel from v1.0.3 have also been addressed.

We hope you enjoy this release and we will be working hard on any further issues and features.

To update PufferPanel to 1.1.1, please follow this guide: https://www.pufferpanel.com/docs/updating-pufferpanel
To update pufferd to 1.1.2, please follow this guide: https://www.pufferpanel.com/docs/updating-pufferd

As always, thank you for your support of PufferPanel!

We have pushed out v1.1.3.1 to the public as a hotfix.

This release contains 2 fixes which were pulled from 1.1.4 and put into 1.1.3 to resolve 2 critical issues plaguing the file manager.

Changelog can be found here: Release v1.1.3.1 - Hotfix · PufferPanel/PufferPanel · GitHub

If you already have v1.1.3 installed, you can install this update using the following commands. This will download the small update and replace the needed files.

cd /srv/pufferpanel
curl -L -o pufferpanel.tar.gz https://dl.pufferpanel.com/patches/v1.1.3.tar.gz
tar -xf pufferpanel.tar.gz

If you are on an older release, please use the following documentation:
https://www.pufferpanel.com/docs/updating-pufferpanel

Hello,

This release of PufferPanel v.1.1.4 and pufferd v1.1.5 brings a much requested feature, the ability to edit server variables on the panel!

In addition, both PufferPanel and pufferd have received numerous enhancements and bug fixes, including:

  • Install button now presents a modal window to confirm installation
  • Admin users now have SFTP access to any server
  • Added ./pufferpanel purge command to remove existing PufferPanel database
  • Deletion of directories containing files is now possible from the File Manager
  • Increased file upload limit
  • Added Factorio template

And much more!

You can find instructions for updating PufferPanel here https://www.pufferpanel.com/docs/updating-pufferpanel

You should also update your pufferd to v1.1.5, which you can find instructions for here
https://www.pufferpanel.com/docs/updating-pufferd

As always, thank you to everyone who helped us find issues and submitted pull requests, we really appreciate it!

Due to the progression of the new pufferd daemon, Scales will become end of life December 31, 2017.

This will be the last day that support will be given by the PufferPanel team for users of Scales. The community can still offer support, however official support will not be given.

Scales has not been in active development for over a year, so there is no longer a reason we have to support it. pufferd will be largely feature-compatible by end of year, however we have decided we should not be using our time supporting a product that we have not actively worked on in over a year.

Docker integration will be added shortly after some validation, which is planned by end of November.

Users of Scales are encouraged to switch to pufferd, which is in active development.

Documentation on how to migrate is located here: https://www.pufferpanel.com/v1.1/docs/migrating-to-pufferd

We have now released PufferPanel and pufferd v1.2, which implement docker container usage!

To upgrade PufferPanel to v1.2.0, please follow the guide found here.

To upgrade pufferd to v.1.2.0, please follow the guide found here.

Docker

PufferPanel previously supported docker with Scales, but when were planning on bringing support to pufferd, we wanted to make sure it was far more flexible, easy, and reliable than it had been previously.

Docker can be enabled per-server, so you can have some servers that run in containers, while others do not.

This is a basic implementation of the container structure, and should not be relied on for complete security, however is acceptable for file-level isolation.

Note, this release does not include resource limitations on the containers, nor does it block any network related functions. All containers will bind to the host interface for ease of use.

Our implementation uses our base images where applicable, which you can view on this repo: GitHub - PufferPanel/dockerfiles: Dockerfiles for pufferd

pufferd will attempt to use an existing container if the container is named with the UUID of the server, so you are able to create and alter containers to your liking and pufferd will use them. Otherwise, pufferd will create the container when needed, and destroy it once the process is done. This allows for a much more flexible configuration, without leaving a bunch of maintenance or junk around.

To use Docker with PufferPanel, please follow the guide located here after upgrading to v1.2.

Now that pufferd supports Docker, Scales has been officially deprecated and will no longer be supported.

pufferd Packages

This release also marks the shift to using package managers to handle the installation and updates of pufferd. Our repo is hosted via https://packagecloud.io and offers support for Debian, Ubuntu, and CentOS installations.

This means that once you install our repo, updates are handled by your package manager:
apt upgrade pufferd

Any new nodes you create using v1.2 will use the repos, existing installations should follow the guide found here.

Note that when updating the pufferd package, pufferd will restart, which will cause your servers to stop and (if enabled in the server’s definition file) start back up.

Updates to v1.2 follow our usual major version upgrade documentation, which you can view here:

Changelog:

  • BREAKING: Stop API will now by default not wait for the server to stop before returning. Passing in ?wait will now be a blocking call.
  • BREAKING: Console and log API now use the same scope.
  • BREAKING: pufferd will no longer start unless --run is given. This avoids accidentally running the binary and causing collisions.
  • CHANGED: pufferd is now installed via repos. Existing installations can follow the guide found here.
  • CHANGED: Installer will now ask for credentials if no config is found
  • CHANGED: pufferd will now log where the config specified through “logPath”, default is “log” if not provided.
  • CHANGED: “pre” section is now properly supported. This follows the syntax that “install” uses.
  • FIXED: Settings users as an admin will properly create rights if they were not an admin prior.
  • REMOVED: --installService is no longer supported by the daemon, using repos is recommended.
1 Like

Changelog for v1.2.1:

  • FIXED: Auto-deploy for pufferd will now fall back to downloading binaries if the package manager does not recognize our packages
  • FIXED: Installer will now properly look for PHP 7.2
  • CHANGED: Bumped forge and sponge versions to latest recommended versions
  • ADDED: User and servers are now sortable. Any column in those tables are sortable by their value.
  • ADDED: Recaptcha will now show up on login if the recaptcha settings are enabled.

As always, pufferd updates will be deployed when you create a new node, you do not need to update PufferPanel to get those changes.

PufferPanel 1.2 and 1.2.1 are interchangeable with pufferd 1.2 and 1.2.1. While we recommend keeping them in sync, you can use PufferPanel 1.2 with pufferd 1.2.1 nodes.

To update PufferPanel, follow these directions: https://www.pufferpanel.com/docs/upgrading-pufferpanel

Upgrading pufferd is as simple as using your package manager.

Centos

yum update pufferd

Ubuntu/Debian

apt-get update
apt-get upgrade pufferd

PufferPanel and pufferd v1.2.2

Update docs: https://www.pufferpanel.com/docs/upgrading-pufferpanel

Summary:
Expose a reload button on the Edit Server screen. This will reload the server data file to apply any changes made.

Enable autorestart and autorecovery option in server json. By default, these are not enabled and require editing the server’s json file located in /var/lib/pufferd/servers to enable.

  • autorestart: Restart when the server stops successfully. No limit
  • autorecovery: Restart when the server crashes. This will happen up to 3 times.

Add following endpoints to pufferd:
/server/[id]/status - returns the status of the server

Allow OAuth2 authorization using HTTP Basic header.

Move index page to use async loading to get data. This page will now load quicker and fill in data as it gets it.

Enable server status on the index page. You can now see if the server is running through the index page.

Changeset:

A hotfix has been pushed out to resolve the following 2 issues:

Panel: SFTP authentication failed to let users in
pufferd: Startup would fail with a routing error

To install these updates:

PufferPanel:

curl -L -o pufferpanel.tar.gz https://git.io/vxtDr
tar -xf pufferpanel.tar.gz

pufferd:

apt-get upgrade pufferd

OR 

yum update pufferd

We are happy to announce the release of pufferd 1.2.4!

This release includes the following large changes:

  • FIX: Filezilla can now properly be used to upload folders
  • ADD: Support for environment variables in the server’s json file
  • ADD: Support for post-server commands in the server’s json file
  • ADD: Support for reload, you can now use systemctl reload pufferd to reload the configuration for the daemon

To install the update for Ubuntu/Debian distrubutions:

apt-get update
apt-get upgrade pufferd

To install the update for CentOS distrubutions:

yum update pufferd

Thank you for swimming with PufferPanel!

1 Like

pufferd v1.2.5

We are proud to release v1.2.5 of our daemon pufferd into the wild!

This release introduces the following:

  • Module support for commands. What we mean here is that pufferd will now support loading modules from the “modules/operations” folder which can contain custom code for any install/pre/post command. Built in, we have moved all of our operations over to this new system, and included several for Sponge and Minecraft! This means we will rely on their file servers to handle downloading later versions of the game without a template change needed.
  • Removal of embedded templates. We now will ship all of the templates from our template repo with our repo packages. You can view these templates here: GitHub - PufferPanel/templates: pufferd templates
  • The kill button will now kill the server instead of the daemon.

As per our release policy, pufferd v1.2.5 is compatible with PufferPanel v1.2.4, and so no updates on the panel are required.

To get this update, all you have to do is use your package manager and update it.
Debian/Ubuntu: apt-get update && apt-get upgrade pufferd
CentOS: yum update pufferd

We thank you for using PufferPanel!

2.0 News

We have already started our work on our 2.0 refactor. Now that the daemon is a bit more stable and holding it’s own, we are shifting our focus to our core panel. We know that the current UI is not modern and there are some issues with using it. Unfortunately, to fix those issues would require a ton of internal changes to which we are not comfortable making on the current codebase, and so we are taking this chance to rewrite the panel from the ground up.

2.0 will be changing languages to better offer support for your OS and make it even easier to install. PHP does not scale well and can easily end up with cluttery code, even when using frameworks. Like pufferd, PufferPanel is moving to a GoLang codebase, so that we can share code between our 2 products. By making this change, we will be dropping our requirement of PHP and this would make our panel one of the lightest out there, with no overhead for the language.

1 Like

pufferd v1.2.6 has been released.

This release fixes the following:

  • Adds the CS:GO template that was removed in v1.2.5
  • Adds docker templates for SRCDS and Minecraft games.
  • Fix issues with symlinks