I managed to do it using this post: Add nginx reverse proxy - #3 by ajlennon
The trick is to make sure every service’s base url has to be changed to accept the subfolder, so for node-red the settings.js had to be changed to include:
httpAdminRoot: '/node-red',
Also the Traefik solution is more practical because I only need to change the docker compose file for each change. With caddy I need to purge my data each time and upload a new caddy file.