Open-source alternative to Heroku, Vercel, and Netlify
github.com
github.com
"Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License."
But then proceeds to modify the license terms. This makes it definitionally -not- Apache 2 and no amount of word-smithing can get you out of that (appendix?).
There's a certain dishonesty in saying, "hey we're open source Apache" and then demanding a source available "something else". It's not even smart dishonesty... You offer the Apache original terms, but then you have to make it sufficiently clear those aren't really the terms enough that any fool can see this isn't the Apache terms after all.
That means just the file "LICENSE.MD" is under that Non-Apache License. The rest of the project is something else.
- Dokku [0]
- CapRover [1]
Piku is awesome! I've always thought the PaaS space is wide enough for many players in specific niches, and I love the approach of running processes outside of containers. About the only thing I would change is to utilize systemd (or similar) for spawning processes, but otherwise it's super neat. I've used it myself on a raspberry pi zero :)
It's still a little rough around the edges but quickly getting polished up.
Honestly I'm probably ending up reinventing the wheel a lot while going with kubernetes (on my personal projects) piecing together a lot of what these tools would give me with minimal configuration. And it feels like a lot of what I'm currently trying to work on in my side project is basically what I would get from these paas solutions but with the benefit of understanding and being able to tweak the various components better.
It just doesn't feel right for me. For small scale apps it's enough to spin up one or two VMs and run some containers with docker-compose (or just use Vercel/etc for a few bucks). But if it should scale, there is no alternative to kubernetes in the open source world.
You can run Kubernetes for cheap on a single node and it seems you can configure it so that you only need to care about the configuration when you need flexibility. I think.
I get a similar feeling to how it was to set up a react project before you had create-react-app like tools. There's a lack of plug and play options that works for most use cases.
Then again I might just be sort of rationalising the amount of time I've spent on it on a personal project that doesn't really require it.
You can think of it as a much nicer CLI for k8s in that case. But it scales way down to a single machine deployment that is much simpler.
The "scheduler" term here _is_ a bit weird, but I couldn't figure a better term when I was abstracting the concept.
And yeah, the idea here is that the underlying scheduling system shouldn't matter too much to the user of Dokku, but rather that you get the same experience regardless of the scheduling system. That means that as a user, `dokku enter` (for entering a running container) should be the same if its on Docker Local, Kubernetes, or Nomad. Similarly, Dokku should abstract what it means to deploy a workload onto a system - for Kubernetes, we use Helm charts, but the user doesn't need to know about how helm charts work or anything like that.
We've traditionally focused on getting that single-server experience to a high quality, but now that the base is more or less complete, we can start looking at other integrations that help our users scale.
push heroku, done, get back to other things.
Like:
- https://www.cloudfoundry.org/technology/korifi/
Not sure if all of them are relevant and on first glance they all seem significantly harder to pick up than something like Heroku.
Found them through this reddit thread: https://www.reddit.com/r/kubernetes/comments/m8r5py/looking_...
https://github.com/porter-dev/porter
and Otomi, "self-hosted DevOps PaaS for Kubernetes"
I think myself - and folks maintaining other open source projects! - would love to hear feedback about what works/what doesn't. Feel free to reach via email (its in my profile) if you want, or our Discord/Slack.
I typically see users struggle with an initial deploy because their app depends on some variable or service running and that wasn't taken into account. This is pretty much the same as for general CI, where one might go through several commits before CI is running as you expect.
Very unfortunately, detecting these pain points requires work from both platform maintainers _as well as_ framework owners. The reason rails apps deployed so nicely across PaaS services in the past is because the Rails developers spent a ton of time ensuring applications _could_ do 12 Factor, while most PaaS services spent a ton of time working towards those constraints. Consequently, deploying other services that don't conform to this standard is a bit more difficult (though usually still possible).
Hatchbox is pretty cool, but not OSS - also doesn't use Docker IIRC if thats something you were looking for.
There's certainly something to be said about managed services though. For folks that don't mind managing their infra, OSS systems allow customizations and extensions that you wouldn't see from a managed service, but you potentially trade that for reliability guarantees and general maintenance. With Dokku for instance, I see folks go quite a while without upgrading - potentially causing issues when they do, but mostly making it so they miss out on features and bug fixes. For managed services like Hatchbox, you get that for free, but then the system might change underneath at a cadence you're unhappy with.
seems like open source for marketing's sake and not in any real terms
By itself it seems innocuous but coupled with the blatant misuse of the term "Open-source", fake reviews and rather strange commit history, you can maybe understand why one might assume some malintent, or at least, somewhat shady intent.
1. This will depend on each person who wants to interpret it that way. 2. About fake reviews, please review the others comment, I talked about this, this project initially was going to be a SaaS but at the last minute I decided to make it free, I already removed the testimonials. 3. Strange story commit, let me ask you a question, have you ever created some open source project? have you already checked the source code to say something is strange? check the others comment again this initially was going to be a SaaS i didn't have plans to release this for free, at the last minute i released and that's all, what's the purpose on see bad commits/code i have around 600 commits in another repository, I think it's a pleasure effect to see those commits or something because I see that people get excited, we DO NOT collect any tracking information or anything strange, you can review the code for yourself, I just want to have a clean repository that's all 4. About the license: This project was generally made for people who want to host their personal projects, mpvs or for agencies that want to do quick deployments on a simple vps server, maybe I'm wrong but 98% of people will use it personally and not a way to resell this same software without changing anything, so this probably won't affect you, as I say to almost no one, if you think you can take advantage of this project by selling it, let me know and I'll give you the permission you want, it's just asking, but People today criticize to get attention and it is valid. greetings!
you can check the docs commit at the last minute i added the open source term before https://github.com/Dokploy/docs/commit/456db4922538d8e4e8a12...
after https://github.com/Dokploy/docs/commit/e386b356550857a7282f9...
You didn't talk about this though? I read all the comments and you just said that you changed from paid to free. That doesn't at all explain seemingly fake testimonials.
They’re all either freelancers or have very vague company names (Tech Innovations Inc, Dynamic Web Solutions) and the project looks brand new.
If they are real testimonials then they've presented them in the most fake-looking way possible.
If you take your scratch project to opensource, you typically don't have the time to make sure not only the current version, but also every intermediate result is free of flaws someone else might dig up.
So: mv private opensource; git init; git remote add ...; git push
An artist also wouldn't hang every draft drawing beside his gallery piece...
I also "move quickly and break things" when prototyping, but always go back and clean things up so that each change is atomic and well documented. In practice, this is not a perfect process, but being disciplined about this is worth it. Otherwise, you might as well not use version control at all.
This is also my argument against squashing PRs into a single commit (unless it's really a single isolated change). Sure, it's convenient to do so, and you end up with a "clean" history, but having granular changes is worth the time and effort, and it's something you should strive to do in general.
Squashing PRs is correct. Why would you need to see the hundred commits that lead to one working set of changes. The final changes are all that matter.
Keeping a clean history of incremental atomic changes is the entire purpose of using version control. It's not just common courtesy that I as an entitled user feel like I'm "owed".
The same applies for PRs, but I won't get into it any further.
I feel like there's a vocal segment of developers who don't understand the benefit of atomic commits, and by extension, version control, and are strongly opinionated in favor of the lazy approach. Working with someone like that can be a frustrating experience.
But please continue to downvote me because you disagree. :)
Some open source projects are just that - open source. You get the source and nothing else. You are not owed anything and you are not invited to collaborate and contribute. And that’s fine. Fork it and do things your way.
The community would be much more pleasant and healthier if casual passersby were not demanding things be done a certain way without actually caring about or contributing.
Open source is about fostering a spirit of sharing and collaboration. If developers don't align with those ideals, maybe open sourcing their work isn't for them.
"Open source" is abused too often these days as a marketing term, or something to fluff up your CV with, when it should be anything but that.
You don't get to dictate how others work, sorry.
Are you suggesting I should have made this private information public? Or that I shouldn't have released the project at all?
This fact (nothing is owed you) is entirely independent from the squash-or-not debate.
Is the plan to develop in the open from now on, or to drop releases developed in private in large flattened commits like this?
I literally chuckled when I read your comment. It sounds reasonable to flatten commits before a release, as I, and others, who are hacking on code litter their history with "fix this" / "fix that" / "asjhdasjd" / "f**".
Open source model doesn't mean version control transparency. Open source model could also be development done in a private fork, and release commits dumped into a public repository.
In my experience this is how open source projects tend to thrive in the last 15 years or so. Projects that are open source but don't accept contributions and just dump a zip on a website somewhere once a year are a very different thing and lose some of the benefits.
Dokku supports a variety of proxy implementations - nginx on the host, caddy/haproxy/openresty/traefik from within containers. The latter are managed via compose files, and can be customized to not listen on the host if you _really_ wanted to (and then proxied to from whatever your actual host system is).
While we optimize for the 90% case, I'd definitely be interested in learning more about your needs to see if we can maybe get closer to what you're looking for. On the nginx side, the port mappings are such that port 80 is used by default, but you could swap it to be something else (and also listen on localhost) and then proxy to nginx from your proxy of choice, allowing you to take advantage of Dokku while using whatever you currently use.
Feel free to hit us up via Discord/Slack.
The two that I’ve used are cloudflare pages and bunny storage.
Cloudflare integrates with git and even runs builds for multiple static website frameworks (hugo, 11ty, etc)
Bunny storage is a bit clunkier when it comes to setting a ci/cd since it has nothing to support it. One can upload via ftp, web browser or API. And after uploading usually purging the cdn cache is needed to apply the changes.
I still prefer bunny because cloudflare give pages for “free”, which I don’t trust.
If you want it super self-hosted, then self-host gitlab and use their CI/CD instead of Github Actions.
dokploy coolify caprover
[1] https://github.com/Dokploy/dokploy/blob/be56ba046cb3b2b8676d...
Edit: I'm wrong, see below.
It looks like Apache Licensed but its the BSL (ElasticSearch, Redis, Mongodb license path) in disguise.
Author should have used AGPL if he wanted to make a product that isn't easily/eagerly SaaSified.