Show HN: Dashboard – self-hosted accounts, orgs and subscriptions for web apps(github.com)
github.com
Show HN: Dashboard – self-hosted accounts, orgs and subscriptions for web apps
https://github.com/userdashboard/dashboard
9 comments
Why did you name this “Dashboard”? Very confusing since “dashboard” is such a generic and well-used term in software engineering.
I'm also working on a project called "Dashboard" [1]. But I agree - while the name fits perfectly, it's way to generic to find it anywhere.
[1] https://github.com/darekkay/dashboard
[1] https://github.com/darekkay/dashboard
While I agree, I also kind of like it. Aside from that, the project looks really awesome. Great job!
Project looks awesome, but I was a little confused. Is this a centralized user management with payments proxy to many application backends?
https://userdashboard.github.io/home
The home page did a really good job explaining with images, but wanted to confirm.
https://userdashboard.github.io/home
The home page did a really good job explaining with images, but wanted to confirm.
This is implemented now, you can add a "before" request handler [1] and inspect the HOST header to check the domain and switch to an alternative configuration for that request. Dashboard compiles a global.packageJSON [2] holding your template, title, menu links etc and you can override that per-request by setting an alternative req.packageJSON for more individualized site settings too. Each of your application servers can serve a '/public/template-additional.css' and '/public/content-additional.css' to override the appearance as well.
[1] https://userdashboard.github.io/request-handlers
[2] https://userdashboard.github.io/package-json
module.exports = {
before: async (req) => {
switch (req.host) {
case 'domain1.com':
req.dashboardServer = 'domain1.com'
req.applicationServer = 'http://localhost:7000'
req.applicationServerToken = 'shared secret'
break
}
}
}
This will work with per-site user accounts because the data was already partitioned by the dashboard server address. I think for sharing accounts across multiple websites you could just omit changing the req.dashboardServer.[1] https://userdashboard.github.io/request-handlers
[2] https://userdashboard.github.io/package-json
[deleted]
You host a uniquely-configured copy of Dashboard for each web application. It only requires some small changes I can investigate tomorrow that would let you use one copy for multiple applications.
This is pretty interesting. Is there any prior art for things like this? User management that integrates with a specific target application, I mean, rather than say a generic SSO solution.
There is similar stuff for games and mobile apps but you're usually left implementing your own UI in whatever technology on top of a REST API.
https://xsolla.com
Another analogy is Facebook some years ago when Farmville and Zynga were incredibly popular. Facebook had this platform for apps where you wrote "FBML" which was a secured subset of HTML they would translate and then put into a frame on their website where people would use your app or game. If you were writing an app in that era you would fetch user information from their API etc. HTML has changed enough to skip an intermediate FBML language today.
Drupal and WordPress are also quite similar the main difference is your content, your application, resides on a second server instead of combined which is how Dashboard is stack-agnostic.
https://xsolla.com
Another analogy is Facebook some years ago when Farmville and Zynga were incredibly popular. Facebook had this platform for apps where you wrote "FBML" which was a secured subset of HTML they would translate and then put into a frame on their website where people would use your app or game. If you were writing an app in that era you would fetch user information from their API etc. HTML has changed enough to skip an intermediate FBML language today.
Drupal and WordPress are also quite similar the main difference is your content, your application, resides on a second server instead of combined which is how Dashboard is stack-agnostic.