Show HN: I built a tool to manage deployments across your VPS through a web UI

quickstack.dev

5 points by j_meier 2 days ago

There are plenty of ways to deploy your apps. PaaS options like Vercel or Netlify are convenient but can get pricey as projects scale. VPS hosting is cheaper, but setting it up (Linux, networking, SSL, etc.) can be daunting.

That’s why glueh-wyy-huet (https://github.com/glueh-wyy-huet) and I (https://github.com/biersoeckli) built QuickStack during our bachelor studies at Eastern Switzerland University of Applied Sciences. QuickStack simplifies deployment by letting you deploy directly from a Git repo or Docker registry to any VPS. It’s free, open source, and installs with a single command on your VPS.

Unlike great tools like CapRover, Easypanel or Coolify, QuickStack is built on lightweight Kubernetes (k3s) and uses Longhorn for distributed storage, enabling multi-VPS clusters managed through a single UI. Persistent app volumes are distributed across the cluster automatically.

Features include Git deploys, live logs, web-terminal, SSL cert generation, backups, monitoring, and single-VPS setups for smaller needs.

We’d love your feedback. Check it out on https://quickstack.dev and have fun deploying with QuickStack!

mhrmsn 2 days ago

Congratulations on the launch! I've been using CapRover in the past and wanted to try out Coolify recently, could you elaborate what the advantages of k3s/Longhorn might be (no experience with them)?

Are deployments from Github Actions possible (I'd assume some interface/API is needed for that)?

Thanks!

  • j_meier 2 days ago

    Hey mhrmsn

    Coolify and CapRover use Docker under the hood, which works great if you’re running a single VPS. However, if you plan to host multiple apps on the VPS and need to scale the load across multiple VPS instances (a cluster), things get more complex. I once tried scaling with CapRover, and it worked, but the main challenge was storage management.

    For example, if you’re running a database, its storage is tied to a specific VPS node. This means the database can only run on that particular node. In contrast, if you use k3s with Longhorn, volumes attached to a container are automatically replicated across multiple VPS nodes. This setup ensures that it doesn’t matter which node your database runs on. If a VPS node goes down, the database can seamlessly run on another node.

    For automated deployments you can generate a webhook url and add it to your GitHub or Gitlab repo and configure it so that if you push new commits, the newest version will automatically be deployed on QuickStack.

    I hope this answers your question! :)

    • mhrmsn 2 days ago

      That was very helpful, thanks! Might give it a shot later this week for a new API :)

oulipo 2 days ago

Looks a bit like a fork of Dokploy, how does it compare?

  • j_meier 2 days ago

    Hey oulipo,

    QuickStack isn't a direct fork of Dokploy, though I can see why the UI might feel familiar - they both use the same UI component library, shadcn/ui. The key difference lies in the underlying technology. While Dokploy (like Easypanel, Coolify, and CapRover) relies on Docker for container orchestration, QuickStack is built on k3s (a lightweight Kubernetes distribution) for orchestration, Longhorn for storage management, and Kaniko for container builds.

    The key difference between Dokploy and QuickStack lies in the underlying technology. By using k3s instead of Docker for orchestration, QuickStack makes it easy to scale across multiple nodes. Additionally, with Longhorn, persistent volumes are replicated across multiple nodes instead of being tied to just one. This means that if you're running a database on VPS Node 2 and it goes offline, the database can seamlessly start on VPS Node 1 with all the data intact.

    I hope this clears things up! :)

    • oulipo 2 days ago

      Very interesting!

      Would there be a way to also run "non containerized apps" like using Nix / nix-services / process-compose ?

      • j_meier a day ago

        At the moment, QuickStack only supports containerized applications. You can either provide details about your Git repository (including a Dockerfile, which QuickStack will use to build the container image) or specify the name/URL of an already built container image from Docker Hub or a private registry. Here's a demo video on how deployments currently work using a git repo as source: https://youtu.be/koqGZ2ChHvw?t=183

        I don’t know much about Nix yet, so I should go through the documentation first... Given QuickStack’s current setup with Kubernetes (using k3s), the platform is somewhat "tied" to containerized apps for now.

imharrisonjames a day ago

That looks like a cool project and it could solve many peoples problem