Uninstallation

Panel

  1. 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/
  2. Delete the new files you copied from panel/new-files/ (see the full list in Installation: Panel).

  3. Roll back the migrations (optional, only if you also want to delete the data):

    bash
    php artisan migrate:rollback
    

    If you'd rather keep the history of assigned domains (for example for auditing), leave the tables and skip this step.

  4. Rebuild the frontend to drop the component from the final bundle:

    bash
    yarn run build:production
    
  5. Clear caches:

    bash
    php artisan config:clear
    php artisan route:clear
    php artisan view:clear
    

Wings (on each node)

  1. Remove the 5 routes injected into router/router.go (the protected.POST/DELETE/GET /api/proxy/* block).

  2. Delete the 4 addon files:

    • proxy/manager.go
    • proxy/certbot.go
    • proxy/validator.go
    • router/router_proxy.go
  3. Recompile:

    bash
    go build -o wings
    
  4. Restart the service:

    bash
    systemctl restart wings
    
  5. 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):

    bash
    rm -rf /etc/nginx/conf.d/pawproxy
    rm -rf /etc/nginx/ssl/pawproxy
    nginx -s reload
    

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 →