How to share a dashboard via public link but with a restrictive filter?

I have a dashboard for users, it contains 2 filters, username and date. I want to share this dashboard with around 20 users, but a user should only see his data only.
So when they receive the dashboard, the username filter should be this user's username, and the date filter should be open normally to them.
Is there a way to get this done without making duplicate 20 dashboards (or more in the future) for each and every user?

Embed the dashboard in a webpage. Lock the username parameter. Pass the username to the embed.

Thank you @AndrewMBaines
I don't really have any web dev experience. Is there a way to do it without having to make a web page?

I'd be happy to do it for you. We'd just need to discuss cost. Send me a PM if you're interested.