{"id":15192136,"url":"https://github.com/riotkit-org/riotkit-harbor","last_synced_at":"2025-10-02T06:32:36.637Z","repository":{"id":103426041,"uuid":"150146792","full_name":"riotkit-org/riotkit-harbor","owner":"riotkit-org","description":"Complete compose environment, from development to production with service discovery and health checking. Kubernetes features on Compose scale, with Compose simplicity","archived":true,"fork":false,"pushed_at":"2021-12-16T19:08:46.000Z","size":14663,"stargazers_count":12,"open_issues_count":18,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-14T13:17:21.734Z","etag":null,"topics":["ansible","development-environment","docker-compose","docker-environment","docker-framework","docker-gen","docker-template","environment","environment-template","fabric8","infrastructure-as-code","infrastructure-automation","jwilder","kubernetes","letsencrypt","nginx-proxy","project-template","riotkit-harbor","rkd","service-discovery"],"latest_commit_sha":null,"homepage":"https://environment.docs.riotkit.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/riotkit-org.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-24T18:09:00.000Z","updated_at":"2024-08-23T12:49:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"77f50975-46db-4a1b-b384-7a683ceb4f59","html_url":"https://github.com/riotkit-org/riotkit-harbor","commit_stats":{"total_commits":314,"total_committers":2,"mean_commits":157.0,"dds":"0.031847133757961776","last_synced_commit":"2b5d196950148f975fd5253c29d092058c02988d"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/riotkit-org/riotkit-harbor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riotkit-org%2Friotkit-harbor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riotkit-org%2Friotkit-harbor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riotkit-org%2Friotkit-harbor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riotkit-org%2Friotkit-harbor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/riotkit-org","download_url":"https://codeload.github.com/riotkit-org/riotkit-harbor/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/riotkit-org%2Friotkit-harbor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277968828,"owners_count":25907418,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-02T02:00:08.890Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","development-environment","docker-compose","docker-environment","docker-framework","docker-gen","docker-template","environment","environment-template","fabric8","infrastructure-as-code","infrastructure-automation","jwilder","kubernetes","letsencrypt","nginx-proxy","project-template","riotkit-harbor","rkd","service-discovery"],"created_at":"2024-09-27T21:05:17.579Z","updated_at":"2025-10-02T06:32:34.826Z","avatar_url":"https://github.com/riotkit-org.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"RiotKit's Harbor\n================\n\n.. image:: https://readthedocs.org/projects/riotkit-docker-template/badge/?version=latest\n\t:alt: Documentation Status\n\t:target: https://environment.docs.riotkit.org/en/latest/\n\n.. image:: http://www.repostatus.org/badges/latest/active.svg\n\t:alt: Project Status: Active – The project has reached a stable, usable state and is being actively developed.\n\t:target: http://www.repostatus.org/#active\n\n.. image:: https://img.shields.io/github/v/release/riotkit-org/riotkit-harbor?include_prereleases\n\t:target: https://img.shields.io/github/v/release/riotkit-org/riotkit-harbor?include_prereleases\n\t:alt: Github Release\n\n.. image:: https://img.shields.io/badge/Made%20with-Python-1f425f.svg\n\t:target: https://img.shields.io/badge/Made%20with-Python-1f425f.svg\n\t:alt: Made with Python\n\n.. image:: https://img.shields.io/pypi/l/rkd-harbor.svg\n\t:target: https://img.shields.io/pypi/l/rkd-harbor.svg\n\t:alt: License\n\n.. image:: https://travis-ci.com/riotkit-org/riotkit-harbor.svg?branch=master\n\t:target: https://travis-ci.com/riotkit-org/riotkit-harbor\n\t:alt: Travis CI\n\n.. image:: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square\n\t:target: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square\n\t:alt: PRs welcome\n\n.. image:: https://img.shields.io/github/issues-pr/riotkit-org/riotkit-harbor.svg\n\t:target: https://img.shields.io/github/issues-pr/riotkit-org/riotkit-harbor.svg\n\t:alt: PRs open\n\n.. image:: https://img.shields.io/github/issues/riotkit-org/riotkit-harbor.svg\n\t:target: https://img.shields.io/github/issues/riotkit-org/riotkit-harbor.svg\n\t:alt: Issues open\n\n:code:`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.\n\nDemo: https://asciinema.org/a/348698\n\nNotice\n^^^^^^\n\nThis project will be in the future replaced by \"Space Harbor\", which is successor of Harbor.\nWhy? We started Harbor project as lightweight and elastic replacement for Kubernetes usage in tiny scale (for smaller services like blogs, forums etc.)\nbut recently we researched usage of a lightweight Kubernetes distribution which fits very well for tiny scale and does not require an extra development\nof Python code.\n\nWe 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\nannounced stable.\n\nHarbor\n^^^^^^\n\nIs Kubernetes or OKD too big overhead or not suitable for your environment?\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nIs standard docker-compose too primitive to use in production?\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nHarbor fits perfectly, while providing some of Kubernetes-like solutions in docker-compose!\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\n\n\n**Features:**\n\n- Service discovery (pins containers into WWW domains by labelling)\n- Deployment strategies: compose's standard, recreation, and **rolling-updates (zero-downtime updates)**\n- Automatic Letsencrypt SSL\n- Standardized directory structures and design patterns\n- Ready to use snippets of code and solutions (one command to install database, Wordpress or other application from our repository)\n- Ansible integration to prepare your production/testing server and deploy updates in extremely intuitive way\n\n\n**Roadmap:**\n\n**Harbor 2.1**\n\n- Init containers support (basing on Kubernetes idea) (`#5 \u003chttps://github.com/riotkit-org/riotkit-harbor/issues/5\u003e`_)\n- delayed-request update strategy (minimum-downtime deployment with holding all HTTP requests waiting for new application) (`#11 \u003chttps://github.com/riotkit-org/riotkit-harbor/issues/11\u003e`_)\n- Webhook handling update daemon to trigger container and git updates (`#10 \u003chttps://github.com/riotkit-org/riotkit-harbor/issues/10\u003e`_)\n\nRead documentation for more: https://environment.docs.riotkit.org/en/latest/?badge=latest\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\nChangelog\n---------\n\nHarbor 2.0\n\"\"\"\"\"\"\"\"\"\"\n\n- Service upgrade strategies: Compose-native, recreation, rolling-updates\n- Rewrite from Makefile to Python\n- Containers startup priority\n- Maintenance mode is now not only global, but also per domain\n- Development mode now supports not only .localhost domains, but also \\*.xip.io\n\nFrom authors\n------------\n\nWe are grassroot activists for social change, so we created this software while we were helping those fantastic initiatives:\n\n- RiotKit (https://riotkit.org)\n- International Workers Association (https://iwa-ait.org)\n- Anarchistyczne FAQ (http://anarchizm.info) a translation of Anarchist FAQ (https://theanarchistlibrary.org/library/the-anarchist-faq-editorial-collective-an-anarchist-faq)\n- Federacja Anarchistyczna (http://federacja-anarchistyczna.pl)\n- Związek Syndykalistów Polski (https://zsp.net.pl) (Polish section of IWA-AIT)\n- Komitet Obrony Praw Lokatorów (https://lokatorzy.info.pl)\n- Solidarity Federation (https://solfed.org.uk)\n- Priama Akcia (https://priamaakcia.sk)\n\nSpecial thanks to `Working Class History \u003chttps://twitter.com/wrkclasshistory\u003e`_ for very powerful samples that we could use in our unit tests.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friotkit-org%2Friotkit-harbor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Friotkit-org%2Friotkit-harbor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friotkit-org%2Friotkit-harbor/lists"}