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.
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.
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.
Knowing what I have said, I've already determined the following roadmap to which will be our goals for our future 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.
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?
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!