Skip to content
GuidesAddons5 min read

Better Console

Installer

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:

bash
ainx install betterconsole.ainx

There 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:

bash
sudo install -D -m 0644 \
  translations/en/betterconsole.php \
  resources/lang/en/betterconsole.php

php artisan optimize:clear

For 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

Choose a C-Wings installation method

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:

bash
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 wings

Release page: Tomaxikz/daemon dev-latest.

Build and verify

Format the touched files, run the package tests, build, and install the binary:

bash
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 wings

Open a server console and pull an image to confirm progress events appear. If the service fails to start, inspect the latest logs:

bash
sudo journalctl -u wings -n 100 --no-pager