There is no way to do this and there is a big reason why. If you make one dashboard public you will have to make your data source public (ie anyone can query against it).
This justification is seemingly right from a technical perspective. It is wrong, of course, from a usability perspective. It is the perennial illusion of software engineers that technology trumps usability; no, it’s exactly the other way around. Software is made for people, not people for software.
Whatever the technical justification may be, one could always point out to many other dashboard apps out there that would happily provide public dashboards. First example that comes to mind - DataDog. I’ve used their public dashboards for a long time. Nobody stole the data source. Why? Because they don’t expose the data source in the public dashboard.
Sometimes one needs to step away from the narrow, code-only point of view, and look at the app from a larger perspective. How is it used? How do users interact with it? What do they want from it? It’s easy to get lost in thousands of lines of code, and forget the actual people using your stuff.
“Dad, I can’t go to school tomorrow.”
“My bicycle broke.”
“Well, just fix the bicycle and suddenly going to school will become possible.”
How many times I had a discussion like this with my kids? Sometimes there needs to be an adult in the room to bring clarity of direction. I feel Grafana as a project is in a similar situation. Not having a public dashboard option, and offering some narrow, ivory-tower technical “reason” as a reply, is not a serious justification.
The lesson to take home is that exposing the data sources in dashboards, always or at least in some situations, is a bad idea. Get rid of that, or somehow control it selectively, and having public dashboards (a basic, meat-and-potatoes feature for many other dashboard apps) suddenly becomes possible.
This also shows the importance of architectural decisions made very early on. Should we expose the data sources in the dashboards? Sure, because it’s easier. Then later on that decision comes back to haunt you, when you realize it blocks your ability to offer some basic feature that everyone else offers by default.