Codeberg Newshttps://blog.codeberg.org/2024-02-28T00:00:00+01:00What we can learn from the Fediverse spam for Codeberg2024-02-28T00:00:00+01:002024-02-28T00:00:00+01:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2024-02-28:/what-we-can-learn-from-the-fediverse-spam-for-codeberg.html<p>At Codeberg, we want to join the Fediverse,
the ActivityPub-powered world that connects Mastodon, Pixelfed,
<a href="https://codeberg.org/flohmarkt/flohmarkt">flohmarkt</a>
and so many other cool social networks and tools.</p>
<p><a href="https://forgejo.org">Forgejo</a>, the software that powers Codeberg,
is <a href="https://codeberg.org/forgejo/forgejo/issues/59">actively working on making this possible</a>.
In our dreams, this will soon allow users on one server to …</p><p>At Codeberg, we want to join the Fediverse,
the ActivityPub-powered world that connects Mastodon, Pixelfed,
<a href="https://codeberg.org/flohmarkt/flohmarkt">flohmarkt</a>
and so many other cool social networks and tools.</p>
<p><a href="https://forgejo.org">Forgejo</a>, the software that powers Codeberg,
is <a href="https://codeberg.org/forgejo/forgejo/issues/59">actively working on making this possible</a>.
In our dreams, this will soon allow users on one server to collaborate with developers on another one,
without central parties involved.
You can receive feedback and communicate with people using their microblogging accounts. How cool?!</p>
<p>Our dreams have been disrupted with an enormous spam wave that hit the Fediverse recently.
The open registrations of many small instances were abused to send spam to the rest of the network.<sup id="fnref:1"><a class="footnote-ref" href="#fn:1">1</a></sup></p>
<p>Naturally, as admins who are also fighting spam, malware and abuse on a daily basis,
we were curious and started thinking ahead:
What if this spam reaches us in the future?
How will we react to this?</p>
<p>I want to outline my perspective and takeaways from the situation.
In comparisons, I'll often use Mastodon instead of other fediverse software.
It is a tool where I have seen how moderation works in practice,
and I suspect it is similar to most other major networks.</p>
<h2>The caveat of federated moderation</h2>
<p>Federation has many advantages,
and is probably the reason why E-Mail is not dead yet.
But it comes with costs and challenges.
For example, it requires duplicating data across several servers,
and keeping it in sync.</p>
<p>When you learn that your E-Mail account was hacked and sent spam to hundreds of recipients,
there is no way to undo that action.
The message is duplicated and so is the effort.
If one user marks the message as spam,
it is not removed from other people's inboxes.</p>
<p>Mastodon does a little better.
Reporting a message as spam optionally informs the remote instance of the abuse,
allowing them to get rid of the spam at the source.
However, next to successful propagation of these changes
(I have seen cases where I reported spam that was already removed on the remote instance),
this requires an actively maintained and friendly remote instance.
I'll come to the potential of malicious actors later.</p>
<p>If the remote instance is not willing to participate or does not respond in time,
every affected instance needs to remove the spam on their own.</p>
<p>In the Fediverse, a pragmatic approach has emerged:
When an instance is not properly moderated,
it is simply blocked as a whole, also say "defederated".
And lists of known unmoderated instances are shared between admins.</p>
<p>Back to E-Mail: There are blocklists in a similar spirit,
but they resulted in
<a href="/how-blocklists-prevent-the-internet-to-be-decentralized-and-safe.html">a big case of monopoly and injustice</a>.
E-Mail was not designed with abuse prevention in mind,
so the emerged solutions might differ.
Still, we should find a better way than blocklists.
And there are voices in the Fediverse complaining about the current practice, too.</p>
<h2>Kinds of threats</h2>
<p>People are only productive in safe environments.
Most people cannot "just ignore" spam and abuse.
If your inbox is flooded with annoying E-Mails,
your motivation to read them at all decreases rapidly.
If your social media feeds or chat rooms are filled with garbage,
you don't enjoy interacting with the communities.
The same pattern applies to software development:
How could you build awesome content when distracted by all kinds of abuse.
It is a serious threat for your productivity!</p>
<p>Next to spam, you can of course also feel uncomfortable due to disgusting content.
At Codeberg, we regularly remove sexist, racist
or otherwise inappropriate content to protect our community.
And we will need to ensure there is no unhealthy inrush
of this content from external sources.</p>
<p>More dangers are waiting:
Code hosting platforms are among the number one platforms for spreading malware.
Our current strategy seems to work out:
We try to remove malware as soon as possible,
often having it downloaded only a few times before being detected,
and this seems to quickly turn away malicious actors from our platform.
We see that not-actively-maintained platforms are full of bad code,
and federating with them will pose a high risk,
or require us to do the moderation work for the remote instances, too.</p>
<p>Last but not least, there is plain simple storage abuse.
Sometimes with bad intent, sometimes just out of ignorance,
people push Gigabytes of junk data,
their encrypted home backups,
replicate proprietary software
and so much more.
Depending on how forking and caching is done in a federated forge future,
this can cause unexpected costs or problems
(like your disk running full for your home server),
and we must find a way to protect against this.</p>
<h2>How a healthy federated network can look like</h2>
<p>To me, this leaves a final idea of how federated systems should be designed.
The key points:</p>
<p><strong>Monopolies must be under control.</strong>
Large instances have a great power and responsibility.
If a large provider decides to cut the connection,
it will be the smaller party to be blamed.
This has been the case with E-Mail,
where all small providers need to comply with the rules of Google, Microsoft etc.
Users expect third-parties to successfully deliver the messages into their inbox
and do not question if their provider plays a fair role in the game.
We believe that community-managed structures like Codeberg also play an important role.
The decision is in the hand of the public
and does not depend on the arbitrary decisions of a company or small admin team.</p>
<p><strong>Moderation must federate well.</strong>
Instead of relying on only two sides of the connection to process reports,
it might be beneficial if abuse reports are also shared to other instances.
An instance could automatically hide posts if they have been blocked by numerous remote servers.
This prevents malicious instances from generating duplicate work on all receiving servers.</p>
<p><strong>Responsible maintenance.</strong>
It is good to allow anyone to selfhost software.
However, putting up something on the Internet comes with some responsibilities.
Unmaintained systems can cause harm,
unpatched software or insecure configurations can be the entrypoint for spam
or can be combined to botnets with huge impact.
Please consider twice before offering a service with open registrations.
If you want, we recommend forming a group of like-minded admins and taking care together.
This <a href="/community-maintenance-matters.html">is more efficient</a> – and more fun!</p>
<p><strong>Build a network of trust.</strong>
I believe that downloading blocklists from third-parties is not the ultimate answer,
but knowledge sharing is.
You almost always have some remote instances which you trust.
I imagine Codeberg trusting instances maintained by team members,
Forgejo developers and other like-minded communities (e.g. disroot).
And we trust their trusted instances, too.
This repeats until a certain configurable threshold.
Everyone else needs to be approved by moderators first,
before the spam can reach our users.
This keeps a balance between protection and manual effort.</p>
<h2>Next steps</h2>
<p>The future is uncertain,
but we do not fear it.
It is now easier than ever to collaborate with Forgejo on moderation tooling,
in part due to <a href="https://forgejo.org/2024-02-forking-forward/">the decision for a hard fork</a>.
If you run your own instance,
<a href="https://codeberg.org/forgejo/discussions/issues/107">we are looking for your feedback</a>.
Extending the admin tooling is my personal focus for the next time,
and it is the base for successful federated moderation, too.</p>
<p>If you are interested in helping on any front in Forgejo,
please get in touch.
Your help is more than welcome.
Let's together shape the future of software development!</p>
<div class="footnote">
<hr>
<ol>
<li id="fn:1">
<p>You can read more about the background
<a href="https://techcrunch.com/2024/02/20/spam-attack-on-twitter-x-rival-mastodon-highlights-fediverse-vulnerabilities/">in this article</a>,
including the <a href="https://techcrunch.com/2024/02/20/spam-attack-on-twitter-x-rival-mastodon-highlights-fediverse-vulnerabilities/">involvement of Discord</a>
in the matter. <a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text">↩</a></p>
</li>
</ol>
</div>Letter from Codeberg: Looking into the new year2024-01-25T00:00:00+01:002024-01-25T00:00:00+01:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2024-01-25:/letter-from-codeberg-looking-into-the-new-year.html<p><em>(This is a stripped-down version of the news letters sent out to members of Codeberg e.V. – not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and supporters!</p>
<p>We wish you all the best for 2024, including maximum success with your projects!
Let's have …</p><p><em>(This is a stripped-down version of the news letters sent out to members of Codeberg e.V. – not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and supporters!</p>
<p>We wish you all the best for 2024, including maximum success with your projects!
Let's have a look at relevant news from our side.</p>
<h2>Highlights</h2>
<ul>
<li>We will be at FOSDEM 2024 with our stand - meet us if you are there and get your Codeberg/Forgejo stickers! (<a href="https://codeberg.codeberg.page/Events/events/2024/02-fosdem/">Details</a>)</li>
<li>Forgejo was updated mid December. We initially faced performance regressions, but they were hot-patched by the awesome team, thanks!</li>
</ul>
<p>Codeberg e.V. has 429 members in total, these are 296 members with active voting rights, 126 supporting members and 7 honorary members.</p>
<h2>Sustaining Human Workforce</h2>
<p>In the Free Software world,
being able to compensate contributors for their work is often cited as the most important problem.
Some people might even think that it is simply not possible to build an utopian world
where all software is free without starving their creators.</p>
<p>We believe that a world with only Free Software is a better world,
and we're proud to share that we made progress to support the humans behind it.</p>
<p>The path is not always easy,
insurance requirements, bookkeeping, international taxes and contracts are sometimes overwhelming.
But we're learning and improving,
and sustaining human workforce as our most important driver is among our highest priorities for 2024.</p>
<p>To iterate the journey:</p>
<ul>
<li>In 2022, we started with a "Minijob" (German format for low wage / working hours and reduced tax/insurance requirements) for a Codeberg member, Gitea and Woodpecker maintainer,
but the bookkeeping overhead was still very high.</li>
<li>We started to pay voluntary effort compensations (tax-free for German citizens) to four contributors to upstream projects or system maintenance at Codeberg, and we are looking to extend it.</li>
<li>And the most recent step: We hired <a href="https://codeberg.org/algernon">algernon</a> who is doing freelance work in Forgejo, and we're more than happy with his work:
Long-standing issues are now finally resolved, and the progress feels like a rocket booster.
Details are logged <a href="https://codeberg.org/forgejo/sustainability#employee-delegation-1">in the Forgejo sustainability repository</a></li>
</ul>
<p>It must be noted that this progress comes with its costs.
Paying a few hours of precious time equals to paying server rent for a month.
Buying new drives is cheap compared to getting a proper feature implemented.
We believe it is the right way, and if you think so too,
we kindly ask you to consider a or increasing your <a href="https://docs.codeberg.org/improving-codeberg/#donate-to-codeberg">donation to Codeberg e.V.</a>.</p>
<h2>DDoS and Malware</h2>
<p>The new year's start brought a big bag of bad surprise.
On January 11, we suddenly saw networking to our servers disappear.
We have out-of-bands-access via a VPN managed by our provider,
but although we were able to connect,
the connection was too unreliable to do anything useful with our server.</p>
<p>During a brief moment of working access,
we were able to observe an inrush of network traffic that filled all our uplink capacity –
and that of our provider, too.</p>
<p>By now, we are convinced that the DDoS attack on our infrastructure was either
related to us sending <a href="https://social.anoxinon.de/@Codeberg/111738945488510033">our thoughts to SourceHut who were struggling with a DDoS at this time</a>,
or the fact that the SourceHut status site was hosted using Codeberg Pages at this time.
Only speculation, though.</p>
<p>Luckily, the awesome team of our provider managed to lock down IPv4 traffic and restore IPv6 access.
We repurposed a virtual cloud server with spare capacity to act as a proxy to restore access as soon as possible.</p>
<p>After the situation calmed down, the measures were reverted to reduce latency and transient network errors due to the workaround.
However, we are considering steps to reduce response time to such incidents in the future.
If you have experience with L3 networking and some free time, feel free to reach out!</p>
<p>When our awesome users were able to use Codeberg again,
so returned the abuse.
Malware uploads are on the rise again and we monitoring access logs to detect potentially abusive files.
It makes us happy when we manage to take down malicious files e.g. 8 minutes after their upload and with only a few total downloads.
However, we acknowledge that there is still a lot to improve to deal with this first-publications.
Since we are very close to the source of malware distribution,
detection rate of virus scanners is often still low.
If you are curious about malware on Codeberg,
feel free to get in touch and participate in the hunting!</p>
<h2>Your contribution in 2024</h2>
<p>Can you afford some free cycles for Codeberg this year? This would be great!
We're continuously looking for maintainers and contributors to the software used and produced by Codeberg.</p>
<p><a href="https://forgejo.org/">Forgejo</a> is the core of Codeberg, and your contribution will have high impact.
Do you have experience with frontend development, UI/UX, or help with user research? Get involved!</p>
<p><a href="https://translate.codeberg.org">Our Weblate instance</a> could need some more love.
It is maintained with remarkable commitment by a single person at the moment,
but there's always work to do. Help users, maintain the installation
or contribute to the Python codebase and User Interface, any of this would be appreciated.</p>
<p>Also make sure to check out <a href="https://codeberg.org/Codeberg/Contributing">Contributing to Codeberg</a>
as the central place for coordinating contributions to our different teams and projects.</p>
<p>Last but not least, we always require help within our non-profit association itself.
User support, office tasks and bookkeeping, decision-making and governance:
Consider <a href="https://join.codeberg.org">joining Codeberg e.V.</a> if not already done,
and get in touch to run for various offices during our annual assembly.
The work within the non-profit association makes our platform possible.</p>
<h2>Community Spotlight: Host it Yourself!</h2>
<p>Having software that is easy to self-host is a crucial part of a decentralized and independent web.
It allows people to run their own stack on machines they trust,
and it allows admins who share their infrastructure with others to focus on important tasks instead of maintenance.</p>
<p>In the following, we'd like to present some promising solutions that are developed on Codeberg.</p>
<p>For nearly three years, Simon is working on <a href="https://codeberg.org/simonrepp/faircamp">faircamp</a>,
a static site generator that is made for you if you are looking for a way to publish your music as a website.
Packed with a nice design and all features you know from existing (mostly proprietary) options for this task,
faircamp is already trusted by numerous music producers and artists.
Due to the nature of a static site generator, it doesn't enforce a paywall.
A caveat for some, it makes the tool ideal for people who publish the download under a free/libre license and hope for optional donations in return.</p>
<p>What do you do with things you do no longer need?
Mention it on your blog in the hope someone finds it by coincidence?
Feel pressured to still use ebay for the job?
No longer: Self-host <a href="https://codeberg.org/grindhold/flohmarkt">flohmarkt</a> (German for flea market) for the job,
an ActivityPub-based federated small trade platform.
With the active development being less than a year old,
you should expect some unfinished touches.
We're curious how the project looks like by the end of the year,
and with the contributors all the best!</p>
<p>For our users that work within education,
we recommend having a look at <a href="https://codeberg.org/lerntools/base">learntools</a>.
It allows to replace commonly used proprietary solutions in schools with a privacy-respecting digital classroom suite.
The contributors communicate in German, but the English documentation should be good enough for your setup,
and the interface is available in some other languages, too.
The project is under development for five years already,
and we wish the developers all the best for their current priority: migrating to Vue 3.</p>
<p>If you haven't done this already,
let us <a href="https://social.anoxinon.de/@Codeberg/111670725689913652">know about your plans for the year via the Fediverse</a>
and explore the projects and goals other Codeberg users are up to.
No matter how small or huge,
we wish you all the best for your milestones in 2024.</p>
<p>Your Codeberg team</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Arminiusstraße 2 - 4 – 10551 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929.</p>One year into the war, your help is still needed2023-11-10T00:00:00+01:002023-11-10T00:00:00+01:00Codeberg e. V.tag:blog.codeberg.org,2023-11-10:/one-year-into-the-war-your-help-is-still-needed.html<p><em>(This text has been written a rather long time ago, with discussions starting in
Spring 2023. It took a while to draft, have Codeberg e. V. members vote and to finally
publish it. The latter was also due to other more important things in our
work queue. We apologize for …</em></p><p><em>(This text has been written a rather long time ago, with discussions starting in
Spring 2023. It took a while to draft, have Codeberg e. V. members vote and to finally
publish it. The latter was also due to other more important things in our
work queue. We apologize for the delay.)</em></p>
<p>Since the beginning of the Russian invasion more than a year ago, a horrific war has been raging in Ukraine,
while Crimea and Eastern Ukraine have been under Russian occupation for much longer. We find this unaccept-
able. Countless people have already been forced to flee their homes and to seek refuge in other countries. Cities
have been completely destroyed by Russian bombardment, many more are severely damaged; Kherson, Odesa
and Bakhmut are only a few of many examples. Ukrainian children are systematically abducted, and far too many
mass graves of innocent civilians have already been found in liberated areas.</p>
<p>These appalling events have not gone unnoticed. And like us, you may wonder what we can do about it. We may
not be not doctors, firefighters or a human rights organisation — our primary responsibility is promoting the
values of software freedom —, but we are convinced that war is an issue that concerns us and society as a whole.</p>
<p>Software freedom is not just about your preferred software licence or your favourite text editor. It is also about
the values of community, free culture and ideals. In all the places where human dignity and the right to free
expression are not respected and safeguarded, these values will eventually cease to exist.</p>
<p>War does not just take away developers to work on our beloved open-source software. Apart from the human
toll and the devastation being horrific beyond human imagination on its own, it manifests authoritarian and
impoverishing environments that foster despair over creativity. A notable example of that from the open-source
community is the story of <a href="https://www.wired.com/story/free-bassel-essay">Bassel Khartabil</a>,
a free culture contributor who was secretly executed by the regime in Syria.</p>
<p>Therefore, in line with the goals of our association, we believe that we should direct you to the following projects
and organisations that rely on contributions by volunteers:</p>
<ul>
<li><a href="https://snowflake.torproject.org/">Snowflake</a> a web extension that you can download to help people access the free Internet. As it is mainly used
in places where <a href="https://metrics.torproject.org/">publicized Tor relays</a> are blocked, your IP address will not be made public. Also, it does not
require any technical knowledge to use it.</li>
<li><a href="https://ooni.org/">OONI</a></li>
</ul>
<p>If you do not have the time but have some money to spare, we collected a few organisations that work on im-
proving the conditions of the civilians present in Ukraine and Russia, as well as across the globe:</p>
<ul>
<li><a href="https://www.msf.org/ukraine">Doctors without Borders</a>, which provides medical emergency assistance during crisis and war;</li>
<li><a href="https://www.warchild.org/">War Child</a>, an organisation whose effort is to help children in conflict areas;</li>
<li><a href="https://www.aktionsbuendnis-katastrophenhilfe.de/krieg-in-der-ukraine">Aktionsbündnis Katastrophenhilfe</a>, which is a collaboration of the Red Cross, UNICEF and Caritas (German
language only).</li>
</ul>
<p>Finally, we think it is important to stay informed and verify information before passing it on, as this war is also
fought with propaganda and misinformation.</p>
<p>Here are some news sources we would like to recommend to you:</p>
<ul>
<li><a href="https://www.theguardian.com/world/ukraine">The Ukraine News of The Guardian</a>, which is independent and financed by its readers;</li>
<li><a href="https://theintercept.com/">The Intercept</a>, which was founded by the leading journalists in the Snowden revelations;</li>
<li><a href="https://bellingcat.com/">Bellingcat</a>, an investigative research network of Open Source Intelligence journalists.</li>
</ul>
<p>Let us respect each other instead of redrawing borders through military violence. We sincerely hope that this
conflict gets resolved soon – without further bloodshed and civilian harm.</p>
<p>Best regards,<br>
Your Codeberg e.V.</p>Letter from Codeberg: November 20232023-11-09T00:00:00+01:002023-11-09T00:00:00+01:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2023-11-09:/letter-from-codeberg-november-2023.html<p><em>(This is a stripped-down version of the news letters sent out to members of Codeberg e.V. – not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and supporters!</p>
<p>Let's take some time to look at what we have achieved in the past months,
and …</p><p><em>(This is a stripped-down version of the news letters sent out to members of Codeberg e.V. – not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and supporters!</p>
<p>Let's take some time to look at what we have achieved in the past months,
and what is coming up next.</p>
<h2>Highlights</h2>
<ul>
<li>new membership form now live at <a href="https://join.codeberg.org">join.codeberg.org</a></li>
<li>collaboration to use Forgejo in German schools</li>
<li>more than 100.000 projects as of late on Codeberg</li>
</ul>
<p>Codeberg e.V. has 401 members in total, these are 281 members with active voting rights, 113 supporting members and 7 honorary members.</p>
<h2>Forgejo</h2>
<p>While insights into the development activity of Forgejo can always be found <a href="https://forgejo.org/news/">on their blog</a>,
there are some topics worth mentioning here.</p>
<p>First, we are very grateful for the awesome support received by Forgejo contributors recently
regarding performance issues.
While our filesystem-based problems are resolved,
we know dealt with database slowdowns and occasional deadlocks.</p>
<p>Forgejo developers did a great job helping us identify and improve slow queries and add database indices where they were useful.
One example: We cut down the time to delete a spam user (see below) from up to a minute down to one second in most cases,
with some work in worst-cases remaining.</p>
<p>Further, there is a new pilot project investigating to use Forgejo in German schools.
We are proud to support this mission,
as education is an explicit goal as per our bylaws.
You can read more about it here: <a href="https://codeberg.org/forgejo/discussions/issues/71">forgejo/discussions#71</a>.
If you are interested to help with this specific project,
please get in touch with us.</p>
<p>Last but not least, we are calling for help:
If you are a developer interested to work on Forgejo
(Backend (Go), Frontend, UI/UX, User Research and more),
please get in touch with us.</p>
<p>There are a multitude of diverse tasks,
from deep dive into database and performance tweaks,
federation and forge compatibility,
crazy unsolved bugs to current works on improving overall user experience
and conducting user research.</p>
<p>If you are a German citizen or can create compatible invoices (e.g. as a freelancer),
we might even be able to provide some financial compensation for your free time.
Please reach out so we can discuss potential options.</p>
<h2>Spam and Abuse</h2>
<p>During the past months,
we have seen a heavy increase of spam on Codeberg.
While we have a steady amount of accounts that advertize dubious services via their profile description,
the spam got much more annoying for other platform users recently.
We have seen spammers create thousands of issues,
also in existing open source projects.</p>
<p>With immediate action and a lot of work,
we were able to cut down the amount of spam drastically.
To give you an idea: During our largest scan for abusive content,
we removed 15% of all issues on Codeberg within a few days, because they were spams.</p>
<p>We are working to improve the tooling around this.
If you come along spam on Codeberg,
you can mention "@moderation" in a comment,
until proper flagging options (work in progress) are implemented.</p>
<p>Next to spam, we have also removed some warez / piracy repositories with extreme traffic or storage demand.</p>
<p>We are considering to change our signup flow,
please check out and give your feedback in <a href="https://codeberg.org/Codeberg/Community/issues/1329">Codeberg/Community#1329</a>.</p>
<h2>Community & Initiatives</h2>
<p>Several contributors have teamed up and created valuable contributions.
Thank you!</p>
<p>The highlight: The long-awaited update of our membership registration form went live in October.
If your friends are not yet members of Codeberg e.V. yet,
consider pointing them at <a href="https://join.codeberg.org">join.codeberg.org</a> now.</p>
<p>We hope that the new form is both more visually appealing
as well as clearer regarding membership and payment options.</p>
<p>There is also news from the recently-formed code search team (@fourstepper and @yoctozepto)
who have done some initial discovery of what is available in terms of repository search for Forgejo out of the box,
as well as what could fit Codeberg best.</p>
<p>Keeping performance and deployment strategies in mind,
the <code>bleve</code> code indexer is likely not usable for Codeberg,
and they are now looking into <a href="https://github.com/opensearch-project/OpenSearch"><code>OpenSearch</code></a>
and <a href="https://github.com/hound-search/hound"><code>Hound</code></a> - evaluating these options for Codeberg simultaneously.</p>
<p>They also created some tooling for generating sample data and setting up some preliminary development environment.
To track the progress, you can follow the
<a href="https://codeberg.org/Codeberg-Infrastructure/code-search/">code-search repository</a> and say hi in the
<a href="https://matrix.to/#/#codeberg-code-search:matrix.org">codeberg-code-search:matrix.org channel</a>
Matrix channel.
We are looking forward to conducting first production tests next year.</p>
<p>Last but not least, we want to thank @pat-s for becoming a second maintainer of our Woodpecker instance.</p>
<h2>Community Spotlight: New to Codeberg</h2>
<p>We are happy to see some interesting projects have recently moved to Codeberg.
For a start, the libre game <a href="https://codeberg.org/FreeRCT/FreeRCT">FreeRCT</a>,
which allows you to operate a fun park and build your unique roller coaster
in the spirit of the RollerCoaster Tycoon games is now developed on Codeberg.</p>
<p>Recent development work includes a working scenario system, which makes the gameplay more interesting.
Will you manage to reach the goals of your park in time?</p>
<p>If you need a day off, this game is definitely worth a try.</p>
<p>Do you like playing with new programming languages?
What comes next?
Consider giving Zig a try by solving the <a href="https://codeberg.org/ziglings/exercises">Ziglings exercises</a>.
Zig is a simple programming language for building robust and maintainable software.
The Ziglings project makes learning easier and funnier by providing a set of tasks that cover the core concepts of Zig.
And the good thing: You don't need to be an expert in C to get started.</p>
<p>You might know or use <a href="https://codeberg.org/smxi/inxi">inxi</a> to get information about the Linux or BSD system you are running on.
And if you want to update inxi now,
you can even get it from Codeberg.
By the way, inxi is also installed on our server systems.
In the future, we might just clone it locally …</p>
<p>Thank you all for your awesome contributions to Free/Libre software.
It is a pleasure for us to provide you with the necessary infrastructure.</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Arminiusstraße 2 - 4 – 10551 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929.</p>Letter from Codeberg: September 20232023-09-04T00:00:00+02:002023-09-04T00:00:00+02:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2023-09-04:/letter-from-codeberg-september-2023.html<p><em>(This is a stripped-down version of the news letters sent out to members of Codeberg e.V. – not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and supporters!</p>
<p>Let's take some time to look at what we have achieved in the past months,
and …</p><p><em>(This is a stripped-down version of the news letters sent out to members of Codeberg e.V. – not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and supporters!</p>
<p>Let's take some time to look at what we have achieved in the past months,
and what is coming up next.</p>
<h1>Inside Codeberg e.V.</h1>
<p>News from the non-profit association in short
(legal members received a more detailed write-up via email):</p>
<ul>
<li>there was an extremely long but productive annual assembly at the end of May</li>
<li>we welcome our five new honorary members aboard, thank you for your extraordinary contributions to Codeberg!</li>
<li>a new presidium was formed and decided to publish all decisions to Codeberg members internally</li>
</ul>
<h1>Codeberg in the media</h1>
<p>In the past months, Codeberg has received some media coverage.
<a href="https://podcast.sustainoss.org/189">Listen to Otto talking about Codeberg in the Sustain OSS podcast</a>
or <a href="https://www.drwindows.de/news/codeberg-eine-freie-alternative-zu-github">read what the German Windows-specific magazine Dr. Windows</a> wrote about us.</p>
<p>Also, there are recurrent talks about Codeberg on the social networks,
we are mostly aware of Mastodon,
and we thank everyone who recommends Codeberg to colleagues and friends.</p>
<h1>Infrastructure</h1>
<p>Keeping the services of Codeberg running is always a time-consuming work.
We faced several downtimes, sometimes even lasting for hours.
The major cause and trigger are identified.
We'll quickly try to explain the situation (feel free to skip if you are not interested in technical details).</p>
<p>The cause is within our Ceph cluster.
When we moved our data from virtual servers to our own hardware,
we decided to bootstrap a small and degraded Ceph cluster,
allowing for flexible expansion at a later stage
without the need for another lengthy storage migration.</p>
<p>However, the downtime we faced exactly because of this premature decision
certainty exceeds the expected second migration downtime we wanted to avoid.
In retrospective, the decision was wrong.
If you deploy heavy technology to deal with availability,
you require staff to take care of it.
Since we haven't had the experience,
we should have chosen a boring filesystem that only fails when the hardware fails,
not because of complex setup issues.</p>
<p>When Codeberg is hit by extreme traffic,
our Ceph cluster gets slow and clanky,
requests stack up,
and results in a complete freeze of our machine over time.
The good news: We have identified a plan on how to fix this in August,
and we will be working on making things better.
We also plan to add a second server to the datacenter.
If you reside in Berlin in September, consider to join the task!</p>
<p>The trigger is different:
Our degraded Ceph cluster,
although not the most resilient,
runs smoothly, and did so for several months.
Normal traffic to it is in the range of 0.5 - 1.5k operations/second,
with rare spikes to 2.5k (CEST-evenings, big repo pushes).
But sometimes, often during the CEST-mornings,
we have seen this traffic rise to more than ten times the normal values.</p>
<p>We have now restricted several IP ranges and a lot of individual IP addresses
that appear to do excessive crawling of big repositories during this time.
They are not throttled via normal rate limiting,
because their rate is well below our thresholds,
but they are doing very heavy requests.
Running up to 1000 simultaneous Git jobs on large Linux and BSD kernel trees
is simply too much for our current setup,
especially because a single GET request can amplify to Git operations that do hundreds of I/O operations.
We had no luck identifying who is beyond these IP addresses (e.g. search engines).</p>
<h1>Community & Events</h1>
<p>Codeberg is a volunteer-driven effort.
Our diversity of contributors is the most important aspect of Codeberg's awesomeness.
With the project growing, the core team has not kept pace, so improving the relationship and onboarding processes has highest priority.</p>
<p>Two initiatives have started recently:
For one, we have scheduled regular community meetings,
and hereby also invite all Codeberg members to join us.
For both technical and non-technical work, we meet once a month each,
resulting in two events per month.
The next dates are 07/09/2023, 20:00 CEST about organizing the contributing parts,
and 21/09/2023, 20:00 CEST with technical topics.
All <a href="https://codeberg.codeberg.page/Events/">details and upcoming events can be found on the new Calendar</a>.</p>
<p>Additionally, we are building a coordination place for Codeberg Contributors.
https://codeberg.org/Codeberg/Contributing is becoming the place for an overview of projects and their maintainers,
coordinating teams, introducing contributors and more.
It is still rough around the edges,
but if you are excited to get involved with Codeberg,
consider creating an issue to introduce yourself
and explore the projects that are already there.</p>
<h1>Community Spotlight: Minigames</h1>
<p>Do you sometimes need a small break from work?
What about playing a small round of minigames that others develop on Codeberg?
We can really recommend Librerama,
a collection of simple, but fast-paced minigames,
written by Yeldham using the Godot engine.
You can download it for many platforms or directly play it in your browser.<br>
<a href="https://librerama.codeberg.page/">Check it out!</a></p>
<p>If you prefer retro racing games,
check out "What the road brings" from Captain4LK.
The version on itch is also directly playable in your web browser.<br>
<a href="https://codeberg.org/Captain4LK/what_the_road_brings">Check it out</a></p>
<p>And Huitsi's "Parallel Overhead" version can also refresh your mind during a break,
and is also directly playable inside your web browser.<br>
<a href="https://codeberg.org/Huitsi/WebParallelOverhead">Check it out</a></p>
<p>We hope that you have some fun trying them out :)</p>
<h1>Up Next</h1>
<p>Internal communication is sometimes a little chaotic.
There are chatgroups, and issue trackers,
but we sometimes still find ourselves copying information across various places to keep everyone in the loop.
Some members are currently working on a ticketing system to streamline communication,
both internally and externally.
It will finally also allow to provide efficient end-user-support,
we currently simply can't answer all the requests we receive.
You can follow the project via <a href="https://codeberg.org/Codeberg-e.V./Ticketing/">Codeberg-e.V./Ticketing</a>.</p>
<p>Thank you for supporting our mission, and for reading.
We are looking forward to meeting you soon during our regular meetings.</p>
<p>Kind Regards
Your Codeberg e.V.</p>
<p>Codeberg e.V. has 379 members in total, these are 265 members with active voting rights, 107 supporting members and 7 honorary members.</p>
<p><em>Friendly reminder: membership in the account group "Members" on Codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</em></p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Arminiusstraße 2 - 4 – 10551 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929.</p>The permissions for your scoped access tokens might change on Thursday2023-08-07T00:00:00+02:002023-08-07T00:00:00+02:00Codeberg Teamtag:blog.codeberg.org,2023-08-07:/the-permissions-for-your-scoped-access-tokens-might-change-on-thursday.html<p>Dear Codeberg users,</p>
<p>we are excited to deploy Forgejo v1.20 to production, bringing tons of new features, bugfixes and improvements.</p>
<p>However, there's a caveat with scoped access tokens: They will change, eventually granting more permissions than expected. Please read on if you use them. We additionally email all users …</p><p>Dear Codeberg users,</p>
<p>we are excited to deploy Forgejo v1.20 to production, bringing tons of new features, bugfixes and improvements.</p>
<p>However, there's a caveat with scoped access tokens: They will change, eventually granting more permissions than expected. Please read on if you use them. We additionally email all users who are known to be affected.</p>
<p>On <strong>THURSDAY, AUGUST 10 2023</strong>, the new Forgejo version will be deployed and your <strong>EXISTING SCOPED TOKENS</strong> might receive <strong>MORE PERMISSIONS THAN YOU INITIALLY SELECTED.</strong></p>
<p>The migration will try to match the old scopes as close as possible, but some granularity will be unavailable. If you rely on it for security reasons, please revoke your access tokens before Thursday.</p>
<p><strong>The new implementation</strong> will only allow to grant "no", "read" or "write" permissions to the following sections individually:</p>
<ul>
<li>Repository</li>
<li>Organisation</li>
<li>User</li>
<li>ActivityPub</li>
<li>Package</li>
<li>Issue</li>
<li>Notification</li>
</ul>
<p>If you want to <strong>continue</strong> using your tokens with <strong>resulting expanded scope</strong>, or if you created tokens with <strong>all permissions</strong>, <strong>no action</strong> from your side is required.</p>
<p>Codeberg.org runs on Forgejo, a soft-fork from the Gitea project. While we both do add our own patches and features, deviating from Gitea for such an essential part of the codebase is currently not feasible due to limited human power. Therefore, we have decided to stick with the behaviour implemented by Gitea, although we find the situation very unfortunate and would have loved for a longer transitioning period. We ask for your understanding.</p>
<p>If you have further questions or require assistance, please let us know.</p>
<p>If you are nerdy enough to dive into details about this, you can find further information about the new scoped access tokens in the <a href="https://github.com/go-gitea/gitea/issues/24501">original Pull Request</a> and by <a href="https://codeberg.org/forgejo/forgejo/src/commit/d52f70447f83f848c3d040670e6afb4780f618de/models/migrations/v1_20/v259.go#L283-L315">reading the code where old scopes are going to be matched with the new scopes</a>.</p>
<p>Kind Regards<br>
Your Codeberg Team</p>Letter from Codeberg: May 20232023-05-15T00:00:00+02:002023-05-15T00:00:00+02:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2023-05-15:/letter-from-codeberg-may-2023.html<p><em>(This is a stripped-down version of the news letters sent out to members of Codeberg e.V. – not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and supporters!</p>
<p>Our Annual Assembly for Codeberg e.V. legal members is nearing (May 21).
We now share …</p><p><em>(This is a stripped-down version of the news letters sent out to members of Codeberg e.V. – not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and supporters!</p>
<p>Our Annual Assembly for Codeberg e.V. legal members is nearing (May 21).
We now share some news from the past months at Codeberg.</p>
<h1>Highlights</h1>
<p><strong>Forgejo 1.19</strong></p>
<p>With the availability of Forgejo 1.19 and after undergoing heavy testing,
we deployed Forgejo 1.19 by the end of April.
Forgejo is a software forge created on top of Gitea by an independent community
under the umbrella of Codeberg.</p>
<p>When this project was started last year,
we looked into an uncertain future.
While the project started as a soft-fork,
many feared that upstream collaboration would cease,
leading to a hard fork from Gitea.</p>
<p>Now, after running Forgejo for several months,
we are glad to have dared this step.
The Forgejo community offers something of incredible value: awesome support.
Since the Forgejo developers are like-minded
and with their use of Codeberg much closer to us,
collaboration on important issues drastically improved.</p>
<p>But the good news goes on:
The collaboration between Forgejo and Gitea also improved,
compared to how Codeberg used to work with Gitea in the past.
When some people wonder about the difference between Forgejo and Gitea (next to branding),
there is not much to show.
This is because significant work is being upstreamed to benefit Gitea users alike.
Although our direct contact with the Gitea developers was reduced,
we are happy that this dependency chain now allows for a more efficient workflow.</p>
<p><strong>Office Moved</strong></p>
<p>Codeberg does not have a "headquarter", our office was merely a room with a desk
where we could occassionally meet for office work.
This was sponsored by an individual,
but the cost was immense.
We agree that the money is probably better saved and invested elsewhere,
and decided to switch to a cheaper option.
We now found a new space in Berlin and moved over.</p>
<p><strong>Enjoy our achievements</strong></p>
<p>We were scratching our heads to look for more important news to share.
While scrolling through our chats, and social media profiles, and emails,
we saw an immense amount of positive feedback which we want to share.</p>
<p>More than 300 members have joined the Codeberg e.V. so far and are supporting our mission.
We are providing nearly 60,000 users and their 70,000 projects with Git hosting,
hosted Woodpecker CI, Weblate translation services and Codeberg Pages.</p>
<p>Codeberg is no small niche space,
but an emerging community of Free Software contributors.
Software hosted on Codeberg is available on F-Droid, as Debian and flatpak packages,
and libraries for many programming languages and frameworks can be obtained from Codeberg.</p>
<p>When browsing the web or Mastodon network,
we indirectly discover more and more projects which are hosted on Codeberg by coincidence.
Many are proud to have made the switch.</p>
<p>Although there is a lot of work to do and many problems to solve,
hearing positive voices of our users is an encouraging driver for our mission.
Together, we keep going!</p>
<h1>Current Focus</h1>
<p>Our time is currently invested into the preparations of the Annual Assembly,
including formal requests, preparing the votes and economic plans.</p>
<p>Also, while Codeberg was running stable from a technical perspective,
we have seen resource abuse increase and noticed a several short downtimes
connected to excessive resource usage of single projects / users.
Our reaction time was within time-frames you can expect from a volunteer-driven project,
still we want to become better and improve our reaction to resource abuse
before it impacts the service quality.
Codeberg is run by our hardware and our nerves. Please don't overload either of those.</p>
<h1>Where we appreciate help</h1>
<p>We published an honest blog article about <a href="https://blog.codeberg.org/the-hardest-scaling-issue.html">"The hardest scaling issue"</a>.</p>
<p>If you want to help solving it,
we appreciate your helping hand.
Most urgently needed are people who can take responsibility of a project independently
and coordinate volunteer contributions therein.</p>
<p>For example, you could help set up and maintain Code Search,
see <a href="https://codeberg.org/Codeberg/Community/issues/904">this issue</a>.
Or, you could join maintenance (code or sysadmin) of
Codeberg Pages, Weblate, Woodpecker CI,
or help us maintain LXC containers, HAProxy, Ceph filesystem and more.
Please let us know!</p>
<p>Our community issue tracker at <a href="https://codeberg.org/Codeberg/Community/issues">Codeberg/Community</a> remains an active place to discuss bugs, features, and community-related needs. If you have some free cycles, please go through the recent issues, help out users, forward bug reports and feature requests to upstream Forgejo at <a href="https://codeberg.org/forgejo/forgejo/issues">Codeberg</a> if they aren't reported yet, and consider joining our group of active community maintainers: see <a href="https://codeberg.org/Codeberg/Community/issues/571">Codeberg/Community#571</a> for details.</p>
<h1>Other</h1>
<p>Codeberg e.V. has 331 members in total, these are 236 members with active voting rights, 93 supporting members and 2 honorary members.</p>
<p><em>Friendly reminder: membership in the account group "Members" on Codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</em></p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Arminiusstraße 2 - 4 – 10551 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929.</p>Letter from Codeberg: Happy New Year!2023-02-08T00:00:00+01:002023-02-08T00:00:00+01:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2023-02-08:/letter-from-codeberg-happy-new-year.html<p><em>(This is a stripped-down version of the news letters sent out to members of Codeberg e.V. – not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and supporters!</p>
<p>The past months at Codeberg have been intense,
and it's overdue to share some updates.</p>
<p>Organisational …</p><p><em>(This is a stripped-down version of the news letters sent out to members of Codeberg e.V. – not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and supporters!</p>
<p>The past months at Codeberg have been intense,
and it's overdue to share some updates.</p>
<p>Organisational affairs for e.V.-members:
Time for our annual assembly is approaching.
While the presidium has not yet agreed on the actual date for our meeting,
it will be scheduled within the first half of the year and likely to happen around March or April.</p>
<p>We will elect new cash auditors, and a new presidium must be formed.
Please consider to volunteer and run for offices! Please reach out to presidium@codeberg.org to get in touch.</p>
<h1>Highlights</h1>
<h3>Migration to own hardware</h3>
<p>Although our infrastructure was not very stable recently,
be informed that the migration to our own hardware was successfully completed last year.
Since early November,
everything is hosted on a physical server owned by Codeberg,
housed in a data center in Berlin.</p>
<p>Storage for your projects is on a Ceph cluster,
which provides flexibility to seamlessly scale up in the future.
The downtime for our migration was kept short, and lasted one hour,
but we fixed a small number of bugs the days after.
Migration of the mail server is still pending.</p>
<h3>Forgejo fork</h3>
<p>If you had been involved with Codeberg for a while already,
the term "Gitea" is well-known for you,
providing the UI codebase for our main service.
With recent moves of the new founded for-profit Gitea Ltd, which took over important assets of the project,
without community consensus, we considered and decided it's best to support and track a community-based soft-fork instead.
We are proud to have helped launching the libre Fork "Forgejo" within our means.
It will aim for maximum collaboration with upstream when possible,
but reduce risks of "soft-lock-in" and unintended dependencies to commercial ventures,
ensuring long-term freedom guarantees.</p>
<p>Collaboration of Codeberg and the Forgejo maintainers has been pleasant and extremely constructive.
We look forward to steadily building out this relationship.
As aside, last but not least, we appreciate the decision to host Forgejo on Codeberg.</p>
<h1>A fair amount of intense work</h1>
<p>Unsurprisingly, with a growing number of users migrating to Codeberg,
the amount of work is also increasing.
Our infrastructure recently experiemnced an unusually high amount of performance issues, even some short downtimes.</p>
<p>For once, we investigated decreased availability and transient errors on our hosted Weblate service,
a platform for crowd-translations for your Codeberg projects.
These problems were mitigated by providing more RAM for the Weblate container,
and the situation appears to have stabilised so far.</p>
<p>We have noticed that our backup solution using BorgBackup did not keep up with the growing storage.
Full backup runs took longer than acceptable,
and there was a huge amount of disk I/O operations, that slowed down other user-initiated operations on Codeberg.
We have since started work on a custom backup concept which consists of a live mirror of your data,
and filesystem snapshots will ensure data integrity in the future.
To learn more about the project,
<a href="https://codeberg.org/Codeberg-Infrastructure/planning/issues/4">follow this issue</a>.</p>
<p>The initial run was causing high disk usage again (now done),
but we are confident that the concept works out long-term.
We are still working on fine-tuning the change detection,
and will once more confirm complete data integrity of the mirror over time.</p>
<p>A growing number of crawlers, performing deep scans of the entire website, including all repositories, added
additional heavy traffic spikes, degrading user experience for us human beings. We need to improve on
traffic shaping and limiting, which is currently unfortunately very tricky at the front end side,
as common load balancers (like haproxy we are currently using) are not content-aware, and cannot limit traffic
as function of generated CPU and I/O load (and this can greatly vary for GIT repo accesses).</p>
<p>Last but not least,
we have spent about € 3.000 to order four 8TB Enterprise SSDs.
We learned that the access pattern of growing Git repos with many small disk accesses
is much different than for example large file hosting,
and thus our HDDs at 12% of their capacity cannot even keep up with the I/O operations.
We will install them into our server as soon as possible, further improving bandwidth and access times.
<strong>Update to newsletter via mail:</strong> The SSDs have been installed,
and are now being added to the Ceph cluster.</p>
<h1>Where we appreciate help</h1>
<p>We recently published an honest blog article about <a href="https://blog.codeberg.org/the-hardest-scaling-issue.html">"The hardest scaling issue"</a>.</p>
<p>If you want to help solving it,
we appreciate your helping hand.
Most urgently needed are people who can take responsibility of a project independently
and coordinate volunteer contributions therein.</p>
<p>For example, you could help set up and maintain Code Search,
see <a href="https://codeberg.org/Codeberg/Community/issues/904">this issue</a>.
Or, you could join maintenance (code or sysadmin) of
Codeberg Pages, Weblate, Woodpecker CI,
or help us maintain LXC containers, HAProxy, Ceph filesystem and more.
Please let us know!</p>
<p>Our moderation and community issue tracker at <a href="https://codeberg.org/Codeberg/Community/issues">Codeberg/Community</a> remains an active place to discuss bugs, features, and community-related needs. If you have some free cycles, please go through the recent issues, help out users, forward bug reports and feature requests to upstream Gitea at <a href="https://github.com/go-gitea/gitea/issues">GitHub</a> if they aren't reported yet, and consider joining our group of active community maintainers: see <a href="https://codeberg.org/Codeberg/Community/issues/571">Codeberg/Community#571</a> for details.</p>
<hr>
<p>Codeberg e.V. has 294 members in total, these are 209 members with active voting rights, 83 supporting members and 2 honorary members.</p>
<p>Your Codeberg e.V.</p>
<p><em>Friendly reminder: membership in the account group "Members" on Codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</em></p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929.</p>The hardest scaling issue2023-01-25T00:00:00+01:002023-01-25T00:00:00+01:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2023-01-25:/the-hardest-scaling-issue.html<p><strong><em>If you want to know more about our current technical scaling issues:
Rest assured that we are working hard on it.
Read on to learn why this is not as fast as you might expect.</em></strong></p>
<p>When people like me talk about scaling,
it is pretty obvious what we are referring …</p><p><strong><em>If you want to know more about our current technical scaling issues:
Rest assured that we are working hard on it.
Read on to learn why this is not as fast as you might expect.</em></strong></p>
<p>When people like me talk about scaling,
it is pretty obvious what we are referring to.
It's about increasing computing power, distributed storage, replicated databases and so on.
There are all kinds of technology available to solve scaling issues.
So why, damn, is Codeberg still having performance issues from time to time?</p>
<p>I recently explained in a chat that we face the "worst" kind of scaling issue in my perception.
That is, if you don't see it coming
(e.g. because the software gets slower day by day,
or because you see how the storage pool fill up).
Instead, it appears out of the blue.</p>
<p>This happened to Codeberg early January.
It might have been because we didn't notice the growth,
since the last days of December (where most people are on holidays)
were much calmer than usual
(also in terms of external traffic to Codeberg like CI pulls or release downloads).</p>
<p>We see a lot of traffic during European evenings.
This makes us happy, on the one side.
To our knowledge, counting more than 50.000 users, we are by far the largest public Forgejo/Gitea instance.
And we're proud to offer so many additional services like Codeberg Pages, Weblate and CI.</p>
<p>But it's also a problem to make sure the system handles these intense hours gracefully,
while it would mostly idle for the rest of the day.
Such a scaling issue keeps you busy,
and you need careful consideration how much headroom to add in order to handle the spikes,
without wasting precious donations and energy,
it is not the hardest to fix.</p>
<p>In theory, you could just tune some config,
add more computing power, or storage, or apply a patch –
once you have identified the cause.</p>
<h2>A different kind of scaling issue</h2>
<p>In the context of Codeberg, I'm seeing a different kind of scaling issue.
I drafted a text early November, but didn't share it anywhere,
because my tone was filled with anger and frustration.
But I don't want to blame someone,
but improve and motivate.
And finally share our experience for the next Forgejo instances to not run into this in the first place.</p>
<p>Speaking personally, I invest a lot of time into the project,
and the last year at Codeberg was intense:
Periods with increased server instability,
overflowing mailboxes and angry social media users being mad about their broken Codeberg Pages.</p>
<p>We are still here, and we manage to dig through the backlog.
But the active team is small, and the work increasing.</p>
<p>The hardest scaling issue is: scaling human power.</p>
<h2>Don't forget the people</h2>
<p>In order to solve technical scaling issues,
many awesome solutions exist.
But that one bottleneck is hard to overcome.</p>
<p>Take a look at our Ceph Cluster, for example:
It was added to solve a technical scaling issue.
However, it consumes a lot more human power to get things right than traditional file systems.</p>
<p>Consider Forgejo/Gitea, the software Codeberg runs on.
It has a few flaws that go unnoticed in small instances
(for your private server, high disk I/O might not be a critical problem; for Codeberg it is).
It takes awesome developers to investigate these problems and write patches.</p>
<p>Configuration, Investigation, Maintenance, User Support, Communication –
all require some effort, and it's not easy to automate.
In many cases, automation would consume even more human resources to set up than we have.</p>
<p>At Codeberg, we might have made a mistake recently:
When we migrated to our own hardware in a hurry,
because of the increased demand for code hosting,
we wanted to do "everything right and future-proof".</p>
<p>We transitioned from a basic stack
(ext4 filesystem, Postfix, not much more)
to one including so many shiny new things:
Starting with the duty of maintaining own hardware
(which is a journey on its own),
we introduced LXC containers, Ansible, BTRFS, ZFS, Ceph and more.</p>
<p>In the past months, I found myself reading a lot of documentation,
mostly for Ceph and HAProxy,
two tools which were tuned a little to mitigate the ongoing performance issues.
I learned a lot about LXC containers and BTRFS.
Still, there was no time left to dig deep into Ansible and ZFS,
and by now both tools have even been mostly dropped,
to reduce the stress on our team members.</p>
<p>Not because they are bad,
but because they would consume more human resources than we can afford.</p>
<h2>A historical problem</h2>
<p>This kind of scaling issue is new to Codeberg, but not to the world.
All projects on earth likely went through this at a certain point
or will experience it in the future.
Availability issues for some platforms even <a href="https://en.wikipedia.org/wiki/Twitter#Outages">had a nickname</a>.
Others had major outages which were hard to fix because <a href="https://engineering.fb.com/2021/10/05/networking-traffic/outage-details/">communication of the teams was interrupted</a>.</p>
<p>However, most websites we use nowadays have their early years long ago.
Their growth pain forgotten, their networks mostly stable and with plenty of headroom.</p>
<p>How can a growing non-profit in 2023 compete with the changed expectations of today?
Our "24/7 monitoring" is based on the free time of our core contributors.
There are no paid night shifts, not even payment at all.
Still, people have become used to the always-available guarantees,
and demand the same from us: Occasional slowness in the evening of the CET timezone? Unbearable!</p>
<p>I do understand the demand. We definitely aim for a better service than we sometimes provide.
However, sometimes, the frustration of angry social-media-guys carries me away, and I'm even tempted to reply:
"If you cannot live without the extreme guarantees of huge proprietary cloud platforms,
you cannot have the freedom Codeberg provides".</p>
<p>The reason for this is simple:
In order to maximize the availability,
the cost (for hardware, energy, and human time!) increases exponentially.
Big platforms to this because of competition.
For donation-powered non-profits,
this uses donations that could have served better,
and leads to burn-out in the team.</p>
<h2>How can non-profits keep up?</h2>
<p>In the context of Codeberg, there are two primary blockers that prevent scaling human resources.
The first one is: trust.
Because we can't yet afford hiring employees that work on tasks for a defined amount of time,
work naturally has to be distributed over many volunteers with limited time commitment.
This would also require that more people are granted access to precious user data,
but with the downside that unlike companies
we don't have employment contracts for everyone at hand that already manage the legal part of this.</p>
<p>And especially with a distributed team,
building trust without meeting in person is a problem.
Currently, only members with elected roles within Codeberg e.V. receive access privileges.</p>
<p>The second problem <em>is</em> a in part technical.
Unlike major players, which have nearly unlimited resources available to meet high demand,
scaling Codeberg's systems involves:</p>
<ul>
<li>Ordering new hardware. Due to the democratic structure,
this is discussed in the presidium first
(for a good reason: Members should know that we think twice before investing about 3000 € in a potential storage upgrade)</li>
<li>Scheduling an operation in the DC with another non-profit which houses our platform.</li>
<li>Actually going there, touching and working on the server.</li>
</ul>
<p>Sounds slow? Yes.
A popular "solution" is outsourcing the actual server hosting,
we also did so too until the end of last year.
It's easy: Adding more resources means you can scale your cloud deployment within seconds.
You don't need to worry too much about IOPS or hardware failures.</p>
<p>Still, is it the Internet we are striving for?
No matter which instance you join or if you host yourself,
the data will reside on one of the few big cloud provider's systems.</p>
<p>I don't yet have an answer to this.
Maybe extend non-profit cloud hosting?
Or have Codeberg grow large enough so that we can finally afford to pay more team members?
I appreciate all kinds of discussions about this.</p>
<h2>Some positive final words</h2>
<p>A scaling issue is an issue, and it needs to be addressed.
I'm proud to share that while we still have a steep way before us,
we started to do more work in the public than one year ago,
which has greater potential to onboard and involve more people.
Thanks to those helping us diagnose issues in the
<a href="https://matrix.to/#/#contributing-to-codeberg:kle.li">"Contributing to Codeberg" Matrix channel</a> (feel free to join!),
and I'm glad we even started to distribute the boring office work.</p>
<p>I can name a few optimizations that save a lot of human time recently.
But scaling issues that come from growth aren't solved once
– they return with ongoing growth.
It will be a persistent effort to keep up with the increasing demand,
and I invite everyone to help us stay ahead of this special scaling issue.</p>
<p>Are you happy to host some software yourself?
Feel free to demonstrate and extend your knowledge by
<a href="https://codeberg.org/Codeberg/Community/issues/904">taking over responsibility for a service at Codeberg</a>.
Also consider reading <a href="https://docs.codeberg.org/improving-codeberg/contributing-code/">the Improving Codeberg guide in the docs</a>
and <a href="https://join.codeberg.org">joining the non-profit Codeberg e.V.</a> and actively have your part in running the platform.</p>
<p>If contributions to Codeberg grow similarly like usage of Codeberg grows,
I'm confident that we can <a href="https://blog.codeberg.org/community-maintenance-matters.html">benefit from some efficiency gains</a>
and provide a better service for everyone.</p>
<p>Happy to see you around! And a huge thanks to everyone involved in Codeberg, Forgejo, Gitea and all the other upstreams we rely on,
for making our project possible. Thanks a lot!</p>How blocklists prevent the internet to be decentralized – and safe.2022-12-26T00:00:00+01:002022-12-26T00:00:00+01:00Codeberg Teamtag:blog.codeberg.org,2022-12-26:/how-blocklists-prevent-the-internet-to-be-decentralized-and-safe.html<p><strong>TL;DR: We are currently experiencing recurring malware upload waves,
incurring pain to volunteers and disruptions for users we can do very little about.
Some thoughts to start a discussion.</strong></p>
<p>Safety on the Internet is crucial.
At Codeberg, we are working towards this goal every day.
Moderating a platform can …</p><p><strong>TL;DR: We are currently experiencing recurring malware upload waves,
incurring pain to volunteers and disruptions for users we can do very little about.
Some thoughts to start a discussion.</strong></p>
<p>Safety on the Internet is crucial.
At Codeberg, we are working towards this goal every day.
Moderating a platform can become a great headache,
you don't want to imagine what kind of s...tuff we need to review day-to-day.</p>
<p>But you know what currently is the biggest headache to us?
Blocklists.
Yes. The well-intending, self-appointed, unaudited and unaccountable policing "services", non-commercial and commercial. </p>
<p>This post is a rant of our team about the strike first,
collaborate later attitude of many blocklists on the web,
which has led to a lot of (in our opinion unnecessary) effort on our side,
and a repeated bad experience for end-users.</p>
<p>We think, that the current blocklist ecosystem is not helping the small and independent contributors on the web,
but reinforce and widen the gap between free and independent sites, and large proprietary platforms.
How often get the big boys blocked? Who will get onto the list without getting checked twice?
Instance operators like Codeberg face a lot of headache if the situation does not improve.</p>
<h2>Sharing information about bad actors was a great idea, but ...</h2>
<p>The idea of sharing information about website safety is a great one, or let's say at least well-intended.
Before blocklists were widely available, you had no option but to inform the website owner or operator about a threat,
then hope for them to take action.</p>
<p>This turns out to be a problem when websites are unmaintained
(and thus compromised, because no one cares),
or if the website operator spreads malware on purpose.</p>
<p>Blocklists extend the possibility to defend end-users on the web,
and they allow to mark websites as unsafe when the websites don't moderate their content on their own.</p>
<p>Today, however, blocklist have to a great extent <em>replaced</em> maintenance efforts by website operators informing each other about threats on their systems.
Blocklists are casually used (without double-checking who is getting blocked) even by the largest infrastructure operators
like GMX (popular email service in Germany)
and Quad9 (a broadly used non-profit DNS service with a mission we very much welcome).
The policy is <em>Strike first, maybe adjust later</em>.</p>
<p>Once a domain is blocked by infrastructure providers, it is extremely hard to figure out the root cause,
and actual blocklist maintainers are more often than not unreachable and unresponsive (this includes commercial services).
Lucky you if you find a contact for delisting, permanent allowlisting for platforms like Codeberg is just not part of the intended service.</p>
<h2>The internet ought to be a distributed world, yet it is more centralized than anything before ...</h2>
<p>The internet has been designed as reliant, decentralized network. Everybody invited to join and contribute.
In theory, everyone still can go ahead and host their own public service,
email, web server, or a collaboration platform like e.g. an instance of Gitea/Forgejo. Codeberg does.
Yet, in reality, whoever seriously dares to try, faces all kinds of problems,
hardly manageable for an individual, or a small group of people
– shoutout to everyone who is hosting a service as a single person.</p>
<p>Caring for the service and fighting abuse is hard enough in day-to-day business.
Additionally, instead of helping these instance admins,
they are fought – and their domains blocked.</p>
<p>Big proprietary websites also host malware. At scale. Enter the name of your favorite search engine,
shared storage space provider into a news search site, add keywords like "malware" and "hash", and
you find plenty examples.</p>
<p>In the past, we reported a lot of content to Microsoft GitHub.
Their reaction time was much slower than ours,
and they appear to be one of the best places for spreading malware.
Yet, they have a free ticket. Google Drive and Dropbox even have been in the news for their slow response times.
Would any blocklist provider dare to lock them out? Who would use the blocklist anymore?
The current ecosystem of RBL and other blocklists is an exclusive filter on the independent internet.
It does harm us, not the ones who actually spread malware, at scale.</p>
<p>What if ... we want to regain control over content?
What if the Internet is again formed by many small public instances?</p>
<h2>Dealing with malware in practice</h2>
<p>We have observed these ways on how we learn about malware:</p>
<p>In an estimated 1% of cases,
we receive an email to abuse@codeberg.org,
and process it within a few hours.
Total downloads of malware: Usually a few dozen at most.
We usually act before the storm.</p>
<p>In the other 99% of cases where our support team becomes active,
we investigate user reports of connection issues, realizing after the fact that independent
or commercial blocklist distributors just disconnected part of the internet from Codeberg.org, without ever notifying us.
Listening to feedback from users takes time and effort until we realized there is a mention of PiHole,
browser addons or similar tools, and it takes further time to identify where our domain is listed.</p>
<p>We learn about yet-another-domain-blocklist number #0815 that some well-meaning small company or independent
individual started to create, maintain and advertise (for a while, until it becomes stale like so many others),
and need even more research to find the actual offending file, and try to contact the owner or maintainer.
Lucky again if we receive a response.</p>
<p>The latter case is connected to a lot of headache and investigation effort,
because lists are more often than not aggregated and sourced from many sources, incorporating input without
validation or questioning validity.
Often the actual source files went offline, or forms for delisting requests don't work, contact emails get no response.</p>
<p>The result of the latter case:
Instead of effectively fighting malware,
we spend a lot of time playing detectives on the big network of aggregators and metalists until we find the actual problem.
The malware has been downloaded several thousand times before we take it down,
and we go to bed with a headache.</p>
<h2>But can't you ...</h2>
<p>Yes, if we were a big for-profit company,
we could likely do a lot differently.
But we aren't. We are a small team of volunteers, maintaining a platform that per definition
enables users to create and maintain every kind of content imaginable. This is literally mission and feature, not a bug.</p>
<p>We do our best to process abuse reports within a few hours at most.
We actively watch out for suspicious access patterns and attachments.</p>
<p>Running virus detection software did not yield good results in the past.
Often we deal with first-publications of malware.
All too often they aren't even detected by the largest commercial malware detection services.
Running the libre ClamAV on our attachments has proven to lack even the slightest trace of efficiency, and is a great waste of computing power: We literally never had a positive match yet.
All the trusted tools turned out to be as effective as snake oil.</p>
<h2>Doing better</h2>
<p>Since we have been struck by another malware wave in recent days, and seen another wave of blocklists reporting us
to downstream consumers, without ever notifying us,
we have invested more effort to improve our internal tooling.
In that regard, the blocklists also had positive effects,
but we could have done more if the time wasn't wasted on research and end-user support,
explaining them that their PiHole or similar was likely to be the problem,
or helping users with their lost email,
because their mailservers refused to talk to us.</p>
<p>Strike first, collaborate later.
But exactly the collaboration part is what we would need to efficiently fight malware and abuse on the Internet.
What can we do to receive reports by security researchers in the first instance,
before we are shut down from the web?
We are very open to suggestions!</p>
<h2>Accountability and trust</h2>
<p>Lastly, we want to thank everyone who makes the web a safer place,
explicitly including maintainers of threat lists.
For example, the tools at abuse.ch have been helpful to fight malware on Codeberg,
although we'd love to see them use Mastodon instead of requiring Twitter accounts as login option :-)</p>
<p>Blocklists allow what e.g. Mastodon moderation does:
They hold website owners accountable for their action.
Everyone can decide which one to trust to moderate for you if instance or website admins fail.
But please, delegate this trust with care!</p>
<p>We acknowledge that this power is a great tool. But with great power comes great responsibility.
Every individual providing a blocklist to downstream users and customers must be accountable for correctness and
fairness of the content of this blocklist.</p>
<p>Is the collateral damage we incur by disrupting essential service for a lot of legit people (just because
we observe a few bad actors) really what helps us to make this world a better place?</p>
<p>Who holds creators of blocklists accountable for adding false positive domains?
Whom do we trust to moderate our communication infrastructure, whom do we trust to enable and disable access to the web?</p>
<h2>Is Strike-first-adjust-later fair and legal?</h2>
<p>Are we asking too much if we think that the purpose of a website and provided content should be reviewed prior to blocking a whole domain?
If we think that the operator shall be contacted with reasonable reaction period?
Every law concerned with illegal content, from DMCA violations, to personal information rights, to even the worst imaginable offenses,
requires a notification of the operator and provision of reasonable time for takedown.</p>
<p>Calling out actors who repeatedly wait until the deadline passes to act might be fair.
Asking for better response times than local law might be fair, too.
But is a strike-first-maybe-correct-later approach fair,
when there was no information sent to the website operator?
Is it even compatible with today's law?</p>
<p>How can we make the web a collaborative place again,
if we hand over policing of access to opaque and unaccountable blocklist providers?
How many blocklists do we need?
Would it be better to sustain some well-moderated blocklists,
just like Codeberg members grouped together to provide a smooth software forge experience with combined forces?</p>
<p>We hope some of these questions allow for a discourse about this matter.
We think, that the current approach for blocklists needs a drastic change,
if we want to stop sustaining the monopoly of proprietary platforms.</p>
<p>Kind Regards, and with slight headache<br>
Your Codeberg Team!</p>
<p>PS: If you want to help our fight against malware,
feel free to contact us at moderation@codeberg.org.
We are ready to discuss insights,
make new malware available for review and more.
If it helps anyone,
we will <a href="https://www.virustotal.com/gui/collection/2e9db7bef197020a79dd4c5e6fe13bc92f67f44d77b819a2f877a298461591d7">continue to share the malware we find on VirusTotal</a> or other channels.</p>
<p>We're looking forward to your feedback,
and making our experiences available to smooth the way
for more public services operated by non-profits instead of mega-corps.</p>Codeberg launches Forgejo2022-12-15T00:00:00+01:002022-12-15T00:00:00+01:00The Forgejo Contributorstag:blog.codeberg.org,2022-12-15:/codeberg-launches-forgejo.html<p>In October 2022, the Gitea Ltd for-profit company <a href="https://gitea-open-letter.coding.social/">took over the Gitea project</a>. Brodie Robertson <a href="https://www.youtube.com/watch?v=Oc3cEfhpp08">clearly explains</a> the trust issues created by a move that took the entire community by surprise, including the Codeberg presidium and members. This situation was worrisome, and sad. We should not fight our collaborators and …</p><p>In October 2022, the Gitea Ltd for-profit company <a href="https://gitea-open-letter.coding.social/">took over the Gitea project</a>. Brodie Robertson <a href="https://www.youtube.com/watch?v=Oc3cEfhpp08">clearly explains</a> the trust issues created by a move that took the entire community by surprise, including the Codeberg presidium and members. This situation was worrisome, and sad. We should not fight our collaborators and mates, but instead against the monopoly of proprietary for-profit platforms; standing united as the Free Software Movement and Gitea Community. Since day 0 (and before), Codeberg („TeaHub“ back then) was powered by Gitea and is strong in the Gitea ecosystem: e.V.-members help us maintain our current fork of Gitea and prepare Codeberg-specific patches.</p>
<p>Companies can help make the Free Software ecosystem more sustainable, and the Gitea project is no exception. Paid staff can work with a community of volunteers when a mutual trust exists. Sadly, Gitea Ltd broke that trust by a lack of transparency: its existence was kept a secret during months. After the initial announcement, Gitea Ltd published another blog post but it was still vague and there has been no other communication since. Who are the Gitea Ltd shareholders? Who, among the Gitea maintainers, are employees of Gitea Ltd?</p>
<p>Codeberg needs to run on a Free Software codebase maintained by trustworthy people. And the Gitea community deserves to be in control of the project when they generously volunteer their time. It must not be the company accepting the community. It must be the community generously accepting the company, and Gitea Ltd should be thankful for this, instead of trying to dictate how governance shall work in the future. Luckily Codeberg is in a unique position to reconnect the Gitea community in one place, independent and out of control of Gitea Ltd. And so we did.</p>
<p>The Forgejo project, <a href="https://forgejo.org/2022-12-15-hello-forgejo/">launched today</a>, is hosted on Codeberg and offers a new home to reunite the Gitea community. Over the past few weeks it got ready to create releases and Codeberg will use Forgejo instead of Gitea starting with version 1.18.0. It provides Codeberg with an essential feature: trust. On a technical level, Forgejo is a drop-in replacement for Gitea, similar to <a href="https://lineageos.org/">LineageOS</a> which can be used instead of Android.</p>
<p>This is only the beginning and Forgejo will build a roadmap based on what users need. You can become an active member of the Forgejo community now by <a href="https://codeberg.org/forgejo/user-research/issues/new?template=contributor-survey.md">filling a survey</a>, joining the <a href="https://matrix.to/#/#forgejo:matrix.org">Matrix space</a>, or following Forgejo in the fediverse at https://floss.social/@forgejo.</p>Codeberg is moving ... and what this means to you2022-11-13T00:00:00+01:002022-11-13T00:00:00+01:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2022-11-13:/codeberg-is-moving-and-what-this-means-to-you.html<p>Codeberg is moving, and you can imagine,
moving a mountain takes time and effort,
and might have a rocky road.</p>
<p><strong>TL;DR: Codeberg might suffer from decreased performance,
and smaller downtimes from Monday (Nov 14) to Wednesday (Nov 16).
Final migration will require a short period of planned downtime on …</strong></p><p>Codeberg is moving, and you can imagine,
moving a mountain takes time and effort,
and might have a rocky road.</p>
<p><strong>TL;DR: Codeberg might suffer from decreased performance,
and smaller downtimes from Monday (Nov 14) to Wednesday (Nov 16).
Final migration will require a short period of planned downtime on Wednesday.</strong></p>
<p>The great news first: Codeberg is growing,
more and more users decide to get a free/libre home for their projects.
And they are trusting the non-profit Codeberg e.V. to take care for them.
This is great. And we are doing our best to give everyone a home you'd love to live in.
But our first mountain (German: Berg) is getting tight and cuddly to fit everyone in.</p>
<p>We have been looking for this moment for more than a year,
since we installed our own hardware in Berlin.
We are running Woodpecker CI, Codeberg Pages, Weblate Translate and more on it.
But the heart of Codeberg – Gitea – is still on a rented cloud instance.</p>
<p>It is past time to leave our rented infrastructure for a bright future.
Our own server has plenty of spare resources,
but our cloud instance is suffering from high load,
and storage is running low.
So finally we can distribute the resources better and make everyone happy again.</p>
<p>Now is the moment to do the move.
The team is excited, we have some helping hands,
and our host named <a href="https://en.wikipedia.org/wiki/Kampenwand">"Kampenwand"</a> is welcoming you
and your projects.
We're coming!</p>
<h2>What does this mean to you?</h2>
<p>We're trying to keep the impact on our users as small as possible.
But our current setup makes a zero-donwtime migration very, very hard.</p>
<p>Our human resources aren't unlimited,
and we want to stay efficient.
We are accepting short periods of unavailability
to make this project much easier and save the energy for more projects.</p>
<p>We have a remote Ceph filesystem mounted on the old cloud VPS,
and already moved many repositories to it
(especially archived content and large private repositories).
But we noticed that the heavy delay between the servers sometimes causes problems.
As we move more data, we expect occassionally decreased performance,
and there might be short periods of downtime,
but we promise to monitor closely.</p>
<p>If we have everything prepared by Wednesday,
we are going to do the final migration between 10.00 UTC and 22.00 UTC.
We'll have planned periods of downtime during that day, but aiming to keep them minimal.</p>
<h2>How can you help?</h2>
<p>Short-term, coordinating support is very hard,
since we're mostly busy during the next days.
If you have free time you'd like to provide,
feel free to give us a ping in the <a href="https://matrix.to/#/!wIJGSzCYITbuEkORkq:matrix.tu-berlin.de?via=wuks.space&via=matrix.org">Contributing to Codeberg Matrix Channel</a>.</p>
<p>Please don't ping us on social media about general downtimes.
Our monitoring is quicker anyway,
and filtering through the noise is difficult.</p>
<p>If, however, something on the platform breaks (e.g. the access to your repos),
and isn't resolved after 30 minutes, feel free to open an issue in our Community Issue Tracker.</p>
<p>Last but not least, you make our days shorter if you
<strong>don't rename your user, projects, organizations or transfer repositories</strong>.
Just as a precaution.
Thank you :)</p>
<p>Other than that, wish us best luck,
and consider a donation for the next hardware upgrade.</p>
<p>Kind Regards & thank you for your patience!<br>
Your Codeberg Sysadmins :)</p>Letter from Codeberg: Hackathon, Translation Service & more2022-10-25T00:00:00+02:002022-10-25T00:00:00+02:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2022-10-25:/letter-from-codeberg-hackathon-translation-service-more.html<p><em>(This is a stripped-down version of the news letters sent out to members of Codeberg e.V. – not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>It's time for some updates,
we think there are some great news to share with you.
If you like what you read here …</p><p><em>(This is a stripped-down version of the news letters sent out to members of Codeberg e.V. – not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>It's time for some updates,
we think there are some great news to share with you.
If you like what you read here, please consider a <a href="https://docs.codeberg.org/improving-codeberg/#donate-to-codeberg">donation to Codeberg</a>
to support our mission.
Thank you very much for your trust and support!</p>
<h1>Highlights</h1>
<h3>Infrastructure stability</h3>
<p>Although our infrastructure is not yet back at the stability level of the past years,
we managed to reduce our issues by enforcing tighter rate-limiting.
We have chosen a flexible approach which blocks single IP addresses
which account for more than 4% of all requests to our main service,
but only if system load exceeds a certain threshold.</p>
<p>This will hopefully ensure that legit users (e.g. heavy CI jobs or rate limits) don't get throttled
when our systems are idle and could handle the load well.
Please let us know if these measures affect your work. We appreciate your feedback.</p>
<p>These changes still need improvements and cleanup (especially graceful communication to the end user),
but we are happy that this allowed us to automatically react to crawlers and botnets
(which often required manual action in the past).</p>
<p>Our current focus is on moving services quickly but careful to our own and more powerful hardware.</p>
<h3>Hackathon November 4th to 6th</h3>
<p>We're planning a next hackathon on November 4th to 6th.
Please mark this date in your calendars,
it's a great opportunity to support Codeberg and get to know other members and users.
You can read all about the event in the <a href="https://blog.codeberg.org/codeberg-hackathon-goes-v2.html">dedicated blog article</a>.
We're looking forward to seeing you.</p>
<h3>Translation Service</h3>
<p>We are happy to announce that we got a Weblate instance running at
<a href="https://translate.codeberg.org">translate.codeberg.org</a>.
This allows projects to manage translations just a few clicks away from their projects,
and every Codeberg user to easily provide some translations in the languages they speak.
This service is very new, and we're considering it "public beta",
but we're confident that Weblate is running fine.
Thanks to the Weblate Contributors for making this possible with their Free Software.</p>
<h1>Heads Up</h1>
<h3>Mastodon account moved</h3>
<p>Our Mastodon account moved over to <a href="https://social.anoxinon.de/@codeberg">@Codeberg@social.anoxinon.de</a>,
because our previous host is closing down.
The move went very smooth, and we are happy about our new home at long-term Codeberg users and supporters: Anoxinon e.V.
If your account has not yet been moved over, please manually ensure that you follow our new account there.</p>
<h3>Status Page</h3>
<p>If something on Codeberg does not work the proper way,
you can now find a status dashboard at <a href="https://status.codeberg.org">status.codeberg.org</a>
or <a href="https://status.codeberg.eu">status.codeberg.eu</a>.
Feel free to add it to your bookmarks – in case of emergency.
We hope that you don't need to look at it very often.</p>
<h3>Open Data</h3>
<p>We're now publishing regular data about our systems at <a href="https://codeberg.org/Codeberg-Infrastructure/opendata">Codeberg-Infrastructure/opendata</a>
and planning to extend this.
Please leave a comment about what kind of data you're interested in,
or submit a script for further analysis.</p>
<h1>Where we appreciate help</h1>
<p>As mentioned above, we're happy to see your contribution during the Hackathon.
It's not only an opportunity to meet the community,
but also to get involved with the machinery behind codeberg.org, and learn about Gitea, Go and all the tools at Codeberg.</p>
<p>If you have some spare time during the next weeks,
we are looking for help with moving our main mail server and setting it up on the bare metal machine
including spam filtering.
Please reach out to otto@codeberg.org if this job is yours :)</p>
<p>Our moderation and community issue tracker at <a href="https://codeberg.org/Codeberg/Community/issues">Codeberg/Community</a> remains an active place to discuss bugs, features, and community-related needs. If you have some free cycles, please go through the recent issues, help out users, forward bug reports and feature requests to upstream Gitea at <a href="https://github.com/go-gitea/gitea/issues">GitHub</a> if they aren't reported yet, and consider joining our group of active community maintainers: see <a href="https://codeberg.org/Codeberg/Community/issues/571">Codeberg/Community#571</a> for details.</p>
<h1>Number Games</h1>
<p>We are hosting 42010 repositories, created and maintained by 34042 users. Compared to one month ago, this is an organic growth rate of +3372 repositories (+8.7% month-over-month) and +2271 users (+7.1%).</p>
<p>This data can also be found as a daily history at <a href="https://codeberg.org/Codeberg-Infrastructure/opendata/">Codeberg-Infrastructure/opendata</a></p>
<p>Our SSD-backed VPS is running at about 92% storage capacity. Since we are easily able to move data to our Ceph cluster (usage at 7%) and every bit on the SSD makes our service faster, we won't try to bring this down for now, but rather scale up the Ceph cluster when necessary. Once migration of the instance is due, the SSD data will be moved to the Ceph cluster.</p>
<p>Codeberg e.V. has 246 members in total, these are 175 members with active voting rights and 69 supporting members, and 2 honorary members.</p>
<p>Your Codeberg e.V.</p>
<p><em>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</em></p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929.</p>Codeberg Hackathon goes v22022-10-22T00:00:00+02:002022-10-22T00:00:00+02:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2022-10-22:/codeberg-hackathon-goes-v2.html<p><em>TL;DR: We invite you to take part in the Codeberg Hackathon on the weekend starting Friday, 04th November 2022.</em></p>
<p>We're doing it again:
A hackathon for Codeberg users, e.V.-members, interested developers, Free Software lovers and everyone else
who wants to lend us a helping hand.</p>
<p>The goal …</p><p><em>TL;DR: We invite you to take part in the Codeberg Hackathon on the weekend starting Friday, 04th November 2022.</em></p>
<p>We're doing it again:
A hackathon for Codeberg users, e.V.-members, interested developers, Free Software lovers and everyone else
who wants to lend us a helping hand.</p>
<p>The goal sounds simple, but requires our combined forces:
We aim for making Codeberg and its ecosysstem around Gitea, Woodpecker CI and the systems
an awesome and truly libre alternative to proprietary platforms for Software and Content development.
We want to bring the development community of Codeberg together,
and allow everyone to help in building their project home together.</p>
<p>We already had such a hackathon from 8th to 10th of April 2022,
and we'll repeat it on one of the coming weekends (post will be updated with poll results).</p>
<p><strong>Relevant Resources:</strong><br>
<a href="https://pad.ccc-p.org/kIRY5hpsRZemFQlMQm_60Q#">HedgeDoc Pad for project planning etc</a><br>
<a href="https://matrix.to/#/!wIJGSzCYITbuEkORkq:matrix.tu-berlin.de?via=wuks.space&via=matrix.org">Matrix Channel “Contributing to Codeberg”</a><br>
<a href="https://lecture.senfcall.de/ott-qfr-xes-p20">Meeting Room (BigBlueButton)</a></p>
<h2>The Roadmap</h2>
<p>We'll start a get-to-know session on Friday evening (European time),
and discuss projects and ideas already.</p>
<p>The actual coding on our main projects starts Saturday and continues until Sunday evening.</p>
<p>We'll be hacking on one or more projects together,
always allowing individuals to take over simple and independent tasks if they prefer to work on their own.</p>
<p>Projects we might be hackin on together:</p>
<ul>
<li>Sync docs with Gitea upstream <a href="https://github.com/go-gitea/gitea/issues/15736#issuecomment-1245229377">comment</a></li>
<li>implement OAuth scopes for Gitea</li>
<li>implemt content reporting and simple admin API for Gitea</li>
</ul>
<p>You can additionally always work on one of the following topics on your own:</p>
<ul>
<li>check Codeberg Community Issues and forward to upstream if not already done</li>
<li>some a11y and frontend issues (we'll provide a list)</li>
</ul>
<h2>The schedule</h2>
<p>This event is community-driven and powered by people like you,
thus this schedule is only an estimate: Times might differ depending on personal circumstances.
Yet, this is what we are currently aiming for (and we'll update it here in the blog post if necessary).
<strong>If not stated otherwise, all times are UTC</strong>.</p>
<p><strong>Friday, November 4th 2022:</strong></p>
<ul>
<li>19.00 UTC (20.00 CET): Opening, presentation of ideas and brainstorming</li>
<li>~ 19.30 UTC (20.30 CET): Get-together and open hacking: Chill the evening and talk to like-minded people, or already get started with your individual project (open end)</li>
</ul>
<p><strong>Saturday, November 5th 2022:</strong></p>
<ul>
<li>From 09.00 UTC (10.00 CET): Meeting in project group(s) and working on the project, Codeberg admins and maintainers will try to be around to answer your questions.</li>
<li>19.00 UTC (20.00 CET): Evaluation of day one, agendasetting for Sunday</li>
<li>19.30 UTC (20.30 CET): Get-together and chill (or further hacking if you prefer, open end)</li>
</ul>
<p><strong>Sunday, November 6th 2022:</strong></p>
<ul>
<li>From 09.00 UTC (10.00 CET): Meeting in project group(s) and working on the project,</li>
<li>19.00 UTC (20.00 CET): Presentation of results, evaluation of the event, discussing further plans</li>
<li>19.30 UTC (20.30 CET): Get-together and chill (or further hacking if you prefer, open end)</li>
</ul>
<p>Thank you very much!</p>
<h2>Questions and answers</h2>
<h3>Do I need to register to participate?</h3>
<p>You don't need to. But if you tell us that you're coming (ping in the Matrix channel or email to otto@codeberg.org),
we can count you in. Please tell us what you're interested in working on.</p>
<h3>Are there requirements for helping out? Do I have to know (...how to code / ...a programming language / ...about some codebase)?</h3>
<p>No, we welcome everyone, even newcomers and people that want to learn something.
While we can't guarantee that someone is around to teach you something,
we'll do our best to make sure you learn something if you are interested.</p>
<p>In any case, we'll find something to do for everyone - so if you can spare the time and want to help out, just join us!</p>
<h3>I can't attend the full weekend, is this a problem?</h3>
<p>No, please join anyway. You do not have to attend the full time.
We are doing two presentations of projects, to grant more people the chance to get in.
We are also doing some scheduled onboarding, if you want to join later.
As long as someone from the team is online, you can join any time and leave any time,
but if you took the responsibility for a project, we'd be happy to stay in touch with you about the future.</p>
<h3>What if I can't finish my idea on the weekend?</h3>
<p>That's not a problem, in fact to be expected for everything that goes beyond a tiny fix.
If you are working in a work group, we'll try to discuss the future of the project on Sunday.
If you have a tiny project on your own, please get and stay in touch with us and we'll make a plan for how to move on.
In any case, we appreciate your contribution, and we appreciate even more if you commit to finishing your started work afterwards.</p>
<h3>I just joined the meeting, but no one is online.</h3>
<p>We can't guarantee to always have people around, but we'll surely be there during the announced onboarding times.
If you can, please wait a moment to see if someone joins you, or write a short message in the Matrix group.</p>
<h3>Your times absolutely don't work for me</h3>
<p>If you live in a part of the world (or have a completely different day/night rhythm) that doesn't align well with our schedule,
we are very sorry. Please give us feedback in that case.
We are looking forward to doing more events of that kind in the future,
and we'd love to adapt to the wishes of our users and members.</p>Letter from Codeberg: New Landingpage and downtimes2022-09-09T00:00:00+02:002022-09-09T00:00:00+02:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2022-09-09:/letter-from-codeberg-new-landingpage-and-downtimes.html<p><em>(This is a stripped-down version of the monthly news letters sent out to members of Codeberg e.V.; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>It's time for some updates.
We feel bad …</p><p><em>(This is a stripped-down version of the monthly news letters sent out to members of Codeberg e.V.; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>It's time for some updates.
We feel bad that our outgoing communication is currently worsening quite a bit,
yet our core team is currently super busy, members formerly focusing on communication are now dedicated to infrastructure work (and for many of us this summer left less time for contributions than usual).
So if you have some free cycles to do some public relation work / communication,
please reach out via email or in our Matrix Chat!</p>
<h1>Some Bad News</h1>
<p>First of all, a few words about recent unexpected downtimes.
On August 16, 2022, following a routine server update and reboot of our rented infrastructure at netcup,
the main Codeberg service – Gitea – was unavailable for about 65 minutes.</p>
<p>The reason was a configuration issue with our network filesystem (Ceph) that failed to properly mount upon reboot.
Running to a computer with console, identification of the problem, fixing the configuration and reconnecting cluster took us about an hour, much more than we would like to admit.</p>
<p>On August 29th and September 6th we encountered short downtimes of a few minutes each,
caused by TCP connection requests flooding the network interface that might be (D)DoS attempts (from a pool of IPs),
or might be linked to an attempt to write a bot/crawler gone bad.
We look (and appreciate all contributions) to improve our rate limiting and traffic shaping.
If you have proven configurations at hand and would donate these or like to help setting such up, please reach out.</p>
<p>Gitea is still running with a single instance only. This is a pretty cool thing as nobody of us expected
a single-instance Gitea to be able to scale to the current capacity. </p>
<p>Our work in the last year focused on scaling out horizontally, starting with distributed file system and database,
in parallel Gitea developers are steadily working on making Gitea distributable (to the best of our knowledge we
are almost there, but this needs a lot more testing).</p>
<p>The backflip of distributed machinery is additional complexity, paying off only at much
later point in time. In our case this stretched our team to the extent that errors and mistakes creep in
that we would rather like to avoid. Of course the mission is to continue on our path towards scalable and
redundant infrastructure, yet we need to improve on focusing our resources on building manageable infrastructure.</p>
<p>One aspect of the current work-in-progress is that half the workload is handled on production VPS, the other half including storage, on bare metal instance. Added complexity in setup, and uneccessary network latency does not help,
and our long planned schedule aims to move all services from the current production VPS to our own server as soon as possible (and deploy machines we received as hardware donation for added redundancy).</p>
<p>Helping hands very welcome!</p>
<h1>Highlights</h1>
<h3>Gitea 1.17 deployed!</h3>
<p>Early August, we updated Codeberg to Gitea 1.17, after weeks of careful testing.
Special Big Thanks to the Gitea team and all contributors who made this possible.
It seems to us that this release still contains a few unexpected regressions,
but we have no doubt that these will be fixed in no time. Please don't hesitate to report and
file issues, and help with PRs, fixes, resolution!</p>
<p>The most notable features were a new package registry for users, marking files in PR's as viewed
(along with a PR UX refresh), and first steps towards federation. We hope you enjoy these news,
and invite you to take part in making the next Gitea release possible, by reporting and triaging
bugs as well as implementing fixes and features.</p>
<h3>New Landingpage!</h3>
<p>Together with this new Gitea release,
we launched a redesign of our landing page, an update long looked forward to.
The previous version provided only very basic information about our platform.
This update conveys information about our mission at Codeberg.org, the platform and our community.
Thanks to <a href="https://codeberg.org/mray">mray</a> for the design, and <a href="https://codeberg.org/McTom234">McTom234</a> for implementation!</p>
<p>Codeberg will now inform interested users at a glance without the need to dig through historical blog
posts and docs to find more about us. Blog and documentation still provide incredible value, much deeper
than any landing page could. Yet we have to admit that many users never click through to our in-depth documents.</p>
<p>And: The frontpage stats are updated automatically.</p>
<h1>Where we need help</h1>
<p>As mentioned earlier, we have Ceph up and running as announced in our last letter.
Now we need some helping hands for moving more and more services to bare metal, and
continuing our transition towards a public repository of configuration-as-code.</p>
<p>If you have experience in infrastructure-as-code, mail servers, systemd, debian machines, lxc, Ceph, please consider donating some of your time, and join our infrastructure team!</p>
<p>Also we are looking for typing hands for improving our communications and public relations work
(social media, announcements, blog). Please reach out if you are interested!</p>
<p>Our moderation and community issue tracker at https://codeberg.org/Codeberg/Community/issues remains an active place to discuss bugs, features, and community-related needs. If you have some free cycles, please go through the recent issues, help out users, forward bug reports and feature requests to upstream Gitea at https://github.com/go-gitea/gitea/issues if they aren't reported yet, and consider joining our group of active community maintainers: see https://codeberg.org/Codeberg/Community/issues/571 for details.</p>
<p>If you are experienced with software development, we are having some Go, Rust and PHP projects. Please reach out to us, if you'd like to help us in your free time to get some thing done.</p>
<h1>Number Games</h1>
<p>We are hosting 39391 repositories, created and maintained by 31836 users. Compared to one month ago, this is an organic growth rate of +4149 repositories (+11.8% month-over-month) and +2611 users (+8.9%).</p>
<p>Our SSD-backed VPS is running at about 71% storage capacity. Since we are easily able to move data to our Ceph cluster (usage at 6%) and every bit on the SSD makes our service faster, we won't try to bring this down for now, but rather scale up the Ceph cluster when necessary. Once migration of the instance is due, the SSD data will be moved to the Ceph cluster.</p>
<p>Codeberg e.V. has 230 members in total, these are 163 members with active voting rights and 65 supporting members, and 2 honorary members.</p>
<p>Your Codeberg e.V.</p>
<p><em>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</em></p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929.</p>Letter from Codeberg: We are now an employer!2022-06-15T00:00:00+02:002022-06-15T00:00:00+02:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2022-06-15:/letter-from-codeberg-we-are-now-an-employer.html<p><em>(This is a stripped-down version of the monthly news letters sent out to members of Codeberg e.V.; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>It's been a while since the last monthly …</p><p><em>(This is a stripped-down version of the monthly news letters sent out to members of Codeberg e.V.; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>It's been a while since the last monthly letter, and after discussing several options among Codeberg e.V. members, we are now excited to try new formats. Feedback appreciated.</p>
<p>We aim to provide these "Letters from Codeberg" without a tight schedule, but rather each time we feel that we want to share something with you. We hope to provide the usual number games in a public place soon, and rather share our conclusions with you.</p>
<h1>The Highlights</h1>
<p>Codeberg is now an employer!
Since May 2022, we are now employing a honorary member of Codeberg e.V. part-time. As veteran Gitea maintainer, he did a lot for the Codeberg-ecosystem around Gitea, Woodpecker CI and Codeberg Pages.
The employment has been set up as tax-exempt German "mini-job", often used in charity environments, with a monthly salary of 450 € for a workload of ~ 10 hours a week. With insurance fees, the total cost for Codeberg e.V. is around 600 € each month, and we consider it a big milestone in our journey. To ensure our volunteer-backed do-ocracy won't approach its limits anytime soon, we are happy to start extending our organizational toolkit, to push our projects forward faster in the future, and guarantee ongoing reliable operations.</p>
<p>First Codeberg Hackathon:
Early April, the weekend from 8th to 10th, we held our first Codeberg hackathon, making good progress in several projects. And it was very nice being able to talk to some of you more personally than public issue / chat communication allows.
We're definitely looking forward to repeat this event in the future. Watch out!</p>
<p>New Codeberg executive board:
The executive directors (Vorstand), responsible for day-to-day operation of Codeberg's membership management, finances and all the other rather boring and formal stuff, is re-elected yearly by the Codeberg Presidium, which in turn is elected among all Codeberg members bi-annually. Otto, former member of the presidium will now replace the old board. Formal registration at registration court is still pending due to waiting time for appointment at notary office. Both previous board members are returned to the presidium now.</p>
<h1>Where we need help</h1>
<p>First of all, a huge thanks to everyone who is active in our community and makes Codeberg a great place to be. And we are very happy that we've even seen some contributions to upstream projects on our forks, and we hope that these projects move out of their proprietary platforms soon.</p>
<p>Codeberg always welcomes helping hands. Our focus is currently on cleaning up infrastructure-related settings, and building up a distributed file system for your repositories using Ceph. Expertise highly welcome!</p>
<p>Our moderation and community issue tracker at https://codeberg.org/Codeberg/Community/issues remains an active place to discuss bugs, features, and community-related needs. If you have some free cycles, please go through the recent issues, help out users, forward bug reports and feature requests to upstream Gitea at https://github.com/go-gitea/gitea/issues if they aren't reported yet, and consider joining our group of active community maintainers: see https://codeberg.org/Codeberg/Community/issues/571 for details.</p>
<p>If you are experienced with software development, we are having some Go, Rust and PHP projects. Please reach out to us, if you'd like to help us in your free time to get some thing done.</p>
<h1>Number Games</h1>
<p>We are hosting 28962 repositories, created and maintained by 24167 users. Compared to one month ago, this is an organic growth rate of +2422 repositories (+9.1% month-over-month) and +1614 users (+7.2%). This means that organic growth of Codeberg remains solid and steady, even after removing hundreds of spam users in past months.</p>
<p>The machines are running at about 70% capacity (storage). We are planning to migrate to our distributed storage starting next week. </p>
<p>Codeberg e.V. has 195 members in total, these are 138 members with active voting rights and 55 supporting members, and 2 honorary members.</p>
<p>Your Codeberg e.V.</p>
<p><em>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</em></p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929.</p>Monthly Report March and April 20222022-05-10T00:00:00+02:002022-05-10T00:00:00+02:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2022-05-10:/monthly-report-march-and-april-2022.html<p><em>(This is a stripped-down version of the monthly news letters sent out to members of Codeberg e.V.; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Let's share some news from March and April …</p><p><em>(This is a stripped-down version of the monthly news letters sent out to members of Codeberg e.V.; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Let's share some news from March and April.</p>
<p><strong>Landing page renovation</strong>: We now have a mockup for a new landing page thanks to user mray. We are now trying to turn this into reality. If you have some decent knowledge about frontend development and responsive design, consider helping out. Just send a mail to otto@codeberg.org.</p>
<p><strong>Gitea Update</strong>: We are running 1.16 since early March and looking forward to the next release. You can find details about the deployment in a <a href="/introducing-gitea-116.html">dedicated blog article</a>.</p>
<p><strong>Datacenter Outage</strong>: On March 10, we had a quick downtime of our dedicated server in a Berlin datacenter. This was due to a routing issue at IN Berlin which was resolved after about 15 minutes. Still this shows us, that we need to go for redundancy among DCs in the future.</p>
<h2>And the usual number games:</h2>
<p>In march we were 23391 repositories, created and maintained by 20049 users. Compared to one month ago, this is an organic growth rate of +1936 repositories (+9% month-over-month) and +1136 users (+6%).
In April, we were hosting 25120 repositories, created and maintained by 21362 users. Compared to one month ago, this is an organic growth rate of +1968 repositories (+8.5% month-over-month) and +1345 users (+6.7%).</p>
<p>The storage requirements on our machines went up to about 60%, and we started looking for distributed file systems.</p>
<p>Codeberg e.V. members in March / April were 172/183 members in total, these are 123/131 members with active voting rights and 48/51 supporting members, and one honorary member.</p>
<p><em>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</em></p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929.</p>Let's bring Codeberg to the cloud2022-04-01T00:00:00+02:002022-04-01T00:00:00+02:00Knut (Codeberg e. V.)tag:blog.codeberg.org,2022-04-01:/lets-bring-codeberg-to-the-cloud.html<p><strong>In case you read this later and didn't yet spot the date: This was an April's Fool for 2022, please don't take it too serious.<br>
TL;DR: Our own hardware journey reaches the next level - we are finally moving fully to the cloud.</strong></p>
<p>About a year ago, we decided we'd …</p><p><strong>In case you read this later and didn't yet spot the date: This was an April's Fool for 2022, please don't take it too serious.<br>
TL;DR: Our own hardware journey reaches the next level - we are finally moving fully to the cloud.</strong></p>
<p>About a year ago, we decided we'd want to go next steps for the hosting of your user data.
Running on other people's computers seemed very expensive long-term,
especially for large storage sizes.
We calculated that we would quickly save storage costs when buying own hardware, and so we did.</p>
<p>The journey was everything but smooth.
At first, the decision-making progress caused a lot of headache.
Should we opt for one server, or two for redundancy? Where to host it?
Then, global delivery issues caused delays,
and when we finally received our server, it took us much longer than expected to move it into a datacenter.</p>
<p>Now, it's humming there, building your projects through <a href="https://mastodon.technology/@WoodpeckerCI/108056475984630823">WoodpeckerCI</a>,
and serving your Codeberg Pages.
Still, we feel that the situation is still suboptimal.</p>
<h2>The issues in our datacenter</h2>
<p>Although the datacenter is running on renewable energy,
we don't have a way to connect our own solar panels directly to our server.
Also, while the datacenter is only using air conditioning in summer,
we'd love to completely rely on natural cooling in the future.</p>
<p>More issues become obvious when considering the fixed location of the server.
While most of our team is currently based in Berlin and on-site operation was easily possible in the past,
we can't guarantee this forever, and wish we had more flexibility in case the team members were moving somewhere else.
Also, we'd love to involve more people from around the world.</p>
<p>Last but not least, when the uplink of our server failed a few weeks ago,
we'd have appreciated if it was easier to move the server somewhere else.</p>
<h2>The solution is called 'cloud'</h2>
<p>We investigated this issue a lot, and learned that many large platforms have found their solution in the 'cloud'.
So after some thorough research and calculation,
we determined that the only viable strategy is to lift off our servers and bring them to our own cloud.</p>
<p>We just signed a contract with a zeppelin manufacturer that wishes to remain anonymous for the time being,
and we are very proud about this huge milestone, looking forward to the take off date at <a href="https://en.wikipedia.org/wiki/April_Fools%27_Day">1st of April 2023</a>.
We are using the remaining full year for containerizing all our services and applications,
in order to easily hang the systems below the airship.</p>
<h2>Flexibility is key</h2>
<p>Bringing our systems to the cloud grants us a lot of flexibility and solves some other issues as side-effect.
Now, we can easily ship the whole application to the nearest sysadmin in case of failures.
Remote-debugging will no longer be necessary.
We can even drop out our lights-out-management, as long as we always travel in the sunshine.</p>
<p>Since the zeppelin only uses natural buoyancy, we can spend nearly all energy on powering the systems itself.
Therefore, we are installing solar panels on the upside,
and using battery storage for the times the winds don't keep us in the sunlight.
Further, we can finally abandon air conditioning,
because the air circulation at low temperature is enough in this windy height.</p>
<p>Additionally, we also solve the issue of global network latency:
Because the airship is moving around the earth,
we do no longer privilege users in Central Europe which are near our existing setup.
Instead, latency now randomly fluctuates for all users on the globe with our airship travelling around.</p>
<p>We only rely on prevailing winds to move our system, so the movement isn't fully deterministic.
The first anticipated routes are from Berlin via Munich to Marseille, then east (possibly up to Japan, but we can't know for sure),
and then we'll let ourselves be surprised.</p>
<p>Thank you for being in this journey together.<br>
- the Codeberg team</p>
<p>Oh, and don't forget to chip in some money, as Codeberg is powered by donations from people like you!</p>
<p>Oh, and in case we don't receive enough money for this extraordinary plan,
we'll instead use your donations to invest into hardware redundancy,
so that we can finally move our production Gitea instance to own hardware, too.</p>First Codeberg Hackathon in April 20222022-03-29T00:00:00+02:002022-03-29T00:00:00+02:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2022-03-29:/first-codeberg-hackathon-in-april-2022.html<p><em>TL;DR: We invite you to take part in the Codeberg Hackathon on the weekend from April 8th to April 10th 2022 and help improving the ecosystem around Codeberg.</em></p>
<p>We are taking collaborative notes in this <a href="https://pad.ccc-p.org/C3bk_zFTSYarbaOQPZeJLg?both">HedgeDoc</a>.<br>
Join the <a href="https://lecture.senfcall.de/ott-qfr-xes-p20">Senfcall (BigBlueButton meeting)</a>
(if no one is online, return at the …</p><p><em>TL;DR: We invite you to take part in the Codeberg Hackathon on the weekend from April 8th to April 10th 2022 and help improving the ecosystem around Codeberg.</em></p>
<p>We are taking collaborative notes in this <a href="https://pad.ccc-p.org/C3bk_zFTSYarbaOQPZeJLg?both">HedgeDoc</a>.<br>
Join the <a href="https://lecture.senfcall.de/ott-qfr-xes-p20">Senfcall (BigBlueButton meeting)</a>
(if no one is online, return at the scheduled times below).</p>
<p>In order to make Gitea the most awesome and community-maintained software forge,
as well as Codeberg an instance that makes everyone happy,
we need your helping hand.
And because work is often more fun when done together,
and it's probably nice to get to know other Codeberg users,
we are now planning our first hackathon:
A weekend to get our hands on the keyboards together and work on our shared home for Free Software.</p>
<p>I had such an event in mind for quite a while, and I'm very pleased to announce we'll have it on the second weekend in April:
From Friday 8th to Sunday 10th of April 2022.
If you ever wanted to change this and that about Codeberg and Gitea, this is your best chance to get it done!</p>
<p>We will be meeting in Senfcall, a BigBlueButton instance also community-managed as non-profit.
The invite link is: <a href="https://lecture.senfcall.de/ott-qfr-xes-p20">https://lecture.senfcall.de/ott-qfr-xes-p20</a> (double-check this post before joining in case of updated information).</p>
<h2>The Roadmap</h2>
<p>The short plan for this weekend: Do whatever you want, seek help and inspiration by others.
Codeberg admins and maintainers will be there to answer your questions.</p>
<p>If you don't yet have a project idea on your own, or you would like to help us with the most important issues on our side,
we'll be presenting some project ideas on Friday evening and Saturday morning.
As soon as people are interested and group around an idea, you can get started together,
bootstrapping a new feature or side-project, and we'll happily stand by your side to make sure your experience is straightforward.</p>
<p>Some ideas might be:</p>
<ul>
<li>doing patches and fixes to Gitea / Woodpecker CI</li>
<li>continuing our work on <a href="https://codeberg.org/Codeberg/pages-server">Codeberg Pages</a> or the Codeberg <a href="https://codeberg.org/Codeberg/moderation">Moderation Tool</a></li>
<li>revisiting the registration server and adding some basic member management features</li>
<li>discussing server setups and configuration</li>
<li>discussing our idea of a <a href="https://codeberg.org/Codeberg-Infrastructure/CaptchaService">Captcha Service</a>, possibly starting a prototype</li>
<li><a href="https://codeberg.org/Codeberg/Community/issues/526">creating Gitea issues and patches via mail</a></li>
<li>building a mirror service that allows Codeberg users to <a href="https://codeberg.org/Codeberg/Community/issues/607">contribute to proprietary forges</a></li>
<li>Use an open-source blog theme <a href="https://codeberg.org/Codeberg/blog/issues/15">Codeberg/blog#15</a></li>
<li>Codeberg virtual space <a href="https://codeberg.org/Codeberg/Community/issues/586">Codeberg/Community#586</a></li>
<li>Bring Codeberg to the Wikipedia</li>
<li>any other issue you encounter, especially those labelled as <a href="https://codeberg.org/Codeberg/Community/issues?state=open&labels=105">"contribution welcome"</a></li>
</ul>
<h2>The schedule</h2>
<p>This event is community-driven and powered by people like you,
thus this schedule is only an estimate: Times might differ depending on personal circumstances.
Yet, this is what we are currently aiming for (and we'll update it here in the blog post if necessary).
<strong>If not stated otherwise, all times are UTC</strong>.</p>
<p><strong>Friday, April 8th 2022:</strong></p>
<ul>
<li>18.00 UTC (20.00 CEST): Opening, presentation of ideas and brainstorming</li>
<li>~ 19.30 UTC (21.30 CEST): Get-together and open hacking: Chill the evening and talk to like-minded people, or already get started with your project (open end)</li>
</ul>
<p><strong>Saturday, April 9th 2022:</strong></p>
<ul>
<li>09.00 UTC (11.00 CEST): (Again) presentation of ideas from Friday, forming of workgroups</li>
<li>09.30 UTC (11.30 CEST): Open Hacking on your projects. Codeberg admins and maintainers will try to be around to answer your questions.</li>
<li>12.00 UTC (14.00 CEST): Short evaluation of your progress and the format, onboarding for new people (or break, if you prefer)</li>
<li>13.00 UTC (15.00 CEST): Open Hacking part #2.</li>
<li>18.00 UTC (20.00 CEST): Evaluation of day one, agendasetting for Sunday</li>
<li>18.30 UTC (20.30 CEST): Get-together and chill (or further hacking if you prefer, open end)</li>
</ul>
<p><strong>Sunday, April 10th 2022:</strong></p>
<ul>
<li>09.00 UTC (11.00 CEST): Open hacking on your projects.</li>
<li>12.00 UTC (14.00 CEST): Short evaluation of your progress or break, onboarding for new people</li>
<li>13.00 UTC (15.00 CEST): Open hacking part #2, Codeberg admins and maintainers will try to learn about your progress and discuss how to eventually continue the project after the hackathon</li>
<li>18.00 UTC (20.00 CEST): Presentation of results, evaluation of the event, discussing further plans</li>
<li>19.00 UTC (21.00 CEST): Get-together and chill (or further hacking if you prefer, open end)</li>
</ul>
<p>Thank you very much!</p>
<h2>Questions and answers</h2>
<h3>Do I need to register to participate?</h3>
<p>No, just join the room and talk. If you want to let us know we can count you in or you have project ideas,
feel free to check by in the <a href="https://matrix.to/#/!wIJGSzCYITbuEkORkq:matrix.tu-berlin.de">"Contributing to Codeberg" Matrix Channel</a>.</p>
<h3>Are there requirements for helping out? Do I have to know (...how to code / ...a programming language / ...about some codebase)?</h3>
<p>No, we welcome everyone, even newcomers and people that want to learn something.
While we can't guarantee that someone is around to teach you something,
we'll do our best to make sure you learn something if you are interested.</p>
<p>In any case, we'll find something to do for everyone - so if you can spare the time and want to help out, just join us!</p>
<h3>I can't attend the full weekend, is this a problem?</h3>
<p>No, please join anyway. You do not have to attend the full time.
We are doing two presentations of projects, to grant more people the chance to get in.
We are also doing some scheduled onboarding, if you want to join later.
As long as someone from the team is online, you can join any time and leave any time,
but if you took the responsibility for a project, we'd be happy to stay in touch with you about the future.</p>
<h3>What if I can't finish my idea on the weekend?</h3>
<p>That's not a problem, in fact to be expected for everything that goes beyond a tiny fix.
If you are working in a work group, we'll try to discuss the future of the project on Sunday.
If you have a tiny project on your own, please get and stay in touch with us and we'll make a plan for how to move on.
In any case, we appreciate your contribution, and we appreciate even more if you commit to finishing your started work afterwards.</p>
<h3>I just joined the meeting, but no one is online.</h3>
<p>We can't guarantee to always have people around, but we'll surely be there during the announced onboarding times.
If you can, please wait a moment to see if someone joins you, or write a short message in the Matrix group.</p>
<h3>Your times absolutely don't work for me</h3>
<p>If you live in a part of the world (or have a completely different day/night rhythm) that doesn't align well with our schedule,
we are very sorry. Please give us feedback in that case.
We are looking forward to doing more events of that kind in the future,
and we'd love to adapt to the wishes of our users and members.</p>Introducing Gitea 1.162022-03-02T00:00:00+01:002022-03-02T00:00:00+01:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2022-03-02:/introducing-gitea-116.html<p>We finally deployed Gitea 1.16 a few days ago (on Friday, to be precise).
In case you missed it or didn't notice the changes,
I'll highlight what you <em>need to know</em> (not what you need to discover).</p>
<p>We had to wait for the Gitea 1.16 release longer than …</p><p>We finally deployed Gitea 1.16 a few days ago (on Friday, to be precise).
In case you missed it or didn't notice the changes,
I'll highlight what you <em>need to know</em> (not what you need to discover).</p>
<p>We had to wait for the Gitea 1.16 release longer than we expected,
and yet we were surprised by the "sudden" release of it.
The Gitea team is awesome, and we'd like to thank everyone who had their part in this release,
with all its features, bug fixes and enhancements.</p>
<p>The release and deployment of Gitea 1.16 was a little unfortunate.
Normally, we run careful offline migration and feature tests using snapshots
from the production system shortly after the first Release Candidate is up.
This time, we were busy by all kinds of other stuff,
and the initial 1.16 release was made before we had the chance to try it out.
A second release candidate was apparently skipped to fix a mistake and prevent docker users to inadvertently downgrade their versions.
Sadly, this initial release wasn't quite ready for deployment,
and it took two bugfix releases, some stressful nights of debugging and surely litres of coffee
until the webauthn migration was smooth enough for a deployment at Codeberg.
A big thanks goes to the Gitea team for their patience in ruling this out and collaborating with us for finding these bugs.
We hope looking for even better collaboration in the future and are looking into improving our snapshot/staging infrastructure for this task.</p>
<h2>What's included?</h2>
<p>Talking about migrations and webauthn,
the Gitea team recommends to re-register legacy U2F keys with the new webauthn standard.
This is the way to get rid of the annoying reminder if you still log in with a former U2F key.</p>
<p>But let's talk about the features you <em>really wanted to see</em> :)</p>
<p><strong>Agit workflow support</strong>: As of <a href="https://github.com/go-gitea/gitea/pull/14295">#14295</a>,
Gitea supports the agit workflow.
Basically, this allows you to create a PR directly from within Git, without even forking the repo.
After adding the upstream repo to your Git origins, you can just issue</p>
<div class="highlight"><pre><span></span><code><span class="nv">git</span><span class="w"> </span><span class="nv">push</span><span class="w"> </span><span class="o">-</span><span class="nv">o</span><span class="w"> </span><span class="nv">topic</span><span class="o">=</span><span class="s2">"propose-feature-xy"</span><span class="w"> </span><span class="o">-</span><span class="nv">o</span><span class="w"> </span><span class="nv">title</span><span class="o">=</span><span class="s2">"My new PR title"</span><span class="w"> </span><span class="o">-</span><span class="nv">o</span><span class="w"> </span><span class="nv">description</span><span class="o">=</span><span class="s2">"Describe what I've done"</span><span class="w"> </span><span class="nv">upstream</span><span class="w"> </span><span class="nv">HEAD</span>:<span class="nv">refs</span><span class="o">/</span><span class="k">for</span><span class="o">/</span><span class="nv">main</span>
</code></pre></div>
<p><strong>Initial RSS feed implementation</strong>: An often requested feature are RSS feeds.
Now, there is an initial reference implementation for users.
Check it out by appending <code>.rss</code> to your profile name.
We hope more people pick this up in the future, and provide RSS feeds where useful.</p>
<p><strong>More migration options</strong>: We all know - vendor lock-ins are terrible.
Gitea is a very good example, with the development still being trapped at GitHub
due to the size of the project bursting the migration feature.
Yet, the Gitea migration is one of the most useful features of the service, and it was even improved recently.
Next to the already open-source GitBucket,
users of OneDev and CodeBase are now able to migrate to Gitea and into freedom.</p>
<p><strong>Issue comment history:</strong> Editing of issue comments was possible for a long time.
Now, Gitea preserves the edit history, so you can track which info was added
(or which embarrassing typo hidden :D) in an issue.
Don't worry: If you really need to get rid of something, just click on the edit (which opens a pop-up),
and below the options (top-right) select "Delete from history".</p>
<p><strong>Revised team permissions</strong>: The Gitea permission model was rather simple in the past.
Now, Gitea allows defining teams with finer grained permissions,
e.g. allow read access to code, but write access to issues while not granting access to the internal wiki at all.
We still need to reflect this in the documentation, helping hands warmly welcome:
<a href="https://codeberg.org/Codeberg/Documentation/issues/204">Codeberg/Documentation#204</a></p>
<p>Oh, and there's so much more.
You can find the whole changelog at <a href="https://blog.gitea.io/2022/02/gitea-1.16.0-and-1.16.1-released/">the Gitea blog</a>.
Again, thanks to everyone who contributed to this release, as maintainer, contributor, translator, issue reporter or reviewer.</p>
<h2>Codeberg-specific</h2>
<p>At Codeberg, most changes were already incorporated during the previous release, or are still WIP.
Most people have noticed that we revamped our dark theme, finally providing codeberg-ish colour variants.
We were so free to upgrade everyone to the codeberg-dark theme.
If you preferred the arc-green theme, you can just switch it back in the user settings.
Oh, and in case you didn't notice: The <code>auto</code> themes now provide automatic toggling based on the browser settings.</p>
<h2>Contributing to Codeberg</h2>
<p>Do you want to become part of our journey and help to build and maintain a true community software forge?
We are happy about every helping hand.
If you want to support Codeberg, feel free to check out the open community issues once the update is done (especially those that are
<a href="https://codeberg.org/Codeberg/Community/issues?state=open&labels=105">looking for contribution</a>
and pick one up.
Also, we encourage everyone to pick up a good first issue upstream at Gitea to improve the base Codeberg relies on.
Again, we want to thank everyone who had their part in this Gitea release.</p>
<p>Also, feel free to drop us a donation that helps to maintain the infrastructure and provide new features.
And as always: Tell your friends!</p>Monthly Report January 2022 - Hardware maintenance is hard!2022-02-16T00:00:00+01:002022-02-16T00:00:00+01:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2022-02-16:/monthly-report-january-2022-hardware-maintenance-is-hard.html<p><em>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V. this month; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>We are hosting 22020 repositories, created …</p><p><em>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V. this month; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>We are hosting 22020 repositories, created and maintained by 19055 users. Compared to one month ago, this is an organic growth rate of +2011 repositories (+10.1% month-over-month) and +1441 users (+8.2%).</p>
<p><strong>Gitea is joining the fediverse</strong>: It's planned for a long time, and still not done, but we are really happy about all progress in this direction. Gitea now has some funding and work being started, and we are really excited to look forward to interconnect with other forges not only on the mission level in the future. If you are looking for a code adventure and interested in federation, make sure to check out the federation label in the gitea issue tracker, and consider a contribution!</p>
<p><strong>New Terms of Use</strong>: In January, we finished our long-term project of rewriting the Terms of Use with a lot of user feedback - thank you for this! While it has been hard and time consuming to ask for, moderate and merge all different opinions, we are very happy that we have chosen this direction. Codeberg is a community effort, and we want all our members and users to participate. The voting ended early February with 46 Yes and 1 No vote.</p>
<p><strong>Hardware maintenance</strong>: In late January, we detected critical read errors on our SSD after 9 months in production (and using 0.4% of the guaranteed writes), so we had to do urgent hardware maintenance on January 29th, resulting in an unexpected downtime for the services being hosted on that machine (mostly pages and CI, due to accumulation of other issues - Codeberg.org / Gitea was not affected). In addition to the replacement SSD we added a new SSD to the RAID. Before proceeding to move more services to own hardware, we are definitely going to focus on investing in improved redundancy as well as having more people available for maintenance work. Regular reminder that donations are pretty much appreciated.</p>
<p>The machines are running at about 53% capacity, as usual we will scale up once again we approach the 66% threshold.</p>
<p>Codeberg e.V. has 172 members in total, these are 123 members with active voting rights and 48 supporting members, and one honorary member.</p>
<p><em>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</em></p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929.</p>Community Maintenance Matters2022-01-22T00:00:00+01:002022-01-22T00:00:00+01:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2022-01-22:/community-maintenance-matters.html<p>When we at Codeberg are asked to compare ourselves to other platforms, this often includes a lot of technical blah-blah about enabled features, and we have to be honest here:
We don't yet always meet expectations by people moving from proprietary platforms, which are ahead in features.
Although Gitea is …</p><p>When we at Codeberg are asked to compare ourselves to other platforms, this often includes a lot of technical blah-blah about enabled features, and we have to be honest here:
We don't yet always meet expectations by people moving from proprietary platforms, which are ahead in features.
Although Gitea is a very nice tool and making rapid progress day to day, there are thousands of open issues and feature requests, bug reports and much more to solve.</p>
<p>Still, more and more people chose Codeberg as their home for Free and Libre Open Source Software.
Some, because they like the less-cluttered interface. Others because they want privacy or live in embargoed countries.
But many are starting to care about <em>who</em> runs their system on the web, which is a question becoming more and more important in times when the growth of the internet and platforms therein is moving at rapid pace.</p>
<p>In this blog post, I want to outline my very personal motivation for Codeberg.org, and explain why I consider our model as key for sustainable platforms in the 21st century.</p>
<h2>Self-Host all the things!?</h2>
<p>If you use cloud software, you always need to keep in mind this is just some tool that runs on someone else's computer.
They physically own it, they can control it and the software it runs, the data it stores and the communication it does.
So why rely on others to run the service for you, if you can also host it yourself?</p>
<p>I completely get that motivation, and I share it to some extent.
When I was 15, I really wanted to have my very own Etherpad server, I considered this software awesome back then (and still use it at times).
Still, I soon had to learn this was harder than I expected.
Only years later I was able to finally get the server up and running, damn, and since then I hate the Node JS ecosystem for being so fragile IMO.
That aside, there are many many people out there who can't run their own servers, whether they lack the skills, the time, or the money.
There will always be a group of people who have to rely on other's service, and for them, we need to make a good offer.</p>
<p>I'm proud of hosting stuff myself. And I'm proud I see others using it, often people I don't even know use my servers and do (probably) cool stuff on it.
But this does put some stress on me.
Back when I set them up, I had some spare time maintaining my systems, and it would not matter if they break a day, or two, or even a week.
Now, I feel responsible for keeping them up, but my time didn't grow accordingly.
I really feel guilty of not updating some software components in ages, because an upgrade broke and I only rolled back without the time to properly review.
What if there was a security issue? What, if user data had been lost?
I do a lot better now, but the bad taste still stays in my mouth.
How can I, as a single person, responsibly host something for the world?
How can others, trust me as a single person, to keep the system up and running?</p>
<p>A good example for self-hosting is probably the Fediverse, especially the many many Mastodon instances out there.
But when choosing one of them, you need to trust the owner to keep it up for you.
Many of them don't even carry an impress, don't provide a way to contact anyone, and don't make any guarantees.
Fine for me - sometimes. Sometimes it's not, and I need a tool that just works when I need it. Really.</p>
<h2>Why don't you just pay for it?</h2>
<p>A popular opinion I see here and there is to just pay people for a service, often in combination with developing software in common.
In theory, this sounds very good: For example, I like how many companies started offering BigBlueButton hosting in the Coronavirus pandemic.
I really prefer this over paying for companies that develop or resale closed source software components, and this practice is still way too common nowadays.
While this might work in most cases, especially for co-operative societies and small start-ups, sometimes I feel like I want even more control over my data and demand transparency about what happens to my money.</p>
<p>We are quite happy with our decision to choose Gitea over GitLabCE.
It is a lot of fun to communicate with the maintainer team, and we know it is a truly community-maintained effort to maximize the value for the users, not for profit.
Decisions are not influenced by big companies, and the developers are free to evaluate what is really the best direction for the project.
The Same would apply for a company hosting a website. They still need to make decisions about settings and stuff.
Listening to users as a company is one thing, allowing your users to be part of the decision-making process is the next level.</p>
<h2>Democracy for the win</h2>
<p>What makes Codeberg kind-of unique among large platforms is the community maintenance model.
Codeberg.org is backed by the non-profit Codeberg e.V., which is legally bound to its goal to support the development of Free and Open Source Software.
By joining the association, you gain voting rights and elect the presidium and indirectly the board, which acts in the interest of the members.
People are allowed to vote on certain matters, especially during the virtual member assemblies.</p>
<p>Since they can take part and influence the direction of the platform, I'd argue they even "own" it.
Who, if not them, as Codeberg is not affiliated with a company and no private person can arbitrarily take control over it.
Codeberg always acts in the interest of its users, and in case of disagreement, democratic processes will lead to a decision.</p>
<h2>Efficiency</h2>
<p>Lastly, I want to share some thoughts on efficiency.
Although the Internet gives the impression that we have overcome physical limits, being able to easily copy and distribute data to many people with close to no cost, this is not ultimately true.
We need to buy or rent hardware, pay for energy and internet access.
We should consider how to keep the impact on the environment as minimal as possible, if we want to continue living on this planet for more than 20 more years.
And we have to keep an eye on our time, as administrating systems, caring for users, fighting spam and developing the software all takes time.</p>
<p>When I'm talking about efficient computer systems, I often have our CPU usage graph of Codeberg in mind.
A year ago, we would see a low baseline with occasional spikes.
When running more small servers, you need to make sure to have plenty of headroom for large push/pull actions, while the server would otherwise idle.
Now, with Codeberg growing, we are getting more and more balanced over time.
The baseline is higher, spikes are less noticeable, and we are using our computing resources more efficiently.</p>
<p>In 2021, we were able to finally buy own hardware, which also allowed us to reduce the cost per project / user on Codeberg.
It's also nice to know that your donations unfold maximum impact this way.</p>
<p>As I mentioned above in the long part about self-hosting, running a software can be very time-consuming, especially if you take care of a multitude of services.
The showcase example "Mastodon" outlines a few issues of this.
Most instance operators, who are offering public access and granting some insights, explain that most of their time is spent on that single service.
They are often a single person in charge of the instance or multiple services.</p>
<p>While you can of course dedicate your life into hosting one service for the world, you'll certainly not find the time to do anything to improve the software itself.
As someone who is mainly caring for the day-to-day operation of Codeberg, I find not close as much time as I want to get my hands on and type in some code for Gitea or other parts of Codeberg.
But happily, I'm not alone in the Codeberg team, and while I and others keep the systems up and running, the rest of the team can work out new features, fix bugs, or write a new Codeberg Pages Server for everyone to use.
Imagine each of us would take care of only one Gitea instance, all of them would be far from providing the same level of user experience as Codeberg does.</p>
<h2>A mission for the world</h2>
<p>Recently, someone on Mastodon said the world needs many Codebergs, and I can fully second that mission.
Our primary goal is and will always be fighting monopoly, and breaking the idea that software development equals Git equals Microsoft's proprietary platform.
And although Codeberg is far more libre, we are also not for everyone.</p>
<p>To reach an ultimate level of efficiency for Codeberg, I expect we require times 5 to 50 our current user count, that is 100k to 1 million.
And if you fear the monopoly: this still leaves room for 73 to 730 instances if we want to replace Microsoft GitHub alone.</p>
<p>So I really hope we can get there, with a federated Gitea hopefully coming soon.
With proud self-hosters forming associations and non-profits, to combine the forces and provide better service.
Platforms that are owned by users, doing the best for them, and not for investors.
Our funds going into improving this ecosystem, rather than sustaining big business around the world.
And everyone keeping the freedom to still self-host if they really need or want this, for their family and friends, their company and high school.</p>
<h2>From utopy to practice</h2>
<p>Lastly, I want to say a big thank you to everyone who is already making this possible.
To the team behind Gitea who is making the hosting of the software so seamless that saves us and others time and headache.
To all the people behind Codeberg who are in this mission together, whether in day-to-day operation, by backing the association as registered members, or contributing to the various projects we are running.
And of course to all the other associations, small and large, who are already living for a similar mission, among others:</p>
<ul>
<li><a href="https://codeberg.org/Anoxinon_e.V./">Anoxinon on Codeberg</a>, offering several services like Mastodon, XMPP, Cloud</li>
<li><a href="https://codeberg.org/softwerke-magdeburg/">Softwerke Magdeburg on Codeberg</a>, a local initiative in Magdeburg, Germany with similar efforts</li>
<li><a href="https://disroot.org/">Dis`root´</a>, providing many free services, including maximum privacy (and a Gitea instance, too)</li>
<li><a href="https://wikimediafoundation.org/">the Wikimedia Foundation</a>, inspiring us that impact in the world is possible and not limited to the largest companies</li>
</ul>Monthly Report December 2021 - Three years of Codeberg2022-01-17T00:00:00+01:002022-01-17T00:00:00+01:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2022-01-17:/monthly-report-december-2021-three-years-of-codeberg.html<p><em>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V. this month; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>We are starting a New Year …</p><p><em>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V. this month; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>We are starting a New Year, and wish you all the best for your goals and projects. If you can imagine to spend some time on improving Codeberg.org this year, please get in touch with us. We have plenty of diverse tasks and goals for the platform, including code work, community support and social media, infrastructure setups and much more. We are explicitly open to guiding newcomers or career changes and try to mentor as time permits.</p>
<p>We are hosting 20219 repositories, created and maintained by 17634 users. Compared to one month ago, this is an organic growth rate of +1635 repositories (+8.8% month-over-month) and +1135 users (+6.9%).</p>
<p><strong>Codeberg New Pages Launch</strong>: On December 2nd, we finally launched the next version of the Codeberg Pages Server, bringing many new features like custom domains and serving from different pages and repos. The following weeks were spent with user support, bug fixing (ooops), refactoring and discussing the further roadmap of the service with your feedback. Don't have your very own Codeberg Page yet? Setting it up is as easy as it could be. Check out <a href="https://codeberg.page">Codeberg.Page</a> or the <a href="https://mastodon.technology/@codeberg/107378263569347099">Social Media Launch Announcement</a>!</p>
<p><strong>Public relations</strong>: While we did not have resources to present a talk at rc3 this year, we ordered a batch of stickers and threw it into the stickers exchange. If you participated in it, you might have received some Codeberg stickers. If you can make use of a larger portion of Codeberg stickers for multiple hacker spaces and other nerdy hotspots, please send us an email and tell us where you are going to distribute them. We get back to you with an appropriately sized batch.</p>
<p>The machines are running at about 50% capacity (partly due to garbage collection and cleanup of quarantined repositories), as usual we will scale up once again we approach the 66% threshold.</p>
<p>Codeberg e.V. has 167 members in total, these are 120 members with active voting rights and 46 supporting members, and one honorary member.</p>
<p><em>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</em></p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929.</p>Monthly Report November 20212021-12-15T00:00:00+01:002021-12-15T00:00:00+01:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2021-12-15:/monthly-report-november-2021.html<p><em>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V. this month; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters, once again it is time for …</p><p><em>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V. this month; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters, once again it is time for some updates!</p>
<p>We are hosting 18791 repositories, created and maintained by 16585 users. Compared to one month ago, this is an organic growth rate of +1302 repositories (+7.4% month-over-month) and +1052 users (+6.8%).</p>
<p>The year is coming to an end, and we wish everyone some calm next weeks. Remember: If your membership fees are paid anually, it's time for collection in January. If you want to change your amount of contribution, now is a good time to do so.</p>
<p><strong>License reminders:</strong> Early in November, we started popping up license reminders for repos that do not yet carry a valid FLOSS license as defined by either the FSF or the OSI. They are working great so far and it feels good to see many projects now finally be freed in a legal sense, too. We'll continue to keep an eye on resource abuse in the next months to make sure your financial contributions do support the Free Software movement.</p>
<p>The machines are running at about 46% capacity (partly due to garbage collection and cleanup of quarantined repositories), as usual we will scale up once again we approach the 66% threshold.</p>
<p>Codeberg e.V. has 163 members in total, these are 118 members with active voting rights and 44 supporting members, and one honorary member.</p>
<p><em>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</em></p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929.</p>Monthly Report October 20212021-11-16T00:00:00+01:002021-11-16T00:00:00+01:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2021-11-16:/monthly-report-october-2021.html<p><em>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V. this month; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters, once again it is time for …</p><p><em>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V. this month; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters, once again it is time for some updates!</p>
<p>We are hosting 17900 repositories, created and maintained by 15572 users. Compared to one month ago, this is an organic growth rate of +1413 repositories (+8.6% month-over-month) and +1027 users (+7.1%).</p>
<p><strong>Feedback collection:</strong> We are currently running two discussions between members of the Codeberg e.V. If you are a member, check the internal discussion tracker and raise your voice. If not, feel free to <a href="https://join.codeberg.org">join us</a>.</p>
<p><strong>CI status:</strong> The closed alpha is going great so far. We have ~60 projects signed up, not all of them have configured access by now. We prepare to broaden access through ongoing development and beta launch. Please sign up to join the alpha/beta test program. In October 2021, there was a lot of progress including major updates to woodpecker UI. Performance tests on spinning hard drives instead of SSD showed very similar performance characteristics, enabling lower cost operation by reducing our dependence to costly SSDs prone to weardown.</p>
<p>The machines are running at about 48% capacity, as usual we will scale up once again we approach the 66% threshold.</p>
<p>Codeberg e.V. has 148 members in total, these are 110 members with active voting rights and 37 supporting members, and one honorary member.</p>
<p><em>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</em></p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929.</p>Monthly Report September 20212021-10-27T00:00:00+02:002021-10-27T00:00:00+02:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2021-10-27:/monthly-report-september-2021.html<p><em>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V. this month; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters, once again it is time for …</p><p><em>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V. this month; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters, once again it is time for some updates!</p>
<p>We are hosting 16791 repositories, created and maintained by 14574 users. Compared to one month ago, this is an organic growth rate of +1196 repositories (+7.7% month-over-month) and +953 users (+7%).</p>
<p><strong>CI</strong>: After some team members invested a lot of work into Woodpecker, we dared to launch a closed-alpha test with our new CI on the bare-metal server. This ate up most of our time this month. There is still a long way to go for finer quota tuning and abuse prevention (this is the main reason for granting access on request). Also check out the social media announcement on <a href="https://mastodon.technology/@codeberg/106931569806712591">Mastodon</a>.</p>
<p><strong>OAuth linking</strong>: Migration from other services to Gitea is already a nice and convenient feature for a long time. However, previous comments were not assigned to the original author. Now, you can link your GitHub and GitLab.com profiles to Codeberg and migrated content links to your Codeberg profile and login to Codeberg using those providers once linked. This feature is of course fully optional, please be aware that the third-party providers will learn about your linking and login attempts if you use the quick login feature. Here is how it works:</p>
<ul>
<li>Register a Codeberg account as usual (not necessary as you have it)</li>
<li>click on "Link Account" at the sign in page</li>
<li>choose a third-party provider and authorize Codeberg (you will share data with them)</li>
<li>migrated content now links to your profile</li>
<li>you can also use these to login to Codeberg if this is more convenient for you, but they'll learn about your logins then.</li>
</ul>
<p>The machines are running at about 46% capacity, as usual we will scale up once again we approach the 66% threshold.</p>
<p>Codeberg e.V. has 147 members in total, these are 110 members with active voting rights and 36 supporting members, and one honorary member.</p>
<p><em>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</em></p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Monthly Report August 20212021-09-25T00:00:00+02:002021-09-25T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2021-09-25:/monthly-report-august-2021.html<p><em>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V. this month; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters, once again it is time for …</p><p><em>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V. this month; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters, once again it is time for some updates!</p>
<p>We are hosting 15637 repositories, created and maintained by 13649 users. Compared to one month ago, this is an organic growth rate of +1234 repositories (+8.6% month-over-month) and +872 users (+6.8%).</p>
<p><strong>Spam users</strong>: By the end of last month, we saw some spam accounts that were obviously created for advertisement or boosting the search engine appearance of websites, some of them being just annoying, some of them also being not-okay in our opinion (scam attempts and potentially offending content). In August, we continued scanning repo content, removing a total of a few hundred user accounts. We received a number of user reports sent to abuse@codeberg.org, reporting problematic content. Thank you for this! Please keep going!<br>
While we were removing content and user accounts only after applying the many-eyes principle in case of doubt, we should focus on <a href="https://codeberg.org/Codeberg/Community/issues/442">Codeberg/Community#442</a> for a moderation tool which allows sending users a notice and give them a grace time to appeal. Anyone interested in picking this up?</p>
<p><strong>Matrix Space</strong>: Early in August, we grouped some Codeberg Matrix Channels into our own Matrix Space, featuring the chat rooms of some well-known Codeberg projects. You can join the space with a Matrix client supporting spaces via <a href="https://matrix.to/#/#codeberg-space:matrix.org">#codeberg-space:matrix.org</a> and explore and connect with community projects via <a href="https://matrix.to/#/#projects-on-codeberg:matrix.org">#projects-on-codeberg:matrix.org</a>.</p>
<p><strong>Gitea 1.15</strong>: By the end of the month, we did deploy a new Gitea release, <a href="https://blog.codeberg.org/introducing-gitea-115.html">as announced separately on the blog</a>. This also involved many performance improvements and new features.</p>
<p><strong>Design updates</strong>: With the Codeberg Documentation following the branding guidelines since the end of July and some works on the navbar together with the Gitea 1.15 release, this is the first time we are touching the Codeberg appearance in a while. Thanks to everyone caring about our branding and improving the user experience.</p>
<p><strong>Accessibility</strong>: By the end of July, we received some reports that Gitea 1.15 would break accessibility for people who rely on assistive technology like screen readers. Thanks to the Gitea team and external contributors for pushing this matter forward and fixing these issues before the release. This also reminded us to give the already-existent discussion a new push to make sure Codeberg is a working space for everyone.</p>
<p><strong>Community Discussions</strong>: We have noticed quite some heated discussions among Codeberg members and want to remind everyone to keep conversations productive and non-toxic. We are currently evaluating new moderation strategies, as we feel responsible for keeping Codeberg a welcoming place and will not tolerate offensive behaviour.</p>
<p>The machines are running at about 44% capacity, as usual we will scale up once again we approach the 66% threshold.</p>
<p>Codeberg e.V. has 144 members in total, these are 108 members with active voting rights and 35 supporting members, and one honorary member.</p>
<p><em>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</em></p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Introducing Gitea 1.152021-08-30T00:00:00+02:002021-08-30T00:00:00+02:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2021-08-30:/introducing-gitea-115.html<p>It's been exactly four months since the <a href="https://blog.codeberg.org/introducing-gitea-114.html">deployment of Gitea 1.14</a>. Today, we are pleased to announce the deployment of the Gitea 1.15 release. The database migration involved a downtime of about one minute.<br>
As always, the new version comes with a bunch of new features, bugfixes and …</p><p>It's been exactly four months since the <a href="https://blog.codeberg.org/introducing-gitea-114.html">deployment of Gitea 1.14</a>. Today, we are pleased to announce the deployment of the Gitea 1.15 release. The database migration involved a downtime of about one minute.<br>
As always, the new version comes with a bunch of new features, bugfixes and other improvements. We are thankful to all the contributors of Gitea for their awesome work. We really appreciate using their software to build a true community-based software forge, and we are happy to support the work on the next release.</p>
<p>There were many small changes, and it's just impossible to cover all the changes. This blog post will guide you through the most important new features you'll love. If you want to know more, feel free to check out the full changelog at the <a href="https://github.com/go-gitea/gitea/releases/tag/v1.15.0">GitHub release page</a> and the <a href="https://blog.gitea.io/2021/08/gitea-1.15.0-is-released/">Gitea blog</a>.</p>
<p><strong>Forge emojis:</strong> Okay, probably not the most important feature, but ... you can now use <code>:codeberg:</code> (→ <img src="https://design.codeberg.org/logo-kit/icon.svg" style="height: 1em;">) along with some other forges to use their emoji in comments. <a href="https://github.com/go-gitea/gitea/pull/16296"><em>gitea#16296</em></a></p>
<p><strong>Tag protection:</strong> If you are collaborating with some maintainers, but want to control tightly who is allowed to push new tags, especially for releases, you can now make use of tag protection. You can, for example, let everyone create release candidates, but limit creation of new releases to a subset of users to limit the danger of faulty releases. <a href="https://github.com/go-gitea/gitea/pull/15629"><em>gitea#15629</em></a></p>
<p><strong>Clickable checkboxes:</strong> Are you using issue checkboxes to handle your ToDo lists? You do no longer have to edit the markdown code. If you have write access to the content, you can now simply click into the checkbox to toggle them. <a href="https://github.com/go-gitea/gitea/pull/15791"><em>gitea#15791</em></a></p>
<p><strong>Walking blames:</strong> Although we hope that you don't use the blame feature to laugh at your contributors, it's a handy tool if you quickly need to find the origin of some changed line. Sometimes, you also want to know how it has been before or if there was something removed. The blame view now has a nice button to go visit the blame view from before a certain change. <a href="https://github.com/go-gitea/gitea/pull/16259"><em>gitea#16259</em></a></p>
<p><strong>Review comment navigation:</strong> Long pull requests, hundreds of commands? Quickly go through them with Previous and next buttons now! <a href="https://github.com/go-gitea/gitea/pull/16273"><em>gitea#16273</em></a></p>
<p><strong>Diffing CSVs:</strong> Ever tried to spot differences in long lines of CSVs? What was this field again? This got massively improved, you can now see a tabular view and per-cell diffs. Check out the screenshot in the pull request or try it yourself. <a href="https://github.com/go-gitea/gitea/pull/14661"><em>gitea#14661</em></a></p>
<p>And many more changes you'll hopefully enjoy. They include for example the ability to migrate LFS objects with your repositories, easier comparing the commits between tags in your repos, and auto-removing unprotected branches after they are merged.</p>
<h2>Performance</h2>
<p>Also, switching to the new Gitea version also brought some performance improvements. We saw many pull requests refactoring parts of the code, introducing caching and doing other improvements to the performance, cool thing! We noticed some decrease in CPU load, some parts of the web page speed up, and undeniable a decrease in memory usage:</p>
<p><img alt="screenshot of server stats, memory usage suddenly drops from about 3GB to < 0.5 GB" src="/images/introducing-gitea-1.15_memory_usage.png"></p>
<p>Sadly, we also had some temporarily unavailability about 12 hours after deployment, maybe caused by a leak of file descriptors / pipes, and we put some countermeasures into place to keep the service running while investigating the issue. Further, we noticed some unresponsiveness in our storage (which appears to be unrelated as we discovered an occurence a few hours before the deployment). This lead to a few more short periods of unavailability (about 5 seconds unresponsiveness each), we are still investigating this issue, too.</p>
<h2>Codeberg specific changes</h2>
<p><strong>Navbar:</strong> Together with this release, we also deployed some codeberg-specific changes. Most prominent, you might have noticed another change to the navbar and the Codeberg dropdown. We now moved the help links from the right and integrated them into the Codeberg dropdown based on user feedback to our initial version.</p>
<p><strong>Repo banners:</strong> Also, we are now experimenting with displaying Codeberg banneres to your repos. This is currently a proof-of-concept and must be considered a WIP. The goal is to nudge users and catch their attention when they are hosting huge (often private) repos, consuming many resources, or when they miss a licence. Instead of handling every violation with an abuse email, we now want to easily catch the users attention prior to acting, also to save us some work. We hope it works out - for sure, we'll keep working on this experiment between the Gitea releases.</p>
<p><img alt="Screenshot of a banner, reading:
Your private repo uses up an insanely large amount of disk storage, while all content should ideally be public and licensed under an OSI/FSF-approved Free Software licence.
Please refer to our ToS and the FAQ about software licenses and private repositories
Thank you for considering to release this repo to the public or reducing your required disk space for this repo." src="/images/introducing-gitea-1.15_banner_example.png"></p>
<p>If you want to stay up to date with our work on Codeberg, also make sure to read the <a href="https://blog.codeberg.org/category/monthly-letter.html">monthly letters</a>.</p>
<h2>Contributing to Codeberg</h2>
<p>Do you want to become part of our journey and help to build and maintain a true community software forge? We are happy about every helping hand.
If you want to support Codeberg, feel free to check out the open community issues once the update is done (especially those that are <a href="https://codeberg.org/Codeberg/Community/issues?state=open&labels=105">looking for contribution</a> and pick one up. Also, we encourage everyone to pick up a good first issue upstream at Gitea to improve the base Codeberg relies on. Again, we want to thank everyone who had their part in this Gitea release.</p>
<p>Also, feel free to drop us a donation that helps to maintain the infrastructure and provide new features. And as always: Tell your friends!</p>Monthly Report July 2021 - 100+ active association members!2021-08-18T00:00:00+02:002021-08-18T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2021-08-18:/monthly-report-july-2021-100-active-association-members.html<p><em>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V. this month; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters, once again it is time for …</p><p><em>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V. this month; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters, once again it is time for some updates!</p>
<p>We are hosting 14667 repositories, created and maintained by 12824 users. Compared to one month ago, this is an organic growth rate of +1335 repositories (+10% month-over-month) and +800 users (+6.7%).</p>
<p><strong>Performance</strong>: Still remember the performance issues we mentioned two newsletters ago? While we are okay with the go-git backend for now, we also rolled out caching on production after a period of heavy testing on our staging servers. We're now sure that it will only have a positive impact on the site's performance and that the parameters used will not blow up RAM usage on prod. We're now seeing how much memory it will take to create a good cache for all your repos.</p>
<p><strong>CI</strong>: Some team members are working on the CI service with Woodpecker and adding the missing bits and pieces to the software, which is a libre Drone fork with a lively and growing community. Woodpecker is not affiliated with any company, but indeed libre and only committed to its community.</p>
<p><strong>Search</strong>: Searching repositories is awesome and we're having a running integration with our test server. It is deployed to codeberg-test and mostly working - but not for all repos yet. We're currently trying to identify an issue that is causing some repos not to be indexed yet. But you can already have a sneak preview at https://codeberg-test.org/ashimokawa/Gadgetbridge/search?q=device&t= or with your own repo uploaded there. If you would like to join our efforts to debug the open issues please let us know!</p>
<p><strong>Event</strong>: We had the Codeberg Docuthon from July 10 to July 17 in order to improve the documentation and READMEs of your repos - because software documentation is a key to making your code reusable and allowing new contributors to join your project. Haven't participated or still work to do? Software documentation is always important, you can still explore repos with the Docuthon flag and write some words about your project. Our very first event was going fine, for our next we are looking forward to growing participation!</p>
<p><strong>Misc</strong>: As always we did a lot of small tweaks on the fly. An interesting proof of concept is the migration of our build-deploy-gitea system from managing secrets (for MySQL and Redis database) via environment variables to generating them for every deployment. This way, we can avoid sharing these secrets between the admin team, and changing them in case of an issue is as easy as doing a new deployment. Also, a lot of work is being done to move server config and deployment to Ansible and further open it up to the community.</p>
<p>The machines are running at about 38% capacity, as usual we will scale up once again we approach the 66% threshold.</p>
<p>Codeberg e.V. has 137 members in total, these are 101 members with active voting rights and 35 supporting members, and one honorary member. </p>
<p><em>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</em></p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Monthly Report June 2021 - Documentation is key!2021-07-19T00:00:00+02:002021-07-19T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2021-07-19:/monthly-report-june-2021-documentation-is-key.html<p><em>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V. this month; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters, once again it is time for …</p><p><em>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V. this month; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it!</a>)</em></p>
<p>Dear Codeberg e.V. Members and Supporters, once again it is time for some updates!</p>
<p>We are hosting 13510 repositories, created and maintained by 12127 users. Compared to one month ago, this is an organic growth rate of +1010 repositories (+8.1% month-over-month) and +759 users (+6.7%).</p>
<p><strong>Our new server:</strong> As mentioned in the last newsletter, we installed the server into the data center at IN Berlin, as we discussed in the annual assembly earlier this year. This means, we have to pay for the power and space usage from now on, so we are working hard to get the systems up and running as soon as possible, and we are doing good <a href="https://codeberg.org/Codeberg/Community/issues/379#issuecomment-241446">progress towards Codesearch</a> for a first burn test.</p>
<p><strong>Documentation:</strong> In June, we have seen an increased amount of contributions to our Documentation, and we are really grateful for this. We are still aiming to turn the Codeberg Docs into a more complete end-user manual in a way that users from other Gitea instances can also profit from our effort. We also have our own Documentation Matrix Channel now - you can join it and ask your questions at <a href="https://matrix.to/#/#codeberg-documentation:matrix.org">#codeberg-documentation:matrix.org</a> - and read about <a href="https://codeberg.org/Codeberg/Documentation/issues/134">our roadmap here</a>.
Also, there was the Codeberg "Docuthon" from 10 to 17 July: Since good code is more useful if it's properly documented, we asked everyone to add some lines to their project during this week, especially those project, who don't even carry a descriptive README. If you want to show your continued effort to document your project, feel free to add the "Docuthon" flag to your repo topics any time. Also, the Codeberg Docs are always looking for contribution, too.</p>
<p><strong>Community Issues:</strong> Many people involved at Codeberg have been busy with the new server recently. We're working hard to deliver new features as soon as possible. On the other hand, we have had less time to take care of other parts of the platform. If you want to help, please consider providing a helping hand with our community issues: Confirming, Finding Details, Reporting Upstream or sending a fix. We have put some small instructions <a href="https://mastodon.technology/@codeberg/106445270542603984">on our Mastodon Channel</a> - Thank you very much!</p>
<p>The machines are running at about 35% capacity, as usual we will scale up once again we approach the 66% threshold.</p>
<p>Codeberg e.V. has 134 members in total, these are 99 members with active voting rights and 34 supporting members, and one honorary member.</p>
<p><em>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</em></p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Codeberg Docuthon in July 20212021-07-07T00:00:00+02:002021-07-07T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2021-07-07:/codeberg-docuthon-in-july-2021.html<p><em>TL;DR: We invite you to take part in the Codeberg Docuthon from July 10 to July 17 and write some documentation about your favourite project - or collaborate on the Codeberg Docs.</em></p>
<p>We at Codeberg are very proud to be the home to many awesome software projects. As of July …</p><p><em>TL;DR: We invite you to take part in the Codeberg Docuthon from July 10 to July 17 and write some documentation about your favourite project - or collaborate on the Codeberg Docs.</em></p>
<p>We at Codeberg are very proud to be the home to many awesome software projects. As of July 2021, there are about 15k repositories and Codeberg users have created more than a million actions (comments, pushes etc), and we are convinced that many of you are living FLOSS by heart, improving the world day to day.</p>
<p>But what makes good code usable in the end? Is it enough to push your work to some repo and give it a licence? Sadly, the topic isn't that easy, although it's already a very good start to make sure your project has proper licensing so others can make use of it. Another important key to reusing software is telling others about how to make use of it. This is where documentation comes into the game.</p>
<h2>Document your code!</h2>
<p>From time to time it's good to take a step back and look at your work through fresh eyes. What did you create? What does it do? What can others use it for? And tell them!</p>
<p>On Codeberg, we are sometimes coming about repos that don't even have a README, or it is only telling you that this is some library for thing-foo-bar. Sure, you shared the code already, so others can have a look at it, (try to) understand it, integrate and use it. But seriously, how likely are you to dive into something completely unknown? Wouldn't it be better if you had an interesting README, some docs and some comments that raise your interest?</p>
<p>We think that <strong>documentation is very important to software usability</strong>, so we invite you to take the time and write it.</p>
<h2>Join the Docuthon!</h2>
<p>You think so, too? Take a step back and join the Codeberg Docuthon from July 10 to July 17.</p>
<p>If you have your own software projects to work on:</p>
<ul>
<li>think of where your Code Documentation can be improved</li>
<li>add the missing pieces or indicate the missing parts to others</li>
<li>add the "Docuthon" flag to your repo, so others can find it (and help if needed)</li>
</ul>
<p>If you want to contribute somewhere else or need a break:</p>
<ul>
<li><a href="https://codeberg.org/explore/repos?q=Docuthon&topic=1">check out other Docuthon repos and their progress</a>, give feedback and see if they are useful to you</li>
<li>ask if you can help explain the features in an understandable manner</li>
<li>we also want to take the opportunity to give the Codeberg Docs a sprint, check out our <a href="https://codeberg.org/Codeberg/Documentation/issues">open issues</a> - the Documentation maintainers are around to help you and answer questions. You can also join the <a href="https://matrix.to/#/#codeberg-documentation:matrix.org">#codeberg-documentation:matrix.org</a> Matrix channel.</li>
</ul>
<h2>Nice side effects</h2>
<p>Documenting your code does not only benefit users. It might save you some unnecessary support requests, it can even allow you to take a breath, look at what you have done so far and think about your software design. In the spirit of <a href="https://tom.preston-werner.com/2010/08/23/readme-driven-development.html">Readme Driven Development</a>, you can spend some time on thinking about your software design before wildly changing the code, and it also lowers the barrier for other developers to join your project if they get to know what capabilities already exist and what you are going for next, instead of reading through all the code in order to finally understand the project before doing any changes.</p>Monthly Report May 2021 - Preparing the new server2021-06-16T00:00:00+02:002021-06-16T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2021-06-16:/monthly-report-may-2021-preparing-the-new-server.html<p><em>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V. this month; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it</a>!)</em></p>
<p>Dear Codeberg e.V. Members and Supporters, once again it is time for …</p><p><em>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V. this month; as usual published here with due delay. Not member of the non-profit association yet? <a href="https://join.codeberg.org">Consider joining it</a>!)</em></p>
<p>Dear Codeberg e.V. Members and Supporters, once again it is time for some updates!</p>
<p>We are hosting 12643 repositories, created and maintained by 11387 users. Compared to one month ago, this is an organic growth rate of +1051 repositories (+9.1% month-over-month) and +858 users (+8.1%).</p>
<p><strong>Server order:</strong> The delivery of the server we ordered was delayed due to high demand of electronics and some parts being out of stock, it was shipped by the end of May. We are currently setting it up and preparing to move it to the datacenter at IN Berlin in the coming days. At first, it will mainly be used for providing additional services like CI, Codesearch and more. Codeberg members are kept up to date in an internal Discussion tracker.</p>
<p><strong>Attacks:</strong> We find ourselves attacked several times each month. This often involves some IP addresses cloning the biggest Codeberg repos concurrently until they are blocked (we saw one attack with larger impact on June 7th). One time this month, we also encountered a more creative approach: Some of you reported that the initial connection to Codeberg was slow, and we had to learn that we were not sufficiently protected to <a href="https://en.wikipedia.org/wiki/SYN_flood">TCP SYN floods</a> yet. If you are running your own medium-sized server, make sure to check this! </p>
<p><strong>Performance:</strong> After we deployed Gitea 1.14 last months, we intitially celebrated a sudden drop in RAM usage because of a backend migration from go-git to plain Git. Over this month, we were investigating the overall site's performance dropping and several users reporting severe issues. Browsing the trees including the display of the last commit touching each file and folder is a big bottleneck for repos with long commit history, and this operation became much slower with native Git (the Gitea usage of this operation is not yet fully optimized). We migrated back to go-git for now as our machine is currently equipped with enough RAM to handle the high memory requirements. We are trying to further improve the backend so that Codeberg remains fast for everyone.<br>
You can follow the progress at <a href="https://codeberg.org/Codeberg/Community/issues/453">Codeberg/Community#453</a>, and maybe even join the efforts. Thank you!</p>
<p><strong>Malware campaigns:</strong> At the beginning of May we have seen the Codeberg Pages feature involved in malware campaigns for India, usually providing "Covid vaccination apps" or "Pro versions" of common apps. The distributed Android apps were <strong>not</strong> hosted on Codeberg, but the pages used as landing pages and redirects to the downloads. We have been initially made aware of this by Indian offices and individual persons and since been looking at this closely. As we noticed that many users did not understand the issued warning pages, we have asked a security researcher for a Hindi translation of the takedown banner. Still, some users continued to register at Codeberg immediately after the takedowns and we assume they might still have been in search of their promised vaccination.
The malware campaigns stopped to abuse our service after we have decreased the detection time from ~12 hours to about an hour in the end. For us it's shocking to see how many users were hit by these campaigns (before the Hindi translation, we have received several emails per minute asking for help with the content) and how the precarious pandemic situation is abused by criminals to exploit people.
Stay safe and responsible in these times!</p>
<p>Codeberg e.V. has 129 members in total, these are 96 members with active voting rights and 32 supporting members, and one honorary member.</p>
<p>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Monthly Report April 2021 - 10k users!2021-05-05T00:00:00+02:002021-05-05T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2021-05-05:/monthly-report-april-2021-10k-users.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>We are hosting 11877 repositories, created and maintained …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>We are hosting 11877 repositories, created and maintained by 10567 users (yeah, we hit the 10k!). Compared to one month ago, this is an organic growth rate of +1140 repositories (+10.6% month-over-month) and +1118 users (+11.8%).</p>
<p>The machines are running at about 35% capacity, as usual we will scale up once again we approach the 66% threshold.</p>
<p>Our new server has been ordered, expected delivery in coming weeks. These additional capacities will allow us to enable code search, and build new features.</p>
<p>Codeberg e.V. has 114 members in total, these are 85 members with active voting rights and 28 supporting members, and one honorary member.</p>
<p>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Introducing Gitea 1.142021-04-29T00:00:00+02:002021-04-29T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2021-04-29:/introducing-gitea-114.html<p>We are happy to announce that we are finally - with some delay - deploying Gitea 1.14 with a bunch of new features, bugfixes and other improvements.
We are thankful to all the contributors of Gitea for their awesome work. We enjoy using their software to build a true community-based software …</p><p>We are happy to announce that we are finally - with some delay - deploying Gitea 1.14 with a bunch of new features, bugfixes and other improvements.
We are thankful to all the contributors of Gitea for their awesome work. We enjoy using their software to build a true community-based software forge and we are already looking forward to see the next release with a bunch of further improvements.</p>
<p>This blog post will introduce you to the most important new features you'll love. If you want to know more, feel free to check out the full changelog at the <a href="https://github.com/go-gitea/gitea/releases/tag/v1.14.0">GitHub release page</a>.</p>
<p><strong>Issues from file view:</strong> Ever looked at some file to notice something odd? You can now immediately create an issue when viewing a file. Just click on the line number to see a popup offering you to reference this line in a new issue.</p>
<p><strong>Dismiss a review:</strong> A review is not relevant but is either confusing your contributors (because it looks like a blocker) or is even technically blocking a merge for your protected branch? You can now simply dismiss a review. Pro tip: We recommend looking at it first 🙃.</p>
<p><strong>Mark pull request as manually merged:</strong> There are situations where your manually pushed merge is not automatically detected. You'll now find a button that helps mitigate this situation. You can even enter a hash to link the manual commit.</p>
<p><strong>Image diffs:</strong> Do you like spot-the-difference puzzles? Well, but they stop being funny when you just can't spot the difference someone committed to your assets. Gitea now comes with an improved diff view with three comparing modes to help you spot the differences. <em><a href="https://github.com/go-gitea/gitea/pull/14450">See an animation on GitHub</a></em></p>
<p><strong>SVGs are finally displayed:</strong> Only a tiny change, but if you're working with assets you'll like it. Your SVGs are now rendered instead of dumping the source code in the default view.</p>
<p><strong>Filter dashboard by team:</strong> Your organization dashboard is too noisy? You were three days off and can't keep track? You can now filter activities in the dashboard by team to help you get an overview of what's going on.</p>
<p>There were some additional changes we already backported to our Gitea fork. Also, there were many tiny improvements to the UI, the performance and the overall experience. We hope you enjoy these changes and using Codeberg.</p>
<h2>What else is in the pipe?</h2>
<p>After the Gitea update, we are continuing our work on improvements in other domains of the Codeberg services. We are already looking forward to move to our own hardware later this year. A machine has already been ordered and we hope to put it live in the coming weeks, starting with infrastructure testing and a CI / CD service before the whole platform is migrated. Do you rely on CI services? We'd like to hear your opinion. Just drop us a comment in our <a href="https://codeberg.org/Codeberg/Community/issues/428">Feedback issue</a>.</p>
<h2>Contributing to Codeberg</h2>
<p>Do you want to become part of our journey and help build and maintain a true community software forge? We are happy about every helping hand.
If you want to support Codeberg, feel free to check out the open community issues once the update is done (especially those that are <a href="https://codeberg.org/Codeberg/Community/issues?state=open&labels=105">looking for contribution</a> and pick one up. Also, we encourage everyone to pick up a good first issue upstream at Gitea to improve the base Codeberg relies on. Again, we want to thank everyone who had their part in this Gitea release.</p>
<p>Also, feel free to drop us a donation that helps maintain the infrastructure and provide new features. And as always: Tell your friends!</p>Monthly Report March 20212021-04-21T00:00:00+02:002021-04-21T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2021-04-21:/monthly-report-march-2021.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>We are hosting 10810 repositories, created and maintained …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>We are hosting 10810 repositories, created and maintained by 9457 users. Compared to one month ago, this is an organic growth rate of +1179 repositories (+12.2% month-over-month) and +1181 users (+14.3%).</p>
<p>The machines have been upgraded and are running at about 33% capacity, as usual we will scale up once again we approach the 66% threshold.</p>
<p>Codeberg e.V. has 110 members in total, these are 83 members with active voting rights and 26 supporting members, and one honorary member.</p>
<p>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>On the cloudflare-tor takedown2021-04-04T00:00:00+02:002021-04-04T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2021-04-04:/on-the-cloudflare-tor-takedown.html<p>In the last couple of days, we have received multiple inquiries to remove sensitive information from the crimeflare/cloudflare-tor repository and all clones and forks of that repository hosted on Codeberg.org.</p>
<p>This incident has some history: We have been made aware that this repository contains lists of usernames that …</p><p>In the last couple of days, we have received multiple inquiries to remove sensitive information from the crimeflare/cloudflare-tor repository and all clones and forks of that repository hosted on Codeberg.org.</p>
<p>This incident has some history: We have been made aware that this repository contains lists of usernames that are either linked with their Codeberg profile or their social media accounts and allegedly blamed as Cloudflare supporters without an evidence for their support. We started a discussion with the maintainers of this repository and asked to remove these sensitive information, that are apparently for shaming people (defamation), from their repo in a timely manner to comply with our Terms of Service as well as relevant German law. Note that emails and login aliases are also private data as of GDPR.</p>
<p>We apologize for any inconvenience caused to contributors and maintainers of this repository and we are looking forward to see you continue your work on free and open source content respecting relevant laws.</p>
<h2>Legal background</h2>
<p>According to GDPR, we are obligued to remove sensitive user information as soon as a concerned person demands us to do so. This includes the immediate and complete removal of the data, its history and all copies (the forks of this repository in this case).</p>
<p>The content in question consists of multiple lists with sensitive information of users, that is obviously made for public shaming, as well as Cloudflare employee data, that are considered as private information and possibly constitutes incrimination of leaking private information in this particular context.</p>
<p>Codeberg e.V. has been founded in Germany and Codeberg.org is hosted in Germany, therefore we are tied to EU/German law.</p>
<h2>Our Position</h2>
<p>We furthermore want to give a statement to the content of the repository itself:</p>
<p>People reaching out to us and to the maintainers of the repository itself tried to make clear that they do not consider themselves as Cloudflare-supporters, but critical opponents of this company, and thus could not even imagine a reason for being listed there.</p>
<p>While we do not want to advise on centralized network technology and do not rely on Cloudflare technology for the hosting of Codeberg for a good reason, we also think that using Cloudflare for a website does not make anyone directly a supporter, and even listing them as Cloudflare users (instead of supporters) does not change the fact that this list was obviously built for shaming and attacking those users for their choices and opinions. We can not accept anyone attacking and threatening us and our users (or anyone for that matter), or inciting others to do so. There is no freedom to do harm to others and we think the authors of this list were doing so by publishing this repository in its former form.</p>
<p>Codeberg is dedicated to supporting the development of Free and Open Source software, and we are hosting repositories that comply with our mission statement. The content in question is not dedicated to Open Source development, but rather shaming of a company and especially individual people. If someone wants to break monopoly of a big and proprietary software solution, we recommend everyone to start working on an alternative to their service like we at Codeberg have done for proprietary git hosting services. </p>
<p>We did not use hate speech, we did not strive attacks against users of these platforms, yet we see people moving from their service to our open source solution day by day - and this makes us very proud. We are thankful to anyone who is joining and supporting our journey.</p>
<p>We do think that an open web can only be built by open and fair technologies and we want to support their development with our infrastructure. Supporting hate speech and attacks is not part of our mission and thus we request everyone to refrain from using Codeberg for such actions, forever.</p>
<p>Publicly posting criticism about worrisome tech companies and their products or business model (by providing reasonable arguments) is explicitly not a problem. We are always concerned about user privacy and encourage everyone to start working on viable alternatives to monopolistic data collection companies and/or spread information about their issues as well as share knowledge about existing alternatives.</p>Monthly Report January/February 20212021-03-17T00:00:00+01:002021-03-17T00:00:00+01:00Codeberg e.V.tag:blog.codeberg.org,2021-03-17:/monthly-report-januaryfebruary-2021.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>We are hosting 9857 repositories, created and maintained …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>We are hosting 9857 repositories, created and maintained by 8297 users. Compared to one month ago, this is an organic growth rate of +860 repositories (+9.6% month-over-month) and +657 users (+8.6%).</p>
<p>As we reported our annual numbers as part of our annual member assembly in February, the January newsletter had not been sent out. The January numbers would had been: We were hosting 8997 repositories, created and maintained by 7640 users. Compared to one month ago, this is an organic growth rate of +911 repositories (+11.3% month-over-month) and +706 users (+10.2%).</p>
<p>Our monthly expenses for domains and servers accumulated to 34.05 EUR in January, and 63.70 EUR in February. The machines have been upgraded and are running at about 29% capacity, as usual we will scale up once again we approach the 66% threshold.</p>
<p>Codeberg e.V. has 106 members in total, these are 82 members with active voting rights and 24 supporting members.</p>
<p>Votes for presidium are in, and the new presidium had its constituting meeting. A new Vorstand has been appointed. Our annual meeting protocol is accessible by Codeberg e.V. members in the internal repo.</p>
<p>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this account group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username. If you need access to Codeberg e.V. report documents without being listed in the account group, please send an email.</p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Monthly Report December 20202021-01-13T00:00:00+01:002021-01-13T00:00:00+01:00Codeberg e.V.tag:blog.codeberg.org,2021-01-13:/monthly-report-december-2020.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>We are planning our annual member assembly for February 21st 2021, invitation emails have been sent …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>We are planning our annual member assembly for February 21st 2021, invitation emails have been sent out last week. If you missed this, please check your inbox for details. If you have proposals for discussion, for votes, or anything else you would like us to put on the agenda, please send an email to codeberg@codeberg.org.</p>
<p>Back to usual business, it is time for monthly updates.</p>
<p>We are hosting 8357 repositories, created and maintained by 6952 users. Compared to one month ago, this is an organic growth rate of +900 repositories (+12.1% month-over-month) and +816 users (+13.3%).</p>
<p>Codeberg e.V. has 97 members in total, these are 74 members with active voting rights and 23 supporting members.</p>
<p>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username.</p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Community Spotlight: MoeNavigator2021-01-11T00:00:00+01:002021-01-11T00:00:00+01:00Otto (Codeberg e. V.)tag:blog.codeberg.org,2021-01-11:/community-spotlight-moenavigator.html<p>Hi there, welcome to the Codeberg Community Spotlight. This is the first blog post in the upcoming series titled "Codeberg Community Spotlight". Are you as curious as we are, looking frequently at those active projects in the "<a href="https://codeberg.org/explore/repos">Explore</a>" tab? I do, and it's a lot of fun to check out …</p><p>Hi there, welcome to the Codeberg Community Spotlight. This is the first blog post in the upcoming series titled "Codeberg Community Spotlight". Are you as curious as we are, looking frequently at those active projects in the "<a href="https://codeberg.org/explore/repos">Explore</a>" tab? I do, and it's a lot of fun to check out other's work, try it, give feedback and spread motivation ... that's the Community part of a development Community, isn't it?
The Community Spotlight extends on this and dives into some projects from time to time. Have fun reading!</p>
<p>In case you have some feedback for us as well, feel free to join the Discussion at <a href="https://codeberg.org/Codeberg/Community/issues/200">Codeberg/Community#200</a>. The format is not fixed at all, and at least for me it's just an expression of my deep interest in others work. If your fingers itch to present your own discovery of a Codeberg project, feel free to create an MR to the blog.</p>
<p>For this very first post, I randomly picked a project from the Explore timeline at January 09 that sounded interesting. Since I took part in many discussions about alternative web browsers recently, I picked this one: MoeNavigator, a web browser engine from scratch.</p>
<h2>MoeNavigator</h2>
<p>The oligopoly of the few available web browsers is a tiresome topic. Many discussions have arisen whether the "free" Firefox and Chromium browsers are really free, not to mention the proprietary ones.</p>
<p>This is where the MoeNavigator steps in, a new web browser including its own engine, completely written from scratch. Of course, creating a working web renderer is a very complex thing, that's why maintainer started working on this project more than eight years ago. Don't expect too much.</p>
<p>Checking out the project itself was very straightforward. The README is rather implicit than full of explanations. I missed some notes on the dependencies and how to compile exactly, but both were added just a few hours later, so I'm glad I didn't bother filing an issue. There are wiki repositories for both the Engine and the Navigator which randomly answer some questions and give an overview about the architecture and what's planned. I really like including the wikis as a git submodule, I'll definitely consider doing so for my own repositories, too.</p>
<h3>Now get to the software!</h3>
<p>The project is separated into two components: the MoeNavigatorEngine (MNE) and the MoeNavigator itself. There is a third repository with some tools I won't describe any further. </p>
<p>The software itself is implemented in C++ with a custom rendering implementation. Compared to mature browsers (which surely consumed uncountable working hours by thousands of contributors), this project is rather tiny with about 12k source lines of code. The user interface is implemented in Qt. Maintainer Moritz Strohm to the decision of the Qt company to close down Qt5.15 LTS source code for commercial use:</p>
<blockquote>
<p>I think in the long term, the Qt Company is going the path of Oracle with
decisions like this. I see this case as one of the attempts to prevent the
free software community from actually using free software. Or in other words:
This is one attempt of the ruling class to take away a mean of production (Qt)
from the working class. That attempt has to be rejected.</p>
<p>While the Qt framework may remain free as in free speech, it will probably
become harder to exercise that freedom. Unstable library APIs will make it
harder for developers that write software in their free time to keep it updated
since every new API version can break things. In the long-term it means that
if such attempts like the one of the Qt Company aren't rejected and reversed,
only companies with enough money or manpower will be able to use the freedoms
of the software. This is why a fork or replacement of Qt is very important
at the moment. It would be a strong message to companies such as the Qt Company
to tell them that they can't just take the benefits from free software without
having to give back to the community.</p>
</blockquote>
<p>Back to MoeNavigator. Looking at the disputed UI framework in action, you'll experience MoeNavigator like this:</p>
<div class="row">
<img class="col-lg-6"
src="/images/community_spotlight_2021-01_moenavigator.png"
alt='Screenshot of the MoeNavigator Interface:
Small window with toolbar: the first menu entry "Navigate" is usable,
the others like Edit, View, Page, Options are still grey.
Below are some buttons to go forward, backward, create a new tab and enter
the URL.
The current URL is https://codeberg.org/robots.txt
The selected tab is called "empty". It shows the robots dot t x t file of
Codeberg dot org in a single line.
At the bottom of the window are some still unusable buttons and options,
among them a selector between "session" and "domain", and switches to toggle
Tor, Images, JavaScript, Audio, Video etc.'>
<div class="col-lg-6">
Well, you can see that the rendering is far from perfect. Until some fixes to the CSS parser, only websites with a single text line can be rendered. That said, MoeNavigator is unlikely to replace your current browser yet. But, heck, let's see what this project evolves to. More interesting than the rendering features is the network stack of the MNE. It was rewritten last year to have flexible support for multiple protocols, in addition to HTTP/s, gopher and qotd are supported currently with gemini protocol support to come next.
</div>
</div>
<p><br/></p>
<h3>What is to come?</h3>
<p>The very first real release with the motto "<a href="https://codeberg.org/moenavigator/moenavigatorengine/milestone/41">Uyghur lives matter!</a>" will bring the desired fixes to the CSS engine and some additional improvements. After that, Gemini support is expected, which requires "some additional work on the internals". Whether to stick to Qt or transition to another toolkit is also an upcoming decision.</p>
<blockquote>
<p>Helping hands are welcome, whether it is writing bug reports, feature requests,
creating merge requests, writing documentation or writing tests.</p>
</blockquote>
<p>So take that invitation serious and check it out. There are some memory leaks in the engine currently that need fixing, and oh yes: the CSS parser that already mentioned. Of course, it is a long journey until the webbrowser is usable, but I do not doubt that the experiences are worth it. The project is surely interesting and landed on my watchlist, although my experiences in C++ don't seem to qualify for a code contribution yet. I wish the project all the best!</p>
<h3>About the maintainer: Moritz Strohm</h3>
<p>The maintainer of this project, <a href="https://codeberg.org/ncc1988">@ncc1988</a>, also known as Moritz Strohm, started coding out of the curiosity to find out how things work in a computer. Besides his job in a small German software company, where he is dedicated to create a free and libre open source campus and learning management system, he spends a lot of time with this and other personal projects that don't just include coding but also <a href="https://codeberg.org/ncc1988/open-system-compact-cassette">electronics</a>. The balance comes through cycling, hiking and reading.</p>
<p><strong>If you were to start from scratch today, what would you do differently?</strong></p>
<blockquote>
<p>I would first think of the basic project architecture and then start programming
so that I don't have to refactorise the whole foundation to make the code
extendable.</p>
</blockquote>
<p>The work on this project was also part of his bachelor thesis and gave him a lot of experience over the past years. To answer the question of how difficult it would be to write a webbrowser from scratch might somehow have turned into a life task to the more than 30 year old developer.</p>
<blockquote>
<p>In general, I gained a lot of experience by writing this project [...] But there is
still a lot to learn.</p>
</blockquote>Monthly Report November 20202020-12-09T00:00:00+01:002020-12-09T00:00:00+01:00Codeberg e.V.tag:blog.codeberg.org,2020-12-09:/monthly-report-november-2020.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>We are hosting 7618 repositories, created and maintained …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>We are hosting 7618 repositories, created and maintained by 6156 users. Compared to one month ago, this is an organic growth rate of +1031 repositories (+15.7% month-over-month) and +763 users (+14.1%).</p>
<p>A week ago we also moved codeberg.org to a new server. We tried to minimize the downtime and make the transition as smooth as possible. This also involved a tunnel on the old server for those who still got old DNS responses, which we kept open until today. If have problems accessing codeberg.org, please contact us.</p>
<p>The machines have been upgraded and are runnnig at about 21% capacity, as usual we will scale up once again we approach the 66% threshold.</p>
<p>Codeberg e.V. has 91 members in total, these are 70 members with active voting rights and 21 supporting members.</p>
<p>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username.</p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Monthly Report October 20202020-11-11T00:00:00+01:002020-11-11T00:00:00+01:00Codeberg e.V.tag:blog.codeberg.org,2020-11-11:/monthly-report-october-2020.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>We are hosting 6741 repositories, created and maintained …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>We are hosting 6741 repositories, created and maintained by 5404 users. Compared to one month ago, this is an organic growth rate of +1324 repositories (+24.4% month-over-month) and +826 users (+18%).</p>
<p>The machines have been upgraded and are runnnig at about 65% capacity, as usual we will scale up once again we approach the 66% threshold.</p>
<p>Codeberg e.V. has 87 members in total, these are 68 members with active voting rights and 19 supporting members.</p>
<p>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username.</p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>On the youtube-dl DMCA Takedown2020-10-25T00:00:00+02:002020-10-25T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2020-10-25:/on-the-youtube-dl-dmca-takedown.html<p>Last Friday (Oct 23, 2020), a <a href="https://en.wikipedia.org/wiki/Digital_Millennium_Copyright_Act">DMCA (Digital Millenium Copyright Act)</a> takedown notice by the <a href="https://en.wikipedia.org/wiki/Recording_Industry_Association_of_America">RIAA (the Recording Industry Association of America)</a> has effectively shut down development of youtube-dl, a tool to access content on video streaming platforms like Youtube. </p>
<p>There seems to be a fundamental disagreement between the right …</p><p>Last Friday (Oct 23, 2020), a <a href="https://en.wikipedia.org/wiki/Digital_Millennium_Copyright_Act">DMCA (Digital Millenium Copyright Act)</a> takedown notice by the <a href="https://en.wikipedia.org/wiki/Recording_Industry_Association_of_America">RIAA (the Recording Industry Association of America)</a> has effectively shut down development of youtube-dl, a tool to access content on video streaming platforms like Youtube. </p>
<p>There seems to be a fundamental disagreement between the right holders and the community if this tool is legal or illegal. We received a number of questions on social media how we would handle such a takedown request.</p>
<p>To answer this question, but also to assess potential risks and consequences for sustainability of Codeberg e.V. and Codeberg.org, and to outline viable options to go forward for all affected parties, we performed research and analysis of relevant rules and constraints. This post outlines our position and understanding of the issue. As usual, this is the result of careful research but nothing should be construed as legal advise. Our understanding, interpretation, and position may or may not change with incoming information.</p>
<h2>Legal background</h2>
<p>In a very unusual turn RIAA justifies the takedown request with EU/German law and claims US analogy to EU rules, referencing a <a href="https://web.archive.org/web/20201023193007/https://github.com/github/dmca/blob/master/2020/10/2020-10-23-RIAA.md">case ruled by the Hamburg Regional Court</a>. This ruling decided that even very simple URL obfuscation schemes count as effective technical protection measure of digital content <a href="https://web.archive.org/web/20201025145225/http://www.landesrecht-hamburg.de/jportal/portal/page/bsharprod.psml?showdoccase=1&doc.id=JURE180006255&st=ent">full text here</a>. Basis of the decision was <a href="https://web.archive.org/web/20200526021416/https://www.gesetze-im-internet.de/urhg/__95a.html">§95a</a>, a paragraph introduced in the reform in German Copyright law in 2003.</p>
<p>This paragraph, paraphrased in plain English, essentially forbids all circumvention of technical protection measures of digital content, also the creation, trade, advertising, import, and distribution of such. </p>
<p>Codeberg e.V. was founded in Germany and Codeberg.org is hosted in Germany, therefore we're tied to EU/German law. A DMCA takedown request by itself is not an issue for us. But since the RIAA justifies their call with German law, we see a risk that Codeberg e.V. could become a target of similar requests.</p>
<h2>Viewpoints</h2>
<p>Julia Reda, former member of the European Parliament specialized on copyright law reform and regulation of online platforms, via https://twitter.com/Senficon/status/1320442401194942470:</p>
<blockquote>
<p>In the EU, technologies that are marketed for, primarily designed for and have only limited use for other purposes than circumvention of technological protection measures for copyrighted content are illegal. As many YouTube videos are freely licensed, youtube-dl should be legal.</p>
<p>However, using youtube-dl for the purpose of circumventing technological protection measures on copyrighted videos without permission of the rightholder is illegal.</p>
<p>The legal basis is Article 6 of the InfoSoc directive. I don’t think the ads matter, only whether or not the rightholder of the original Youtube video has allowed copying (for example through a CC license) or the content is in the public domain.</p>
</blockquote>
<p>The Electronic Frontier Foundation EFF posted via https://mastodon.social/@eff/105086779663199579:</p>
<blockquote>
<p>Youtube-dl is a legitimate tool with a world of a lawful uses. Demanding its removal from Github is a disappointing and counterproductive move by the RIAA.</p>
</blockquote>
<h2>Our Position</h2>
<p>First of all, Codeberg e.V. and the Codeberg platform was founded to support Free and Open Source (FOSS) code and content development. We support the open source community and aim to make the Free and Open Source movement stronger. We see ourselves on the good side and we do not support illegal activities on our platform.</p>
<p>However, if we for example host a legitimate open source tool and we would receive a similar notice, then we most likely would have to disable the repository until the matter is resolved by court ruling if such is fought through by the project owners. This could include the code, issues, and documentation, which would immediately threaten/weaken the development community around that project.</p>
<p>We express severe doubts that the RIAA reference to the above mentioned Hamburg Court ruling is legitimate. As a large portion of content hosted on video streaming platforms is of educational nature created and posted by owners under permissive licenses such as Creative Commons with the clear intent to be freely shared for the common good, rendering a general-purpose tool like youtube-dl illegal is not justified.</p>
<p>We sincerely hope that organizations with established standing and funding resources much greater than ours, the Free Software Foundation FSF and the Electronic Frontier Foundation EFF just two among the most well-known, will join forces and prevent this from becoming a threatening precedence potentially eroding the most basic human rights on free access to education, knowledge, and communication.</p>
<p>--<br/></p>
<p>https://codeberg.org
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Monthly Report September 20202020-10-14T00:00:00+02:002020-10-14T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2020-10-14:/monthly-report-september-2020.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>Codeberg.org has a fresh look. A big …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>Codeberg.org has a fresh look. A big Thank You to all involved, in particular scott-joe and mray, who did most of the design work, and those who implemented and pushed the pull requests to make this real: momar, n, lhinderberger, opyale!</p>
<p>Also we launched subdomain pages support on https://codeberg.page. Please have a look and have your say on https://codeberg.org/Codeberg/Community/issues/303!</p>
<p>We are hosting 5507 repositories, created and maintained by 4590 users. Compared to one month ago, this is an organic growth rate of +593 repositories (+12.1% month-over-month) and +577 users (+14.4%).</p>
<p>The machines have been upgraded and are runnnig at about 53% capacity, as usual we will scale up once again we approach the 66% threshold. We have registered the codeberg.page domain for 10 years.</p>
<p>Codeberg e.V. has 85 members in total, these are 65 members with active voting rights and 20 supporting members.</p>
<p>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username.</p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org<br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Monthly Report August 20202020-09-09T00:00:00+02:002020-09-09T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2020-09-09:/monthly-report-august-2020.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>Official Codeberg.org documentation is now deployed to …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>Official Codeberg.org documentation is now deployed to https://docs.codeberg.org.</p>
<p>A great shout-out to @lhinderberger and @n who have been driving this effort! Contributions are welcome to the source repos https://codeberg.org/codeberg/documentation/ and https://codeberg.org/codeberg-fonts. Please have a look and add your comments and contributions in issues tracker and pull requests!</p>
<p>We are hosting 5021 repositories, created and maintained by 4028 users. Compared to one month ago, this is an organic growth rate of +544 repositories (+12.2% month-over-month) and +446 users (+12.5%).</p>
<p>The machines have been upgraded and are runnnig at about 48% capacity, as usual we will scale up once again we approach the 66% threshold. In the coming weeks we plan to purchase hardware for an economic mid-end backup server doing automated offsite backups (job currently running on machine provided by founding members). If you would like to help in this project -- configuring/building/setting up the box -- please tell us!</p>
<p>Codeberg e.V. has 79 members in total, these are 62 members with active voting rights and 17 supporting members.</p>
<p>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username.</p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Monthly Report July 20202020-08-12T00:00:00+02:002020-08-12T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2020-08-12:/monthly-report-july-2020.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>We are hosting 4538 repositories, created and maintained …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>We are hosting 4538 repositories, created and maintained by 3588 users. Compared to one month ago, this is an organic growth rate of +540 repositories (+13.5% month-over-month) and +420 users (+13.3%).</p>
<p>The machines have been upgraded and are runnnig at about 43% capacity, as usual we will scale up once again we approach the 66% threshold. In the coming weeks we plan to purchase hardware for an economic mid-end backup server doing automated offsite backups (job currently running on machine provided by founding members). If you would like to help in this project -- configuring/building/setting up the box -- please tell us!</p>
<p>Codeberg e.V. has 75 members in total, these are 58 members with active voting rights and 17 supporting members.</p>
<p>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username.</p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Monthly Report June 20202020-07-15T00:00:00+02:002020-07-15T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2020-07-15:/monthly-report-june-2020.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>After a lot of paperwork Codeberg e.V …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>After a lot of paperwork Codeberg e.V. finally became a "gemeinnütziger Verein", which roughly tranlates into "charitable organization recognized by tax authorities". That means we will have to pay less taxes and are allowed to send out annual contribution receipts to members and donators.</p>
<p>A few weeks ago we also migrated codeberg to gitea 1.12. Due to the vast number of new features this needed a longer testing phase than usual. We want to thank the gitea maintainers for their great work on the 1.12 release! The new release also lets the user specify the default branch name when creating a new repository, the UI default setting is now 'main'.</p>
<p>We are hosting 4054 repositories, created and maintained by 3171 users. Compared to one month ago, this is an organic growth rate of +604 repositories (+17.5% month-over-month) and +353 users (+12.5%)</p>
<p>Codeberg e.V. has 70 members in total, these are 53 members with active voting rights and 17 supporting members.</p>
<p>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username.</p>
<p>Your Codeberg e.V.</p>
<p>--<br/></p>
<p>https://codeberg.org
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Monthly Report May 20202020-06-10T00:00:00+02:002020-06-10T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2020-06-10:/monthly-report-may-2020.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>Codeberg e.V. has 67 members in total …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>Codeberg e.V. has 67 members in total, these are 51 members with active voting rights and 16 supporting members. </p>
<p>We are hosting 3494 repositories, created and maintained by 2825 users. Compared to one month ago, this is an organic growth rate of +511 repositories (+17.1% month-over-month) and +282 users (+11.1%).</p>
<p>The machines are runnnig at about 61% capacity, as usual we will scale up as soon we approach the 66% threshold. In the coming weeks we plan to purchase hardware for an economic mid-end backup server doing automated offsite backups (job currently running on machine provided by founding members). If you would like to help in this project -- configuring/building/setting up the box -- please tell us!</p>
<p>This month we have reserved the domain for codeberg.eu for future use, reserved for 10 years. We are considering to use this to launch Codeberg pages with subdomains. What do you think?</p>
<p>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username.</p>
<p>Your Codeberg e.V.</p>
<p>--<br/>
<a href="https://codeberg.org">https://codeberg.org</a><br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Monthly Report April 20202020-05-13T00:00:00+02:002020-05-13T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2020-05-13:/monthly-report-april-2020.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>Codeberg e.V. has 63 members in total …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Once again it is time for some updates.</p>
<p>Codeberg e.V. has 63 members in total, these are 47 members with active voting rights and 16 supporting members. We are hosting 3012 repositories, created and maintained by 2544 users. Compared to one month ago, this is an organic growth rate of +442 repositories (+17.2% month-over-month) and +467 users (+22.5%).</p>
<p>The codeberg.org content is now loading <strong>much</strong> faster on mobile devices with severely restricted networking bandwith, especially when caching is disabled: In #176 user mappu04 reported that our setup was not yet doing on-the-fly content compression. After enabling this, we are now not looking too bad in the forgeperf.org benchmarks (see https://mastodon.technology/@codeberg/104133688512365495 for some background).</p>
<p>The machines are runnnig at about 57% capacity, as usual we will scale up as soon we approach the 66% threshold. In the coming weeks we plan to purchase hardware for an economic mid-end backup server doing automated offsite backups (job currently running on machine provided by founding members). If you would like to help in this project -- configuring/building/setting up the box -- please tell us!</p>
<p>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username.</p>
<p>Your Codeberg e.V.</p>
<p>--<br/>
<a href="https://codeberg.org">https://codeberg.org</a><br/>
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany<br/>
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Monthly Report March 20202020-04-20T00:00:00+02:002020-04-20T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2020-04-20:/monthly-report-march-2020.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Time for updates.</p>
<p>On April 6th Codeberg.org was mentioned on HackerNews[1], which brought some …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Time for updates.</p>
<p>On April 6th Codeberg.org was mentioned on HackerNews[1], which brought some attention. In the following days we hat a huge boost in daily registrations. Obviously there seems to be a lot of interest in a Free as in Freedom non-profit collaboration platform, but still a lot of people who never heard of codeberg. Let's spread the word.</p>
<p>Codeberg e.V. has 61 members in total, these are 46 members with active voting rights and 15 supporting members. We are hosting 2599 repositories, created and maintained by 2080 users. Compared to one month ago, this is an organic growth of rate of +131 repositories (+5.3% month-over-month) and +127 users (+6.5%).</p>
<p>Due to the Hackernews post we had another rush of users since then, as of today, 2496 users are maintaining 2887 repos.</p>
<p>The machines are runnnig at about 52% capacity, as usual we will scale up as soon we approach the 66% threshold. In the coming weeks we plan to purchase hardware for an economic mid-end backup server doing automated offsite backups (job currently running on machine provided by founding members). If you would like to help in this project -- configuring/building/setting up the box -- please tell us!</p>
<p>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username.</p>
<p>Your Codeberg e.V.</p>
<p>[1] <a href="https://news.ycombinator.com/item?id=22795930">https://news.ycombinator.com/item?id=22795930</a></p>
<p>--</p>
<p>https://codeberg.org
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Mirror repos: easily created, consuming resources forever2020-03-11T00:00:00+01:002020-03-11T00:00:00+01:00Codeberg e.V.tag:blog.codeberg.org,2020-03-11:/mirror-repos-easily-created-consuming-resources-forever.html<p>At launch we considered the Gitea mirror feature a great way to smoothly transition repos for projects to Codeberg.org, also as nice way to quickly test-drive Codeberg's features. Over time it turned out however, that many if not the majority of all mirrors become abandoned, and mirror repositories tend …</p><p>At launch we considered the Gitea mirror feature a great way to smoothly transition repos for projects to Codeberg.org, also as nice way to quickly test-drive Codeberg's features. Over time it turned out however, that many if not the majority of all mirrors become abandoned, and mirror repositories tend to be heavily skewed towards the "huge" category. (And this makes sense after all — if you want to test-drive our resilience, picking the largest repos on earth will put most stress on the system: and you happily recognized that our infrastructure handled this easily).</p>
<p>So what? Now, after heavy and thourough testing — some users created over 100 (!) mirror repos of the largest known Open-Source repositories (several copies of orphaned Linux kernel source trees, the GitLabCE and Electron source code — these abandoned mirrors are updating automatically and continuously consuming resources and adding traffic without tangible benefit to anyone. A significant number of these repos are even tagged 'private', even less beneficial for the FOSS community.</p>
<p>Mirror repos are easily created and steadily growing, once created, consuming resources forever.</p>
<p>Originally we just wanted to disable the creation of private mirrors, but it turned out to be more complicated than originally thought (because private/public can be toggled at any time).</p>
<p>That is why we have currently disabled the creation of new mirrors on codeberg.org.</p>
<p>All already created mirrors continue to be updated. And new manual mirroring can of course still be done by adding multiple remotes and pushing with <code>git push --mirror</code> to Codeberg.org.</p>
<p>In the end (as soon such a feature is implemented in Gitea, contributions welcome!), we would like to allow creation of new automatic cron based mirrors on a case by case basis.</p>
<p>Comments? Please join the discussion in the <a href="https://codeberg.org/Codeberg/Community/issues">Codeberg Community Issues tracker</a>!</p>
<p>Your Codeberg e.V.</p>Monthly Report February 20202020-03-11T00:00:00+01:002020-03-11T00:00:00+01:00Codeberg e.V.tag:blog.codeberg.org,2020-03-11:/monthly-report-february-2020.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Time for updates.</p>
<p>Voting results for our poll for the new cash auditor are in. Henning …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Time for updates.</p>
<p>Voting results for our poll for the new cash auditor are in. Henning received 25 Yes, 2 No, 14 did not vote. Henning is therefore confirmed new auditor, welcome onboard!</p>
<p>We encountered a new wave of spam attacks, spammers trying to submit thousands of issue comments to projects. It took us a few hours to clean everything up, please let us know if you find any left-overs. Also, some improvementes to rate limiting have been implemented.</p>
<p>Codeberg e.V. has 56 members in total, these are 45 members with active voting rights and 11 supporting members. We are hosting 2468 repositories, created and maintained by 1953 users. Compared to one month ago, this is an organic growth of rate of +215 repositories (+9.5% month-over-month) and +174 users (+10%).</p>
<p>As dot-org domains are expected not to remain as cheap as they were, we have extended the codeberg-test.org domain for the maximum 10 years. The main domain codeberg.org had already been extended before.</p>
<p>Friendly reminder: membership in the account group "Members" on codeberg.org is not automatic (this group enables access to Codeberg e.V.'s internal repos and discussion between Codeberg e.V. members therein). For privacy reasons we add members on request (your membership is visible to other members). If you are not yet in this group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username.</p>
<p>Your Codeberg e.V.</p>
<p>--</p>
<p>https://codeberg.org
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Monthly Report January 20202020-02-27T00:00:00+01:002020-02-27T00:00:00+01:00Codeberg e.V.tag:blog.codeberg.org,2020-02-27:/monthly-report-january-2020.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>It is almost mid-month, time for updates.</p>
<p>We created a group "Members" on codeberg.org, to …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>It is almost mid-month, time for updates.</p>
<p>We created a group "Members" on codeberg.org, to facilitate discussion between Codeberg e.V. members. For privacy reasons we add members on request. If you are not yet in this group, but would like to join, please send an email to codeberg@codeberg.org and tell us your username.</p>
<p>The protocol for our annual member assembly on January 19th in Berlin, is online at https://codeberg.org/Codeberg/Protokoll-Mitgliederversammlungen/src/branch/master/2020-01-19_Protokoll.md (sorry, German language text, as we have to file this with local authorities. Automatic translation tools do a pretty good job on legal texts, tho, and we will be happy to answer any question to clarify uncertainties or doubts!). It was a nice evening, a great thank you for everybody who joined!</p>
<p>We discussed a few issues we want to vote on, we will soon send out voting tokens via email to all members, and organize the online-poll for each of them.</p>
<p>Also, we need to poll for the election of our next cash auditor. We currently have exactly one candidate, our early supporter Henning Jacobs. In his own words:</p>
<blockquote>
<p>"""I'm passionate about Open Source / Free Software and like to solve problems with Python. I deeply believe that Free Software is a key ingredient to unlock humankind's potential and that the platform for code hosting should be Free Software, too. I'm trying to gradually move my Open Source projects from the proprietary platform GitHub to codeberg.org and I actively promote its use on social media. I would be happy to support Codeberg e.V. as a cash auditor. I currently work at Zalando in Berlin as a Principal Engineer. You can learn more on my personal blog: https://srcco.de/."""</p>
</blockquote>
<p>Please watch your inbox!</p>
<p>Codeberg e.V. has 51 members (41 active, 10 supporting). We are hosting 2253 repositories, created and maintained by 1779 users. Compared to one month ago, this is an organic growth of rate of +276 repositories (+14% month-over-month). We have deleted almost 3000 automatically created accounts which were never activated. After some changes to the account creation process, we now experience very few attempts to create new abusive user accounts.</p>
<p>The machines are runnnig at about 48% capacity, we will scale up as soon we approach the 66% threshold. Backups are still managed by private offline machines by founding members at no cost; as soon Codeberg e.V. can afford it's own infrastructure, we are planning for an economic mid-end server with extendable redundant RAID disks, hardware donations may or may not allow us to afford those earlier. For the live server, our models suggested that rented cloud VMs are the most economic option for up to ~1000 users/repos, from then on it would potentially make sense to switch to rented dedicated servers. As we have now passed this threshold, we can now re-run initial calculations and check options for a logical next step.</p>
<p>Your Codeberg e.V.</p>
<hr>
<p>https://codeberg.org</p>
<p>Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany
Registered at registration court Amtsgericht Charlottenburg VR36929.</p>Monthly Report December 20192020-01-08T00:00:00+01:002020-01-08T00:00:00+01:00Codeberg e.V.tag:blog.codeberg.org,2020-01-08:/monthly-report-december-2019.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Happy New Year, and let's celebrate the 1-year Codeberg.org anniversary! A new month, time for …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month; as usual published here with due delay.)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Happy New Year, and let's celebrate the 1-year Codeberg.org anniversary! A new month, time for updates.</p>
<p>For our annual member assembly on January 19th in Berlin, the nice guys from Topio invited us to use their project room in the old market hall in Berlin Moabit.</p>
<p>No worries if you cannot make it. Every active member will be able to exercise all rights remotely and online, even asynchronuously to avoid discrimination due to time zone discrepancies. Proposals for vote can be submitted via email or live, and all votes will be cast via voting tokens sent out to all active members in the week after the meeting. The advantage of physical attendance? Having a nice meet-up face to face, learn to know each other in person. Watch your inbox for the formal invite.</p>
<p>Slides and video of Andreas' Codeberg talk @sfscon are now online, check them out at https://www.sfscon.it/talks/codeberg-a-free-home-for-free-projects/.</p>
<p>Codeberg e.V. has 51 active members. We are hosting 1977 repositories, created and maintained by 4571 users. Compared to one month ago, this is an organic growth of rate of +200 repositories (+11% month-over-month), and +370 users (+9%). Note that the explosive increase of abusive user accounts has calmed down, we are planning to clean the database from non-activated accounts very soon (absolute user number will obviously be reset then in the statistics).</p>
<p>The machines are runnnig at about 48% capacity, we will scale up as soon we approach the 66% threshold. Backups are still managed by private offline machines by founding members at no cost; as soon Codeberg e.V. can afford it's own infrastructure, we are planning for an economic mid-end server with extendable redundant RAID disks, hardware donations may or may not allow us to afford those earlier. For the live server, our models suggested that rented cloud VMs are the most economic option for up to ~1000 users/repos, from then on it would potentially make sense to switch to rented dedicated servers. As we have now passed this threshold, we can now re-run initial calculations and check options for a logical next step.</p>
<p>Yours truly,
Codeberg e.V.</p>Monthly Report November 20192019-12-07T00:00:00+01:002019-12-07T00:00:00+01:00Codeberg e.V.tag:blog.codeberg.org,2019-12-07:/monthly-report-november-2019.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Again it is time for updates.</p>
<p>Our annual general assembly will take place on January 19th in Berlin. Save the date!</p>
<p>No worries …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Again it is time for updates.</p>
<p>Our annual general assembly will take place on January 19th in Berlin. Save the date!</p>
<p>No worries if you cannot make it. Every active member will be able to exercise all rights remotely and online, even asynchronuously to avoid discrimination due to time zone discrepancies. Proposals for vote can be submitted via email or live, and all votes will be cast via voting tokens sent out to all active members in the week after the meeting. The advantage of physical attendance? Having a nice meet-up face to face, learn to know each other in person. Watch your inbox for the formal invite.</p>
<p>Slides and video of Andreas' Codeberg talk @sfscon are now online, check them out at https://www.sfscon.it/talks/codeberg-a-free-home-for-free-projects/.</p>
<p>Codeberg e.V. has 49 active members. We are hosting 1788 repositories, created and maintained by 4201 users. Compared to one month ago, this is an organic growth of rate of +206 repositories (+13% month-over-month), and +671 users (+19%).</p>
<p>The machines are runnnig at about 50% capacity, we will scale up as soon we approach the 66% threshold. Backups are still managed by private offline machines by founding members at no cost; as soon Codeberg e.V. can afford it's own infrastructure, we are planning for an economic mid-end server with extendable redundant RAID disks, hardware donations may or may not allow us to afford those earlier. For the live server, our models suggested that rented cloud VMs are the most economic option for up to ~1000 users/repos, from then on it would potentially make sense to switch to rented dedicated servers. As we have now passed this threshold, we can now re-run initial calculations and check options for a logical next step.</p>
<p>Your Codeberg e.V.</p>
<p>--
https://codeberg.org
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Monthly Report October 20192019-11-04T00:00:00+01:002019-11-04T00:00:00+01:00Codeberg e.V.tag:blog.codeberg.org,2019-11-04:/monthly-report-october-2019.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>It is time for updates.</p>
<p>Our annual general assembly will be scheduled for January, exact date will be announced with the invitation that …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>It is time for updates.</p>
<p>Our annual general assembly will be scheduled for January, exact date will be announced with the invitation that will go out next days. For all non-local members we will set up a dial-in. Please watch your inbox for details.</p>
<p>You can now create static pages at https://pages.codeberg.org. Simply push your HTML, content, styles, images, fonts and other assets to a repo named 'pages', in your user or org account. The content is then immediately rendered and served at the URL https://pages.codeberg.org/<username>. </p>
<p>Codeberg e.V. has 41 active members. We are hosting 1582 repositories, created and maintained by 3530 users. Compared to one month ago, this is an organic growth of rate of +396 repositories (+33% month-over-month), and +1443 users (+69%).</p>
<p>As mentioned in the last letter, the abnormal surge in user registrations is in part attributable to an increasing number of registrations that do not enter plausible user ids for registration (but seemingly random 12-character-strings instead, from the perspective of a human). We will continue to monitor the phenomenon and of course reserve the right to delete them as soon they have to be considered abusive.</p>
<p>The machines are runnnig at about 55% capacity, we will scale up as soon we approach the 66% threshold. Backups are still managed by private offline machines by founding members at no cost; as soon Codeberg e.V. can afford it's own infrastructure, we are planning for an economic mid-end server with extendable redundant RAID disks, hardware donations may or may not allow us to afford those earlier. For the live server, our models suggested that rented cloud VMs are the most economic option for up to ~1000 users/repos, from then on it would potentially make sense to switch to rented dedicated servers. As we have now passed this threshold, we can now re-run initial calculations and check options for a logical next step.</p>
<p>Codeberg e.V.</p>
<p>--
https://codeberg.org
Codeberg e.V. – Gormannstraße 14 – 10119 Berlin – Germany
Registered at registration court Amtsgericht Charlottenburg VR36929. </p>Monthly Report September 20192019-10-07T00:00:00+02:002019-10-07T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2019-10-07:/monthly-report-september-2019.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>It is time for updates.</p>
<p>We are contemplating the form of our annual member assembly. Our bylaws allow a get-together in person, or …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>It is time for updates.</p>
<p>We are contemplating the form of our annual member assembly. Our bylaws allow a get-together in person, or a 'virtual' (online-) assembly, synchronuous or asynchronuous. We would like to hear your thoughts about the preferred form, please have your say via email, Mastodon https://mastodon.technology/@codeberg, or Twitter chat. The member assembly will read the annual report, and we would potentially have some time to exchange ideas if meeting in person. Bi-annually, board members are elected (next time in 2020 as the founding board is serving from 2018-2020). Nevertheless, if you could imagine to contribute to Codeberg e.V. as board member and would like to do so, please let us know!</p>
<p>Codeberg e.V. has 38 active members. We are hosting 1186 repositories, created and maintained by 2087 users. Compared to one month ago, this is an organic growth of rate of +148 repositories (+14% month-over-month), and +1041 users (+99.5%).</p>
<p>The irregular explosion in the number of registered users is obviously mildly suspiscious, and indeed we are observing an increasing number of registrations that do not enter plausible user ids for registration (but seemingly random 12-character-strings instead, from the perspective of a human). Even after turning on captchas in the sign-on dialogue we continue to see such, albeit at lower rate. The accounts seem to get never activated nor are repos attached. We will continue to monitor the phenomenon and of course reserve the right to delete them as soon they have to be considered abusive. Right now we are merely carefully monitoring in order to avoid potential collateral damage of overly rigorous actions like unconditionally pruning accounts that look 'suspicious' (whatever that means).</p>
<p>Codeberg e.V.</p>Monthly Report August 20192019-09-06T00:00:00+02:002019-09-06T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2019-09-06:/monthly-report-august-2019.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>It is time for updates.</p>
<p>The poll for our bylaw change has approved the proposed pull request (https://codeberg.org/Codeberg/org/pulls …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>It is time for updates.</p>
<p>The poll for our bylaw change has approved the proposed pull request (https://codeberg.org/Codeberg/org/pulls/2) with 28 yes, 0 no, and 4 abstention votes. The change is now merged into the charter text, and an appointment at the notary office for registration of change is scheduled for first week of October. After formal confirmation by tax officers we will then be allowed to hand out tax deduction forms ("Bestätigung über Geldzuwendungen/Mitgliedsbeitrag") to members and sponsors, and are as legal entity tax-exempt for some of our operations.</p>
<p>Codeberg e.V. has 38 active members. We are hosting 1038 repositories, created and maintained by 1046 users. Compared to one month ago, this is an organic growth of rate of +131 repositories (+14% month-over-month), and +257 users (+32%).</p>
<p>The machines are runnnig at about 46% capacity, we will scale up as soon we approach the 66% threshold. Backups are still managed by private offline machines by founding members at no cost; as soon Codeberg e.V. can afford it's own infrastructure, we are planning for an economic mid-end server with extendable redundant RAID disks, hardware donations may or may not allow us to afford those earlier. For the live server, our models suggested that rented cloud VMs are the most economic option for up to ~1000 users/repos, from then on it would potentially make sense to switch to rented dedicated servers. As we have now passed this threshold, we can now re-run initial calculations and check options for a logical next step.</p>
<p>Codeberg e.V.</p>Monthly Report July 20192019-08-14T00:00:00+02:002019-08-14T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2019-08-14:/monthly-report-july-2019.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>We are voting! Please check your inbox for your vote token! The voting system is running for the time being on https://polls …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>We are voting! Please check your inbox for your vote token! The voting system is running for the time being on https://polls.codeberg-test.org/, please don't be surprised that this is still on testing (after all, this is our first official poll!). Of course we are going to publish the source code of the voting system asap.</p>
<p>Again, it is overdue time for some updates. A lot has happened in the world. And we need to catch up with some overdue organizational issues.</p>
<p>We have migrated to Gitea 1.9, which comes with many improvements, including the blame-feature, and, most convenient, improved GitHub import. Also, we are now running the full stack on Debian 10 (buster). If you encountered any issues, please let us know.</p>
<p>Codeberg e.V. has 34 active members. We are hosting 907 repositories, created and maintained by 789 users. Compared to one month ago, this is an organic growth of rate of +178 repositories (+24% month-over-month), and +124 users (+18%).</p>
<p>The machines are runnnig at about 38% capacity, we will scale up as soon we approach the 66% threshold. Backups are still managed by private offline machines by founding members at no cost; as soon Codeberg e.V. can afford it's own infrastructure, we are planning for an economic mid-end server with extendable redundant RAID disks, hardware donations may or may not allow us to afford those earlier. For the live server, our models suggest that rented cloud VMs are the most economic option for up to ~1000 users/repos, from then on it would potentially make sense to switch to rented dedicated servers.</p>
<p>The vote for our bylaw change has started. Please check your inbox (and potentially spam folder), and cast your vote! Please don't hesitate to write in case of issues or questions.</p>
<p>Codeberg e.V.</p>Monthly Report June 20192019-07-28T00:00:00+02:002019-07-28T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2019-07-28:/monthly-report-june-2019.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>It is overdue time for some updates. Sommer doldrums make us lazy. Then again, on the positive side, there were no noteworty incidents …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>It is overdue time for some updates. Sommer doldrums make us lazy. Then again, on the positive side, there were no noteworty incidents.</p>
<p>Codeberg e.V. has 34 active members. We are hosting 729 repositories, created and maintained by 665 users. Compared to one month ago, this is an organic growth of rate of +75 repositories (+11% month-over-month), and +72 users (+12%).</p>
<p>The machines are runnnig at about 29% capacity, we will scale up as soon we approach the 66% threshold. Backups are still managed by private offline machines by founding members at no cost; as soon Codeberg e.V. can afford it's own infrastructure, we are planning for an economic mid-end server with extendable redundant RAID disks, hardware donations may or may not allow us to afford those earlier. For the live server, our models suggest that rented cloud VMs are the most economic option for up to ~1000 users/repos, from then on it would potentially make sense to switch to rented dedicated servers.</p>
<p>Then we extended the codeberg.org domain for 9 years in order to lock in current prices, after recent news raised concerns about changing ICANN policy that will make dot.org domains much more expensive.</p>
<p>We have worked out most details of our secure voting system, voting tokens for the upcoming bylaw change poll will be sent out via email next days. Please keep an eye on your inbox.</p>
<p>Codeberg e.V.</p>Monthly Report May 20192019-06-22T00:00:00+02:002019-06-22T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2019-06-22:/monthly-report-may-2019.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>It is overdue time for some updates.</p>
<p>Codeberg e.V. has 33 active members. We are hosting 654 repositories, created and maintained by …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V this month)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>It is overdue time for some updates.</p>
<p>Codeberg e.V. has 33 active members. We are hosting 654 repositories, created and maintained by 593 users. Compared to one month ago, this is an organic growth of rate of +101 repositories (+18% month-over-month), and +95 users (+19%).</p>
<p>Our monthly expenses for domains and servers accumulated in May to and 16.21 EUR. The machines are runnnig at about 20% capacity, we will scale up as soon we approach the 66% threshold. Backups are still managed by private offline machines by founding members at no cost; as soon Codeberg e.V. can afford it's own infrastructure, we are planning for an economic mid-end server with extendable redundant RAID disks, hardware donations may or may not allow us to afford those earlier. For the live server, our models suggest that rented cloud VMs are the most economic option for up to ~1000 users/repos, from then on it would potentially make sense to switch to rented dedicated servers.</p>
<p>The details of our bylaw change proposal have been worked out and are visible via https://codeberg.org/hw/org/commit/e52e56cf91348a47294ac6d02d3b187e8bf2ab33. We are now waiting for feedback from authorities whether this wording is sufficient to fulfil the change request required for recognition as Non-Profit organization by tax authorities. As soon we have this confirmation, we will propose this change as pull request, and will ask our members (you!) for vote via email.</p>
<p>Long-term, it would be great to have informative English translations of all relevant documents (some official documents are still German-only as this is the language required by local authorities). If you would like to contribute, translations, PRs in the org repository are very welcome!</p>
<p>Codeberg e.V.</p>Monthly Report April 20192019-05-15T00:00:00+02:002019-05-15T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2019-05-15:/monthly-report-april-2019.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V one week ago)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Again it is time for some updates. April was a slow month, family life and Easter holidays demanded our attention: Some of …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V one week ago)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>Again it is time for some updates. April was a slow month, family life and Easter holidays demanded our attention: Some of our codeberg-goals are delayed, and have to be postponed. Let's start with the numbers. </p>
<p>Codeberg e.V. has 32 active members. We are hosting 553 repositories, created and maintained by 498 users. Compared to one month ago, this is an organic growth of rate of +76 repositories (+16% month-over-month), and +37 users (+8%).</p>
<p>The machines are runnnig at about 20% capacity, we will scale up as soon we approach the 66% threshold. Backups are still managed by private offline machines by founding members at no cost; as soon Codeberg e.V. can afford it's own infrastructure, we are planning for an economic mid-end server with extendable redundant RAID disks, hardware donations may or may not allow us to afford those earlier. For the live server, our models suggest that rented cloud VMs are the most economic option for up to ~1000 users/repos, from then on it would potentially make sense to switch to rented dedicated servers.</p>
<p>What did we achieve this month? Codeberg.org has incorporated first bits of our new visual design. A great shoutout to all involved in design discussion, and in particular to @momar, who worked out all details and created the pull request for the launch and deployment files!</p>
<p>In this process, to facilitate testing and feedback, we allocated the testing domain codeberg-test.org, to have a publicly accessible testnet facility, in addition to testing in local VMs created on request on your local machines (which was great especially for offline development when traveling, but a bit tricky to set up). There is no red warning banner in place yet (configuration is 100% identical to the production net right now), so be aware that as in typical testnets, all data can vanish at any point in time.</p>
<p>On the negative side, we have not achieved our goal to work out the detailed bylaw change proposal. As we wrote in our previous update, we need to incorporate a minor bylaw change to get recognized as Non-Profit organization by tax authorities. We will propose this change as pull request, and will ask our members for vote via email. Working out the change proposal is our highest priority now.</p>
<p>Gitea's developers fixed the critical security issue reported by @ashimokawa (2FA bypass by API, #32), now API access via apps like GitNex (https://gitnex.com) is working through two-factor-authenticated channels.</p>
<p>Our hopes to test and enable use of Gitea's new oauth2 provider feature has been delayed, we hope to come back to this next month.</p>
<p>Moving forward with our plan to open all non-sensitive code and data that is running Codeberg.org, we switched the blog code and content repo public, please see https://codeberg.org/Codeberg/blog. We are looking forward to your contributions!</p>
<p>We are still waiting for feedback from the Gitea developer team for our pull request that introduces public editable wikis (enabled and controlled in the repository settings).</p>
<p>Long-term, it would be great to have informative English translations of all relevant documents (some official documents are still German-only as this is the language required by local authorities). If you would like to contribute, translations, PRs in the org repository are very welcome!</p>
<p>Your Codeberg e.V.</p>Monthly Report March 20192019-04-12T00:00:00+02:002019-04-12T00:00:00+02:00Codeberg e.V.tag:blog.codeberg.org,2019-04-12:/monthly-report-march-2019.html<p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V one week ago)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>It is time for some updates.</p>
<p>Codeberg e.V. has 29 active members. We are hosting 477 repositories, created and maintained by …</p><p>(This is a stripped-down version of the monthly news letter sent out to members of Codeberg e.V one week ago)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>It is time for some updates.</p>
<p>Codeberg e.V. has 29 active members. We are hosting 477 repositories, created and maintained by 461 users. Compared to one month ago, this is an organic growth of rate of +64 repositories (+15% month-over-month), and +40 users (+10%).</p>
<p>The machines are runnnig at less than 25% capacity, we will scale up as soon we come close to the 66% threshold. Backups are still managed by private offline machines by founding members at no cost; as soon Codeberg e.V. can afford it's own infrastructure, we are planning for an economic mid-end server with extendable redundant RAID disks, hardware donations may or may not allow us to afford those earlier. For the live server, our models suggest that rented cloud VMs are the most economic option for up to ~1000 users/repos, from then on it would potentially make sense to switch to rented dedicated servers.</p>
<p>Where are we going next? As we wrote in our previous update, we need to incorporate a minor bylaw change to get recognized as Non-Profit organization by tax authorities. We will propose this change as pull request, and will ask our members for vote via email.</p>
<p>Since the latest release, Gitea 1.8, the user-facing frontend we use for Codeberg.org, has incorporated support to act as Oauth2 provider. We are currently testing this protocol, this will hopefully facilitate incorporation of additional features (for a list of ideas, please see https://codeberg.org/Codeberg/Community/issues/23 – don't hesitate to contact us if you like to contribute). Also, Gitea is now coming with Dark Theme. Visit your user account settings and select 'arc-green'.</p>
<p>We are waiting for feedback from the Gitea developer team for our pull request that introduces public editable wikis (enabled and controlled in the repository settings).</p>
<p>Long-term, it would be great to have informative English translations of all relevant documents (some official documents are still German-only as this is the language required by local authorities). If you would like to contribute, translations, PRs in the org repository are very welcome!</p>
<p>We look forward to attract more users to build and strengthen the social network of developers meeting on Codeberg.org. Let's spread the word! We are looking forward to exciting times.</p>
<p>Codeberg e.V.</p>Monthly Report February 20192019-03-06T00:00:00+01:002019-03-06T00:00:00+01:00Codeberg e.V.tag:blog.codeberg.org,2019-03-06:/monthly-report-february-2019.html<p>(This is a stripped-down of the monthly news letter sent out to members of Codeberg e.V one week ago)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>February has been the first "regular" month after the excitement of our launch in January. It is time for some updates.</p>
<p>We are …</p><p>(This is a stripped-down of the monthly news letter sent out to members of Codeberg e.V one week ago)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>February has been the first "regular" month after the excitement of our launch in January. It is time for some updates.</p>
<p>We are hosting 413 repositories, created and maintained by 421 users. Compared to one month ago, this is an organic growth of rate of +80 repositories (+24% month-over-month), and +42 users (+11%).</p>
<p>The machines are runnnig at less than 25% capacity, we will scale up as soon we come close to the 66% threshold. Backups are still managed by private offline machines by founding members at no cost; as soon Codeberg e.V. can afford it's own infrastructure, we are planning for an economic mid-end server with extendable redundant RAID disks, hardware donations may or may not allow us to afford those earlier. For the live server, our models suggest that rented cloud VMs are the most economic option for up to ~1000 users/repos, from then on it would potentially make sense to switch to rented dedicated servers.</p>
<p>Where are we going next? We still have some pending items on the run-up TODO list, these include working out the last remaining issues after migration (hopefully done next days), and improving Gitea to suit all Codeberg.org needs.</p>
<p>A first tiny but important security issue patch produced by Codeberg.org by has been accepted by the gitea maintainer team. A big Thank You!</p>
<p>Also we are thinking about the member poll and vote mechanism for the internal Codeberg e.V. member decision process, and think of a poll widget. If you fancy to help out in this project, please reach out.</p>
<p>The German tax authorities came back with regard to our request to officially recognize our non-profit status as entity that is allowed to send out tax-deduction forms for donations and contributions. In order to acknowledge our request, some minor bylaw changes have been requested. We will prepare this text (required in German as administrative language), and send it out as proposal via pull request. The voting process itself is yet to be decided, depending on whether the poll widget is ready in time or not. If the member vote agrees on those changes, and authorities request no further rework, non-profit-status would be valid for the next tax period, that is year 2020.</p>
<p>Long-term, it would be great to have informative English translations of all those changes and documents. If you would like to contribute, PRs in the org repository are very welcome!</p>
<p>The most important thing is to build momentum and continue to extend our community, to build and strengthen the social network of developers meeting on Codeberg.org.</p>
<p>Let's spread the word! We are looking forward to exciting times.</p>
<p>Yours truly,
Codeberg e.V.</p>Codeberg now supports http2!2019-02-15T00:00:00+01:002019-02-15T00:00:00+01:00Andreas Shimokawatag:blog.codeberg.org,2019-02-15:/codeberg-now-supports-http2.html<p>After successful tests, we finally updated our servers to haproxy 1.8 and
enabled http2 support.</p>
<p>Enjoy faster page loads on codeberg.org :)</p>Monthly Report January 20192019-02-08T00:00:00+01:002019-02-08T00:00:00+01:00Codeberg e.V.tag:blog.codeberg.org,2019-02-08:/monthly-report-january-2019.html<p>(This is a stripped down of the February 2019 newletter sent out to members of Codeberg e.V one week ago)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>We are now looking back to our first month after launching codeberg.org, and it is time for some updates.</p>
<p>As of …</p><p>(This is a stripped down of the February 2019 newletter sent out to members of Codeberg e.V one week ago)</p>
<p>Dear Codeberg e.V. Members and Supporters!</p>
<p>We are now looking back to our first month after launching codeberg.org, and it is time for some updates.</p>
<p>As of today, Codeberg e.V. has 25 active members. We are hosting 333 repositories, created and maintained by 379 users.</p>
<p>Our machines are runnnig at less than 25% capacity, we will scale up as soon we come close to the 66% threshold. Backups are still managed by private offline machines by founding members at no cost; as soon Codeberg e.V. can afford it's own infrastructure, we are planning for an economic mid-end server with extendable redundant RAID disks, hardware donations may or may not allow us to afford those earlier. For the live server, our models suggest that rented cloud VMs are the most economic option for up to ~1000 users/repos, from then on it would potentially make sense to switch to rented dedicated servers.</p>
<p>As usual, the new year brought us bad news and good news. Launching the platform caused far less technical difficulties than expected, and we experienced a lot of positive feedback. Thanks to all for this!</p>
<p>But obviously not everything went smooth. All user repos were migrated without loss. But migrating our own teahub->codeberg Infrastructure issue tracker, we missed some issues. The problem was caused by the existence of multiple diverging copies on the various testing servers, which require manual merging that we avoided due to higher-priority issues during launch. The issues are probably not essential but could surely be useful and we are confident to recover them completely as soon time permits.</p>
<p>What are our next steps? Obviously we want to enhance the platform, every helping hand is welcome! First users have collected and contributed quite a number of interesting ideas in issue https://codeberg.org/Codeberg/Community/issues/23, if we even realize just a few of them, that would make a great improvement!</p>
<p>Concerning the organisation of the Codeberg e.V. we would like to establish a non-public group on codeberg.org, where we can host regular update reports for members, discuss decisions in advance, and hold polls. For this we need a few more weeks, as we would like to protect the privacy of all our members (avoid even leaking membership information unless you chose to show yourself).</p>
<p>The most important priority right now is attracting a sustainable user base and strengthening the social network of developers meeting on Codeberg.org.</p>
<p>Let's spread the word! We are looking forward to exciting times.</p>Codeberg.org launched!2019-01-01T00:00:00+01:002019-01-01T00:00:00+01:00Codeberg Teamtag:blog.codeberg.org,2019-01-01:/codebergorg-launched.html<h3>TLDR; TeaHub is now Codeberg</h3>
<p>Welcome to Codeberg.org! Please join us on our journey to build and support a safe and reliable home for Free and Open Source Software!</p>
<p>TeaHub is now Codeberg. Create your repository on Codeberg.org. Don't forget to update your remotes for existing repos:</p>
<div class="highlight"><pre><span></span><code>git …</code></pre></div><h3>TLDR; TeaHub is now Codeberg</h3>
<p>Welcome to Codeberg.org! Please join us on our journey to build and support a safe and reliable home for Free and Open Source Software!</p>
<p>TeaHub is now Codeberg. Create your repository on Codeberg.org. Don't forget to update your remotes for existing repos:</p>
<div class="highlight"><pre><span></span><code>git remote rm <oldTeaHubURI>
git remote add <newCodebergURI>
</code></pre></div>
<h2>Announcing Codeberg.org</h2>
<p>We are proud to finally announce the launch of Codeberg.org, the Non-Profit Collaboration Community for Free and Open Source Projects (formerly known under its working title teahub.io). </p>
<p>Codeberg is founded as a non-profit and non-government organization, with the objective to give the Open-Source code that is running our world a safe and friendly home, and to ensure that free code remains free and secure forever.</p>
<p>We invite you to join our society as an active or supporting member, in order to shape and guarantee the future of Open-Source development.</p>
<h3>The Mission</h3>
<p>The development of Free and Open Source Software is experiencing an unbroken boom, due to the general availability of the internet and the resulting social network effects, multiplying communication, exchange of ideas, and productivity each and every month. The number of developers and projects participating in the Open-Source movement is growing exponentially. Only new software tools and collaboration platforms made these dynamics possible and manageable.</p>
<p>While all successful software tools that enabled this development were contributed by the Free and Open Source Software community, commercial for-profit platforms dominate the hosting of the results of our collaborative work. This has led to the paradox that literally millions of volunteers create, collect, and maintain invaluable knowledge, documentation, and software, to feed closed platforms driven by commercial interests, whose program is neither visible nor controllable from outside. Considering the fate of formerly successful startups like SourceForge, we need to break the circle and avoid history repeating.</p>
<p>The mission of the Codeberg e.V. is to build and maintain a free collaboration platform for creating, archiving, and preserving code and to document its development process.</p>
<p>Dependencies on commercial, external, or proprietary services for the operation of the platform are thus decidedly avoided, in order to guarantee independence and reliability.</p>
<h3>Legal Stuff</h3>
<p>The single most significant risk for our undertaking was the final vote on the directive of the European Parliament and Council on copyright in the Digital Single Market. Happily, and only thanks to forceful protests, the directive has been amended at the last minute, and these important words were incorporated:</p>
<blockquote>
<p>"Providers of cloud services for individual use which do not provide direct access to the public, <strong>open source software developing platforms,</strong> and online market places whose main activity is online retail of physical goods, <strong>should not be considered online content sharing service providers within the meaning of this Directive</strong>"</p>
</blockquote>
<p>To be clear: Without these amendments any Open-Source hosting platform would have been ruled out, and any project like ours would be impossible. A big Thank You to all involved!</p>
<h3>Money Stuff</h3>
<p>Founding Codeberg e.V. and building the initial infrastructure has only been possible due to your donations to the founding team of the "Working Title TeaHub Project". We collected about 480€, not quite ICO levels, but more than sufficient to cover costs for legal documents, registration, infrastructure costs for the next weeks and months. Depending on usage and growth, we now depend on more structured ways of fundraising and membership support. Thus the Codeberg e.V. has been founded and registered according to German law.</p>
<p>Codeberg e.V. is organized as an idealistic non-profit organization, not as a speculative startup hoping for the next billion-dollar exit. This ensures our focus on stability and sustainability for the long run, but also implies that we, the community, are responsible for our own future.</p>
<p>We want to give our best and we count on your support to build this future in the best way we can imagine. Please join us and support Free and Open-Source Software development by joining the Codeberg e.V. as an active or supporting member, or by donating to our cause.</p>
<h3>What next</h3>
<p>The first iteration of Codeberg.org in now running on rather limited resources. We will closely monitor our growth and make sure to extend infrastructure where sensible and necessary, but to do so responsibly and not waste funds entrusted to the Codeberg e.V.</p>
<p>We also have ideas for new services we could offer to free software projects – we will keep you updated in this blog. If you like to work with us in this area, please do not hesitate to contact us.</p>
<h3>Words of Warning</h3>
<p>We are starting small and within constrained means. We will do our best to guarantee codeberg.org availability. You always should have backups of your data (which you probably have – you are a responsible person after all; and this is git). Please report all issues as they occur.</p>
<p>Parts of the underlying software stack, especially the user-facing frontend are at this point in time not as mature as commercially-funded counterparts. But given the tremendous track record of Open-Source software development, we are more than optimistic that these missing bits will catch up in no time.</p>
<h3>Finally</h3>
<p>We thank you for your trust and your support. We wish you all a Happy New Year and we are looking forward to a great future.</p>
<p><strong>Join us at <a href="https://codeberg.org">Codeberg.org</a>!</strong></p>