
Show HN: Run your own PaaS based on Docker and Traefik /w LetsEncrypt and stats - almarklein
https://github.com/almarklein/mypaas
======
joshstrange
If you are looking for something that is a little more turn-key than this I
highly recommend CapRover [0]. I've been using it for years as my POC project
PaaS. I haven't yet used it for anything production-facing but I've used it to
test out ideas really quickly without having to think about billing (It's on a
$20/mo droplet but I used to run it on a $5/mo before I added more projects to
it).

I use it to prototype/test ideas quickly, get DB/Api/Client up, running, and
publicly accessible (with HTTPS) without much hassle.

It has a number of "one-click" installs for stuff like WP, Jenkins, popular
DB's, popular Queues, etc but also supports running docker images (which means
PHP/Node/etc support is super easy). There is also multi-host support but I've
never personally used that as, again, I use this just for dev and then move to
AWS/DO once I have proven it out and I am willing to pay for DB's/EC2
instances.

I'm not affiliated in any way, just someone who likes it.

[0] [https://caprover.com/](https://caprover.com/)

~~~
almarklein
Thanks. Yes, CapRover seems really nice. And also see Dokku. At some point in
the past I decided both did not suit my needs. I can't remember the details
exactly, but one thing with CapRover was that auth goes via username and
password only, which I don't feel is safe enough (MyPaas uses RSA key pairs).

Anyway, I started out by tying Docker and Traefik together with a mix of
Python and bash scripts. Eventually I decided to roll that together into
something easier to maintain, so its also useful for others. And "others"
includes my future self ;)

~~~
josegonzalez
Just curious, what about Dokku didn't meet your needs? I'm the current
maintainer of the project, hence the question :)

~~~
almarklein
I recall that Let's Encrypt was somewhat untrivial to setup (but this may have
changed?). And I liked the idea of just pushing a container/recipy with
metadata and let the server handle the rest.

I should add that when I found out about Dokku and CapRover I was already
using Traefik+Docker, so I was also simply biased for Traefik (Traefik is
awesome).

------
withinboredom
Some suggestions/questions for the readmes:

\- It would be nice to have some screenshots in the status/analytics sections.

\- Does this use docker hub or does it push the raw docker image to the server
or does it build on the server?

\- How can we deploy docker hub images (for cases where the image is built by
CI or using a cache or something)?

\- It might be a good example to link to the examples directory from the
readme. I almost suggested some examples, but then turned off my extension
that hides the files on the repo homepage. :)

~~~
almarklein
Thanks, I will update the readme to include more info.

To answer some: It pushes a zipped directory to the server, which includes a
Dockerfile. There, the server builds the image and deploys it.

Deploying pre-build images is probably best done by using a Dockerfile that
uses FROM to point to the pre-build image.

------
fish_n_chips
this looks quite interesting, but if I have my system defined in a docker-
compose file which is effectively multiple containers, will this support that?

~~~
rudasn
Do you know of any tools that do this?

~~~
fish_n_chips
docker swarm and kubenetes springs to mind, with the latter an overkill for a
solo/developer...

------
ramon
What about just docker swarm and swarmpit with traefik?

~~~
almarklein
I did not know swarmpit yet. That seems really nice and it looks like it has
overlapping goals with MyPaas. Does it allow you to do remote deploys?

~~~
ramon
Yes that is what they call service deploy. If Swarmpit doesn't satisfy you on
deployment you can use Apollo or command-line. It's all up to you. Swarmpit is
like having a kubernetes interface without the overbloat of Kubernetes. If
Swarmpit evolves in the future it will not makes sense the Kubernetes. I am
almost finishing a swarm only setup in 512 MB of free RAM. For Kubernetes you
need at least 4 GB.

