/riotkit-harbor

Complete compose environment, from development to production with service discovery and health checking. Kubernetes features on Compose scale, with Compose simplicity

Primary LanguagePythonApache License 2.0Apache-2.0

RiotKit's Harbor

Documentation Status Project Status: Active – The project has reached a stable, usable state and is being actively developed. Github Release Made with Python License Travis CI PRs welcome PRs open Issues open

docker-compose based framework for building production-like environments - developing and testing on your local computer, deploying to your server or cluster from shell or from CI.

Demo: https://asciinema.org/a/348698

Notice

This project will be in the future replaced by "Space Harbor", which is successor of Harbor. Why? We started Harbor project as lightweight and elastic replacement for Kubernetes usage in tiny scale (for smaller services like blogs, forums etc.) but recently we researched usage of a lightweight Kubernetes distribution which fits very well for tiny scale and does not require an extra development of Python code.

We will support bugfixes fixes to Harbor till 01.01.2023, please consider migration to https://github.com/riotkit-org/k3s-space-harbor as soon as it will be announced stable.

Harbor

Is Kubernetes or OKD too big overhead or not suitable for your environment?

Is standard docker-compose too primitive to use in production?

Harbor fits perfectly, while providing some of Kubernetes-like solutions in docker-compose!

Features:

  • Service discovery (pins containers into WWW domains by labelling)
  • Deployment strategies: compose's standard, recreation, and rolling-updates (zero-downtime updates)
  • Automatic Letsencrypt SSL
  • Standardized directory structures and design patterns
  • Ready to use snippets of code and solutions (one command to install database, Wordpress or other application from our repository)
  • Ansible integration to prepare your production/testing server and deploy updates in extremely intuitive way

Roadmap:

Harbor 2.1

  • Init containers support (basing on Kubernetes idea) (#5)
  • delayed-request update strategy (minimum-downtime deployment with holding all HTTP requests waiting for new application) (#11)
  • Webhook handling update daemon to trigger container and git updates (#10)

Changelog

Harbor 2.0

  • Service upgrade strategies: Compose-native, recreation, rolling-updates
  • Rewrite from Makefile to Python
  • Containers startup priority
  • Maintenance mode is now not only global, but also per domain
  • Development mode now supports not only .localhost domains, but also *.xip.io

From authors

We are grassroot activists for social change, so we created this software while we were helping those fantastic initiatives:

Special thanks to Working Class History for very powerful samples that we could use in our unit tests.