gna.org upgrades to Forgejo #1

Merged
dachary merged 2 commits from wip-forgejo into master 2023-01-09 10:10:56 +00:00
23 changed files with 55 additions and 51 deletions

View File

@ -6,5 +6,10 @@ pipeline:
commands: commands:
- make env - make env
- make - make
deploy:
image: python
when:
event: [ push, tag, deployment ]
commands:
- make ci-deploy - make ci-deploy
secrets: [ pages_deploy_secret, hostea_write_deploy_key ] secrets: [ pages_deploy_secret, hostea_write_deploy_key ]

View File

@ -37,15 +37,15 @@ Build artifacts should be available in `./public/`
This repository uses [Gna! This repository uses [Gna!
Woodpecker-CI](https://woodpecker.gna.org/) to build and Woodpecker-CI](https://woodpecker.gna.org/) to build and
[Gna/Pages](https://gitea.gna.org/Gna/pages) to deploy on each [Librepages](https://librepages.org/) to deploy on each
commit. commit.
To setup the CI: To setup the CI:
* `ssh-keygen -b 4096 -f /tmp/pages` * `ssh-keygen -b 4096 -f /tmp/pages`
* `xclip -sel clip -in < /tmp/pages.pub` * `xclip -sel clip -in < /tmp/pages.pub`
* use that to add a key in https://gitea.gna.org/Gna/website/settings/keys (with write access) * use that to add a key in https://forgejo.gna.org/Gna/website/settings/keys (with write access)
* xclip -sel clip -in < /tmp/pages * xclip -sel clip -in < /tmp/pages
* use that to add the hostea_write_deploy_key (see [.woodpecker.yml](https://gitea.gna.org/Gna/website/src/branch/master/.woodpecker.yml#L10)) in https://woodpecker.gna.org/Gna/website/settings#secrets * use that to add the hostea_write_deploy_key (see [.woodpecker.yml](https://forgejo.gna.org/Gna/website/src/branch/master/.woodpecker.yml#L10)) in https://woodpecker.gna.org/Gna/website/settings#secrets
* get the secret for pages in ~/.enough/gna.org/inventory/group_vars/pages-service-group.yml * get the secret for pages in ~/.enough/gna.org/inventory/group_vars/pages-service-group.yml
* add secret for pages in https://woodpecker.gna.org/Gna/website/settings#secrets under the name **pages_deploy_secret** to match [.woodpecker.yml](https://gitea.gna.org/Gna/website/src/branch/master/.woodpecker.yml#L10) * add secret for pages in https://woodpecker.gna.org/Gna/website/settings#secrets under the name **pages_deploy_secret** to match [.woodpecker.yml](https://forgejo.gna.org/Gna/website/src/branch/master/.woodpecker.yml#L10)

View File

@ -3,16 +3,16 @@ title = "About"
description = "About" description = "About"
+++ +++
Gna! provides [dedicated managed Gitea hosting](https://hosteadashboard.gna.org/dash/instance/new/), including [Woodpecker CI](https://woodpecker-ci.org/). Security updates are applied as soon as they are available and carefully tested. Each Gitea instance is monitored 24/7 and has backups. Gna! provides [dedicated managed Forgejo hosting](https://hosteadashboard.gna.org/dash/instance/new/), including [Woodpecker CI](https://woodpecker-ci.org/). Security updates are applied as soon as they are available and carefully tested. Each Forgejo instance is monitored 24/7 and has backups.
<video width="600" controls> <video width="600" controls>
<source src="https://cloud.forgefriends.org/s/xXLcYpsE469tJEj/download?path=&files=hostea-screencast-vm-create.mp4" type="video/mp4" /> <source src="https://cloud.forgefriends.org/s/xXLcYpsE469tJEj/download?path=&files=hostea-screencast-vm-create.mp4" type="video/mp4" />
</video> </video>
You can rely on Gna! if you are an individual software developer who need their own Gitea instance with CI but can't be bothered with installation and maintenance. You want the freedom to download a backup and seamlessly self-host it whenever you decide: no strings attached. You can rely on Gna! if you are an individual software developer who need their own Forgejo instance with CI but can't be bothered with installation and maintenance. You want the freedom to download a backup and seamlessly self-host it whenever you decide: no strings attached.
If you are into trouble and need assistance with a Gitea instance not hosted at Gna!, you [can ask for help at the Gna! clinic](/gitea-clinic/). The doctors have developped a unique expertise and are well equiped to help you recover and upgrade. If you are into trouble and need assistance with a Forgejo instance not hosted at Gna!, you [can ask for help at the Gna! clinic](/forgejo-clinic/). The doctors have developped a unique expertise and are well equiped to help you recover and upgrade.
--- ---
Do you already have an expertise running Gitea? You are welcome to join the [Gna! collective](https://forum.gna.org/t/57), get in touch [in the forum](https://forum.gna.org/c/site-feedback/2) or [the chat](https://matrix.to/#/#hostea:matrix.batsense.net). Do you already have an expertise running Forgejo? You are welcome to join the [Gna! collective](https://forum.gna.org/t/57), get in touch [in the forum](https://forum.gna.org/c/site-feedback/2) or [the chat](https://matrix.to/#/#hostea:matrix.batsense.net).

View File

@ -1,14 +1,14 @@
+++ +++
title = "Gitea Clinic" title = "Forgejo Clinic"
description = "Get help with your sick Gitea instance" description = "Get help with your sick Forgejo instance"
+++ +++
## How does it work? ## How does it work?
You can get help from the community on the [Gna! forum](https://forum.gna.org/c/clinic/5) or the [Gitea forum](https://discourse.gitea.io/): it is the best way to resolve simple issues. If you are in a hurry or the problem is serious you could: You can get help from the community on the [Gna! forum](https://forum.gna.org/c/clinic/5) or the [Forgejo issue tracker](https://codeberg.org/forgejo/forgejo/): it is the best way to resolve simple issues. If you are in a hurry or the problem is serious you could:
1. Get in touch with the [doctor of your choice](#gna-doctors) 1. Get in touch with the [doctor of your choice](#gna-doctors)
2. Upload your sick Gitea 2. Upload your sick Forgejo
3. Once it is repaired download it back home (or decide it deserves a permanent residence at [Gna!](https://gna.org)) 3. Once it is repaired download it back home (or decide it deserves a permanent residence at [Gna!](https://gna.org))
4. Pay the doctor 4. Pay the doctor
@ -17,4 +17,4 @@ You can get help from the community on the [Gna! forum](https://forum.gna.org/c/
All Gna! doctors charge a flat hourly rate for consultations held in public (sensitive information is never revealed, even if the consultation is held in public). Private consultations fees depend on the Gna! doctor. All Gna! doctors charge a flat hourly rate for consultations held in public (sensitive information is never revealed, even if the consultation is held in public). Private consultations fees depend on the Gna! doctor.
## Gna! Doctors ## Gna! Doctors
{{ gitea_clinic_doc_reviews() }} {{ forgejo_clinic_doc_reviews() }}

View File

@ -17,11 +17,11 @@ Gna! hosts, via application software, content in private spaces that are not pub
## Support ## Support
Support requests should be filed as an issue in https://gitea.gna.org/Hostea/support/issues. Support requests should be filed as an issue in https://forgejo.gna.org/Hostea/support/issues.
## Publicly available content published on Gitea instances ## Publicly available content published on Forgejo instances
All publicly available software published on the dedicated Gitea instances provided by Gna! must be published under a [Free Software license](https://www.gnu.org/licenses/license-list.html). All publicly available software published on the dedicated Forgejo instances provided by Gna! must be published under a [Free Software license](https://www.gnu.org/licenses/license-list.html).
## Infrastructure ## Infrastructure

View File

@ -3,7 +3,7 @@
[[ doctors ]] [[ doctors ]]
nick = "dachary" nick = "dachary"
name ="Loïc Dachary" name ="Loïc Dachary"
website = "https://gitea.gna.org/dachary/hostea/issues" website = "https://forgejo.gna.org/dachary/hostea/issues"
picture = "/people/dachary.png" picture = "/people/dachary.png"
[[ doctors.reviews ]] [[ doctors.reviews ]]
@ -17,7 +17,7 @@ remarks = "https://discourse.gitea.io/t/blank-page-after-login/5051/14"
[[ doctors ]] [[ doctors ]]
nick = "realaravinth" nick = "realaravinth"
name ="Aravinth Manivannan" name ="Aravinth Manivannan"
website = "https://gitea.gna.org/realaravinth/hostea/issues" website = "https://forgejo.gna.org/realaravinth/hostea/issues"
picture = "/people/realaravinth.jpg" picture = "/people/realaravinth.jpg"
[[ doctors.reviews ]] [[ doctors.reviews ]]
@ -40,7 +40,7 @@ remarks = "Nice"
[[ doctors ]] [[ doctors ]]
nick = "easter-eggs" nick = "easter-eggs"
name ="Easter-eggs" name ="Easter-eggs"
website = "https://gitea.gna.org/easter-eggs/clinic/issues" website = "https://forgejo.gna.org/easter-eggs/clinic/issues"
picture = "/people/easter-eggs.png" picture = "/people/easter-eggs.png"

View File

@ -1,4 +1,4 @@
# Add new Gna! Doctor to Gitea Clinic section: # Add new Gna! Doctor to Forgejo Clinic section:
1. Add the following template to 1. Add the following template to
[`clinic-doctors.toml`](../data/clinic-doctors.toml) and fill in the [`clinic-doctors.toml`](../data/clinic-doctors.toml) and fill in the

View File

@ -1,7 +1,7 @@
# Add ratings to Gna! Doctor # Add ratings to Gna! Doctor
1. To rate Doctor `batman` from 1. To rate Doctor `batman` from
[./gitea-clinic-new-doctor.md](./gitea-clinic-new-doctor.md) guide, [./forgejo-clinic-new-doctor.md](./forgejo-clinic-new-doctor.md) guide,
add the following section to `batman` section: add the following section to `batman` section:
```toml ```toml

View File

@ -5,8 +5,7 @@
@import "./page/main"; @import "./page/main";
@import "./blog/main"; @import "./blog/main";
@import "./tag/main"; @import "./tag/main";
@import "./gitea-clinic/main"; @import "./forgejo-clinic/main";
.zola-anchor { .zola-anchor {
margin-left: 5px; margin-left: 5px;
} }

View File

@ -4,7 +4,7 @@
@import "./page/mobile"; @import "./page/mobile";
@import "./blog/mobile"; @import "./blog/mobile";
@import "./tag/mobile"; @import "./tag/mobile";
@import "./gitea-clinic/mobile.scss"; @import "./forgejo-clinic/mobile.scss";
header { header {
height: auto; height: auto;

View File

@ -39,7 +39,7 @@ Subcommands
-c --clean cleanup secrets, SSH key and other runtime data -c --clean cleanup secrets, SSH key and other runtime data
-i --init <SSH_PRIVATE_KEY> initialize environment, write SSH private to file -i --init <SSH_PRIVATE_KEY> initialize environment, write SSH private to file
-d --deploy <PAGES-SECRET> <TARGET BRANCH> push branch to Gitea and call Pages server -d --deploy <PAGES-SECRET> <TARGET BRANCH> push branch to Forgejo and call Pages server
-h --help print this help menu -h --help print this help menu
EOF EOF
} }
@ -57,7 +57,7 @@ set_ssh_remote() {
# repository_owner=$(echo $http_remote_url | cut -d '/' -f 4) # repository_owner=$(echo $http_remote_url | cut -d '/' -f 4)
# repository_name=$(echo $http_remote_url | cut -d '/' -f 5) # repository_name=$(echo $http_remote_url | cut -d '/' -f 5)
# ssh_remote="git@$remote_hostname:$repository_owner/$repository_name" # ssh_remote="git@$remote_hostname:$repository_owner/$repository_name"
ssh_remote="git@gitea.gna.org:Gna/website.git" ssh_remote="git@forgejo.gna.org:Gna/website.git"
git remote add $SSH_REMOTE_NAME $ssh_remote git remote add $SSH_REMOTE_NAME $ssh_remote
} }

View File

@ -1,14 +1,14 @@
{% extends "base.html" %} {% block meta %} {% extends "base.html" %} {% block meta %}
{% set title = "Posts" %} {% set title = "Posts" %}
{% set description = "The Gna! Blog: we write about Gitea, Free Software and the general forge ecosystem" %} {% set description = "The Gna! Blog: we write about Forgejo, Free Software and the general forge ecosystem" %}
{{ macros::get_meta_tags(title=title, description=description) }} {{ macros::get_meta_tags(title=title, description=description) }}
{% endblock meta %} {% block content %} {% endblock meta %} {% block content %}
<div class="blog__container"> <div class="blog__container">
<h1 class="blog__title">{{ section.title }}</h1> <h1 class="blog__title">{{ section.title }}</h1>
<p>Gna! is a <a href="https://gna.org/gitea-clinic">Clinic</a> to get help when a Gitea instance throws errors after an upgrade and the admin is not sure how to troubleshoot the problem. It opened in May 2022 and welcomes new patients. It will also provide dedicated Gitea hosting, including CI and more: subscribe <a href="https://hostea.org/blog/atom.xml">to the blog</a> or the <a rel="me" href="https://mastodon.online/@hostea">Mastodon account</a> to keep up to date.</p> <p>Gna! is a <a href="https://gna.org/forgejo-clinic">Clinic</a> to get help when a Forgejo instance throws errors after an upgrade and the admin is not sure how to troubleshoot the problem. It opened in May 2022 and welcomes new patients. It will also provide dedicated Forgejo hosting, including CI and more: subscribe <a href="https://hostea.org/blog/atom.xml">to the blog</a> or the <a rel="me" href="https://mastodon.online/@hostea">Mastodon account</a> to keep up to date.</p>
<ul class="blog__list"> <ul class="blog__list">
{% for page in section.pages %} {% for page in section.pages %}

View File

@ -44,7 +44,7 @@
<a href="/privacy-policy" title="Privacy Policy">Privacy</a> <a href="/privacy-policy" title="Privacy Policy">Privacy</a>
<span class="footer__column-divider--mobile-only">|</span> <span class="footer__column-divider--mobile-only">|</span>
<a <a
href="https://gitea.gna.org/Gna" href="https://forgejo.gna.org/Gna"
rel="noreferrer" rel="noreferrer"
target="_blank" target="_blank"
title="Status" title="Status"

View File

@ -3,12 +3,12 @@
<div class="index-banner__content-container"> <div class="index-banner__content-container">
<h1 class="index-banner__title"> <h1 class="index-banner__title">
<a href="https://gitea.io">Gitea</a> hosting and <a href="/gitea-clinic/">service</a>. <a href="https://forgejo.org">Forgejo</a> hosting and <a href="/forgejo-clinic/">service</a>.
</h1> </h1>
<p class="index-banner__tagline">A free forge ecosystem for free developers.</p> <p class="index-banner__tagline">A free forge ecosystem for free developers.</p>
<ul class="index-banner__features-list"> <ul class="index-banner__features-list">
<li class="index-banner__features">Dedicated <a href="https://hosteadashboard.gna.org/register/">Gitea hosting</a> and <a href="https://woodpecker-ci.org/">Woodpecker CI</a> from 10€/month</li> <li class="index-banner__features">Dedicated <a href="https://hosteadashboard.gna.org/register/">Forgejo hosting</a> and <a href="https://woodpecker-ci.org/">Woodpecker CI</a> from 10€/month</li>
<li class="index-banner__features">Clinic to <a href="/gitea-clinic/">heal sick Gitea</a> instances</li> <li class="index-banner__features">Clinic to <a href="/forgejo-clinic/">heal sick Forgejo</a> instances</li>
<li class="index-banner__features">100% <a href="https://www.gnu.org/philosophy/free-sw.html">Free Software</a></li> <li class="index-banner__features">100% <a href="https://www.gnu.org/philosophy/free-sw.html">Free Software</a></li>
<li class="index-banner__features">Radically <a href="https://forum.gna.org/t/55">Transparent</a></li> <li class="index-banner__features">Radically <a href="https://forum.gna.org/t/55">Transparent</a></li>
<li class="index-banner__features">Run by a <a href="https://forum.gna.org/t/55">horizontal collective</a></li> <li class="index-banner__features">Run by a <a href="https://forum.gna.org/t/55">horizontal collective</a></li>

View File

@ -3,9 +3,9 @@
<div class="service-card__conatiner"> <div class="service-card__conatiner">
<div class="service-card__text-container"> <div class="service-card__text-container">
<p class="service-card__service-name">Gitea Hosting</p> <p class="service-card__service-name">Forgejo Hosting</p>
<h2 class="service-card__title">Run independent software forge</h2> <h2 class="service-card__title">Run independent software forge</h2>
<p class="service-card__text">Dedicated Gitea hosting with Woodpecker, flat monthly price, unlimited bandwidth and users. All upgrades included. Fully self-hostable. ETA July 1st, 2022.</p> <p class="service-card__text">Dedicated Forgejo hosting with Woodpecker, flat monthly price, unlimited bandwidth and users. All upgrades included. Fully self-hostable. ETA July 1st, 2022.</p>
<ul class="index-banner__features-list"> <ul class="index-banner__features-list">
<li class="index-banner__features">Tested software releases</li> <li class="index-banner__features">Tested software releases</li>
<li class="index-banner__features">Infrastructure as Code Software</li> <li class="index-banner__features">Infrastructure as Code Software</li>
@ -13,7 +13,7 @@
<li class="index-banner__features">Payments manager included: become a service provider!</li> <li class="index-banner__features">Payments manager included: become a service provider!</li>
</ul> </ul>
<button class="service-card__aciton-btn"> <button class="service-card__aciton-btn">
<a href="/gitea-clinic" class="home__vision-action-link">Learn More</a> <a href="/forgejo-clinic" class="home__vision-action-link">Learn More</a>
</button> </button>
</div> </div>

View File

@ -2,23 +2,23 @@
<section class="service__features"> <section class="service__features">
<div class="service-card__group"> <div class="service-card__group">
<!-- <!--
{{ card_macro2::home_card2(title="Gitea Clinic", description="Having issues upgrading your self-hosted Gitea? Upload it to Gna! and a doctor will help out. Once it feels better you can bring it home or decide it becomes a permanent resident.", action_link="/gitea-clinic") }} {{ card_macro2::home_card2(title="Forgejo Clinic", description="Having issues upgrading your self-hosted Forgejo? Upload it to Gna! and a doctor will help out. Once it feels better you can bring it home or decide it becomes a permanent resident.", action_link="/forgejo-clinic") }}
--> -->
<div class="service-card__conatiner"> <div class="service-card__conatiner">
<div class="service-card__text-container"> <div class="service-card__text-container">
<p class="service-card__service-name">Gitea Clinic</p> <p class="service-card__service-name">Forgejo Clinic</p>
<h2 class="service-card__title">Debug and Recover Self-Hosted Gitea Instances</h2> <h2 class="service-card__title">Debug and Recover Self-Hosted Forgejo Instances</h2>
<p class="service-card__text">Having issues upgrading your self-hosted Gitea? Upload it to Gna! and a doctor will help out. Once it feels better you can bring it home or decide it becomes a permanent resident.</p> <p class="service-card__text">Having issues upgrading your self-hosted Forgejo? Upload it to Gna! and a doctor will help out. Once it feels better you can bring it home or decide it becomes a permanent resident.</p>
<ul class="index-banner__features-list"> <ul class="index-banner__features-list">
<li class="index-banner__features">Consult Gitea experts</li> <li class="index-banner__features">Consult Forgejo experts</li>
<li class="index-banner__features">Upload your sick Gitea</li> <li class="index-banner__features">Upload your sick Forgejo</li>
<li class="index-banner__features">Once it gets better bring it back home</li> <li class="index-banner__features">Once it gets better bring it back home</li>
<li class="index-banner__features">Optionally, decide it should get a permanent residence at Gna!</li> <li class="index-banner__features">Optionally, decide it should get a permanent residence at Gna!</li>
</ul> </ul>
<button class="service-card__aciton-btn"> <button class="service-card__aciton-btn">
<a href="/gitea-clinic" class="home__vision-action-link">Learn More</a> <a href="/forgejo-clinic" class="home__vision-action-link">Learn More</a>
</button> </button>
</div> </div>
@ -34,16 +34,16 @@
<!-- <!--
{{ card_macro2::home_card2(title="Gitea Hosting", description="Dedicated Gitea hosting with Woodpecker, flat monthly price, unlimited bandwidth and users. All upgrades included. Fully self-hostable. ETA July 1st, 2022.", template=true ) }} {{ card_macro2::home_card2(title="Forgejo Hosting", description="Dedicated Forgejo hosting with Woodpecker, flat monthly price, unlimited bandwidth and users. All upgrades included. Fully self-hostable. ETA July 1st, 2022.", template=true ) }}
{{ card_macro2::home_card2(title="Towards Forge Federation 🚀", description="Gna! is leading the charge in implementing forge federation. It will be made available to all hosted Gitea instance as soon as it is available.") }} {{ card_macro2::home_card2(title="Towards Forge Federation 🚀", description="Gna! is leading the charge in implementing forge federation. It will be made available to all hosted Forgejo instance as soon as it is available.") }}
--> -->
</div> </div>
<div class="action-call__container"> <div class="action-call__container">
<div class="action-call__margin-container"> <div class="action-call__margin-container">
<p class="action-call__prompt">Stuck with a broken Gitea instance? Talk to a Gna! Doctor!</p> <p class="action-call__prompt">Stuck with a broken Forgejo instance? Talk to a Gna! Doctor!</p>
<button class="action-call__button"><a href="/contact" class="action-call_link">Contact Us</a></button> <button class="action-call__button"><a href="/contact" class="action-call_link">Contact Us</a></button>
</div> </div>
</div> </div>

View File

@ -1,8 +1,8 @@
<section class="home__features"> <section class="home__features">
<h2 class="home__features-title">Services Offered</h2> <h2 class="home__features-title">Services Offered</h2>
<div class="home-card__group"> <div class="home-card__group">
{{ card_macro::home_card(title="Gitea Hosting", description="Dedicated Gitea hosting with Woodpecker, flat monthly price, unlimited bandwidth and users. All upgrades included. Fully self-hostable. ETA July 1st, 2022.") }} {{ card_macro::home_card(title="Forgejo Hosting", description="Dedicated Forgejo hosting with Woodpecker, flat monthly price, unlimited bandwidth and users. All upgrades included. Fully self-hostable. ETA July 1st, 2022.") }}
{{ card_macro::home_card(title="Gitea Clinic", description="Having issues upgrading your self-hosted Gitea? Upload it to Gna! and a doctor will help out. Once it feels better you can bring it home or decide it becomes a permanent resident.") }} {{ card_macro::home_card(title="Forgejo Clinic", description="Having issues upgrading your self-hosted Forgejo? Upload it to Gna! and a doctor will help out. Once it feels better you can bring it home or decide it becomes a permanent resident.") }}
{{ card_macro::home_card(title="Towards Forge Federation 🚀", description="Gna! is leading the charge in implementing forge federation. It will be made available to all hosted Gitea instance as soon as it is available.") }} {{ card_macro::home_card(title="Towards Forge Federation 🚀", description="Gna! is leading the charge in implementing forge federation. It will be made available to all hosted Forgejo instance as soon as it is available.") }}
</div> </div>
</section> </section>

View File

@ -3,7 +3,7 @@
{% import "home/components/home-card-new.html" as card_macro2 %} {% import "home/components/home-card-new.html" as card_macro2 %}
{% extends "base.html" %} {% block meta %} {% extends "base.html" %} {% block meta %}
{% set description = "Gna!: Dedicated managed Gitea hosting, including CI/CD {% set description = "Gna!: Dedicated managed Forgejo hosting, including CI/CD
and static pages with upgrades, backups and 24/7 monitoring" %} {% set title = and static pages with upgrades, backups and 24/7 monitoring" %} {% set title =
"Home" %} {{ macros::get_meta_tags(title=title, description=description) }} {% "Home" %} {{ macros::get_meta_tags(title=title, description=description) }} {%
endblock meta %} {% block content %} endblock meta %} {% block content %}

View File

@ -49,7 +49,7 @@
{% macro get_meta_tags(title, description) %} {% macro get_meta_tags(title, description) %}
{% set title = title ~ " | Gna!: Managed Gitea Hosting " %} {% set title = title ~ " | Gna!: Managed Forgejo Hosting " %}
<link rel="stylesheet" href="{{ get_url(path='/main.css') }}" /> <link rel="stylesheet" href="{{ get_url(path='/main.css') }}" />
<link <link
rel="stylesheet" rel="stylesheet"

View File

@ -17,7 +17,7 @@
{{ macros::nav_link(link="/about/", name="About") }} {{ macros::nav_link(link="/about/", name="About") }}
{{ macros::nav_link(link="/blog/", name="Blog") }} {{ macros::nav_link(link="/blog/", name="Blog") }}
{{ macros::nav_link(link="https://matrix.to/#/#gna:matrix.batsense.net", name="Chat") }} {{ macros::nav_link(link="https://matrix.to/#/#gna:matrix.batsense.net", name="Chat") }}
{{ macros::nav_link(link="/gitea-clinic/", name="Clinic") }} {{ macros::nav_link(link="/forgejo-clinic/", name="Clinic") }}
{{ macros::nav_link(link="https://forum.gna.org", name="Forum") }} {{ macros::nav_link(link="https://forum.gna.org", name="Forum") }}
{{ macros::nav_link(link="https://pouet.chapril.org/@gna", name="Mastodon") }} {{ macros::nav_link(link="https://pouet.chapril.org/@gna", name="Mastodon") }}
</div> </div>