PawTrash needs to touch Wings' code because that's where the actual delete operation lives. That's why this addon ships as source code for you to compile, never as a pre-built binary - so you can audit exactly what changes before running it on your nodes.
Repeat these steps on every node where you want the trash to work.
1. Clone the official Wings source
Use the same version you're already running:
git clone https://github.com/pterodactyl/wings.git
cd wings
git checkout <your-current-version>
2. Copy the new files in
wings/→new- files/ router/ router_ trash. go router/router_ trash. go wings/→new- files/ server/ filesystem/ trash. go server/filesystem/ trash. go
3. Apply the fragments to existing files
Same as on the panel side, each fragment names the real file and the exact method it replaces:
wings/→ adds theinjected- code/ router_ _ router. go /route group intrash router/, as a sibling to the existingrouter. go filesandbackupgroups.wings/→ replaces the bodies ofinjected- code/ server_ filesystem_ _ filesystem. go Delete()andRename()inserver/with a call into the new logic (two lines total).filesystem/ filesystem. go
4. Build
From the root of your Wings clone:
GOOS=linux GOARCH=amd64 go build -o wings .
If you're building directly on the Linux node you'll run it on, plain go build - (no GOOS/GOARCH) is enough.
5. Replace the binary and restart the service
systemctl stop wings
cp /usr/local/bin/wings /usr/local/bin/wings.bak
cp wings /usr/local/bin/wings
chmod +x /usr/local/bin/wings
systemctl start wings
Servers that were already running on that node aren't affected by restarting Wings - it reattaches to whatever containers were already active.
Previous: Panel Installation · Next: Node Configuration

