Uninstallation
Panel
-
Revert the 6 injected fragments (or restore those files from your version control if you had them in git before installing the addon):
routes/api- client. php routes/admin. php app/Models/ Permission. php app/Models/ Node. php resources/scripts/ routers/ routes. ts - the 5 blades in
resources/views/ admin/ nodes/ view/
-
Delete the new files you copied from
panel/(see the full list in Installation: Panel).new- files/ -
Roll back the migrations (optional, only if you also want to delete the data):
bashphp artisan migrate:rollbackIf you'd rather keep the history of assigned domains (for example for auditing), leave the tables and skip this step.
-
Rebuild the frontend to drop the component from the final bundle:
bashyarn run build:production -
Clear caches:
bashphp artisan config:clear php artisan route:clear php artisan view:clear
Wings (on each node)
-
Remove the 5 routes injected into
router/(therouter. go protected.block).POST/ DELETE/ GET / api/ proxy/ * -
Delete the 4 addon files:
proxy/manager. go proxy/certbot. go proxy/validator. go router/router_ proxy. go
-
Recompile:
bashgo build -o wings -
Restart the service:
bashsystemctl restart wings -
Optional: clean up what's left on the node (this takes down any proxy that was still active, only do this if you no longer need any of them):
bashrm -rf /etc/nginx/conf.d/pawproxy rm -rf /etc/nginx/ssl/pawproxy nginx -s reload
Recommended order
Uninstall the panel side first (so nobody can create new domains while you're removing Wings), then go node by node with Wings. If you do it the other way around, a user could create a domain right when you've already removed Wings' routes on that node, and the job would keep failing indefinitely until you clean up the record by hand in the database.
Next: Package structure →

