All other apps require built-in support for being proxied under a subpath, so that they know to include the prefix in any links they generate. Some apps can auto-detect this based on metadata supplied by the proxy.
This configuration is specific to each application so there’s no single set of instructions that will “just work”. It might be possible to write instructions for common frameworks, e.g. Django, Flask, and maybe other Python apps that support WSGI, but even then each app may have its own idiosyncrasies.
Docker-compose is a nice way to spin up multiple services, but if you want to proxy them all via a single container such as a front-end Nginx container you’d run into the same problems with configuring prefixes for each service.
jupyter-server-proxy allows configuration to be provided in a python package so this could be part of the solution for supporting repo2docker apps?