from Hacker News

Show HN: Canine – A Heroku alternative built on Kubernetes

by czhu12 on 6/16/25, 6:27 PM with 124 comments

Hello HN!

I've been working on Canine for about a year now. It started when I was sick of paying the overhead of using stuff like Heroku, Render, Fly, etc to host some web apps that I've built. At one point I was paying over $400 a month for hosting these in the cloud. Last year I moved all my stuff to Hetzner.

For a 4GB machine, the cost of various providers:

Heroku = $260 Fly.io = $65 Render = $85 Hetzner = $4

(This problem gets a lot worse when you need > 4GB)

The only downside of using Hetzner is that there isn’t a super straightforward way to do stuff like:

- DNS management / SSL certificate management - Team management - Github integration

But I figured it should be easy to quickly build something like Heroku for my Hetzner instance. Turns out it was a bit harder than expected, but after a year, I’ve made some good progress

The best part of Canine, is that it also makes it trivial to host any helm chart, which is available for basically any open source project, so everything from databases (e.g. Postgres, Redis), to random stuff like torrent tracking servers, VPN’s endpoints, etc.

Open source: https://github.com/czhu12/canine Cloud hosted version is: https://canine.sh

  • by TheTaytay on 6/16/25, 9:00 PM

    First of all, I'm often looking for a better "Heroku-esque" experience on my own metal, so thank you! This looks neat!

    Also, your docs on how K8s works look really good, and might be the most approachable docs I've seen on the subject. https://canine.gitbook.io/canine.sh/technical-details/kubern...

    Question: I assumed when I read the pitch, that I could spin up a managed K8s somewhere, like in Digital Ocean, and use this somehow. But after reading docs and comments, it sounds like this needs to manage my K8s for me? I guess my question is: 1) When I spin up a "Cluster" on Hetzner, is that just dividing up a single machine, or is it a true K8s cluster that spans across multiple machines? 2) If I run this install script on another server, does it join the cluster, giving me true distributed servers to host the pods? 3) Is there a way to take an existing managed K8s and have Canine deploy to it?

  • by nwienert on 6/16/25, 8:10 PM

    First - I really want something like this to exists and be great, so best of luck. As of today I'd consider this or Dokploy (Docker Swarm is underrated).

    Small feedback - your "Why you should NOT use Canine" section actually is a net-negative for me. I actually was thinking it was cool that it may actually list downsides, but then you did a sarcastic thing that was annoying. I think you should just be frank - you'll have to purchase and manage servers, you'll be on the hook if they go down and have to get them back up, this is an early product made by one person, etc.

  • by debarshri on 6/16/25, 7:04 PM

    We maintain list of PaaS platform out there in the wild - https://github.com/debarshibasak/awesome-paas
  • by czhu12 on 6/16/25, 6:51 PM

    Would also add -- this has been by far the funnest project I've ever built. Owning the "tech stack" from top to bottom is a super satisfying feeling.

    Rails app Canine infra Raspberry pi server My own ISP

    Was a tech stack I managed to get an app running on, for some projects I've kicked around.

  • by vanillax on 6/16/25, 8:30 PM

    Nit pick. Kubernetes doesnt run docker containers. It run containers that conform to the Open Container Initiative ( OCI ) . Docker is a licensed brand name.
  • by conqrr on 6/16/25, 7:46 PM

    Very cool. I've looked into doing something similar for self hosting and have wanted something in between docker and Kubernetes. Nomad seemed like a good fit, but still a tad more work that dead simple docker and lack of ecosystem. I finally gave in to just using docker and living with deployment downtime on upgrades which is fine for a personal home server. But for production services, I wonder how much of K8s does Canine really abstract? Do I ever need to peek underneath the hood? I'm no k8s expert, but I wonder if there is simply no happy medium between these two.
  • by stego-tech on 6/16/25, 7:56 PM

    I dig the concept! K8s is an amazing technology hampered by overwhelming complexity (flashback vibes to the early days of x86 virtualization), and thumbing through your literature it seems you’ve got a good grasp of the fundamentals everyone needs in order to leverage K8s in more scenarios - especially areas where PVE, Microcloud, or Cockpit might end up being more popular within (namely self-hosting).

    I’ve got a spare N100 NUC at home that’s languishing with an unfinished Microcloud install; thinking of yanking that off and giving Canine a try instead!

  • by reconnecting on 6/17/25, 8:00 AM

    Your website stated that license is now 2024 and license is MIT. `© 2024 Canine, Inc. MIT License.`

    When the ability to display the current year on the webpage is not critical, the difference between the Apache license (as listed on GitHub) and the MIT license (as listed on the website) is more significant concern.

    What is the actual one?

  • by serial_dev on 6/17/25, 3:51 PM

    A Heroku alternative built on Kubernetes!? If I need to know what Kubernetes is, Helm charts and whatnot, it's not really a Heroku alternative for me. I understand for some, managing them as basic as running "echo hello", but I don't want to even think about kubernetes and helm charts when I want something up and running very quickly.
  • by rcarmo on 6/16/25, 7:32 PM

    I’m curious as to how storage and secrets are handled, since my recurring issue with Kubernetes is not deploying the containers or monitoring them but having a sane way to ensure a (re)deployed app or stack would use the same storage and/or multiple apps would put their data in consistent locations.

    Also, having seen the demo video, it’s a happy path thing (public repo, has dockerfiles, etc. what about private code and images?)

  • by znpy on 6/16/25, 9:41 PM

    I used heroku manh years ago and i have fond memories of it.

    I think the landing page fails at answering the two most basic questions:

    1. Can i deploy via a stupid simple “git push” ?

    2. Can i express what my workloads are via a stupid simple Procfile?

  • by matus_congrady on 6/16/25, 10:22 PM

    At https://stacktape.com, we're also in the same space. We're offering Heroku-like experience on top of your own AWS account.

    I like what you're doing. But, to behonst, it's a tough market. While the promise of $265 vs $4 might seem like a no-brainer, you're comparing apples to oranges.

    - Your DX is most likely be far from Heroku's. Their developer experience is refined by 100,000s developers. It's hard to think through everything, and you're very unlikely to make it anywhere close, once you go beyond simple use-cases.

    - A "single VM" setup is not really production-grade. You're lacking reliability, scalability, redundancy and many more features that these platforms have. It definitely works for low-traffic side-projects. But people or entities that actually have a budget for something like this, and are willing to pay, are usually looking for a different solution.

    That being said, I wish you all the luck. Maybe things change it the AI-generated apps era.

  • by tonyhart7 on 6/16/25, 9:35 PM

    this is identical to https://www.kubero.dev/

    the problem is that kubero, Idk they did not gain any traction.

    maybe most user want simple tools like coolify

  • by mattfrommars on 6/17/25, 10:09 PM

    OP, what is your background to be in the position to build this? I've been itching to build or have an idea to make something complicated but only true thing I kind of know is building API and integrating with React application.

    How were you able to deduce complexity into workable item/task to take 'I will alternate to Heroku' into fully functional open source project?

    I haven't really use Heroku, so to figure out 'feature to be implemented', I would start with pricing page. I am sure my approach is flawed here.

  • by indigodaddy on 6/16/25, 9:37 PM

    The video example is a little confusing from a "I just want to self host the whole thing on a single machine/VM etc" perspective. If that's what I want to do, do I still have to create a cluster by putting in some managed DO K8s reference? Eg I just want it to use the local VM for the cluster. Do you have some other videos or can you make some that show say how to install it all-in-one on a single machine, and then from there how to add/deploy an app?
  • by JeffMcCune on 6/16/25, 11:36 PM

    Is Google sheets backend (from the screenshot in the readme) what I think it is? Sheets API as a database?

    If so props to you.

    My original idea behind https://holos.run was to create a Heorku like experience for k8s so I’m super happy to see this existing in the world. I’d love to explore an integration, potentially spinning up the single or multi node clusters with cluster api.

  • by film42 on 6/16/25, 8:19 PM

    Looks great! I'm definitely in the market for something like this; and building on top of helm charts makes me want to try it out.

    Can Canine automatically upgrade my helm charts? That would be killer. I usually stay on cloud-hosted paid plans because remembering to upgrade is not fun. The next reason is that I often need to recall the ops knowledge just after I've forgotten it.

  • by federicotdn on 6/16/25, 10:23 PM

    I can't get Project creation to work. I click on "Deploy from Docker Hub instead →", fill in the details (name, image, cluster), and when I click Submit, I'm taken to the Projects page again (empty).

    edit: looks like POST https://canine.sh/projects is returning 422.

  • by Everhusk on 6/16/25, 8:15 PM

    I've also always wondered why computing costs keep going down but cloud costs keep going up.

    You deserve an award for building this, thank you.

  • by Everhusk on 6/16/25, 8:16 PM

    I've always wondered why cloud costs keep going up, while computing costs keep going down.

    You deserve an award for building this, thank you!

  • by chrisaiv on 6/20/25, 6:10 PM

    Are there any charts that can compare this to Dokku, the Open Source equivalent of Heroku?
  • by serbuvlad on 6/16/25, 8:13 PM

    On the webpage at the "Why you should NOT use Canine" section, it is possible to swipe away a card that is in the background, which is very weird UX.

    Chrome 137. Android 13.

    Other than that... I'll give it a shot. Have three N100 NUCs. Two are currently unused after failed attempts to learn to use k8s.

    Maybe this'll do the trick.

  • by RamRodification on 6/17/25, 7:15 PM

    I think there is a typo on "Day #4. Services" in the Kubernetes Crash Course. It says "NodePort services are not accessible to the internet", but I think the point being made is that they are?
  • by diamondfist25 on 6/17/25, 2:54 PM

    I just went thru this exercise of setting up k3s on hetzner by using this: https://github.com/vitobotta/hetzner-k3s/

    does this help?

  • by dabbz on 6/17/25, 3:49 AM

    How do the Addons work? Are they just pre-built Dockerfile s? Or is there more to them? I'd love to request mariadb if there's something special beyond just a dockerfile/docker image.
  • by lotyrin on 6/17/25, 12:45 AM

    Any support (or timeline for support) for what heroku calls "review apps" (PRs automatically become ephemeral staged environment)? Skimming the docs and repo I didn't see any.
  • by vanillax on 6/16/25, 8:28 PM

    Can you make it so I can use my existing k8 cluster? or does it have to always use your embedded k3s? It seems like if you are just using k3s it should be easy to bring your own...
  • by nodesocket on 6/17/25, 1:57 PM

    Very cool. How does Caine compare to Portainer? I assume Caine has much easier integrated git push deployment and CI/CD integration.
  • by utf_8x on 6/16/25, 8:17 PM

    Any particular reason why this runs outside the cluster?
  • by bpiroman on 6/17/25, 12:56 AM

    Just use Kamal and deploy to a Hetzner instance
  • by konexis007 on 6/17/25, 12:51 AM

    How does this compare with caprover or dokku?
  • by the__alchemist on 6/16/25, 10:27 PM

    Is this simple to deploy to and use like Heroku, or do I need to use docking and kubertenes? I would love a cheaper Heroku!
  • by bravesoul2 on 6/16/25, 10:03 PM

    Brilliant if an entire industry becomes a commodity complement because some angry dev got fed up of paying $400. Love it!
  • by varun_chopra on 6/17/25, 7:24 AM

    I think you do need to support being able to add more nodes to the Hetzner install. Then it'd be perfect.
  • by reassess_blind on 6/16/25, 10:00 PM

    Is there an option to just drag drop project files, instead of using GitHub? That’s how I prefer to test these out.
  • by lloydjones on 6/16/25, 9:01 PM

    I started using Coolify a few months ago — Do you have a “pitch” as to how Canine is different or better?

    Good work either way!

  • by eviluncle on 6/16/25, 8:26 PM

    So nice to see modern open source being built with rails. it's the ultimate productivity framework
  • by mkesper on 6/16/25, 7:15 PM

    The README is confusing me, could you mention how Kubernetes is created from your docker compose setup?
  • by b0a04gl on 6/17/25, 3:25 AM

    does it track and persist application state across redeploys or is every deploy treated as stateless chart apply? interested to how it handles config drift, secrets rotation and volume reuse without breaking existing pods
  • by asadawadia on 6/17/25, 3:05 AM

    How do you handle abuse/malicious user code being run on your server ?
  • by hardwaresofton on 6/17/25, 12:33 AM

    Congrats on the launch Chris! Product has come a long way
  • by whitefang on 6/17/25, 5:31 PM

    I found Coolify that solved the similar problem.
  • by jambay on 6/16/25, 9:04 PM

    The interaction design looks fairly intuitive. Good luck!
  • by nylonstrung on 6/17/25, 8:58 AM

    Does this run k3s?
  • by yarone on 6/16/25, 9:37 PM

    This is awesome, great work!
  • by tiffanyh on 6/16/25, 9:16 PM

    Isn't Heroku build on Erlang/OTP because it essentially has Kubernetes-like functionality out-of-box.
  • by 0xbadcafebee on 6/17/25, 2:35 PM

    I see they're still using the old 2000s-style "dev", "test", "prod" environments. How many developers here are aware that this is a bad pattern? Do you use it even though you know it's a bad pattern, and if so, why?