v3.0.0 - Release Candidate

This marks the release candidates of v3.0.0. This release has been years in the making. It comes with significant changes to the backend and frontend to ensure a smoother experience.

The goals of v3 are to improve on things we learned from v2 and update the UI to a more friendly look and feel. We are still working on improving aspects of the UI, so things may still change as we go.

The backend has seen a clean up of how things work. The API has been standardized a bit more and the documentation has been updated to account for this. The concept of the “proxy” no longer is exposed publicly, but the API will still proxy requests as needed. We also updated our swagger documentation to try to be more complete. Do note however it may still be missing some information.

Templates have also been updated with the new concept of “conditions”. This is a basic “if” statement system that is designed to help consolidate our templates and drive better logic about if an operator should run. Things that the conditions now supporthttps://github.com/pufferpanel/documentation/tree/3.x/source/release-notes are checking if a variable is set or if it’s a certain value, if a file exist, or if something is in the PATH env. This means our templates now can support both environments at the same time, with the conditions driving what operators may be used.

Commands now also support the condition concept. A server can have multiple different commands, and one is chosen based on these conditions.

We have also moved to using the “any/any” repo with packagecloud. This means that we have a single repository that handles the packages, so the workarounds for getting an “unsupported” or a newly released LTS version of an OS should not be needed anymore.

Our Docker image also has been cleaned up. It has instead now been designed to only run the panel and a node which creates Docker containers. It will no longer run servers inside of itself. This, while useful to create a quick server, caused the image to be bloated and hard to manage. We also exposed a new config entry so that servers using Docker can better expose a folder on the host that isn’t explicitly defined in the image. Previously, it was an explicit path, and changing it required changing several things. Now, a single config entry allows hiding this.

We have also exposed options to pull basic JVM stats and query Minecraft servers. While the UI work to have this displayed is not done as of RC 2, this is now supported. A future version will show these stats and information.

We also have created a new “tester” designed to keep our templates more consistent and ensure they function prior to being released. Generally speaking, the templates now have been at least validated to run and not crash immediately. This does mean we have removed several templates that either were not functional or were believed to be dead software.

Full Changelog

UI

  • Improved flow for server creation, steps are a bit more fluid. Install is also prompted after creation to help bring this action to the front.

  • Server UI will show a game server icon to help quickly identify a server type. This is controlled by the “type”.

  • Templates are now pulled on demand, and only stored if modifications are required. Local templates can be managed independently.

  • Node page will show some hardware information about the node. Information includes the OS type, cpu architecture, and if the node supports Docker. This page will also show if a node is online.

  • Permissions have been stream-lined a little more. Actions are now more explicitly defined as a permission and so there are more permissions available.

  • Numerous bug fixes and code clean-ups

Backend

  • Templates can now directly pull from CurseForge. A key is provided by default so servers can be created from modpacks from CurseForge. The panel will attempt to set up the server to the best of it’s ability.

  • Forge will attempt to handle both install methods. This means running the installer should permit all versions of Forge to work correctly. However, only newer versions of Forge are validated.

  • RCON and TELNET are now supported for commands. If a server needs RCON or TELNET to be used for commands, a template can specify a “stdin” section to specify additional information.

  • Logging should now support rolling over, so tools like logrotate should properly work. This is not fully confirmed though.

  • Better hooks into systemd. We will now report that we are starting up/shutting down to systemd.

  • Docker image names now support variable replacements

  • Numerous bug fixes and code clean-ups

v3.0.0 - Alpha 2

  • Fix SFTP for local nodes not using the new naming scheme and using an invalid check

  • Correct local nodes to pull their hostname from the config

v3.0.0 - Alpha 3

  • This fixes the Docker images so now they are properly tagged for arm64 and amd64 using the same tag (pufferpanel/pufferpanel:v3.0.0-alpha.3)

v3.0.0 - Alpha 4

  • Fix openat2 checking

  • Allow openat2 usage to be controlled via config

  • Have install run migrations instead of being done at user creation

  • Apply additional fixes that were done on v2

v3.0.0 - Alpha 5

  • Fix SFTP UI to use URI encoding for the “Open” button

  • Have extraction of archives override existing files

  • Clean up archive management to use a central codebase

  • Fix console endpoint to handle avoid duping lines as much

  • Fix file manager to create zips on the root and wait for them to finish

v3.0.0 - Alpha 6

  • Fix GORM and it’s method of doing updates

v3.0.0 - Alpha 7

  • Fix openvz support for openat with really old kernels

  • Add tooltips to icons

  • Fix migrations for clients from v2

  • Expose better UI for managing admin-level variables

  • Add mask to password for email settings

v3.0.0 - Alpha 8

  • Resolve issues with remote nodes and SFTP access

v3.0.0 - Alpha 9

  • Fix issues related to migration for MySQL

v3.0.0 - Alpha 10

  • Fix the UI and backend for saving docker settings including port bindings

v3.0.0 - Release Candidate 1

  • Fix CurseForge operation to handle parsing variables.txt with comments

  • Add translation key for missing operator

v3.0.0 - Release Candidate 2

  • Fix console from swallowing messages when using HTTP fallback

  • Fix updating nodes

  • Fix pipeline to properly set CurseForge key

  • Add support for Docker labels

  • Fix password validation to now be consistent across CLI and web

  • Fix checking for running Docker container to be explicit

  • Validate server is not running when deleting the server

  • Return specific error when account is not permitted to log in

  • Add JCMD support. Allows for getting memory usage from within Java, instead of just what the OS sees.

  • Fix server edit to avoid creating a duplicate node

v3.0.0 - Release Candidate 3

  • Add display for JCMD stats

  • Resolve issues with migrations for Postgres and MySQL

  • Fix issue with local node message appearing for non-local nodes