Ok looks like the solution is to add two routers: One for the HTTP traffic as entrypoint and one for the HTTPS traffic to serve the actual application.
My follow-up question is: Is there a more simple way to write this? It looks pretty bloated for me, why do I need to have 2 routers just for a god damn redirect? It would be so much cooler if we could just write it like this:
But now I have the problem that no redirect will happen for the api router.. grafana and prometheus are working fine, the api router just works when I go to https:///dashboard/ directly..
Also, if I try to connect to http://<censored>/grafana/?orgId=1 directly it will not work due to the ?orgId=1 in the Path, I guess. Shouldn't that part just be passed on to the router? or do I need to use Regex in my PathPrefix Rule?
Ok, interesting.
Looks like one issue has been the missing service in the common router. When I attach any service to it, it works as expected for grafana and prometheus. It also seems to work for the dashboard. The only thing what is missing now is a working dashboard redirect to /dashboard/
What I strongly dislike is the need for a service in the common-router and that the dashboard will only appear on /dashboard/. Would be cool if I could get forwarded to /dashboard/. But the latter is just nut picking.. I think I will open a Bug report for the needed service.. I think it's unnecessary and it should be possible to define a router without a service just for redirecting or routing to another router..