<metaname="description"content="It is now possible to rent a Gitea instance by the month, with Woodpecker CI. A self-hostable hosting solution supported by a horizontal collective of individuals and organizations. 25% of the income is dedicated to help the Free Software projects it depends on such as Gitea, Enough, Django, etc."/>
<metaproperty="og:title"content="Get a Gitea instance with CI at Gna! | Gna!: Managed Gitea Hosting "/>
<metaproperty="og:description"content="It is now possible to rent a Gitea instance by the month, with Woodpecker CI. A self-hostable hosting solution supported by a horizontal collective of individuals and organizations. 25% of the income is dedicated to help the Free Software projects it depends on such as Gitea, Enough, Django, etc."/>
<meta
property="og:site_name"
content="Get a Gitea instance with CI at Gna! | Gna!: Managed Gitea Hosting "
<p>Hosting a Gitea instance on Gna! is now possible (but still experimental). It is meant to be a minimum viable product: anyone can <ahref="https://hosteadashboard.gna.org">create a new dedicated Gitea instance</a> within minutes and pay for it on a monthly basis with a credit card. It includes a dedicated CI based on <ahref="https://woodpecker-ci.org/">Woodpecker</a>. The smallest instance costs 10€ per month (2GB RAM, 10GB disk, 1CPU) and will be a good fit for a freelance up to a team of five people but bigger instances are also available if more RAM, CPU or disk is required.</p>
<p>The service is 100% infrastructure as code, published as <ahref="https://lab.enough.community/main/infrastructure/-/tree/9e18ebbf675c8a65d1585d20b4cf6295af6e52ed/playbooks/hosteadashboard">Ansible playbooks within Enough</a>. It can be self-hosted on bare metal (with <ahref="https://libvirt.org/">libvirt</a>) or in the cloud (with <ahref="https://www.openstack.org/">OpenStack</a>): follow the <ahref="https://enough-community.readthedocs.io/en/latest/introduction.html#quick-start">quick start</a>, configure playbooks for <ahref="https://enough-community.readthedocs.io/en/latest/services/hostea.html">hostea</a> and <ahref="https://enough-community.readthedocs.io/en/latest/services/hosteadashboard.html">the dashboard</a>.</p>
<p>The organization supporting Gna! is a <ahref="https://forum.gna.org/c/governance-and-decisions/7">horizontal collective</a> of individuals and organizations. The <ahref="https://forum.gna.org/t/decision-revenue-sharing-model/92">revenue sharing model</a> is set to dedicate 25% of the income (more than the profits) to help the Free Software projects Hostea depends on such as Gitea, Enough, Django etc.</p>
<h3id="the-origin">The origin<aclass="zola-anchor"href="#the-origin"aria-label="Anchor link for: the-origin"
><spanclass="anchor-icon">#</span></a
>
</h3>
<p>In February 2022 the project of running a dedicated Gitea hosting service was <ahref="https://discourse.gitea.io/t/a-gitea-hosting-service-under-the-umbrella-of-the-gitea-project/4692">proposed to the Gitea project</a> and other organizations and <ahref="https://blog.dachary.org/2022/02/16/project-plans-for-a-hosted-gitea-online-service/">plans were drafted</a>. After a month of discussions it turned out to not be a <ahref="https://blog.dachary.org/2022/03/11/the-inconclusive-story-of-four-failed-project-offers/">good match for any of them</a>.</p>
<p>It was suggested to create a new project from scratch instead of joining an existing organization. However, in order to be sustainable, a hosting service needs customers willing to pay for the service. And nobody had that kind of skill. It was therefore decided that to terminate the project: there is no point is creating a technical stack that's not going to be used by anyone.</p>
<h3id="a-technical-stack-with-no-users">A technical stack with no users<aclass="zola-anchor"href="#a-technical-stack-with-no-users"aria-label="Anchor link for: a-technical-stack-with-no-users"
><spanclass="anchor-icon">#</span></a
>
</h3>
<p>The most common mistake technical people do when creating a new piece of software is to overlook the fact that they have absolutely no idea how to let their intended user base know about it. Maybe the reason it happens so often is because it is very difficult to resist the urge of creating something. Because that's what technical people love to do: create things, even when they have no clue if it can be used.</p>
<p>It took no longer than two weeks for the people involved in Gna! to decide to build the technical stack to run hostea instead of being reasonable and give up. It was just too tempting.</p>
<p>To keep the madness contained and enjoyable, it was decided to set a deadline to July 1st and to <ahref="https://gitea.gna.org/Hostea/july-mvp/issues">define precise and realistic technical goals</a>. It turned out to be an enjoyable experience: everyone learned a lot in the process and the outcome is something that can be reproduced. Most MVPs are a brittle pile of hacks designed to last a few weeks and be thrown away. But since a primary goal of the project was to create something self-hostable, it had to implement that feature and therefore be reproducible.</p>
<h3id="a-horizontal-collective-with-a-revenue-sharing-model">A horizontal collective with a revenue sharing model<aclass="zola-anchor"href="#a-horizontal-collective-with-a-revenue-sharing-model"aria-label="Anchor link for: a-horizontal-collective-with-a-revenue-sharing-model"
<p>Another goal of Gna! is to deploy federated forges, even at an experimental stage. Instead of creating a centralized organization to support Gna!, it was decided to create <ahref="https://forum.gna.org/c/governance-and-decisions/7">horizontal collective</a>. It feels like a contradiction for a project committed to decentralization to be governed by a centralized organization.</p>
<p>The collective is composed of individuals and organizations but, unlike exclusively volunteer based Free Software projects, it is for profit. Customers rent Gitea instances by the month and the income is used to pay for expenses. There is however a difficulty: by nature a horizontal collective cannot be incorporated as it would create a level of hierarchy. The <ahref="https://forum.gna.org/t/decision-revenue-sharing-model/92">revenue sharing model</a> had to be set as an informal agreement between members where one of them receives the income and distributes it to the others, depending on their Gna! related expenses.</p>
<p>It also requires that 25% of the income (not the profits) is dedicated to help the Free Software projects that Gna! depends on such as Gitea, Enough, Django etc. It can be via a donation, by upstreaming a bug fix or any kind of work that is beneficial to the dependency.</p>
<h3id="dedicated-to-forge-federation">Dedicated to forge federation<aclass="zola-anchor"href="#dedicated-to-forge-federation"aria-label="Anchor link for: dedicated-to-forge-federation"
><spanclass="anchor-icon">#</span></a
>
</h3>
<p>In the spirit of dogfooding, the people who created the technical stack of Gna! will use it for themselves on a daily basis. Since the focus of the authors is on <ahref="https://forgefriends.org/blog/2022/06/30/2022-06-state-forge-federation/">forge federation</a>, they will add federation support in Hostea. This will be their primary motivation to improve and maintain Hostea: it is the only hosting platform where this can happen.</p>