Open-Balena dashboard project

Hello

I started to build Open Balena dashboard

It’s fully front-end now just a wrapper for balena-sdk, but feel free to raise an issue to port any functionality of Balena Dashboard
Github:

Dashboard dist:

For now it supports:
Listing applications
Listing devices and status in applications
Get logs
Attach to logs

Link - https://api.YOURBALENAINSTANCE
Login - your email
Password - your openbalena password

Greetings,
Adam

6 Likes

This is awesome, good job :tada:

Massive thanks for putting the time into this one!

Would be helpful if there was a demo available that didn’t involve entering server details into your hosted version. Even some screenshots on the repo would suffice, alongside a feature list?

1 Like

This is working fully on client side (full javascript), so no data is going over any server besides downloading index.html and js scripts, and then all requests are going over your open-balena instance

Page is also hosted on github, on “page” branch, and this is serving only static files

I will add some screenshoots

2 Likes

Fantastic, what a difference a clean interface will make!

1 Like

Super cool to see this @Razikus!

I just added Dockerized version of it, and also some actions:
Editing device name
Editing device note
Rebooting device
Restarting device application
Refreshing state

Next step will be to add device environment variables probably, cause it’s very annoying to set them over CLI

3 Likes

Application environment variables added, so you can now set and delete application env variables (device env are coming)
Also i enchanced a bit the UI

2 Likes

Nice work!

John

Looking great @Razikus!

Hello

I just added and ported tunneling service.
Unfortunately it can’t be realized fully via frontend yet :frowning: (raw tcp sockets still not available)
I ported balena tunnel to python also

SSH is very slowly cause i used 8192 bit key with passphrase

Tunneling service is authorizing via token that you got from open-balena

It supports:
raw TCP socket (port -> tunnel -> device)
webssh raw TCP socket (port -> webssh -> tunnel -> device)
traefik (domain -> traefik -> tunnel -> device) XIP/own domain
ssh traefik (domain -> traefik -> webssh -> tunnel -> device) XIP/own domain

It realizes everything on docker containers and labels, cause i will add swarm implementation later later

Open-balena-dashboard can use tunneler service or not.
For now open-balena-dashboard supports only traefik domain and ssh traefik domain with XIP dns resolver

I will put more READMEs later

1 Like

I just released Android APP for open balena!

1 Like

It’s great to see progress, I’m sure a lot of people will find this useful, thanks again for contributing @razikus!

1 Like

Super cool idea, I’ve often thought of doing something similar! Would you consider an option to use an API key to login instead of an email and password? I think that’d feel a bit more secure from a user standpoint.

@ca1ebd hmm why not, you mean not api key but token of logged open balena user?
it uses your backend and your openbalena instance, and implementation besides tunneler is fully front end

What i mean here is that if i want to implement api tokens it needs to be implemented inside open balena itself

Btw, today i added device environment editor
Probably i will add release manager and pinner soon

1 Like

@Razikus Looking at the documentation I believe I do mean an auth token, such as the login_with_token() call exposed here in the Python SDK: Balena Python SDK - Balena Documentation

Ok i understand, so you will login outside the login form, and just pass the token

I will consider that

This is awesome @Razikus! I’m loving your work. :grin:

1 Like

This is great! keep going!

@Razikus tested your project a bit. Very nice work.

I am struggling a little with the tunnel however. GitHub - scribe-systems-sp/open-balena-tunneler the repo doesnt make clear where exactly to install it. Could you provide some info on how you set it up?