1 pointby dev-drav6 hours ago1 comment
  • dev-drav6 hours ago
    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.