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
We maintain list of PaaS platform out there in the wild - https://github.com/debarshibasak/awesome-paas
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.
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.
Nit pick. Kubernetes doesnt run docker containers. It run containers that conform to the Open Container Initiative ( OCI ) . Docker is a licensed brand name.
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.
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!
Congrats on the launch Chris! Product has come a long way
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.
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.
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
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?
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.
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.
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.
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!
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?)
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!
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.
Brilliant if an entire industry becomes a commodity complement because some angry dev got fed up of paying $400. Love it!
Is there an option to just drag drop project files, instead of using GitHub? That’s how I prefer to test these out.
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...
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!
So nice to see modern open source being built with rails. it's the ultimate productivity framework
The README is confusing me, could you mention how Kubernetes is created from your docker compose setup?
The interaction design looks fairly intuitive. Good luck!
This is awesome, great work!
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?
Isn't Heroku build on Erlang/OTP because it essentially has Kubernetes-like functionality out-of-box.
[dead]
[dead]
[dead]
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?