Hi everyone, I'm a solo developer and I'm excited to share a tool I’ve been building and using for some time called VM Explorer. It’s a self-hosted control plane for managing Linux server fleets with application-level access control.
It all started with the most basic need- moving files in and out of my vms. I had Python HTTP servers running just to download/upload files(I'm not very fond of using scp). It was simple, but i still needed to log into SSH to check logs, start/stop services. I thought, why not have one single place for all of this?
That's how I ended up building a file manager with some basic file controls over HTTPS, accessible through any web browser. But I couldn't leave it open to the public, so I started building proper authentication, roles, and permissions system around it. and before i knew it, VM Explorer took shape.
I've been using it for a couple of months for my own personal use and at work, and it made things incredibly convenient for me. So, i thought it was time to share it with the world. I would love to hear your thoughts. The website has a live demo mode which lets you try it out without logging in, so please give it a spin!
A quick overview of core features VM Explorer have:
- Web-based PTY terminal, built on nodePty. (upto 4 split terminals as once, each can run as different users from different servers).
- A full file manager (w/ files viewer/editor), allows cross-VM transfers. You can add as many servers as you want and transfer data between them directly (no FTP/SFTP, just direct download/upload over HTTPS, authenticated using your jwt tokens). You can also generate temporary, expiring public download links for any file/folder.
- Granular access control, create application-level users in seconds and restrict them to specific directories or specific system users (for the terminal). No need to manage SSH keys or user accounts on every server.
- Audit Logs, saved locally in SQLite, but you can export them or pipe them manually, on schedule or in real-time to Postgres, MySQL, MongoDB, or Webhooks.
Tech Stack:
- The daemon runs as a root systemd service. All communication between the backend and frontend is done over secure HTTPS (multi-SAN self-signed certs are auto-generated, and you can update your own cert paths anytime in /etc/vm-explorer/.env).
- Backend is built with Fastify (node.js/typeScript) and uses local SQLite to store the app's data.
- Frontend is built with React.js, SCSS, and Tailwind. It's also configured as a PWA if you want to install it as a standalone app on your desktop or mobile.
I've gone with a lifetime licensing approach because let's be honest neither of us would want to pay a monthly subscription for this kind of utility tool. So yeah, one time payment and you get to use it for life. I do plan on keep adding features to it and will support the existing users with bug/feature updates for atleast my lifetime.
Pricing:
- $49.99 - Solo (1 VM)
- $99.99 - Pro (5 VMs)
- $249.99 - Cluster (20 VMs)
For security conscious people, I want to clarify that the app works solely on your own system, it only ever interacts with my server in only these cases:
- License Activation/Deactivation
- A one-time license key validation once the license key is 30-days old (after which it is permanent, even if you later choose to deactivate and activate it in another machine).
- App Updates (totally optional)
- Any bug reports if you choose to send them (also optional, only what you write in the message is sent, I don't collect any system logs or any data).
All of these (except one-time validatation) are initiated by users directly.
Thank you for reading all that and making it this far :)
I will be around in the comments to answer any questions you may have.
Hi everyone, I'm a solo developer and I'm excited to share a tool I’ve been building and using for some time called VM Explorer. It’s a self-hosted control plane for managing Linux server fleets with application-level access control.
It all started with the most basic need- moving files in and out of my vms. I had Python HTTP servers running just to download/upload files(I'm not very fond of using scp). It was simple, but i still needed to log into SSH to check logs, start/stop services. I thought, why not have one single place for all of this?
That's how I ended up building a file manager with some basic file controls over HTTPS, accessible through any web browser. But I couldn't leave it open to the public, so I started building proper authentication, roles, and permissions system around it. and before i knew it, VM Explorer took shape.
I've been using it for a couple of months for my own personal use and at work, and it made things incredibly convenient for me. So, i thought it was time to share it with the world. I would love to hear your thoughts. The website has a live demo mode which lets you try it out without logging in, so please give it a spin!
A quick overview of core features VM Explorer have:
- Services, Disks & Processes monitoring & management.
- Web-based PTY terminal, built on nodePty. (upto 4 split terminals as once, each can run as different users from different servers).
- A full file manager (w/ files viewer/editor), allows cross-VM transfers. You can add as many servers as you want and transfer data between them directly (no FTP/SFTP, just direct download/upload over HTTPS, authenticated using your jwt tokens). You can also generate temporary, expiring public download links for any file/folder.
- Granular access control, create application-level users in seconds and restrict them to specific directories or specific system users (for the terminal). No need to manage SSH keys or user accounts on every server.
- Audit Logs, saved locally in SQLite, but you can export them or pipe them manually, on schedule or in real-time to Postgres, MySQL, MongoDB, or Webhooks.
Tech Stack:
- The daemon runs as a root systemd service. All communication between the backend and frontend is done over secure HTTPS (multi-SAN self-signed certs are auto-generated, and you can update your own cert paths anytime in /etc/vm-explorer/.env).
- Backend is built with Fastify (node.js/typeScript) and uses local SQLite to store the app's data.
- Frontend is built with React.js, SCSS, and Tailwind. It's also configured as a PWA if you want to install it as a standalone app on your desktop or mobile.
I've gone with a lifetime licensing approach because let's be honest neither of us would want to pay a monthly subscription for this kind of utility tool. So yeah, one time payment and you get to use it for life. I do plan on keep adding features to it and will support the existing users with bug/feature updates for atleast my lifetime.
Pricing:
- $49.99 - Solo (1 VM)
- $99.99 - Pro (5 VMs)
- $249.99 - Cluster (20 VMs)
For security conscious people, I want to clarify that the app works solely on your own system, it only ever interacts with my server in only these cases:
- License Activation/Deactivation
- A one-time license key validation once the license key is 30-days old (after which it is permanent, even if you later choose to deactivate and activate it in another machine).
- App Updates (totally optional)
- Any bug reports if you choose to send them (also optional, only what you write in the message is sent, I don't collect any system logs or any data).
All of these (except one-time validatation) are initiated by users directly.
Thank you for reading all that and making it this far :) I will be around in the comments to answer any questions you may have.