This file is a running track of new features and fixes to each version of the daemon released starting with v0.2.0
.
- Bumped internal thresholds for memory management in containers to provide slightly more overhead to avoid OOM issues.
- Added support for disabling the built-in SFTP server to allow for standalone options.
- Fix a bug that would cause a server to silently get stuck while in preflight if a config file couldn't be parsed. Now the process will continue forward and just emit a notice into the console.
- Fixes an issue with the
mmmagic
dependency not installing correctly when using Nodejs v10. - Close the server logs correctly when a server is deleted.
- Fixes a bug causing servers to hang in the 'Starting server container' state if there was an error with the container. 12
- Fix a bug in the SFTP system that would cause a request failure if a file didn't return a valid time created/modified.
- Handle an unknown flag sent from Cyberduck when creating a file.
- A non-zero response code from an installer script will now mark a server as having failed installation.
- Less confusing error output when the SFTP subsystem encounters an issue. Will now properly log the error rather than cause a second error that covers up the initial error.
- Adds initial beta support for defining custom CA stores that the daemon will use when making HTTPS requests. These
can be set by defining an array of file locations using
internals.ca_stores
in the Daemon configuration.
- A server that stops cleanly (
ExitCode: 0
) will still trigger crash detection by default. In a previous release we changed this behavior, and while a logical change, it has caused issues with a larger chunk of users than anticipated. This setting is now configurable at a global level withinternals.clean_exit_is_crash
setting which defaults totrue
.
- Fixes a bug with command sending that would cause the request to never complete, thus leading the Panel sending commands over and over in scheduled tasks.
- Archives created by the Panel are now named in a more logical manner based on the name of the file that they were created from.
- Fixes a broken crash detection system due to a forgotten callback.
- Fixes an error that would occur when a server was rebuilt and the Docker container log path changed on the Daemon.
- Changes the way crash handling works to not forcibly restart the server process if it exits cleanly. This means you
can have plugins stop your server and it will not automatically restart on you. Only processes that exit with code
0
will be left in the stopped state, all other unexpected stops will result in an automatic restart. - Less confusing server status indicators when being rebuilt, now completely stops before rebuilding.
- Changed behavior of Daemon initialization to check for the existance of a server's data directory before initializing that server. If the data directory cannot be found a warning is thrown and the server is not registered.
- Fixes an error that would cause a loaded console to not display any previous logs due to a supressed JSON parse error.
- Re-adds pulling docker images with authentication, this was accidentally removed while debugging some issues.
- Fixes a bug that prevented sending commands to a running server instance. This was due to a regression in the command handling logic. (aka, too much delete).
- Fixes a bug with XML parsing that would cause Nodejs to be unhappy when reading and writing files.
- Fixes a race condition in the route handling that would cause errors to be thrown on busy daemons.
- Daemon no longer fails to boot if it is unable to pull a remote Docker image assuming one already exists on the host system.
- Changes the way that server output is handled to allow easier viewing of startup errors early in the process.
- Better support for RHEL when booting the daemon.
- Support for sending more specific stop signals to running processes. Prefix with
^
followed by the signal name, for example:^SIGHUP
or^SIGKILL
.
- Fixes SFTP server to play nicely with FileZilla and not respond with 4 of the same file.
- Fixes a bug when doing multiple replacements on a single line for configurations.
- Fixes diagnostics script to not die when reading large files and also includes the container name in output for easier linking to a server.
- Fix a potential exception loop when attempting to rebuild a container that does not exist to begin with.
- Server output is now correct and not split across lines.
- Cleans up docker container removal and makes debugging messages clearer.
- Reason for process crash (OOM, ErrorText, and ErrorCode) are now output into the logs and the console output for processes.
- Server output throttling is handled differently now and should no longer kill processes that are simply outputting long amounts of data. DoS attacks are recognized and killed in under 1 second, rather than the 30 seconds of previous versions.
internals.throttle.bytes
was removed and replaced withinternals.throttle.lines
with a default value of1000
.
- Fixes a potential docker issue from float64 values being passed in rather than int64.
- Fixes a bug where the daemon would not correctly identify a server's docker container, now uses the UUID to find the container.
- Fix permissions checking when getting base information about a server to allow subusers to view status in panel.
- Errors returned by the panel when checking a daemon access token are now logged properly.
- Fixes bad function call in
xml-headless
egg parser. - Fixes issue with Filezilla SFTP client on uploads > 1GB preventing them from being resumed correctly.
- Sending a command when the server is offline now returns a HTTP/412 error.
- Fixes missing environment variable in installation script for eggs.
- Added a
internals.throttle.enabled
flag to the config to allow disabling the throttle entirely if needed.
- Bumped the default throttle limit to 30Kb every 100ms to hopefully prevent any issues with normal output.
- Fixes command used to create a user on the Daemon to work with all supported OSes.
- Fixes output throttling behavior to not lock up the daemon and adjusts limits to
40 KB
of data per second before data is tossed.
- Servers that trigger a data volume warning more than 5 times in the span of 25 seconds (with 10 second decay per warning) will be killed. This type of event should only occur when a server is flooding output to the console.
- Disk usage is now checked every 30 seconds by default to reduce the load on a server.
- Fixes an edge case scenario where a server's data directory might not exist when a container is created.
- Fixes a bug that would prevent daemon boot if a docker image was missing and assigned to a server that needed to be rebuilt.
- Fixes a bug prevent server installation when no script is defined.
- Fixes bug causing packs to fail installation due to an unpacking issue.
- Fixes support for symlinked files in the file manager and returns the proper mime type for them.
- Fixes 404 error that would arise from bad symlinks in the server data directory.
- Fixes race condition when attemping to boot a server after a rebuild has begun.
- Fixes
Cannot get length of undefined
errors that would occasionally plauge certain servers on the daemon. - Fixes
write after end
error caused by race condition. - Fixes error caused by missing per cpu usage data.
- Servers referencing a missing or empty configuration file will now still boot but be inoperable via the console.
- Fixes a bug where times returned by file listing API endpoint were incorrect.
- Adds support for Docker Weave setups.
- Adds support for parsing files using XML format.
- Server boot process now sets the correct ownership on files when the server is booted.
- Files uploaded via SFTP are now blocked if there is not enough server space available to store it.
- File parsing now supports
env.VARIABLE
syntax as a shorter alternative toserver.build.env.VARIABLE
for egg configurations. - Adds support for inter-server private networking via Docker.
- Added more data integrity checks when running a server. These changes make it impossible to boot a server that has an invalid service option configuration.
- SFTP is now handled internally within the Daemon rather than relying on a Docker SFTP container. Authentication is performed using a Panel user.
- Changed container creation logic to ensure that servers with no swap space assigned do not get allocated swap.
- Servers are now killed by default when they run out of disk space rather than being gracefully stopped.
- Authentication now uses dynamically changing tokens issued by the Panel.
- All API routes now prefixed with
v1/
. - Service options now use the new panel structure and are stored in
src/services/configs/<uuid>.json
. All existing servers will need to be updated, the panel ships with a command to do this. - Rebuilding a server now allows the service to be changed on the fly and re-applied.
- Server data is now stored in
/srv/daemon-data/<uuid>
rather than/srv/daemon-data/<username>/data
by default.
OOM
exceptions can no longer be disabled in Docker containers due to a startling number of users trying to use this to solve memory issues and causing more problems.
- Fixes a bug that would prevent daemon boot if a docker image was missing and assigned to a server that needed to be rebuilt.
- Fixes a bug prevent server installation when no script is defined.
- Fixes bug causing packs to fail installation due to an unpacking issue.
- Fixes support for symlinked files in the file manager and returns the proper mime type for them.
[beta.6]
— Fixes bug when creating a user on CentOS.[beta.6]
— Fixes a bug with Cyberduck where files could not be overwritten.- Fixes 404 error that would arise from bad symlinks in the server data directory.
- Adds support for Docker Weave setups.
- Adds support for parsing files using XML format.
- Server boot process now sets the correct ownership on files when the server is booted.
- Files uploaded via SFTP are now blocked if there is not enough server space available to store it.
- File parsing now supports
env.VARIABLE
syntax as a shorter alternative toserver.build.env.VARIABLE
for egg configurations. - Adds support for inter-server private networking via Docker.
- Changed container creation logic to ensure that servers with no swap space assigned do not get allocated swap.
- Servers are now killed by default when they run out of disk space rather than being gracefully stopped.
OOM
exceptions can no longer be disabled in Docker containers due to a startling number of users trying to use this to solve memory issues and causing more problems.
[beta.3]
— Fixes bug that caused servers to not be able to be reinstalled due to a check for non-existant keys.- Fixes race condition when attemping to boot a server after a rebuild has begun.
[beta.2]
— Fixes a bug that caused the Daemon to fail the boot process after upgrading from previous versions due to a missing egg configuration.
[beta.1]
— Fixes a bug causing the migration utility to not run correctly due to globbing.[beta.1]
— Fixes missing route causing inability to revoke an access token manually.[beta.1]
— Fixes errors causing inability to create servers on the Panel.
[beta.1]
— Data migration is not optional, update code to reflect such.
- Added more data integrity checks when running a server. These changes make it impossible to boot a server that has an invalid service option configuration.
- SFTP is now handled internally within the Daemon rather than relying on a Docker SFTP container. Authentication is performed using a Panel user.
- Fixes
Cannot get length of undefined
errors that would occasionally plauge certain servers on the daemon. - Fixes
write after end
error caused by race condition. - Fixes error caused by missing per cpu usage data.
- Servers referencing a missing or empty configuration file will now still boot but be inoperable via the console.
- Fixes a bug where times returned by file listing API endpoint were incorrect.
- Authentication now uses dynamically changing tokens issued by the Panel.
- All API routes now prefixed with
v1/
. - Service options now use the new panel structure and are stored in
src/services/configs/<uuid>.json
. All existing servers will need to be updated, the panel ships with a command to do this. - Rebuilding a server now allows the service to be changed on the fly and re-applied.
- Server data is now stored in
/srv/daemon-data/<uuid>
rather than/srv/daemon-data/<username>/data
by default.
- Fixes a nasty race condition occurring when trying to start the daemon with large amounts of server output from containers.
- Fixes error spam about undefined 'length' in some instances when checking process usage.
- Server process output is no longer gathered from defined log locations, but rather logged into a rotating log file for the daemon to read.
- Adds a throttle to container output to mitigate potential DoS vectors from applications and prevent daemon lockups in certain instances.
- Fixes a bug that caused newly created nodes to fail during the server creation process due to a missing timezone file location in the configuration.
#593
- Fixes an error thrown when deleting a file via the API.
#587
- Fixes a bug with certain NGINX configurations that would cause a 404 error when attempting to access a service's configuration files.
- Should fix a bug causing servers to not be created correctly on first daemon boot due to a missing SFTP docker container.
- Adds support for deleting multiple files at once via the API. This currently is not used by anything, but paves a path for a future panel update.
- Adds support for
yarn
package installer, but does not require this installation method. - Added more verbose error logging when there is an issue connecting to the panel to help with debugging issues.
- Added support for Nodejs
v8
- Cleaned up boot order to be more logical and output information in the correct order.
- Added a cleaner error message if docker does not appear to be running rather than a confusing stack trace.
- Updated multiple dependencies to the latest version.
- Fixes a bug that would throw a
setStatus
undefined error when deleting a failed install server. - Fixes bug in private registry verification function that wasn't using authentication correctly on wildcards.
- Updated Socket.io to v2.0.3, will require
[email protected]
as a minimum supported version to work correctly. - Updated dependencies to latest versions as well as verified support for Nodejs v8.
- Fixes security hole which set the active socket permissions to the last user to request the socket, potentially allowing users without permissions to access different console options.
- Fixed bug causing
undefined startup
when using an invalid service tag, or general loading issues. - Fixes potential race condition when booting daemon that would lead to services being incomplete when attemting to load all data.
- Fixes installation process hanging when no script is defined for a service option.
- Cleaner handling of errors when attemping to create a new server. If an error occurs the daemon will self-clean and remove the broken server.
- Fixes a race condition that would cause duplicate socket streams for data output and generally confuse both the panel and daemon.
- Fixes a race condition when booting SFTP subsystem container.
socketio-file-upload
bumped to0.6.0
in order to address a potential issue in file uploads in Chrome.- Fixes potential bug with CPU math if no object is defined.
- Fixes bug with test suite due to missing eslint rule.
- Fixes crash that might occur if a server fails to install a docker container and is then deleted.
- Fixes issue with private docker registries being applied to all images on the system when pulling.
- Minor version updates to multiple dependencies (no change in daemon function).
- SFTP subsystem now looking for container based on assigned ID and if a container is not found it will also attempt to locate it by image name before trying to create a new container.
- Updated dependencies to latest versions.
- Docker containers are now named after the SFTP username to ease finding those servers in the listing.
- Provide cleaner errors when a server is not found on the system. Return
HTTP/404
if server is missing, andHTTP/400
if the headrs are invalid. - Use
/daemon
for all calls to the panel, rather than/remote
.
- Service configuration files are now retrieved from the panel the daemon is associated with rather than being locally managed. Any changes are automatically pulled on daemon boot.
- Daemon configuration is now possible using
npm run-script configure
to contact remote panel and collect the configuration file. - Support for sending commands and receiving server log over websockets.
- Servers can now auto-start on completion of the install process.
- Errors encountered when parsing files during pre-flight are now thrown to the console websocket to be displated to users.
- Server status changes are now displayed in the console stream, as well as clearer docker connection updates.
- Support for running service scripts when installing a server for the first time.
- Support for reinstalling a server with a given service and option configuration.
- Ability to use the
host
network stack if needed. Allows containers to access resources on127.0.0.1
without having to do any routing. This option should only be used in private environments as it allows a container access to the host network stack. - Support for working disk limits that pevent server booting, and stop a server automatically if it is found to be violating limits.
- Gamedig removed due to lack of updates and multiple security vulnerabilities in dependencies.
- Removed unused
is-json
dependency.
- Support for running service scripts when installing a server for the first time.
- Support for reinstalling a server with a given service and option configuration.
- Ability to use the
host
network stack if needed. Allows containers to access resources on127.0.0.1
without having to do any routing. This option should only be used in private environments as it allows a container access to the host network stack. - Support for working disk limits that pevent server booting, and stop a server automatically if it is found to be violating limits.
- Use
/daemon
for all calls to the panel, rather than/remote
.
- Provide cleaner errors when a server is not found on the system. Return
HTTP/404
if server is missing, andHTTP/400
if the headrs are invalid.
- Fixes issue with private docker registries being applied to all images on the system when pulling.
[pre.3]
— Failed pack downloads/installs no longer cause the server to throw an error and fail installation.
- Docker containers are now named after the SFTP username to ease finding those servers in the listing.
- Servers can now auto-start on completion of the install process.
- Errors encountered when parsing files during pre-flight are now thrown to the console websocket to be displated to users.
- Server status changes are now displayed in the console stream, as well as clearer docker connection updates.
[pre.2]
— Fixes broken regex not detecting missing spaces in file parser text replacements.[pre.2]
— Address bug preventing editing of files via file manager in panel.
[pre.2]
— Re-addsmmmagic
dependency to address issues with file manager.
- Updated dependencies to latest versions.
[pre.1]
— Server boot now checks if service files exist for the server and if not throws a fatal error.[pre.1]
— Packs are now deleted if the hashes are different and a new one is being downloaded.
- Fixes potential bug with CPU math if no object is defined.
- Fixes bug with test suite due to missing eslint rule.
- Fixes crash that might occur if a server fails to install a docker container and is then deleted.
- Removes
mmmagic
dependency in favor of just checking the file extension as any potential mime bypassing is mitigated by low-level processes.
- Service configuration files are now retrieved from the panel the daemon is associated with rather than being locally managed. Any changes are automatically pulled on daemon boot.
- Daemon configuration is now possible using
npm run-script configure
to contact remote panel and collect the configuration file. - Support for sending commands and receiving server log over websockets.
socket.io
bumped to1.7.2
socketio-file-upload
bumped to0.6.0
in order to address a potential issue in file uploads in Chrome.- Minor version updates to multiple dependencies (no change in daemon function).
- SFTP subsystem now looking for container based on assigned ID and if a container is not found it will also attempt to locate it by image name before trying to create a new container.
- Fixes a race condition that would cause duplicate socket streams for data output and generally confuse both the panel and daemon.
- Fixes a race condition when booting SFTP subsystem container.
- Gamedig removed due to lac of updates and multiple security vulnerabilities in dependencies.
- Removed unused
is-json
dependency.
- Fixes a network configuration issue with
Docker 1.12.4
caused by no assigned IPv6 gateway.
- ICC is now enabled by default on
pterodactyl0
.
- Additional network configuration options are available in core.json if needed to customize network name and subnets.
- Added support for pulling images from private registries.
- Fixes runtime bug that broke socket connections on newly created servers until the daemon was restarted. This was most obvious if you created a new server and then started it and reloaded the page. Due to a modification in the build script the server was improperly initialized and requests would get sucked into the wrong portals.
- Fixes some race conditions and random bugs that would occur when attempting to create a server on the system.
- Fixes a flaw in underlying docker/dockerode implementation that would return a
container not found
error if there was an execution error in the container. Changeserr.statusCode
checks to simply read the response message and look forNo such container:
in the message instead.
- Added configurable docker policies to allow for more lax security settings if needed. The full list of policies can be found in our documentation.
- Added
PATCH /config
route to allow panel to tweak core configuration file.
- Changes the way that server creation is handled to allow initialization of the
Server()
class without a docker container existing on the system. This change causes the application startup to take longer if containers are missing for servers, as we hold application boot until all containers are created now. - Better file upload error handling, stops file upload if maximum size is exceeded rather than uploading to maximum size.
- Fixes a race condition when updating a server that would fail to assign the correct memory limits to a container.
- Fixes an issue where file decompression would be extremely slow on large files, and might never occur.
- Fixes mislabeled TeamSpeak 3 in configuration preventing proper boot sequence.
uploads.maxFileSize
removed in favor ofuploads.size_limit
which accepts a size in MB rather than bytes.
- Daemon now checks if it is up-to-date when booting.
- Fixes hardcoded path for SFTP containers that was causing a whole host of issues on some systems.
- Fixes previously known issue where decompressing large files through the file manager throws a
EMFILE: too many open files
error. - Fixes permissions and error response for URLs.
- Updates dependencies across the platform.
- Docker containers are now named with the template
<sftp username>:<randomstring:3>
for easier identification when runningdocker ps (-a)
. - Changes to deletion and creation function to run certain aspects in parallel to increase speed by utilizing
Async.auto()
. Most notable in the delete function. - Compression and Decompression now use native
tar
andunzip
modules to reduce memory footprint and keep things speedy. - Chown function now uses native module for speed and reliability purposes.
- Startup function modified to run more processes in parallel where possible to cut down on startup time.
- Daemon now requires Nodejs
v6
orv7
to run. Previous versions are no longer supported. - Daemon no longer supports Windows ecosystems due to changes in chown and compression functions.
- Fixes bug where Bungeecord and Spigot could not make use of certain features due to security restrictions. This release removes the
noexec
flag from the/tmp
directory. - Fixes bug where daemon would report an extraneous error when starting a container marked for rebuild.
- Fixes bug in certain file parsers that prevented the proper functioning of the parser.
- Support for
*
node in config file search, as well as support for search and replace in config values. Only applies toyaml
andjson
parsers. - Calling base route now returns system information for authenticated admins using the global token.
- Services now properly extend the
Core
class so that you only need to add functions and extendparent()
if something is being done differently. - Changed
{{ build.<options> }}
replacements in service configurations to useserver.
orconfig.
starts to identify values that should be replaced. This is a breaking change from0.3.0
ONLY if you are using custom templates.
- Fixes a fatal error that was thrown when rebooting servers at times even though there was no actual server error.
- Fixes a bug with the docker gateway being assigned with a subnet when it should not.
- Fixes a bug that didn't detected bungeecord server's first startup, preventing the correct allocation binding. Bungeecord servers cannot run on
:25577
without triggering this reboot line, apologies in advance.
🎉🎉
- Added method to handle assigning a percent extra memory to containers based on the current allocated. Should help with Minecraft servers hitting OOM when java attempts to allocate a bit over the hard limit.
- Support for ARK Servers.
- Switched to using a pure Socket.io stream to handle file uploads from the browser. Faster, and much less buggy.
- Added support for file copying.
- Added support for creating empty folders though the API.
- Changed some docker container creation options to prevent fork-bombing as well as prevent additional routes for privilege escalation in containers.
- Changed server startup async pathway to call
onStarting
notonStart
.onStart
is now called when server is marked as started. - Daemon now uses internal Docker API to determine the container interface to use. Better support for non-linux environments.
- Fallback to
minecraftping
method for all Minecraft servers to mitigate some Gamedig issues. - Dependencies are now hard-coded to prevent potential issues with the panel or version changes breaking features.
- Servers now report core stats when starting and wait for performing query.
- Query failures no longer spam log, and can be configured to kill servers after a set number of consecutive failures (or just keep on trucking).
- Daemon now defaults to checking for updated docker images unless specifically configured otherwise.
- The following API Endpoints have been modified:
GET /server/file/<file path>
->GET /server/file/f/<file path>
POST /server/file/<file path>
->POST /server/file/save
withpath
:/path/to/saveas.txt
andcontents
:file contents
DELETE /server/file/<file path>
->DELETE /server/file/f/<file path>
GET /server/download/<token>
->GET /server/file/download/<token>
- Properly call
onStop
,onStarting
, andonStart
when server actions occur. - Files with spaces in their name would break the
path()
function, this has been fixed. - Timezone was improperly set inside server containers.
- Decompressing large files through the file manager throws a
EMFILE: too many open files
error.
- BinaryJS has been removed due to it being abandoned and buggy.
- Remove PID limit that broke literally every Minecraft server with an "unrelated" error. Sorry about that...
Known Issue: Decompressing large files through the file manager throws a EMFILE: too many open files
error.
- Added method to handle assigning a percent extra memory to containers based on the current allocated. Should help with Minecraft servers hitting OOM when java attempts to allocate a bit over the hard limit.
- Support for ARK Servers.
- Changed some docker container creation options to prevent fork-bombing as well as prevent additional routes for privilege escalation in containers.
- Changed server startup async pathway to call
onStarting
notonStart
.onStart
is now called when server is marked as started.
- Properly call
onStop
,onStarting
, andonStart
when server actions occur. - Fix decompressing files setting the wrong permissions on extractions.
- Switched to using a pure Socket.io stream to handle file uploads from the browser. Faster, and much less buggy.
- Daemon now uses internal Docker API to determine the container interface to use. Better support for non-linux environments.
- Fallback to
minecraftping
method for all Minecraft servers to mitigate some Gamedig issues.
- Chown function was checking paths incorrectly which could lead to issues if a safe path is already passed (redundant pathing basically, not a security risk, jut causes a File not Found error).
- Files with spaces in their name would break the
path()
function, this has been fixed. - Timezone was improperly set inside server containers.
- BinaryJS has been removed due to it being abandoned and buggy.
- Dependencies are now hard-coded to prevent potential issues with the panel or version changes breaking features.
- Fixed bug preventing copy, rename, move of arrays of files.
- Fixed chown bug preventing files from being owned by the container running the server.
- Added support for file copying.
- Added support for creating empty folders though the API.
- Servers now report core stats when starting and wait for performing query.
- Query failures no longer spam log, and can be configured to kill servers after a set number of consecutive failures (or just keep on trucking).
- Daemon now defaults to checking for updated docker images unless specifically configured otherwise.
- The following API Endpoints have been modified:
GET /server/file/<file path>
->GET /server/file/f/<file path>
POST /server/file/<file path>
->POST /server/file/save
withpath
:/path/to/saveas.txt
andcontents
:file contents
DELETE /server/file/<file path>
->DELETE /server/file/f/<file path>
GET /server/download/<token>
->GET /server/file/download/<token>
- Configurable DNS servers in core configuration for docker containers.
- Bungeecord containers no longer spam up the console with ping information.
- If an environment variable is set to null don't even send it to the docker container. Fixes unset variable check bug for Spigot building.
- Fixed startup sequence to actually mark status as starting as well as prevent querying server until completely started.
- Root filesystem in containers is now entirely read-only. Container applications can only write to
/home/container
and/tmp
. - Prevent logging server output through docker logging methods. Fixes a potential DoS attack vector (and also saves space).
- Drops the following capabilities from containers:
setpcap
,mknod
,audit_write
,chown
,net_raw
,dac_override
,fowner
,fsetid
,kill
,setgid
,setuid
,net_bind_service
,sys_chroot
,setfcap
in addition to default dropped capabilities. - Containers are now in isolated networks and unable to directly connect to a container's specific IP address. The daemon will automatically create this network interface on boot.
Requires [email protected]
- Server Suspension, immediately stops running processes and blocks SFTP and API access.
- Automatic SFTP Container deployment when process is stated (previously required you manually add a container)
- Updating a server's memory, swap, block io, or cpu quota no longer requires a container rebuild and will take effect immediately.
- Better handling of preflight files. Allows using four different systems for parsing with find and replace capabilities (file, properties, ini, and yaml).
- Fixes bug that would display improper newlines with console data. Allows control characters and ANSI color codes to travel through.
- Updated ESLinter and with that updated code to reflect new standards for ES6
- Code Cleanup and more use of
lodash
module in place oftypeof
checks