I’ve spent a lot of time recently trying to find a self hosted PaaS to replace my usage of Vercel to host a couple of static websites. I use 11ty and Astro as Static Site Generators and I love the functionality of pushing to a git repo to update my site, and being able to create preview versions using pull requests.

If you haven’t used a PaaS before and are wondering what they’re used for, two of the biggest reasons people use them for are basically as Web GUIs to deploy OCI containers from a marketplace, think similar to the UnRAID App Store, and as hosting environments for code that’s built and deployed directly from the contents of a git repository like static sites or other apps. In my case, I use them to deploy static sites that I either build myself using SSGs, or for example the popular Digital Garden plugin for ObsidianMD.

The defacto leader in this space seems to be Coolify. And while it is fairly robust with a nice feature set, I couldn’t get past the dreadful UI. I’ve never encountered software that goes so far out of its way to hide information from you. It technically has a “dashboard”, but that only consists of a top level list of “Projects” with absolutely zero information about them or their current status Unless you drill down through the options all the way to individual services.

Nixopus appears to have a much more functional UI, but the focus of this one for the time being seems centered around spinning up docker containers of existing services. It has the functionality to deploy your own but that isn’t as fleshed out at this time.

ZaneOps is a little light on extra features, but has the most functional and informational UI of the three. I can see the status of all my deployed services at a glance, and its very lightweight.

  • Encrypt-Keeper@lemmy.worldOP
    link
    fedilink
    English
    arrow-up
    8
    ·
    edit-2
    12 hours ago

    Portainer is a container management system. It’s purpose is to allow you to manage containers in an easy to use GUI.

    ZaneOps is a PaaS that allows you to automatically build and deploy web apps into containers without having to configure the underlying infrastructure at all.

    For example, to deploy my static site on Portainer, I’d have to build my static site, containerize it, upload the container image to a registry (or directly to Portainer), then use Portainer to configure the environment and deploy the container. Then I’d have to configure a reverse proxy or web server to serve the contents of the container. If I wanted to continue working on that static site I’d need to configure some kind of CI/CD pipeline to try and automate all that previous work.

    With ZaneOps, I store the Astro/11ty/other SSG files in a Git repo, and on any commit ZaneOps will automatically recognize the SSG framework I’m using, use Docker Swarm to spin up a container to build the site into static files, containerize the resulting files for me, and deploy the container. It then uses Caddy underneath to serve what’s in the container including provisioning SSL certs for the site. It will health check the new container before deploying it in a blue/green deployment model so that the old site is removed only after the new one is up and available. It’s the same workflow as deploying a site to GitHub Pages using GitHub Actions if you’ve ever done that.

    Ultimately. You end up with the same result, a containerized workload, but ZaneOps takes your GitHub Repo and turns it into a built, running, containerized workload automatically. Automating the deployment of my own web apps using Portainer would be at the very least clunky and require a lot of surrounding infrastructure. It’s not something Portainer just does out of the box.

    Cockpit isn’t much like either, it’s just a web based server management tool.