TabVMs allows other people to easily view and control the status of VMs through a neat web UI.
TabVMs allows other people to easily view and control the status of VMs through a neat web UI.
Alot of these are frontend changes, I wanted to make the UX better by integrating a VNC viewer (noVNC) into the website.
I also styled the website a little more, Login page remains unchanged (I know some people complained about it) because I basically have NO idea what’s wrong with it.. (apparently it’s too bland, but I actually highly disagree, I think simplicity makes for the best user experience)
Sidenote: I hate CSS.
Log in to leave a comment
I finished making the configuration page. It was easy to make to be honest.
This change isn’t live yet, By the time this is read, it likely will have been, but I’m tired.
The video demonstrates two key parts, the obvious one being the configuration changes, but also config permissions. You can see that I’m not allowed to change the VMs RAM configuration. That’s it. Love you all!
I worked on the API, and now the endpoint for configuring the VM works. you can set the name, vCPU count, and max memory.
I also made a mock design for the settings menu. I’ll obviously go to adding fields later but I wanted to get the basic structure right.
Log in to leave a comment
I’m really forgetful huh, I have to start writing these more often or I’ll lose hours in between my devlogs!
so, just a quick recap of what I’ve done:
the video below demonstrates permissions in the beginning, half as a logged out user (that doesn’t have permission to start/stop VMs), and the other half as a logged in user (that does have permission to do those things).
the other half demonstrates graphics, TabVMs tells you when you’ll need a web-viewer (since Cloudflare Tunnels is such a great product). You can see me connect through NoVNC to a VM that’s not running any OS.
Log in to leave a comment
I don’t really know how I’d explain the changes here in a brief devlog, so I’ll list each change and explain why I made it.
examplenode-vnc1.devranch.ovh. Because that’s how the tunneling goes... I think this is it. I think I’ll make a TempleOS VM with a proper VNC server in the demo soon enough
This took a while of brainstorming but it turned out to be simple. My plans next are:
Log in to leave a comment
I made TabVMs because I wanted an easy way for family members who only have phones to be able to access a desktop without having to use someone elses machine.
This project was very experimental, I used stuff I’ve never used before (fastapi, react, vite, cloudflare pages) but I’d say it all paid off and the website functions well so far.
The hardest part by far was the frontend, since it’s written in Javascript and there are so many gotchas with JS. but the project in general was pretty simple
after a long while, I finally got TabVMs deployed.
I had to add two things, proper error messaging and CAPTCHA support. Those two features caused a ton of headaches for me as a React newbie, but I got everything working eventually.
All that’s left is putting this stuff on a Raspberry Pi so that it can be available 24/7 for anyone planning to test
alot of internal work, but I also added preferences! you can now choose whether or not TabVMs should feature square corners, with rounded corners being the default.
Log in to leave a comment
Added authentication for the panel backend, which will make it actually secure.
For now, not being authenticated means losing access to every feature. I plan on making certain things anonymously accessible (it’ll be a changeable config)
Also redesigned everything to be square. I love the square design more.
Log in to leave a comment
Graphics information is now shown to the user, so they can connect with whatever client they have!
the colors are prettier now, I think
Log in to leave a comment
added simple start/stop controls for VMs
(CPU usage is supposed to be in %)
Log in to leave a comment
Added a live feed that tracks information about each VM.
Log in to leave a comment
I got a simple frontend working, with a simple status page.
It lists each node, and each VM running in that node. It also color-codes the name based on its running status. So far, it’s only binary (running, or not), but maybe additional statuses for sleep could be added!
Log in to leave a comment