almarklein / mypaas

Run your own PaaS using Docker, Traefik, and great analytics
BSD 2-Clause "Simplified" License
382 stars 16 forks source link
analytics docker paas traefik

PyPI Version CI

MyPaas

Run your own PaaS using Docker, Traefik, and great monitoring

MyPaas is a tool that makes it easy to run a platform as a service (PaaS) on your own VM or hardware. It combines Traefik and Docker, offers free automatic https, secure (zero-downtime) deployments via dockerfiles, and analytics.

You can setup your PaaS and make your first deployment in about 5 minutes.

Docker plus Traefik is awesome

Docker makes it possible to run multiple applications on a single server in a contained way.

Traefik is a modern router, reverse proxy, and load balancer that can be automatically configured using labels on Docker containers. It can also act as an https endpoint and automatically refreshes SSL/TLS certificates with Let's Encrypt.

MyPaas is a tool that helps you setup Traefik, and deploy Docker containers that have the right labels so that Traefik handles them in the right way. Plus it adds powerful analytics for all your apps. Website traffic is logged server-side, without cookies, respecting the end user's privacy.

I use MyPaas myself to serve e.g. https://pyzo.org and https://timetagger.app.

How it works

MyPaas is a command line interface (CLI) to setup and manage your PaaS server. You use the same CLI on your work machine to push deploys to the server. You configure your service/app by writing a Dockerfile and adding special mypaas-comments to it, and push that to the server via the CLI, where it is built and deployed. There is a web dashboard, but only for viewing status and analytics.

Setting expectations

Using MyPaas requires you to be familiar with a few basic backend development skills. There are plenty of online guides on each topic.

Guide

Also see the example services.

License

BSD 2-clause.

What about serverless?

Serverless is nice and often very affordable, but you give up control and you often need additional services for analytics, databases, etc. MyPaas tries to make managing your server as easy as possible. You remain in control, and your only costs are that of the VM that the PaaS runs on.

Alternative projects to run your own PaaS

There are several tools similar to MyPaas. This is how (I think) they differ (let me know via an issue or PR if you can explain the differences better, or know of another alternative project.)