Compare commits

...

16 commits

Author SHA1 Message Date
Antonin Delpeuch
cfb104713d Remove the entire 'People' section
The management of users has become intuitive enough to render this
documentation not needed. It also includes screenshots that are very
outdated and would require some significant effort to be updated.
2026-05-21 17:29:19 +02:00
wetneb
1c1c7f88e2 Update docs of org members management for Forgejo 15
Integrates the changes of https://codeberg.org/forgejo/forgejo/pulls/11848.
This would also deserve new screenshots, I'm considering how best to refresh them (see discussion in the PR).
2026-05-21 17:29:19 +02:00
Panagiotis "Ivory" Vasilopoulos
0829806f6a Merch: Improve Markdown formatting 2026-05-12 00:32:23 +02:00
Panagiotis "Ivory" Vasilopoulos
db67c0260a Merch: Fix typos, CI failure
Sorry!
2026-05-11 09:53:32 +02:00
Panagiotis "Ivory" Vasilopoulos
003a0cb1ce Add Merch section (#788)
Reviewed-on: https://codeberg.org/Codeberg/Documentation/pulls/788
Reviewed-by: Bastian Greshake Tzovaras <gedankenstuecke@noreply.codeberg.org>
2026-05-11 09:09:25 +02:00
litekin
16b319a3d8 an website -> a website (#785)
Reviewed-on: https://codeberg.org/Codeberg/Documentation/pulls/785
Reviewed-by: Robert Wolff <mahlzahn@posteo.de>
2026-05-05 10:50:19 +02:00
mukunda katta
64e97c1190 docs: clarify HTTPS auth with 2FA (#784)
## Summary
- clarify that HTTPS Git auth should use an access token as the password when 2FA is enabled
- update both the first repository guide and the CLI clone/commit guide for consistency

Reviewed-on: https://codeberg.org/Codeberg/Documentation/pulls/784
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2026-05-05 10:41:45 +02:00
Robert Wolff
5b48c54304 fix(ci): make prettier, lychee and cspell happy (#782)
Reviewed-on: https://codeberg.org/Codeberg/Documentation/pulls/782
2026-04-28 12:04:20 +02:00
Dave Anselmi
8215c254bc Move duplicate article list snippets to shortcode. (#780)
Closes #335.

This is my first attempt coding for eleventy/liquid so I'd be happy to get feedback on making the code cleaner or more idiomatic, or just more like the Codeberg style.

Co-authored-by: David Anselmi <danselmi@intecrowd.com>
Co-authored-by: Gusted <postmaster@gusted.xyz>
Reviewed-on: https://codeberg.org/Codeberg/Documentation/pulls/780
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2026-04-27 14:36:08 +02:00
RurPet
2695431962 fix: added comma because the phrasing might be confusing without (#779)
SourceHut: A minimum-GUI Free Software based service at first read as "minimum and GUI free and it's software based", which might be confusing for some people and is not intended
Reviewed-on: https://codeberg.org/Codeberg/Documentation/pulls/779
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
2026-04-21 23:35:59 +02:00
kairusds
c2652bb941 Add version constraint for woodpeckerci/woodpecker-agent Docker image (#777)
* Add 443 port for WOODPECKER_SERVER environment  variable to fix edge cases of SSL errors occuring

Signed-off-by: kairusds <kairusds@noreply.codeberg.org>

Reviewed-on: https://codeberg.org/Codeberg/Documentation/pulls/777
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: kairusds <kairusds@noreply.codeberg.org>
Co-committed-by: kairusds <kairusds@noreply.codeberg.org>
2026-04-18 15:39:21 +02:00
Dependency bot
c99ae24d80 chore(deps): update mstruebing/editorconfig-checker docker tag to v3.6.1 (#769)
Reviewed-on: https://codeberg.org/Codeberg/Documentation/pulls/769
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: Dependency bot <renovate-bot@noreply.codeberg.org>
Co-committed-by: Dependency bot <renovate-bot@noreply.codeberg.org>
2026-04-18 15:34:16 +02:00
Dependency bot
3d2f8779ba chore(deps): update dependency cspell to v9.8.0 (#770)
Reviewed-on: https://codeberg.org/Codeberg/Documentation/pulls/770
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: Dependency bot <renovate-bot@noreply.codeberg.org>
Co-committed-by: Dependency bot <renovate-bot@noreply.codeberg.org>
2026-04-18 15:33:00 +02:00
leeroyjankins
047aa55ba0 Recommend forgejo-cli instead of codeberg-cli in the section on CLI clients (#773)
Since [codeberg-cli](https://codeberg.org/Aviac/codeberg-cli) has been discontinued, update the section on CLI clients to recommend forgejo-cli, which the codeberg-cli maintainer endorses.

Given the endorsement, I presume that it's worth recommending in the docs, even though the project is relatively young. Having used it myself, I can vouch for it.

I wrote a brief overview of forgejo-cli to contrast it slightly with `tea`.

Reviewed-on: https://codeberg.org/Codeberg/Documentation/pulls/773
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Reviewed-by: Robert Wolff <mahlzahn@posteo.de>
Co-authored-by: leeroyjankins <hatemail@jank.wtf>
Co-committed-by: leeroyjankins <hatemail@jank.wtf>
2026-04-09 11:00:42 +02:00
Abdur-Rahman Mansoor
2ace081a8d fix typo in using-custom-domain.md (#774)
Reviewed-on: https://codeberg.org/Codeberg/Documentation/pulls/774
Reviewed-by: Robert Wolff <mahlzahn@posteo.de>
Co-authored-by: Abdur-Rahman Mansoor <armansoor@missingno.dev>
Co-committed-by: Abdur-Rahman Mansoor <armansoor@missingno.dev>
2026-04-03 15:13:32 +02:00
spuzkov
d11f27378f Updated the way git signing commands are shown (#762)
### Description

This fixes #761, more specifically the part (2) of their issue post. The issue was that it was not clear that the "." at the end of the command was meant to be excluded. Even if its clear to some, accidental copy and paste with the inclusion of "." have happened. Therefore, this PR is more of an improvement to the so called "quality of life".

**The fix**

Separating the commands in to code blocks and excluding the "." from the end.

**Other additions**

- The commands are also now described.
- A new command that allows users to check their current configuration in order to verify that things are as they intended. This commands

Source for both of these additions is:  https://janik6n.net/posts/signing-git-commits-with-ssh-key/

Reviewed-on: https://codeberg.org/Codeberg/Documentation/pulls/762
Co-authored-by: spuzkov <spuzkov@tuta.com>
Co-committed-by: spuzkov <spuzkov@tuta.com>
2026-04-02 03:59:09 +02:00
29 changed files with 439 additions and 575 deletions

View file

@ -119,7 +119,11 @@
"getent",
"sealioning",
"DNSSEC",
"Arminiusstraße"
"Arminiusstraße",
"HELLOTUX",
"Merch",
"merch",
"freewear"
],
"ignorePaths": [
"**/node_modules/**/*",

View file

@ -14,7 +14,7 @@ steps:
include: ['.woodpecker/*.yaml', '*.{md,markdown}']
editor-config:
image: mstruebing/editorconfig-checker:v3.6.0
image: mstruebing/editorconfig-checker:v3.6.1
depends_on: []
prettier:

View file

@ -12,23 +12,4 @@ the more advanced features of Codeberg.
See also the [documentation of Forgejo](https://forgejo.org/docs/), the software which
Codeberg is based on.
{% assign navPages = collections.all | eleventyNavigation %}
{%- for entry in navPages %}
{% if entry.url == page.url %}
{%- if entry.children.length -%}
<table class="table">
<thead>
<th>Find out more in this section:</th>
</thead>
<tbody>
{%- for child in entry.children %}
<tr>
<td><a href="{{ child.url }}">{{ child.title }}</a></td>
</tr>
{%- endfor %}
</tbody>
</table>
{% endif %}
{% endif %}
{%- endfor %}
{% sectionNav collections %}

View file

@ -70,14 +70,14 @@ Tokens are added as the `WOODPECKER_AGENT_SECRET` environment variable to avoid
```yaml
services:
woodpecker-agent:
image: woodpeckerci/woodpecker-agent:v3
image: woodpeckerci/woodpecker-agent:v3.13.0
command: agent
restart: always
volumes:
- woodpecker-agent-config:/etc/woodpecker
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WOODPECKER_SERVER=grpc.ci.codeberg.org
- WOODPECKER_SERVER=grpc.ci.codeberg.org:443
- WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}
- WOODPECKER_GRPC_SECURE=true

View file

@ -5,6 +5,7 @@ eleventyNavigation:
parent: CodebergPages
order: 999
---
## Custom error page for 404s
You can replace the default 404 error page that Codeberg Pages will show for missing pages with your own version if you prefer.

View file

@ -5,6 +5,7 @@ eleventyNavigation:
parent: CodebergPages
order: 100
---
{% admonition "Warning" %}
The following instructions depend on the new git-pages server for Codeberg Pages and can currently only be used on sites which are hosted under our `codeberg.page` domain, and not with sites that should be served from custom domains.
@ -25,7 +26,7 @@ To use it, simply add it as a final step to your workflow:
```yaml
- uses: https://codeberg.org/git-pages/action@v2
with:
site: "https://${{ forge.repository_owner }}.codeberg.page/repository-name/"
site: 'https://${{ forge.repository_owner }}.codeberg.page/repository-name/'
token: ${{ forge.token }}
source: _site/
```
@ -36,7 +37,7 @@ Replace `repository-name` in the `site` parameter with the name of your reposito
If your repository is also called `pages`, you can also omit the repository name and deploy directly to the site `https://username.codeberg.page/`.
The `source` parameter should point to the directory (relative to the root, after all previous steps in your workflow) where your site generator has put the generated version of your site.
This directory can also contain the `404.html` and `_redirects` files to customize your sites behaviour, as described in the [advanced documentation](/codeberg-pages/advanced-usage/).
This directory can also contain the `404.html` and `_redirects` files to customize your sites behavior, as described in the [advanced documentation](/codeberg-pages/advanced-usage/).
The `token` will automatically be filled by Forgejo Actions with a secret token, which in turn will automatically be recognized by git-pages as authorizing this workflow to publish to this site.
@ -57,4 +58,3 @@ if: ${{ forge.ref == 'refs/heads/main'}}
This will limit deploys so they only happen when CI is triggered by a push to the `main` branch.
{% endadmonition %}

View file

@ -22,7 +22,7 @@ The new documentation is work in progress, and we appreciate your feedback. Plea
{% endadmonition %}
Codeberg Pages allows you to easily publish static websites with a human-friendly address (`{username}.codeberg.page`) or your custom domain on Codeberg.
You can publish an website for your user or organization, as well as websites for each repository.
You can publish a website for your user or organization, as well as websites for each repository.
Codeberg Pages are served using a deployment of [git-pages](https://git-pages.org/), which itself is [developed on Codeberg](https://codeberg.org/git-pages/git-pages).
It is free/libre open source software.
@ -34,26 +34,7 @@ See also:
- [codeberg.page](https://codeberg.page)
- [Troubleshooting (Codeberg Documentation)](troubleshooting)
{% assign navPages = collections.all | eleventyNavigation %}
{%- for entry in navPages %}
{% if entry.url == page.url %}
{%- if entry.children.length -%}
<table class="table">
<thead>
<th>Find out more in this section:</th>
</thead>
<tbody>
{%- for child in entry.children %}
<tr>
<td><a href="{{ child.url }}">{{ child.title }}</a></td>
</tr>
{%- endfor %}
</tbody>
</table>
{% endif %}
{% endif %}
{%- endfor %}
{% sectionNav collections %}
## Getting started with a `codeberg.page` URL
@ -68,7 +49,7 @@ This page documents the first method. See the [separate page on using Forgejo Ac
1. Create a repository called `pages` under your own username or under the organization you want to create a website for
The website will be published from a branch also called `pages`. You can also set this as the default branch, if you prefer.
The website will be published from a branch also called `pages`. You can also set this as the default branch, if you prefer.
2. Go to **Settings** at the top right of your repository page.
@ -76,7 +57,7 @@ This page documents the first method. See the [separate page on using Forgejo Ac
4. Click the **Add webhook** button in the top right corner of the webhook settings page.
Select **Forgejo** from the drop-down list of webhook types.
Select **Forgejo** from the drop-down list of webhook types.
5. Enter `https://username.codeberg.page/` as the **Target URL**, replacing the `username` with your Codeberg username or organization name. This is the URL your website will be available from.
@ -94,7 +75,7 @@ This page documents the first method. See the [separate page on using Forgejo Ac
3. Click the **Add webhook** button in the top right corner of the webhook settings page.
Select **Forgejo** from the drop-down list of webhook types.
Select **Forgejo** from the drop-down list of webhook types.
4. Enter `https://username.codeberg.page/repository-name/` as the **Target URL**, replacing the `username` with your Codeberg username or organization name, and `repository-name` with the name of your repository. This is the URL your website will be available from.

View file

@ -5,6 +5,7 @@ eleventyNavigation:
parent: CodebergPages
order: 120
---
{% admonition "Warning" %}
Codeberg Pages is currently migrating from the legacy v2 codebase to the newer [git-pages](https://git-pages.org/) codebase.
@ -27,10 +28,10 @@ It improves performance and stability, and fixes various design issues from the
Please be aware of the following changes and deprecated features.
* The recommended way to deploy websites is by directly uploading them to git-pages.
* Content is no longer fetched automatically. You need to use a method that informs git-pages about changes.
* `raw.codeberg.page` is no longer available. CORS headers are now directly set on your page and this workaround is no longer necessary.
* Direct access to repos and branches is no longer possible. You can no longer use the `/repository/@branch` access. `git-pages` restricts you to the website you explicitly deployed. Serving arbitrary resources from Codeberg was a common abuse vector and is going to be deprecated.
- The recommended way to deploy websites is by directly uploading them to git-pages.
- Content is no longer fetched automatically. You need to use a method that informs git-pages about changes.
- `raw.codeberg.page` is no longer available. CORS headers are now directly set on your page and this workaround is no longer necessary.
- Direct access to repos and branches is no longer possible. You can no longer use the `/repository/@branch` access. `git-pages` restricts you to the website you explicitly deployed. Serving arbitrary resources from Codeberg was a common abuse vector and is going to be deprecated.
## The first push
@ -66,11 +67,11 @@ To do this:
3. Click the **Add webhook** button in the top right corner of the webhook settings page.
Select **Forgejo** from the drop-down list of webhook types.
Select **Forgejo** from the drop-down list of webhook types.
4. Enter `https://username.codeberg.page/repository-name/` as the **Target URL**, replacing the `username` with your Codeberg username or organization name, and `repository-name` with the name of your repository. This is the URL your website will be available from.
If your repository *and* your branch are both called `pages`, you can omit the `repository-name` and just push to `https://username.codeberg.page/` directly.
If your repository _and_ your branch are both called `pages`, you can omit the `repository-name` and just push to `https://username.codeberg.page/` directly.
5. Set the **Branch filter** to `pages`.

View file

@ -6,6 +6,7 @@ eleventyNavigation:
author: Fayçal Alami Hassani - https://codeberg.org/ka2in
order: 110
---
{% admonition "Warning" %}
Codeberg Pages is currently migrating from the legacy v2 codebase to the newer [git-pages](https://git-pages.org/) codebase.
@ -36,7 +37,6 @@ To begin with, we will have two separate repositories, both locally and on Codeb
- A main repository for the source files, i.e. where the source files related to your main project will be located.
We will refer to this repository as the `source` repository.
This repository is the one associated with your [mydocs](/codeberg-pages/examples/docs-as-code/#mydocs) folder.
- A second repository for Codeberg pages that we will call the `pages` repository.
This repository will only contain the files available in the `html` folder located under docs/build/html.

View file

@ -5,6 +5,7 @@ eleventyNavigation:
parent: CodebergPages
order: 10
---
{% admonition "Warning" %}
Codeberg Pages is currently migrating from the legacy v2 codebase to the newer [git-pages](https://git-pages.org/) codebase.
@ -54,7 +55,7 @@ To understand how the Pages server serves content, you need to know that a user
But the server might not know that it is responsible for `yourdomain.com` and it cannot just serve all domains in the world.
So to find out if the server is responsible for `yourdomain.com` it will check the DNS entries of `yourdomain.com`.
If it returns something with `codeberg.page` (according to the domain schemes mentioned below) then it knows which
respository to check for the `.domains` file and your content.
repository to check for the `.domains` file and your content.
{% endadmonition %}

View file

@ -9,23 +9,4 @@ description: These articles shows you how to use Codeberg Translate
These documentation pages contain information on how you can use [Codeberg Translate](https://translate.codeberg.org)
{% assign navPages = collections.all | eleventyNavigation %}
{%- for entry in navPages %}
{% if entry.url == page.url %}
{%- if entry.children.length -%}
<table class="table">
<thead>
<th>Find out more in this section:</th>
</thead>
<tbody>
{%- for child in entry.children %}
<tr>
<td><a href="{{ child.url }}">{{ child.title }}</a></td>
</tr>
{%- endfor %}
</tbody>
</table>
{% endif %}
{% endif %}
{%- endfor %}
{% sectionNav collections %}

View file

@ -71,7 +71,7 @@ You can also delete your organization, and access more advanced settings like or
<img src="/images/collaborating/create-organization/orga-settings.png" alt="orga-settings">
The `Name` of the organization is the name that will define the URLs of the organization and of all its repositories;
it is recommended to keep it short. This name will also appear on the member's profiles (see [People](#people)).
it is recommended to keep it short. This name will also appear on the member's profiles.
On the other hand, the `Full Name` is the name that will appear on the organization's home page.
In the `Labels` tab, you can create labels that will be used across all repositories of this organization.
@ -117,27 +117,6 @@ It is also possible to invite people by email.
This also works for email addresses not associated with any Codeberg account, in which case they
will be prompted to create an account first.
## People
On the `People` tab, you can get an overview of all the people who belong to your organization:
<img src="/images/collaborating/create-organization/people.png" alt="people">
Somewhat counter-intuitively, this is not where you can add members;
this is done in the `Teams` tab (see [Teams](#teams) above).
However, you can remove members from the `People` tab.
The visibility of the members can also be edited here; `Hidden` means that the members' memberships will not be shown on
their profiles, while `Visible` makes the avatar of the organization appear in the info card on their profile,
as shown in the screenshot below. Note that your membership will always be visible to you on your profile;
this visibility setting is for other users only.
<img src="/images/collaborating/create-organization/profile.png" alt="profile">
Shown here is also whether or not each member has activated two-factor authentication (2FA, see [Setting up Two-factor Authentication](/security/2fa)).
Finally, from here you can choose to leave the organization.
## Access rights
An overview of the repository permissions is given in the article [Repository Permissions](/collaborating/repo-permissions).

View file

@ -13,23 +13,4 @@ If you're new to Codeberg or software forges in general, please also have a look
our [Getting Started Guide](/getting-started) which will teach you the basics of
issue tracking and wikis on Codeberg.
{% assign navPages = collections.all | eleventyNavigation %}
{%- for entry in navPages %}
{% if entry.url == page.url %}
{%- if entry.children.length -%}
<table class="table">
<thead>
<th>Find out more in this section:</th>
</thead>
<tbody>
{%- for child in entry.children %}
<tr>
<td><a href="{{ child.url }}">{{ child.title }}</a></td>
</tr>
{%- endfor %}
</tbody>
</table>
{% endif %}
{% endif %}
{%- endfor %}
{% sectionNav collections %}

View file

@ -366,7 +366,8 @@ The `-u` option sets the upstream remote, which we want to be Codeberg.org, as c
The `main` argument sets the name of the branch onto which shall be pushed upstream.
For this example, it should be the same branch name that you specified when creating the repository.
When connecting via HTTPS, Git will ask you for your username and password, which you can enter interactively.
When connecting via HTTPS, Git will ask you for your username and password.
If you have enabled Two-Factor Authentication, use your generated [access token](/advanced/access-token/) as the password instead.
After refreshing the repository page, you should now see something similar to this:

View file

@ -24,23 +24,4 @@ You can start with [finding out more about Codeberg](/getting-started/what-is-co
Welcome to Codeberg! 😊
{% assign navPages = collections.all | eleventyNavigation %}
{%- for entry in navPages %}
{% if entry.url == page.url %}
{%- if entry.children.length -%}
<table class="table">
<thead>
<th>Find out more in this section:</th>
</thead>
<tbody>
{%- for child in entry.children %}
<tr>
<td><a href="{{ child.url }}">{{ child.title }}</a></td>
</tr>
{%- endfor %}
</tbody>
</table>
{% endif %}
{% endif %}
{%- endfor %}
{% sectionNav collections %}

View file

@ -92,7 +92,7 @@ Here are a few options:
They do offer much more than Forgejo, so check them out in any case.
- [other public Forgejo instances](https://codeberg.org/forgejo-contrib/delightful-forgejo#user-content-public-instances)
- Self-Hosting [Forgejo](https://forgejo.org), the software that powers Codeberg.
- [SourceHut](https://sourcehut.org): A minimum-GUI Free Software based service, available as hosted version by a
- [SourceHut](https://sourcehut.org): A minimum-GUI, Free Software based service, available as hosted version by a
transparent for-profit. Self-Hostable.
---

View file

@ -92,8 +92,9 @@ Here's an explanation of the command flags used here:
The last step is to synchronize (_push_) the commit from the local repository to the remote one on Codeberg.
If you are using HTTPS, you will be asked for your Codeberg username and password. If you want to avoid entering your
password every time, consider [using SSH](/security/ssh-key) instead.
If you are using HTTPS, you will be asked for your Codeberg username and password.
If you have enabled Two-Factor Authentication, use your generated [access token](/advanced/access-token/) as the password instead.
If you want to avoid entering your password every time, consider [using SSH](/security/ssh-key) instead.
```shell
~/examples$ git push
@ -116,7 +117,7 @@ It's even more important when you have collaborators on a project; they may chan
pull these modifications before you start working.
Because of this, it is recommended to pull before pushing.
## CLI clients `tea` and `berg` for other actions
## CLI clients `tea` and `fj` for other actions
### Gitea / Forgejo CLI `tea`
@ -125,15 +126,10 @@ and [Forgejo](https://forgejo.org). Since Codeberg runs on Forgejo, you can use
This project is maintained by [the Gitea project](https://gitea.com).
### Codeberg CLI `berg`
### Forgejo CLI `fj`
The [codeberg-cli project](https://codeberg.org/RobWalt/codeberg-cli), aka. `berg`, is a CLI client that is tailored
for Codeberg.
The main difference compared to `tea` are:
The [forgejo-cli project](https://codeberg.org/forgejo-contrib/forgejo-cli), or `fj`, is a CLI client that can be used
with instances of Forgejo, including Codeberg. It is a younger project than `tea`, but its scope includes features
specific to Forgejo, such as browsing a repo's integrated wiki.
- extra features: `berg` provides some features that `tea` doesn't implement, like editing issues or pull requests
- active development: the `berg` repository is actively developed and maintained by a few community members
- modern UI: `berg` offers an interactive and modern looking user experience
If you're interested, check out the [codeberg-cli wiki](https://codeberg.org/RobWalt/codeberg-cli/wiki), which contains
just about everything you need to know about it.
This project is maintained by contributors in the [Forgejo community](https://codeberg.org/forgejo-contrib).

View file

@ -19,23 +19,4 @@ We recommend the use of the [SSH protocol](https://en.wikipedia.org/wiki/Secure_
It offers improved security through key-based access (stronger protection than a regular password) and better ease of
use (no need to provide credentials on every push).
{% assign navPages = collections.all | eleventyNavigation %}
{%- for entry in navPages %}
{% if entry.url == page.url %}
{%- if entry.children.length -%}
<table class="table">
<thead>
<th>Find out more in this section:</th>
</thead>
<tbody>
{%- for child in entry.children %}
<tr>
<td><a href="{{ child.url }}">{{ child.title }}</a></td>
</tr>
{%- endfor %}
</tbody>
</table>
{% endif %}
{% endif %}
{%- endfor %}
{% sectionNav collections %}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

View file

@ -0,0 +1,45 @@
---
eleventyNavigation:
key: Merch
title: Codeberg Merch
parent: ImprovingCodeberg
order: 60
---
As Codeberg's profile is increasing, so does the demand for merchandise.
Codeberg e.V. neither produces nor sells merch.
Following the [Debian Project's approach](https://www.debian.org/events/merchandise), we aim to provide a list of providers selling merchandise containing Codeberg's logos as a favor to those requesting it.
The ordering is purely alphabetical and no ranking of endorsement of a specific vendor.
The logos, available on [Codeberg's Design repository](https://codeberg.org/codeberg/design), have a [public domain dedication](https://codeberg.org/Codeberg/Design/src/branch/main/LICENSE).
Codeberg does not receive any money (e.g. in the form of a commission) from sales done through these suppliers.
We have explicitly indicated vendors that have been reviewed by Codeberg contributors and/or community members for e.g. their adherence to the spirit of the [Design guidelines](https://codeberg.org/Codeberg/Design).
---
**FreeWear.org**
- **URL:** [freewear.org/Codeberg](https://freewear.org/Codeberg)
- **Products:** T-shirts, polo shirts, mugs, tote bags
- **Last Updated:** May 10th, 2026
- **Available languages:** English
- **Original country:** Spain
- **International delivery:** Yes
- **Reviewed by contributors/community:** Yes
---
**HELLOTUX**
- **URL:** [hellotux.com/Codeberg](https://hellotux.com/Codeberg)
- **Products:** T-shirts, polo shirts, sweatshirts, towels, bags, zip jackets
- **Last Updated:** May 10th, 2026
- **Available languages:** English
- **Original country:** Hungary
- **International delivery:** Yes
- **Reviewed by contributors/community:** Yes
---
If you would like to be listed on this page, send an email to [merch@codeberg.org](mailto:merch@codeberg.org). Please provide us with the information listed above.

View file

@ -8,26 +8,7 @@ eleventyNavigation:
We're very happy you're considering to contribute to Codeberg Documentation!
{% assign navPages = collections.all | eleventyNavigation %}
{%- for entry in navPages %}
{% if entry.url == page.url %}
{%- if entry.children.length -%}
<table class="table">
<thead>
<th>Find out more in this section:</th>
</thead>
<tbody>
{%- for child in entry.children %}
<tr>
<td><a href="{{ child.url }}">{{ child.title }}</a></td>
</tr>
{%- endfor %}
</tbody>
</table>
{% endif %}
{% endif %}
{%- endfor %}
{% sectionNav collections %}
## How do I contribute to Codeberg Documentation?

View file

@ -13,23 +13,4 @@ ecosystem of Forgejo instances.
Can can also see [awesome-gitea](https://gitea.com/gitea/awesome-gitea/src/README.md), most of the Gitea-specific
solutions should work with our Forgejo instance, too.
{% assign navPages = collections.all | eleventyNavigation %}
{%- for entry in navPages %}
{% if entry.url == page.url %}
{%- if entry.children.length -%}
<table class="table">
<thead>
<th>Find out more in this section:</th>
</thead>
<tbody>
{%- for child in entry.children %}
<tr>
<td><a href="{{ child.url }}">{{ child.title }}</a></td>
</tr>
{%- endfor %}
</tbody>
</table>
{% endif %}
{% endif %}
{%- endfor %}
{% sectionNav collections %}

View file

@ -23,23 +23,4 @@ look them up and learn more about Markdown.
- [English Wikipedia article on Markdown](https://en.wikipedia.org/wiki/Markdown)
- [The Markdown Guide](https://www.markdownguide.org/)
{% assign navPages = collections.all | eleventyNavigation %}
{%- for entry in navPages %}
{% if entry.url == page.url %}
{%- if entry.children.length -%}
<table class="table">
<thead>
<th>Find out more in this section:</th>
</thead>
<tbody>
{%- for child in entry.children %}
<tr>
<td><a href="{{ child.url }}">{{ child.title }}</a></td>
</tr>
{%- endfor %}
</tbody>
</table>
{% endif %}
{% endif %}
{%- endfor %}
{% sectionNav collections %}

View file

@ -8,23 +8,4 @@ eleventyNavigation:
This section contains information on how to securely use Codeberg.
{% assign navPages = collections.all | eleventyNavigation %}
{%- for entry in navPages %}
{% if entry.url == page.url %}
{%- if entry.children.length -%}
<table class="table">
<thead>
<th>Find out more in this section:</th>
</thead>
<tbody>
{%- for child in entry.children %}
<tr>
<td><a href="{{ child.url }}">{{ child.title }}</a></td>
</tr>
{%- endfor %}
</tbody>
</table>
{% endif %}
{% endif %}
{%- endfor %}
{% sectionNav collections %}

View file

@ -175,11 +175,25 @@ To update your version of Git,see the [Git](https://git-scm.com/downloads) websi
{% endadmonition %}
1. Open your terminal.
2. Type `git config --global gpg.format ssh`.
3. Type `git config --global user.signingKey <PATH TO PUBLIC SSH KEY>`, substituting `<PATH TO PUBLIC SSH KEY>` with the
path to the public key you'd like to use, for example _~/.ssh/id_ed25519.pub_.
4. Type `git config --global commit.gpgSign true`.
In your terminal, run the following commands:
1. Make git use SSH to sign commits and tags:
```shell
git config --global gpg.format ssh
```
2. Set the SSH signing key to your public key:
```shell
git config --global user.signingKey '~/.ssh/<YOUR PUBLIC SSH KEY>'
```
3. Sign commits by default:
```shell
git config --global commit.gpgSign true
```
## Avoid re-typing the passphrase

View file

@ -82,6 +82,28 @@ export default function (eleventyConfig) {
},
});
// the article list navigation for section index pages
eleventyConfig.addShortcode('sectionNav', function (collections) {
const navFilter = eleventyConfig.getFilter('eleventyNavigation');
// from the nav tree, find the current page's entry
const entry = navFilter(collections.all).find((page) => page.url == this.page.url);
// if the current page has children, create a nav table with a link for each
if (entry.children.length) {
const rows = entry.children
.map((child) => `<tr><td><a href="${child.url}">${child.title}</a></td></tr>`)
.join('');
return `<table class="table">
<thead>
<th>Find out more in this section:</th>
</thead>
<tbody>${rows}</tbody>
</table>`;
}
});
eleventyConfig.on('eleventy.after', () => {
execSync(`npx pagefind`, { encoding: 'utf-8' });
});

View file

@ -12,7 +12,7 @@
"lint-spellcheck": "cspell lint --no-progress --gitignore '{**,.*}/{*,.*}'"
},
"devDependencies": {
"@11ty/eleventy": "3.1.2",
"@11ty/eleventy": "3.1.5",
"@11ty/eleventy-img": "6.0.4",
"@11ty/eleventy-navigation": "1.0.5",
"@11ty/eleventy-plugin-syntaxhighlight": "5.0.2",
@ -20,7 +20,7 @@
"@fortawesome/free-solid-svg-icons": "7.1.0",
"@toycode/markdown-it-class": "1.2.4",
"@uncenter/eleventy-plugin-toc": "1.0.3",
"cspell": "9.6.0",
"cspell": "9.8.0",
"halfmoon": "2.0.2",
"markdown-it": "14.1.1",
"markdown-it-anchor": "9.2.0",

File diff suppressed because it is too large Load diff