Better Console
Better Console V-A.1.0.0 is installed in two layers. The panel package provides the interface, translations, and build assets. Patched Wings provides image-pull progress, permission-aware install output, and the optional SSH console. Install the panel package first, then choose one daemon method.
Back up a modified Wings source tree before applying scripts or patches. The automated tools stop when they cannot find a safe source anchor instead of guessing.
Run the installer from the Pterodactyl panel root—the directory containing yarn.lock:
ainx install betterconsole.ainxThere are no legacy Better Console panel edits to remove for a normal package installation.
Optional translations
The bundle includes the canonical English catalog at translations/en/betterconsole.php. Better Console works without this file and falls back to its built-in English strings. No Better Console controller, endpoint, route, or middleware is required for translations.
To expose the optional betterconsole namespace through a compatible panel theme, copy the catalog and clear Laravel's caches:
sudo install -D -m 0644 \
translations/en/betterconsole.php \
resources/lang/en/betterconsole.php
php artisan optimize:clearFor another locale, place the translated catalog at resources/lang/<locale>/betterconsole.php. Preserve the complete key tree and Laravel placeholders such as :name, :count, and :path.
The install, update, and remove scripts deliberately leave resources/lang untouched. Removing Better Console will not remove a catalog installed manually by a customer.Panel and daemon responsibilities
Ainx and Blueprint install the panel-side addon files and build steps. They do not replace Wings. Without the daemon update, Better Console can load in the panel, but image-pull progress, protected install-output events, and the SSH console remain unavailable.
Install C-Wings
Wings modifications
The prebuilt binary is the lowest-conflict option. For a source build, use the smart script. Use a patch when you need a reviewable Git change, and use manual recovery only when another addon conflicts with the patch.
Run this in Bash on your existing Wings node. The download command automatically selects the x86-64 or ARM64 binary from our latest dev-latest build:
sudo systemctl stop wings
sudo curl -fL --retry 3 -o /usr/local/bin/wings "https://github.com/Tomaxikz/daemon/releases/download/dev-latest/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"
sudo chmod u+x /usr/local/bin/wings
sudo systemctl restart wingsRelease page: Tomaxikz/daemon dev-latest.
Build and verify
Format the touched files, run the package tests, build, and install the binary:
gofmt -w config/config.go \
environment/docker/betterconsole_pull_progress.go \
environment/docker/betterconsole_pull_progress_test.go environment/docker/container.go \
server/betterconsole_events.go server/betterconsole_pull_progress.go \
server/betterconsole_pull_progress_test.go server/install.go server/listeners.go \
router/websocket/betterconsole_events.go router/websocket/listeners.go \
router/websocket/listeners_test.go router/websocket/websocket.go \
sftp/betterconsole_shell.go sftp/server.go sftp/server_security_test.go
go test ./environment/docker ./server ./router/websocket ./sftp
go build
sudo systemctl stop wings
sudo install -m 0755 wings /usr/local/bin/wings
sudo systemctl start wings
sudo systemctl is-active wingsOpen a server console and pull an image to confirm progress events appear. If the service fails to start, inspect the latest logs:
sudo journalctl -u wings -n 100 --no-pager