Releases: RedlanceMinecraft/wings
Releases · RedlanceMinecraft/wings
v2
v1
Added
- Support relative file paths for the Wings config (#180)
Fixed
- Folders not being sorted before files properly (#5078
Fixed
- Arbitrary File Write/Read (GHSA-gqmf-jqgv-v8fw)
- Server-side Request Forgery (SSRF) during remote file pull (GHSA-qq22-jj8x-4wwv)
- Invalid
Content-Typebeing used with thewings diagnosticscommand (#186)
Fixed
- Archives randomly ignoring files and directories (#5027)
- Crash when deleting or transferring a server (#5028)
Changed
- Release binaries are now built with Go 1.20.10 (resolves CVE-2023-44487)
- Updated Go dependencies
Fixed
Fixed
Fixed
- Backups being restored from remote storage (s3) erroring out due to a closed stream.
- Fix IP validation logic for activity logs filtering out valid IPs instead of invalid IPs
Added (since 1.7.2)
- More detailed information returned by the
/api/systemendpoint when using the?v=2query parameter.
Changed (since 1.7.2)
- Send re-installation status separately from installation status.
- Wings release versions will now follow the major and minor version of the Panel.
- Transfers no longer buffer to disk, instead they are fully streamed with only a small amount of memory used for buffering.
- Release binaries are no longer compressed with UPX.
- Use
POSTinstead ofGETfor sending the status of a transfer to the Panel.
Fixed (since 1.7.2)
- Fixed servers outgoing IP not being updated whenever a server's primary allocation is changed when using the Force Outgoing IP option.
- Fixed servers being terminated rather than gracefully stopped when a signal is used to stop the container rather than a command.
- Fixed file not found errors being treated as an internal error, they are now treated as a 404.
- Wings can be run with Podman instead of Docker, this is still experimental and not recommended for production use.
- Archive progress is now reported correctly.
- Labels for containers can now be set by the Panel.
- Fixed servers becoming deadlocked when the target node of a transfer goes offline.
Changed
- Wings release versions will now follow the major and minor version of the panel.
- Transfers no longer buffer to disk, instead they are fully streamed with only a small amount of memory used for buffering.
- Release binaries are no longer compressed with UPX.
Fixed
- Wings can be run with podman instead of Docker, this is still experimental and not recommended for production use.
- Archive progress is now reported correctly.
- Labels for containers can now be set by the Panel.
Fixed
Fixed
- The S3 backup driver now supports Cloudflare R2
Added
- During a server transfer, there is a new "Archiving" status that outputs the progress of creating the server transfer archive.
- Adds a configuration option to control the list of trusted proxies that can be used to determine the client IP address.
- Adds a configuration option to control the Docker username space setting when Wings creates containers.
Changed
- Releases are now built using
Go 1.18— the minimum version required to build Wings is nowGo 1.18.
Fixed
- Fixes multi-platform support for Wings' Docker image.
Added
- Adds support for tracking of SFTP actions, power actions, server commands, and file uploads by utilizing a local SQLite database and processing events before sending them to the Panel.
- Adds support for configuring the MTU on the
pterodactyl0network.
Fixed
- Fixes SFTP authentication failing for administrative users due to a permissions adjustment on the Panel.
Fixed
- Fixes error that would sometimes occur when starting a server that would cause the temporary power action lock to never be released due to a blocked channel.
- Fixes a bug causing the CPU usage of Wings to get stuck at 100% when a server is deleted while the installation process is running.
Changed
- Cleans up a lot of the logic for handling events between the server and environment process to make it easier to make modifications to down the road.
- Cleans up logic handling the
StopAndWaitlogic for stopping a server gracefully before terminating the process if it does not respond.
Fixed
- Rewrote handler logic for the power actions lock to hopefully address issues people have been having when a server crashes and they're unable to start it again until restarting Wings.
- Fixes files uploaded with SFTP not being owned by the Pterodactyl user.
- Fixes excessive memory usage when large lines are sent through the console event handler.
Changed
- Replaced usage of
encoding/jsonthroughout the codebase with a more performant encoder (goccy/go-json) to hopefully improve overall performance for JSON operations. - Added custom
ContainerInspectfunction to handle direct calls to Docker's CLI and make use of the new JSON encoder logic. This should reduce the total number of memory allocations and be more performant overall in a hot pathway.
Fixed
- Fixes SSL paths being improperly converted to lowercase in environments where the path is case-sensitive.
- Fixes a memory leak due to the implemention of server event processing.
Changed
- Selecting to redact information now redacts URLs from the log output when running the diagnostic command.
Added
- Adds support for modifying the default memory overhead percentages in environments where the shipped values are not adequate.
- Adds support for sending the
Access-Control-Request-Private-Networkheader in environments where Wings will be accessed over a private network. This is defaulted tooff.
Fixed
- Fixes servers not properly re-syncing with the Panel if they are already running causing them to be hard-stopped when terminated, rather than stopped with the configured action.
Changed
- Changes SFTP server implementation to use ED25519 server keys rather than deprecated SHA1 RSA keys.
Added
- Adds server uptime output in the stats event emitted to the websocket.
Fixed
- Fixes a race condition when setting the application name in the console output for a server.
- Fixes a server being reinstalled causing the
file_denylistparameter for an Egg to be ignored until Wings is restarted. - Fixes YAML file parser not correctly setting boolean values.
- Fixes potential issue where the underlying websocket connection is closed but the parent request context is not yet canceled causing a write over a closed connection.
- Fixes race condition when closing all active websocket connections when a server is deleted.
- Fixes logic to determine if a server's context is closed out and send a websocket close message to connected clients. Previously this fired off whenever the request itself was closed, and not when the server context was closed.
Added
- Exposes
8080in the default Docker setup to better support proxy tools.
Changed
- Releases are now built using
Go 1.17— the minimum version required to build Wings remainsGo 1.16. - Simplifed the logic powering server updates to only pull information from the Panel rather than trying to accept updated values. All parts of Wings needing the most up-to-date server details should call
Server#Sync()to fetch the latest stored build information. Installer#New()no longer requires passing all of the server data as a byte slice, rather a newInstaller#ServerDetailsstruct is exposed which can be passed and accepts a UUID and if the server should be started after the installer finishes.
Removed
- Removes complicated (and unused) logic during the server installation process that was a hold-over from legacy Wings architectures.
- Removes the
PATCH /api/servers/:serverendpoint — if you were previously using this API call it should be replaced withPOST /api/servers/:server/sync.
Fixed
- Environment variable starting with the same prefix no longer get merged into a single environment variable value (skipping all but the first).
- The
start_on_completionflag for server installs will now properly start the server. - Fixes socket files unintentionally causing backups to be aborted.
- Files extracted from a backup now have their preior mode properly set on the restored files, rather than defaulting to 0644.
- Fixes logrotate issues due to a bad user configuration on some systems.
Updated
- The minimum Go version required to compile Wings is now
go1.16.
Deprecated
Both of these deprecations will be removed in
Wings@2.0.0.
- The
Server.Id()method has been deprecated in favor ofServer.ID(). - The
directoryfield on the/api/servers/:server/files/pullendpoint is deprecated and should be updated to userootinstead for consistency with other endpoints.
Added
- [security] Adds support for limiting the total number of pids any one container can have active at once to prevent malicious users from impacting other instances on the same node.
- Server install containers now use the limits assigned to the server, or a globally defined minimum amount of memory and CPU rather than having unlimited resources.
Fixed
- Fixes the
~character not being properly trimmed from container image names when creating a new server.
Changed
- Implemented exponential backoff for S3 uploads when working with backups. This should resolve...