Compare commits

...

42 Commits

Author SHA1 Message Date
Loïc Dachary 43ab5bb75a
replace favicon
ci/woodpecker/push/woodpecker Pipeline was successful Details
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-09-06 08:28:26 +10:00
Loïc Dachary 882e3e1717
larger logo on the front page
ci/woodpecker/push/woodpecker Pipeline was successful Details
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-09-06 08:21:01 +10:00
Loïc Dachary 37ef965888
s/gna-log-/gna-logo-/
ci/woodpecker/push/woodpecker Pipeline was successful Details
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-09-06 08:15:48 +10:00
Loïc Dachary a49829fdf7
change banner logo
ci/woodpecker/push/woodpecker Pipeline was successful Details
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-09-06 08:13:14 +10:00
Loïc Dachary df5e5bea44
change banner logo
ci/woodpecker/push/woodpecker Pipeline was successful Details
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-09-06 08:11:26 +10:00
Loïc Dachary 0a23de6747
change home page logo
ci/woodpecker/push/woodpecker Pipeline was successful Details
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-09-06 08:10:14 +10:00
Loïc Dachary 2fdc4b2318
add logos and change home page logos
ci/woodpecker/push/woodpecker Pipeline was successful Details
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-09-06 08:08:38 +10:00
Loïc Dachary 1f78a0bc41
s/Hostea/Gna!/
ci/woodpecker/push/woodpecker Pipeline was successful Details
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-09-06 07:56:07 +10:00
Loïc Dachary 3d76b7d7c9
s/hostea.org/gna.org/
ci/woodpecker/push/woodpecker Pipeline was successful Details
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-09-05 18:24:51 +10:00
Loïc Dachary fd67379f56
s/hosteadashboard.hostea/hosteadashboard.gna/
ci/woodpecker/push/woodpecker Pipeline was successful Details
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-09-05 17:59:32 +10:00
Loïc Dachary bcf1346a34
s/Hostea/Gna!/ in the home page
ci/woodpecker/push/woodpecker Pipeline was successful Details
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-09-03 07:47:00 +10:00
Loïc Dachary d05f31721e
link to Enough in the ToS
ci/woodpecker/push/woodpecker Pipeline was successful Details
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-08-19 18:24:45 +10:00
Loïc Dachary 5552dcb268
add link to support
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-08-19 18:24:44 +10:00
Aravinth Manivannan d3ac11a38a Merge pull request 'add rel="me" to Mastodon' (#52) from dachary/website:wip-mastodon into master
ci/woodpecker/push/woodpecker Pipeline was successful Details
Reviewed-on: https://gitea.hostea.org/Hostea/website/pulls/52
2022-07-21 05:33:49 -04:00
Loïc Dachary 23563778ad
add rel="me" to Mastodon
ci/woodpecker/pr/woodpecker Pipeline failed Details
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-07-21 11:32:59 +02:00
Aravinth Manivannan cefd6bce60 Merge pull request 'add link to the mastodon Hostea account' (#51) from dachary/website:wip-mastodon into master
ci/woodpecker/push/woodpecker Pipeline was successful Details
Reviewed-on: https://gitea.hostea.org/Hostea/website/pulls/51
2022-07-21 03:41:19 -04:00
Loïc Dachary e4a3a2e778
add link to the mastodon Hostea account
ci/woodpecker/pr/woodpecker Pipeline failed Details
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-07-21 01:09:20 +02:00
Loïc Dachary 69df07499b
1.17 breaking changes episode 2
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-07-20 11:57:56 +02:00
Loïc Dachary 70f7bf0f67 Merge pull request 'fix: add introducing hostea talk's slides' (#50) from realaravinth/hostea-website:fix-intro-hostea-slides into master
ci/woodpecker/push/woodpecker Pipeline was successful Details
Reviewed-on: https://gitea.hostea.org/Hostea/website/pulls/50
2022-07-12 08:16:22 -04:00
Aravinth Manivannan 9102b4d267
fix: add introducing hostea talk's slides
ci/woodpecker/pr/woodpecker Pipeline failed Details
2022-07-12 13:40:17 +05:30
Loïc Dachary 263029c56b
easter-eggs logo is png not jpg
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-07-10 12:46:09 +02:00
Loïc Dachary c327032ed3
add avatars for Easter-Eggs & dachary
ci/woodpecker/push/woodpecker Pipeline failed Details
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-07-10 12:39:11 +02:00
Loïc Dachary 32f01bef92
add avatars for Easter-Eggs & dachary
ci/woodpecker/push/woodpecker Pipeline failed Details
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-07-10 12:38:34 +02:00
Loïc Dachary d317e85ec0
update Aravinth clinic link
ci/woodpecker/push/woodpecker Pipeline was successful Details
Fixes: #43

Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-07-10 12:33:40 +02:00
Loïc Dachary 90fc8f4dfd
update easter-eggs clinic link
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-07-10 12:31:01 +02:00
Loïc Dachary 304d37815a
fix typo
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-07-10 10:30:44 +02:00
Loïc Dachary 227b847c62 Merge pull request 'fix: rm empty whitespace from homepage' (#48) from realaravinth/hostea-website:fix-homepage-whitespace into master
ci/woodpecker/push/woodpecker Pipeline was successful Details
Reviewed-on: https://gitea.hostea.org/Hostea/website/pulls/48
2022-07-10 04:20:07 -04:00
Aravinth Manivannan b80f447f13
fix: rm empty whitespace from homepage
ci/woodpecker/pr/woodpecker Pipeline failed Details
2022-07-10 13:45:00 +05:30
Aravinth Manivannan 16d6eebab1 Merge pull request 'Hosting is open' (#47) from dachary/website:wip-open into master
ci/woodpecker/push/woodpecker Pipeline was successful Details
Reviewed-on: https://gitea.hostea.org/Hostea/website/pulls/47
2022-07-10 03:47:09 -04:00
Loïc Dachary 1c3c76de1e
Hosting is open
ci/woodpecker/pr/woodpecker Pipeline failed Details
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-07-10 09:31:55 +02:00
Aravinth Manivannan 0b5e645220 Merge pull request 'update content' (#42) from dachary/website:wip-content into master
ci/woodpecker/push/woodpecker Pipeline was successful Details
Reviewed-on: https://gitea.hostea.org/Hostea/website/pulls/42
2022-07-10 01:21:48 -04:00
Loïc Dachary 2f62756e45
simpler about page with links
ci/woodpecker/pr/woodpecker Pipeline failed Details
2022-07-09 23:34:07 +02:00
Loïc Dachary f49d334342
fix typos 2022-07-09 23:33:55 +02:00
Loïc Dachary ccacc7fea2
ToS: Free Software requirement
ci/woodpecker/pr/woodpecker Pipeline failed Details
Fixes: #41

Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-07-09 23:13:13 +02:00
Loïc Dachary ed2b280eb8
update content
ci/woodpecker/pr/woodpecker Pipeline failed Details
* move talks to blog
* move contact links to menu
* rework the bullet list of the home page to reflect the current
  Hostea state
* trim the content at the bottom of the index page

Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-07-09 22:45:02 +02:00
Aravinth Manivannan 49f916a43d Merge pull request 's/hosteadashboardh/hosteadashboard/' (#39) from dachary/website:wip-dash into master
ci/woodpecker/push/woodpecker Pipeline was successful Details
Reviewed-on: https://gitea.hostea.org/Hostea/website/pulls/39
2022-07-04 02:22:24 -04:00
Loïc Dachary 186cb6367e
s/hosteadashboardh/hosteadashboard/
ci/woodpecker/pr/woodpecker Pipeline failed Details
Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-07-04 00:02:31 +02:00
Aravinth Manivannan 416decf4b8 Merge pull request 's/dash.hostea.org/hosteadashboard.hostea.org/' (#38) from dachary/website:wip-dash into master
ci/woodpecker/push/woodpecker Pipeline was successful Details
Reviewed-on: https://gitea.hostea.org/Hostea/website/pulls/38
2022-07-03 16:33:52 -04:00
Loïc Dachary fd64dc9e74
s/dash.hostea.org/hosteadashboard.hostea.org/
ci/woodpecker/pr/woodpecker Pipeline failed Details
It is a little tricky to have a cute fqdn like dash.hostea.org when
traversing two reverse proxy and configuring OAuth that depends on the
cute fqdn. I'm sure there is a way but I can't see it right now.

Signed-off-by: Loïc Dachary <loic@dachary.org>
2022-07-03 16:17:08 +02:00
Aravinth Manivannan 15d7806dff Merge pull request 'feat: add login/join links and make main action button point to dashboard' (#36) from realaravinth/hostea-website:master into master
ci/woodpecker/push/woodpecker Pipeline was successful Details
Reviewed-on: https://gitea.hostea.org/Hostea/website/pulls/36
2022-07-01 05:29:26 -04:00
Aravinth Manivannan 528c1649ac Merge pull request 'fix: footer; add link to source code' (#37) from realaravinth/hostea-website:fix-footer into master
ci/woodpecker/push/woodpecker Pipeline was successful Details
Reviewed-on: https://gitea.hostea.org/Hostea/website/pulls/37
2022-07-01 05:29:07 -04:00
Aravinth Manivannan 695388e962
feat: add login/join links and make main action button point to dashboard
ci/woodpecker/pr/woodpecker Pipeline failed Details
2022-07-01 11:44:58 +05:30
57 changed files with 274 additions and 259 deletions

View File

@ -1,8 +1,8 @@
<div align="center">
<img width="80px" alt="Hostea logo" src="./static/tmp-logo.png" />
<h1>Hostea Website</h1>
<img width="80px" alt="Gna! logo" src="./static/gna-logo-rectangle.png" />
<h1>Gna! Website</h1>
[![status-badge](https://woodpecker.hostea.org/api/badges/Hostea/website/status.svg)](https://woodpecker.hostea.org/Hostea/website)
[![status-badge](https://woodpecker.gna.org/api/badges/Hostea/website/status.svg)](https://woodpecker.hostea.org/Hostea/website)
[![AGPL License](https://img.shields.io/badge/license-AGPL-blue.svg?style=flat-square)](http://www.gnu.org/licenses/agpl-3.0)
</div>
@ -35,7 +35,7 @@ Build artifacts should be available in `./public/`
## Deployment
This repository uses [Hostea
Woodpecker-CI](https://woodpecker.hostea.org/) to build and
[Hostea/Pages](https://gitea.hostea.org/Hostea/pages) to deploy on each
This repository uses [Gna!
Woodpecker-CI](https://woodpecker.gna.org/) to build and
[Hostea/Pages](https://gitea.gna.org/Hostea/pages) to deploy on each
commit.

View File

@ -1,5 +1,5 @@
# The URL the site will be built for
base_url = "https://hostea.org"
base_url = "https://gna.org"
# Whether to automatically compile all Sass files in the sass directory
compile_sass = true

View File

@ -3,94 +3,16 @@ title = "About"
description = "About"
+++
Hostea provides dedicated managed Gitea hosting, including CI/CD and
static pages. Upgrades are carefully tested and include security
updates. Each Gitea instance is monitored 24/7 and has backups.
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.
### You will want to rent a Gitea instance at Hostea if you are ...
<video width="600" controls>
<source src="https://cloud.forgefriends.org/s/xXLcYpsE469tJEj/download?path=&files=hostea-screencast-vm-create.mp4" type="video/mp4" />
</video>
- Individual software developers or companies who need their own Gitea
instance with CI/CD and static pages 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.
- Organizations that want to resell Gitea hosting under their brand and
rent the infrastructure at a discounted price. You want the option to
run the Hostea infrastructure on your own hardware in the future and
seamlessly migrate your clients.
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.
### Committed to Free Software and Radical Transparency
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.
- Everything is public, there are no internal discussions, all financial
records are public down to the last cent
- Every piece of software is and will always be exclusively Free
Software so that it can be self-hosted by users and re-used by
competitors
- Private data (names, addresses, etc. ) is carefully protected and
destroyed as soon as possible
---
### Hostea is operated by a collective of individuals and organizations
The members of Hostea are like minded individuals and organizations who
share the same commitment to Free Software and transparency. They share
the Hostea income in proportion of their involvement which is recorded
in a publicly available spreadsheet for everyone to audit.
The motivation for becoming a member of Hostea can be:
- To refer the occasional customer to Hostea, knowing it has a vote to
influence where Hostea is going.
- To provide Gitea hosting to its clients under its own brand because it
is easier than setting up Hostea on their own hardware to do the same.
And knowing that when they want to do so it will be as easy as
possible.
- To make a living as a Free Software developer working on developing
and maintaining Hostea. The time logged working on Hostea will be
compensated with the income.
- To support the idea of a sustainable online service exclusively based
on Free Software (there are actually very few of them, it is a non
trivial problem to solve) and do nothing. In which case there won't be
any income distributed to the member.
- To free developers from centralized forges lock-in by providing a
reliable alternative and work on the Ansible playbooks to maintain
Hostea. In which case the member is entitled to a share of the income
in proportion of the time.
### Truly self-hostable
When self-hosting the development of a software project is difficult, it
is a theoretical possibility that has no practical use. The Gitea
project itself has been stuck on GitHub for many years. Hostea is
committed to provide a seamless migration path to self hosting. A
virtual machine to run the Gitea instance, including CI/CD and static
pages can be downloaded at any time. It can then be booted on premise or
in the cloud.
The infrastructure as code running Hostea itself is published,
documented and tested so that it can also be used on premise. Either to
manage the virtual machine retrieved from Hostea, with the same user
panel, monitoring, backups etc. Or to run a public Gitea hosting service
identical to Hostea and become a competitor.
### Interoperable with existing infrastructures
Running Hostea with its integrated monitoring and backup system is an
interesting proposition: all in one. When it is deployed within an
existing infrastructure that has its own backup and monitoring setup, it
provides:
- A monitoring endpoint to get a global health status (red/green) which
is an aggregation of the probes deployed to verify Gitea runs,
security updates have been applied, the latest upgrades are installed,
backups have been successfully created, communicates with the CI etc.
- A backup download endpoint to get a copy of the backups so they can be
stored in the existing backup system for safekeeping
### Hostea is not ...
- Hostea is not a shared Gitea hosting facility that can be used for free
such as Codeberg. It provides dedicated Gitea instances for a fee.
- Hostea is not a company with shareholders that make a passive income.
The income is redistributed to the people and organizations doing the
work. The workers are also empowered with every decision about Hostea,
either by consensus or by vote.
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.hostea.org/c/site-feedback/2) or [the chat](https://matrix.to/#/#hostea:matrix.batsense.net).

View File

@ -3,7 +3,7 @@ title = "Project plans for a hosted Gitea online service"
date = 2022-04-18
description = "When an organization asks me about Gitea, I would like to direct them to a provider where they can rent an instance and just use it"
[taxonomies]
tags = ['hostea', 'gitea', 'free-software', 'free-software-sustainability']
tags = ['gna', 'gitea', 'free-software', 'free-software-sustainability']
[extra]
author = 'dachary'

View File

@ -3,7 +3,7 @@ title = "[solved] blank or error 500 page after login"
date = 2022-05-08
description = "After going to production, some Gitea users saw a blank page after login and had to manually type the URL of the project they wanted to see in the browser."
[taxonomies]
tags = ['hostea', 'gitea', 'upgrade', 'troubleshoot', 'problem']
tags = ['gna', 'gitea', 'upgrade', 'troubleshoot', 'problem']
[extra]
author = 'dachary'
@ -11,7 +11,7 @@ author = 'dachary'
The [instructions to upgrade a Gitea instance](https://docs.gitea.io/en-us/upgrade-from-gitea/#upgrade-from-binary) only require three to four steps. They work fine most of the time but the documentation is lacking a "Troubleshooting" section to help out when something goes wrong. Maintaining instructions on how to diagnose and fix upgrade problems is an ambitious undertaking and requires updates every time a new case is discovered.
An [inventory of the known upgrade issues](https://forum.hostea.org/t/things-to-know-about-gitea-upgrades/39) was started to figure out how to structure such a section in the documentation. The [release notes](https://blog.gitea.io/) were analyzed all the way back to [Gitea 1.9.6](https://github.com/go-gitea/gitea/releases/tag/v1.9.6) and the work is still in progress. Here is a sample of the tips that will be included:
An [inventory of the known upgrade issues](https://forum.gna.org/t/things-to-know-about-gitea-upgrades/39) was started to figure out how to structure such a section in the documentation. The [release notes](https://blog.gitea.io/) were analyzed all the way back to [Gitea 1.9.6](https://github.com/go-gitea/gitea/releases/tag/v1.9.6) and the work is still in progress. Here is a sample of the tips that will be included:
* Upgrade directly to the latest Gitea version, there is no need to upgrade to intermediate versions.
* If the upgrade from version x.y to version x.y+2 fails and there is a need to narrow down the problem, try upgrading to the latest minor version of each major version and verify it works.
@ -35,7 +35,7 @@ There was hope to fix Gitea and in the following days they applied the workaroun
# Getting professional help
The [Hostea Clinic](https://hostea.org/gitea-clinic/) is a collective of individual and companies that provides professional services to Gitea admins. They are active members of the Gitea community who [help out](https://discourse.gitea.io/u/dachary/activity) as volunteers. They can also be hired to resolve the more complicated cases.
The [Gna! Clinic](https://gna.org/gitea-clinic/) is a collective of individual and companies that provides professional services to Gitea admins. They are active members of the Gitea community who [help out](https://discourse.gitea.io/u/dachary/activity) as volunteers. They can also be hired to resolve the more complicated cases.
The Gitea instance that was in trouble required more than a few minutes of work and access to the database content for a proper diagnostic. They [proposed their assistance](https://discourse.gitea.io/t/blank-page-after-login/5051/13) but although [well received](https://discourse.gitea.io/t/user-research-about-gitea-upgrade-experiences-call-for-volunteers/5063/2), it was not accepted.
@ -52,7 +52,7 @@ To summarize with a timeline, here is what happened:
And in retrospect, here is what could have happened instead:
* J+1: The **problem is discovered** by users who see a blank page after login
* J+1: The Gitea admin **[reaches out to someone at the Hostea Clinic](https://hostea.org/gitea-clinic/)**
* J+1: The Gitea admin **[reaches out to someone at the Gna! Clinic](https://gna.org/gitea-clinic/)**
* J+2: The [logs of the Gitea instance](https://discourse.gitea.io/t/blank-page-after-login/5051/12) are analyzed, **the root cause diagnosed** and [a patch](https://discourse.gitea.io/t/blank-page-after-login/5051/17) is created to fix it.
* J+3: If necessary a Gitea binary is created with the patch and used as a temporary replacement until the next point release is published with [the backport](https://github.com/go-gitea/gitea/pull/19629). The Gitea admin runs the patched Gitea binary in the meantime. **There is no data loss**.

View File

@ -3,7 +3,7 @@ title = "[solved] Gitea 1.16.[678] error: fatal: unsafe repository is owned by s
date = 2022-05-15
description = "If Gitea runs as user git, calls a patched Git version and a parent directory of the git repositories is owned by a user other than git, it will fail."
[taxonomies]
tags = ['hostea', 'gitea', 'upgrade', 'troubleshoot', 'problem']
tags = ['gna', 'gitea', 'upgrade', 'troubleshoot', 'problem']
[extra]
author = 'dachary'

View File

@ -3,7 +3,7 @@ title = "[solved] Gitea 1.15 and up: path not found or permission denied"
date = 2022-05-28
description = "After migrating from 1.15 or earlier to gitea 1.16 paths are no longer found and files cannot be created because of permission problems because the default example.ini file changed."
[taxonomies]
tags = ['hostea', 'gitea', 'upgrade', 'troubleshoot', 'problem']
tags = ['gna', 'gitea', 'upgrade', 'troubleshoot', 'problem']
[extra]
author = 'dachary'

View File

@ -3,7 +3,7 @@ title = "[diagnostic] Zombies created by Gitea"
date = 2022-06-02
description = "An increasing number of zombies processes are created by Gitea because it only kills its direct children on timeout."
[taxonomies]
tags = ['hostea', 'gitea', 'troubleshoot', 'problem']
tags = ['gna', 'gitea', 'troubleshoot', 'problem']
[extra]
author = 'dachary'

View File

@ -3,7 +3,7 @@ title = "[solved] Zombies created by Gitea"
date = 2022-06-04
description = "Gitea can use process groups to kill its children using a negative PID to never create zombies."
[taxonomies]
tags = ['hostea', 'gitea', 'troubleshoot', 'problem']
tags = ['gna', 'gitea', 'troubleshoot', 'problem']
[extra]
author = 'dachary'

View File

@ -3,13 +3,13 @@ title = "[tutorial] A gentle introduction to the gitea doctor"
date = 2022-06-14
description = "The doctor command is useful to check the health of a running Gitea instance. Specially after performing an upgrade."
[taxonomies]
tags = ['hostea', 'gitea', 'troubleshoot', 'problem', 'tutorial']
tags = ['gna', 'gitea', 'troubleshoot', 'problem', 'tutorial']
[extra]
author = 'dachary'
+++
While helping people with their upgrades [in the Gitea forum](https://discourse.gitea.io/t/migration-from-1-2-to-1-16-8/5309) or [at the Hostea clinic](https://forum.hostea.org/t/gitea-upgrade-from-1-14-1-to-1-16-8/90), I realized that few Gitea admins know about the [`gitea doctor`](https://docs.gitea.io/en-us/command-line/#doctor) command and decided to write this blog post as a gentle introduction.
While helping people with their upgrades [in the Gitea forum](https://discourse.gitea.io/t/migration-from-1-2-to-1-16-8/5309) or [at the Gna! clinic](https://forum.gna.org/t/gitea-upgrade-from-1-14-1-to-1-16-8/90), I realized that few Gitea admins know about the [`gitea doctor`](https://docs.gitea.io/en-us/command-line/#doctor) command and decided to write this blog post as a gentle introduction.
### An apple a day keeps the doctor away

View File

@ -3,7 +3,7 @@ title = "1.17 breaking changes episode 1: preserving a custom gitconfig"
date = 2022-06-22
description = "The location of the gitconfig file used by Gitea moved and custom modifications must be manually moved as well."
[taxonomies]
tags = ['hostea', 'gitea', 'troubleshoot', 'problem', 'tutorial']
tags = ['gna', 'gitea', 'troubleshoot', 'problem', 'tutorial']
[extra]
author = 'dachary'
@ -28,7 +28,7 @@ However, if an Gitea installation was done differently and `$HOME/.gitconfig` ha
It is also possible that the file was modified manually by the Gitea admin for other reasons. In both there is a **potential for breakage when upgrading to Gitea >= 1.17 because the location of the file changed**. It must be moved manually to the new location as follows:
* Figure out the directory where `$HOME/.gitconfig` must be moved by [running the doctor](https://hostea.org/blog/gentle-introduction-to-the-doctor/):
* Figure out the directory where `$HOME/.gitconfig` must be moved by [running the doctor](https://gna.org/blog/gentle-introduction-to-the-doctor/):
```shell
$ gitea --work-path /app/gitea -c /data/gitea/conf/app.ini doctor
@ -44,4 +44,4 @@ OK
* Copy the `$HOME/.gitconfig` file to the **Repository Root Path** (which is `/data/git/repositories` in the example above).
The reason why this breaking change was introduced is to workaround [a rare problem](https://hostea.org/blog/unsafe-repository-is-owned-by-someone-else/) impacting Gitea installations relying on networked volumes.
The reason why this breaking change was introduced is to workaround [a rare problem](https://gna.org/blog/unsafe-repository-is-owned-by-someone-else/) impacting Gitea installations relying on networked volumes.

View File

@ -0,0 +1,34 @@
+++
title = "1.17 breaking changes episode 2: preserving a custom gitconfig"
date = 2022-07-20
description = "The location of the gitconfig file used by Gitea moved twice, here is a guide to sort out why and how to deal with it."
[taxonomies]
tags = ['gna', 'gitea', 'troubleshoot', 'problem', 'tutorial']
[extra]
author = 'dachary'
+++
On June 21st, 2022 1.17.0-rc1 was published and the location of the gitconfig file moved to a new location, [which required manual intervention](2022-06-23-1.17-breaking-episode-1). This change impacted a large number of Gitea installations because the docker image tag **latest** [was set to 1.17.0-rc1](https://mastodon.online/@hostea/108514134565401798) by accident. As a result, about 10,000 pulls per hour from the docker hub got the release candidate instead of the expected stable version.
Unfortunately moving the git home directory in 1.17.0-rc1 was implemented in way that created a security problem. The [fix that was merged in Gitea](https://github.com/go-gitea/gitea/pull/20114) to fix it requires moving the gitconfig file and was released July 19th, 2022 in 1.17.0-rc2.
This would have been a minor inconvenience if it only has an impact on adventurous people trying the release candidate in a test environment. But since all Gitea production installations based on the **latest** tag were inadvertently upgraded to 1.17.0-rc1, the admins who moved their custom .gitconfig will need to move it one more time when upgrading to 1.17.0-rc2.
In 1.17.0-rc2, a custom .gitconfig must be moved manually to the [new git home directory](https://docs.gitea.io/en-us/config-cheat-sheet/#git-git) as follows:
* Figure out the directory where `$HOME/.gitconfig` must be moved by [running the doctor](https://gna.org/blog/gentle-introduction-to-the-doctor/):
```shell
$ gitea --work-path /app/gitea -c /data/gitea/conf/app.ini doctor
[1] Check paths and basic configuration
- [I] Configuration File Path: "/data/gitea/conf/app.ini"
- [I] Repository Root Path: "/data/git/repositories"
- [I] Data Root Path: "/data/gitea"
- [I] Custom File Root Path: "/data/gitea"
- [I] Work directory: "/app/gitea"
- [I] Log Root Path: "/data/gitea/log"
OK
```
* Copy the `$HOME/.gitconfig` file to the **Data Root Path**/home (which is `/data/gitea/home` in the example above).

View File

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

View File

@ -1,5 +1,5 @@
+++
title = "Introducing Hostea"
title = "Introducing Gna!"
date = "2022-04-22"
description = "Introducing Hostea, a project Loïc Dachary and Aravinth Manivannan are working on to create a 100% Free software development suite, complete with CI/CD, static pages and gists"
draft = false
@ -11,7 +11,7 @@ tags = ['hostea', 'forgefriends']
author = 'realaravinth'
+++
Introducing [Hostea](https://hostea.org), a project [Loïc
Introducing [Hostea](https://gna.org), a project [Loïc
Dachary](https://dachary.org) and [Aravinth
Manivannan](https://batsense.net) are working on to create a full Free
software development suite based on

View File

@ -3,17 +3,17 @@ title = "Code of Conduct"
description = "Code of Conduct"
+++
### The Hostea collective strives to:
### The Gna! collective strives to:
* **Be friendly, patient and welcoming.** We strive to be a collective that welcomes and supports people of all backgrounds and identities. This includes, but is not limited to, members of any race, ethnicity, culture, national origin, colour, immigration status, social and economic class, educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief, religion and mental and physical ability.
* **Be considerate.** Our work will be used by other people, and we in turn will depend on the work of others. Any decision we take will affect users and colleagues, and we should take those consequences into account when making decisions. Remember that we're a world-wide community and we have a global base of users and of contributors. Even if it's not obvious at the time, our contributions to projects managed by the hostea collective will impact the work of others.
* **Be respectful.** Not all of us will agree all the time, but disagreement is no excuse for poor behavior and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. Its important to remember that a collective where people feel uncomfortable or threatened is not a productive one. Members of the collective should be respectful when dealing with other contributors as well as with people outside of the collective and with users of the projects managed by Hostea.
* **Collaborate openly.** Collaboration is central to projects managed by Hostea and to the larger free software community. This collaboration involves individuals working within teams, cross-project collaboration within Hostea and working with other projects outside of Hostea. This collaboration reduces redundancy, and improves the quality of our work. Internally and externally, we should always be open to collaboration. Wherever possible, we should work closely with upstream and downstream projects and others in the free software community to coordinate our technical, advocacy, documentation and other work. Our work must be done transparently and we should involve as many interested parties as early as possible. If we decide to take a different approach than others, we will let them know early, document our work and inform others regularly of our progress. We do not create private forms of communication that take away transparency or exclude other contributors and collaborators.
* **When we disagree, try to understand why.** Disagreements, both social and technical, happen all the time and Hostea is no exception. It is important that we resolve disagreements and differing views constructively. Remember that were different. The strength of Hostea comes from people with a wide range of backgrounds. Different people have different perspectives on issues. Being unable to understand why someone holds a viewpoint doesnt mean that theyre wrong.
* **Be considerate.** Our work will be used by other people, and we in turn will depend on the work of others. Any decision we take will affect users and colleagues, and we should take those consequences into account when making decisions. Remember that we're a world-wide community and we have a global base of users and of contributors. Even if it's not obvious at the time, our contributions to projects managed by the Gna! collective will impact the work of others.
* **Be respectful.** Not all of us will agree all the time, but disagreement is no excuse for poor behavior and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. Its important to remember that a collective where people feel uncomfortable or threatened is not a productive one. Members of the collective should be respectful when dealing with other contributors as well as with people outside of the collective and with users of the projects managed by Gna!.
* **Collaborate openly.** Collaboration is central to projects managed by Gna! and to the larger free software community. This collaboration involves individuals working within teams, cross-project collaboration within Hostea and working with other projects outside of Hostea. This collaboration reduces redundancy, and improves the quality of our work. Internally and externally, we should always be open to collaboration. Wherever possible, we should work closely with upstream and downstream projects and others in the free software community to coordinate our technical, advocacy, documentation and other work. Our work must be done transparently and we should involve as many interested parties as early as possible. If we decide to take a different approach than others, we will let them know early, document our work and inform others regularly of our progress. We do not create private forms of communication that take away transparency or exclude other contributors and collaborators.
* **When we disagree, try to understand why.** Disagreements, both social and technical, happen all the time and Gna! is no exception. It is important that we resolve disagreements and differing views constructively. Remember that were different. The strength of Hostea comes from people with a wide range of backgrounds. Different people have different perspectives on issues. Being unable to understand why someone holds a viewpoint doesnt mean that theyre wrong.
* **Focus on helping to resolve issues and learning from mistakes.** It is important that we resolve disagreements and differing views constructively and with the help of the collective. When our goals differ dramatically, we encourage the creation of alternative implementations, so that the collective can test new ideas and contribute to the discussion.
* **When we are unsure, we ask for help.** Nobody knows everything, and nobody is expected to be perfect in Hostea. Asking questions avoids many problems down the road, and so questions are encouraged. Those who are asked questions should be responsive and helpful. However, when asking a question, care must be taken to do so in an appropriate forum.
* **When we are unsure, we ask for help.** Nobody knows everything, and nobody is expected to be perfect in Gna!. Asking questions avoids many problems down the road, and so questions are encouraged. Those who are asked questions should be responsive and helpful. However, when asking a question, care must be taken to do so in an appropriate forum.
### We take the following very seriously, and any violations may impact your ability to participate in Hostea
### We take the following very seriously, and any violations may impact your ability to participate in Gna!
* **Be careful with your words and actions.** Do not insult or put down other participants. Harassment and other exclusionary behavior is not acceptable and should be reported. This includes but is not limited to:
* Violent threats or language directed against another person.
@ -24,4 +24,4 @@ description = "Code of Conduct"
* Unwelcome sexual attention.
* Advocating for, or encouraging, any of the above behavior.
* Repeated harassment of others. In general, if someone asks you to stop, then stop.
* **Respect the decision process.** Members of Hostea should not attempt to manipulate decisons based on consensus or election results. Open debate is welcome, but vote trading, ballot stuffing and other forms of abuse are not acceptable.
* **Respect the decision process.** Members of Gna! should not attempt to manipulate decisons based on consensus or election results. Open debate is welcome, but vote trading, ballot stuffing and other forms of abuse are not acceptable.

View File

@ -1,21 +0,0 @@
---
title: "Contact"
draft: false
---
## Matrix
We have a public [Matrix
chatroom](https://matrix.to/#/#hostea:matrix.batsense.net) that we use
for instant messaging.
## Forum
We also have a [forum](https://forum.hostea.org/) that we use for
long-form discussions.
## Source Code
All Hostea software is 100% [Free
Software](https://www.gnu.org/philosophy/free-sw.en.html) and is hosted
on the [Hostea Gitea](https://gitea.hostea.org)

View File

@ -5,16 +5,16 @@ description = "Get help with your sick Gitea instance"
## How does it work?
You can get help from the community on the [Hostea forum](https://forum.hostea.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 [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:
1. Get in touch with the [doctor of your choice](#hostea-doctors)
1. Get in touch with the [doctor of your choice](#gna-doctors)
2. Upload your sick Gitea
3. Once it is repaired download it back home (or decide it deserves a permanent residence at [Hostea](https://hostea.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
## How much does it cost?
All Hostea 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 Hostea 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 Hostea doctor.
## Hostea Doctors
## Gna! Doctors
{{ gitea_clinic_doc_reviews() }}

View File

@ -17,14 +17,14 @@ There is no warranty for the service, to the extent permitted by applicable law.
## Limitation of Liability
In no event unless required by applicable law or agreed to in writing will any member of the Hostea community, or any other party who modifies the service as permitted by Hostea, be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use or inability to use the service (including but not limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of the service to operate with any other service), even if such member or other party has been advised of the possibility of such damages.
In no event unless required by applicable law or agreed to in writing will any member of the Gna! community, or any other party who modifies the service as permitted by Hostea, be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use or inability to use the service (including but not limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of the service to operate with any other service), even if such member or other party has been advised of the possibility of such damages.
## Interpretation of the Warranty and Liability disclaimers](#interpretation)
## Interpretation of the Warranty and Liability disclaimers
If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the service.
## Hosting
The services and this web site, as well as all sub-domains, are exclusively maintained and used by the individuals composing the Hostea. They can be reached at contact@hostea.org.
The services and this web site, as well as all sub-domains, are exclusively maintained and used by the individuals composing the Gna!. They can be reached at contact@gna.org.
For details, see [the documentation](https://enough-community.readthedocs.io/).

View File

@ -11,7 +11,7 @@ In the context of a horizontal community, the word **we** has a different meanin
We collect information from you when you register on our site and gather data when you participate in the community by reading, writing, and evaluating the content shared here.
When registering on Hostea sites, you may be asked to enter your name and e-mail address. You may, however, visit our sites without registering. Your e-mail address will be verified by an email containing a unique link. If that link is visited, we know that you control the e-mail address.
When registering on Gna! sites, you may be asked to enter your name and e-mail address. You may, however, visit our sites without registering. Your e-mail address will be verified by an email containing a unique link. If that link is visited, we know that you control the e-mail address.
When registered and participating, we record the IP address that the post originated from. We also may retain server logs which include the IP address of every request to our server.
@ -35,7 +35,7 @@ We will make a good faith effort to:
## What about my data?
Users of Hotea's services can ask contact@hostea.org to:
Users of Hotea's services can ask contact@gna.org to:
* Delete their account on a service when it is not a feature available to the user (for instance Nextcloud)
* Retrieve data associated with their account on a service that does not already provide full access

View File

@ -3,5 +3,5 @@ title: "Service Work in Progress"
draft: false
---
Thank you for your interest in Hostea, we are a work-in-progress. [Come
Thank you for your interest in Gna!, we are a work-in-progress. [Come
say hi](/contact) and join the conversion! :)

View File

@ -1,7 +0,0 @@
+++
title = "Talks"
sort_by = "date"
template = "blog/index.html"
page_template = "blog/post.html"
generate_feed = true
+++

View File

@ -5,19 +5,27 @@ draft: false
## CHATONS Charter compliance
Hostea is committed to comply with the [CHATONS charter](https://framagit.org/chatons/CHATONS/-/blob/master/docs/charter-and-manifesto.md).
Gna! is committed to comply with the [CHATONS charter](https://framagit.org/chatons/CHATONS/-/blob/master/docs/charter-and-manifesto.md).
All applications and infrastructure software used in Hostea are published under a Free Software license.
All applications and infrastructure software used in Gna! are published under a Free Software license.
## User content
Hostea has no copyright claim over content uploaded by its users.
Gna! has no copyright claim over content uploaded by its users.
Hostea hosts, via application software, content in private spaces that are not publicly accessible. Hostea system administrators is committed to not look into those private spaces, even when they have the technical ability to do so, so as to respect the privacy expectations of hostea users.
Gna! hosts, via application software, content in private spaces that are not publicly accessible. Hostea system administrators are committed to not look into those private spaces, even when they have the technical ability to do so, to respect the users privacy.
## Infrastructure](#infrastructure)
## Support
Hostea exclusively uses resources located in France, at the Graveline OVH datacenter (59820 Gravelines, Nord-Pas-de-Calais-Picardie, France) and at 12 bd Magenta, 75010 Paris, France. A copy of the backups is kept at Arndtstr 44, 10965 Berlin, Germany.
Support requests should be filed as an issue in https://gitea.gna.org/Hostea/support/issues.
## Publicly available content published on Gitea 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).
## Infrastructure
Gna! exclusively uses resources located in France, at the Graveline OVH datacenter (59820 Gravelines, Nord-Pas-de-Calais-Picardie, France) and at 12 bd Magenta, 75010 Paris, France. A copy of the backups is kept at Arndtstr 44, 10965 Berlin, Germany. It is created and maintained using [Enough](https://lab.enough.community/main/infrastructure).
## Security
@ -31,14 +39,14 @@ Disaster recovery involves rebooting the machine that was lost using a backup, e
## GDPR compliance
A user can request deletion or anonymisation of the data they are unable to delete themselves by sending a request to contact@hostea.org.
A user can request deletion or anonymisation of the data they are unable to delete themselves by sending a request to contact@gna.org.
A user can request an copy of the data held by Hostea that they are unable to download themselves by sending a request to contact@hostea.org.
A user can request an copy of the data held by Gna! that they are unable to download themselves by sending a request to contact@gna.org.
## Editorial responsibility
The person responsible for the editorial content published on Hostea is Loïc Dachary, 12 bd Magenta, 75010 Paris.
The person responsible for the editorial content published on Gna! is Loïc Dachary, 12 bd Magenta, 75010 Paris.
## Human contact
Hostea users are kindly invited to get in touch with loic@dachary.org and organize a meeting in person to discuss the services provided.
Gna! users are kindly invited to get in touch with loic@dachary.org and organize a meeting in person to discuss the services provided.

View File

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

View File

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

View File

@ -1,4 +1,4 @@
# Add ratings to Hostea Doctor
# Add ratings to Gna! Doctor
1. To rate Doctor `batman` from
[./gitea-clinic-new-doctor.md](./gitea-clinic-new-doctor.md) guide,

View File

@ -11,7 +11,7 @@ date = "yyyy-mm-dd"
description = "description of talk, will be displayed in talk listing"
[taxonomies]
tags = ['hostea']
tags = ['gna']
[extra]
# **Only use author nicks in blog post Markdown files, it is used to lookup author details.**

View File

@ -54,7 +54,7 @@ $heading-letter-spacing: 20px;
}
.index-banner__logo {
width: 120px;
// width: 120px;
margin: auto;
border-radius: 20px;
}

View File

@ -4,6 +4,7 @@
display: flex;
align-items: center;
height: 200px;
justify-content: space-between;
}
.home__vision-text-line {

View File

@ -28,8 +28,13 @@ header {
display: none;
}
.nav__spacer--small {
width: 100px;
margin: auto;
}
.nav__spacer {
flex: 3;
flex: 4;
margin: auto;
}
@ -53,7 +58,8 @@ header {
width: 40px;
}
.nav__link-group {
@mixin nav__link-group {
flex: 1.5;
list-style: none;
display: flex;
flex-direction: row;
@ -63,13 +69,37 @@ header {
text-align: center;
}
.nav__link-container {
.nav__link-group {
@include nav__link-group;
}
.nav__link-group--small {
@include nav__link-group;
flex: 0.5;
margin-right: 10px;
}
@mixin nav__link-container {
display: flex;
padding: 10px;
height: 100%;
margin: auto;
}
.nav__link-container {
@include nav__link-container;
}
.nav__link-container--action {
@include nav__link-container;
background-color: green;
padding: 15px;
.nav__link {
color: white !important;
}
}
.nav__link {
text-decoration: none;
color: black !important;

View File

@ -14,7 +14,8 @@ $nav__hamburger-inner-height: 1.3px;
justify-content: space-between;
}
.nav__link-group {
.nav__link-group,
.nav__link-group--small {
position: sticky;
flex-direction: column;
margin: auto;
@ -23,11 +24,26 @@ $nav__hamburger-inner-height: 1.3px;
// background-color: $light-blue;
}
.nav__link-container {
.nav__link-container--action {
background-color: #fff;
.nav__link {
color: #000 !important;
}
}
@mixin nav__link-container {
border-bottom: 1px dashed rgba(55, 55, 55, 0.4);
width: 70%;
}
.nav__link-container {
@include nav__link-container;
}
.nav__link-container--action {
@include nav__link-container;
}
.nav__link-container:last-child {
border-bottom: none;
}
@ -46,13 +62,17 @@ $nav__hamburger-inner-height: 1.3px;
display: none;
}
.nav__toggle:not(:checked) ~ .nav__link-group {
.nav__link-group {
margin-right: auto;
}
.nav__toggle:not(:checked) ~ .nav__link-group, .nav__link-group--small {
max-height: 0;
transition: max-height $hamburger-menu-animation;
overflow: hidden;
}
.nav__toggle:checked ~ .nav__link-group {
.nav__toggle:checked ~ .nav__link-group, .nav__toggle:checked ~ .nav__link-group--small {
max-height: 500px;
transition: max-height $hamburger-menu-animation;
}

View File

@ -57,7 +57,7 @@ set_ssh_remote() {
repository_owner=$(echo $http_remote_url | cut -d '/' -f 4)
repository_name=$(echo $http_remote_url | cut -d '/' -f 5)
ssh_remote="git@$remote_hostname:$repository_owner/$repository_name"
ssh_remote="git@gitea.hostea.org:Hostea/website.git"
ssh_remote="git@gitea.gna.org:Hostea/website.git"
git remote add $SSH_REMOTE_NAME $ssh_remote
}
@ -79,7 +79,7 @@ deploy() {
git -c core.sshCommand="/usr/bin/ssh -oStrictHostKeyChecking=no -i $SSH_ID_FILE"\
push --force $SSH_REMOTE_NAME $2
curl -vv --location --request \
POST "http://hostea.org:5000/api/v1/update"\
POST "http://gna.org:5000/api/v1/update"\
--header 'Content-Type: application/json' \
--data-raw "{ \"secret\": \"$1\", \"branch\": \"$2\" }"
fi

View File

@ -80,7 +80,7 @@ build() {
}
no_absolute_url() {
sed -i 's/https:\/\/hostea.org//g' $(find public -type f | grep html)
sed -i 's/https:\/\/gna.org//g' $(find public -type f | grep html)
}
clean() {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 711 B

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 829 B

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
static/gna-logo-square.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
static/people/dachary.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -8,6 +8,7 @@
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="manifest" href="/site.webmanifest" />
<link rel="me" href="https://pouet.chapril.org/@gna" />
<link rel="stylesheet" href="{{ get_url(path='/main.css') }}" />
<link
rel="stylesheet"

View File

@ -1,14 +1,14 @@
{% extends "base.html" %} {% block meta %}
{% set title = "Posts" %}
{% set description = "The Hostea Blog: we write about Gitea, Free Software and the general forge ecosystem" %}
{% set description = "The Gna! Blog: we write about Gitea, Free Software and the general forge ecosystem" %}
{{ macros::get_meta_tags(title=title, description=description) }}
{% endblock meta %} {% block content %}
<div class="blog__container">
<h1 class="blog__title">{{ section.title }}</h1>
<p>Hostea is a <a href="https://hostea.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/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>
<ul class="blog__list">
{% for page in section.pages %}

View File

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

View File

@ -3,21 +3,20 @@
<div class="index-banner__content-container">
<h1 class="index-banner__title">
Free Forge Ecosystem for Free Developers
<a href="https://gitea.io">Gitea</a> hosting and <a href="/gitea-clinic/">service</a>.
</h1>
<p class="index-banner__tagline">Hostea is a self-hostable libre software development
suite comprising Gitea, Woodpecker CI, Librepages and GitPad with payments integration.</p>
<p class="index-banner__tagline">A free forge ecosystem for free developers.</p>
<ul class="index-banner__features-list">
<li class="index-banner__features">100% Free Software</li>
<li class="index-banner__features">Fully Self-Hostable</li>
<li class="index-banner__features">Observable and Reliable</li>
<li class="index-banner__features">Federation when available</li>
<li class="index-banner__features">Radically Transparent</li>
<li class="index-banner__features">Horizontal Community</li>
<li class="index-banner__features">Run Hostea and become a service provider!</li>
<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">Clinic to <a href="/gitea-clinic/">heal sick Gitea</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">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">25% of the income <a href="https://forum.gna.org/t/decision-revenue-sharing-model/92">dedicated to sustain Free Software dependencies</a></li>
<li class="index-banner__features">Committed to <a href="https://forgefriends.org/blog/2022/06/30/2022-06-state-forge-federation/">further forge federation</a></li>
</ul>
<button class="index-banner__main-action-btn">
<a href="/service-wip" class="index-banner__main-action-link"
<a href="https://hosteadashboard.gna.org" class="index-banner__main-action-link"
>Get Started</a
>
</button>
@ -26,8 +25,8 @@
<div class="index-banner__logo-container">
<img
class="index-banner__logo"
src="{{ get_url(path='/tmp-logo.png', cachebust=true) }}"
alt="Hostea temporary logo"
src="{{ get_url(path='/gna-logo-rectangle.png', cachebust=true) }}"
alt="Gna! logo"
/>
</div>

View File

@ -2,11 +2,11 @@
<div class="index-banner">
<img
class="index-banner__logo"
src="{{ get_url(path='/tmp-logo.png', cachebust=true) }}"
alt="Hostea temporary logo"
src="{{ get_url(path='/gna-logo-rectangle.png', cachebust=true) }}"
alt="Gna! temporary logo"
/>
<h1 class="index-banner__title">HOSTEA</h1>
<p class="index-banner__tagline">Gitea's Paradise</p>
<h1 class="index-banner__title">Gna!</h1>
<p class="index-banner__tagline">Free Software forge hosting</p>
<button class="index-banner__main-action-btn">
<a href="/service-wip" class="index-banner__main-action-link">Get Started</a>
</button>

View File

@ -30,8 +30,8 @@
</div>
<div class="home-card__group">
{{ card_macro::home_card(title="Towards Forge Federation 🚀", description="Hostea developers are also leading the charge in implementing ecosystem-wide federation, we really care about software development :)") }}
{{ card_macro::home_card(title="Observable and Reliable", description="All Hostea software come with monitoring and backups configured for high, observable reliability") }}
{{ card_macro::home_card(title="Fully Self-Hostable ", description="Like to get your hands dirty? We got you covered! Hostea comes with infrastructure as code and documentation to make self-hostable a first class experience") }}
{{ card_macro::home_card(title="Towards Forge Federation 🚀", description="Gna! developers are also leading the charge in implementing ecosystem-wide federation, we really care about software development :)") }}
{{ card_macro::home_card(title="Observable and Reliable", description="All Gna! software come with monitoring and backups configured for high, observable reliability") }}
{{ card_macro::home_card(title="Fully Self-Hostable ", description="Like to get your hands dirty? We got you covered! Gna! comes with infrastructure as code and documentation to make self-hostable a first class experience") }}
</div>
</section>

View File

@ -2,7 +2,7 @@
<section class="service__features">
<div class="service-card__group">
<!--
{{ card_macro2::home_card2(title="Gitea Clinic", description="Having issues upgrading your self-hosted Gitea? Upload it to Hostea 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="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") }}
-->
@ -10,12 +10,12 @@
<div class="service-card__text-container">
<p class="service-card__service-name">Gitea Clinic</p>
<h2 class="service-card__title">Debug and Recover Self-Hosted Gitea Instances</h2>
<p class="service-card__text">Having issues upgrading your self-hosted Gitea? Upload it to Hostea 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 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>
<ul class="index-banner__features-list">
<li class="index-banner__features">Consult Gitea experts</li>
<li class="index-banner__features">Upload your sick Gitea</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 hostea</li>
<li class="index-banner__features">Optionally, decide it should get a permanent residence at Gna!</li>
</ul>
<button class="service-card__aciton-btn">
<a href="/gitea-clinic" class="home__vision-action-link">Learn More</a>
@ -37,13 +37,13 @@
{{ 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="Towards Forge Federation 🚀", description="Hostea 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 Gitea instance as soon as it is available.") }}
-->
</div>
<div class="action-call__container">
<div class="action-call__margin-container">
<p class="action-call__prompt">Stuck with a broken Gitea instance? Talk to a Hostea Doctor!</p>
<p class="action-call__prompt">Stuck with a broken Gitea instance? Talk to a Gna! Doctor!</p>
<button class="action-call__button"><a href="/contact" class="action-call_link">Contact Us</a></button>
</div>
</div>

View File

@ -2,7 +2,7 @@
<h2 class="home__features-title">Services Offered</h2>
<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="Gitea Clinic", description="Having issues upgrading your self-hosted Gitea? Upload it to Hostea 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="Hostea 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="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="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.") }}
</div>
</section>

View File

@ -26,7 +26,7 @@
</p>
<div class="home__vision-action-container">
<h2 class="home__vision-intro-title">Meet Hostea</h2>
<h2 class="home__vision-intro-title">Meet Gna!</h2>
<p class="home__vision-intro-tagline">
Where sustainable free homes are created for free software development
</p>

View File

@ -14,7 +14,7 @@
<div class="service-card__icon-container">
<img
src="{{ get_url(path='/tmp-logo.png', cachebust=true) }}"
src="{{ get_url(path='/gna-logo-rectangle.png', cachebust=true) }}"
alt="Temporary card icon"
class="service-card__icon"
/>

View File

@ -1,7 +1,7 @@
{% macro home_card(title, description) %}
<div class="home-card__conatiner">
<img
src="{{ get_url(path='/tmp-logo.png', cachebust=true) }}"
src="{{ get_url(path='/gna-logo-rectangle.png', cachebust=true) }}"
alt="Temporary card icon"
class="home-card__icon"
/>

View File

@ -3,35 +3,10 @@
{% import "home/components/home-card-new.html" as card_macro2 %}
{% extends "base.html" %} {% block meta %}
{% set description = "Hostea: Dedicated managed Gitea hosting, including CI/CD
{% set description = "Gna!: Dedicated managed Gitea hosting, including CI/CD
and static pages with upgrades, backups and 24/7 monitoring" %} {% set title =
"Home" %} {{ macros::get_meta_tags(title=title, description=description) }} {%
endblock meta %} {% block content %}
{% include "home/components/_banner-new.html" %}
<!-- <div class="index__container"> -->
<div class="index__group-content">
<div class="page__group-content">
<div class="action-call__container">
<div class="action-call__margin-container">
<p class="action-call__prompt">Need an independent forge? Talk to an expert!</p>
<button class="action-call__button"><a href="/contact" class="action-call_link">Contact Us</a></button>
</div>
</div>
<div class="page__container--split">
{% include "home/components/_vision.html" %}
<section class="home__features">
<div class="home-card__group">
{{ card_macro::home_card(title="Radically Transparent", description="Hostea is radically transparent, we hold discussions in the open and publish all expenses down to the last penny") }}
{{ card_macro::home_card(title="100% Free Software", description="All Hostea components are Free, you are welcome to download and even sell Hostea!") }}
{{ card_macro::home_card(title="Horizontal Community", description="Hostea development is lead by a horizontal community minded individuals and organisations with a common goal to advance Free Software.") }}
</div>
</section>
</div>
{% include "home/components/_services-new.html" %}
{% include "home/components/_features.html" %}
</div>
</div>
<!-- </div> -->
{% endblock content %}

View File

@ -49,7 +49,7 @@
{% macro get_meta_tags(title, description) %}
{% set title = title ~ " | Hostea: Managed Gitea Hosting " %}
{% set title = title ~ " | Gna!: Managed Gitea Hosting " %}
<link rel="stylesheet" href="{{ get_url(path='/main.css') }}" />
<link
rel="stylesheet"
@ -169,6 +169,13 @@
</div>
{% endmacro nav_link %}
{% macro nav_link_action(link, name) %}
<div class="nav__link-container--action">
<a class="nav__link" rel="noreferrer" href="{{ link }}">{{ name }}</a>
</div>
{% endmacro nav_link %}
{% macro get_author(nick) %}
{% for author in config.extra.authors %}
{% if author.nick == nick %}

View File

@ -6,27 +6,24 @@
<div class="nav__header">
<a class="nav__logo-container" href="/">
<img src="{{ get_url(path='/android-icon-48x48.png', cachebust=true) }}"
alt="Hostea temporary logo"/>
<p class="nav__home-btn">
ostea
</p>
<img src="{{ get_url(path='/gna-logo-rectangle-48px.png', cachebust=true) }}" alt="Gna!"/>
</a>
<label class="nav__hamburger-menu" for="nav__toggle">
<span class="nav__hamburger-inner"></span>
</label>
</div>
<div class="nav__spacer"></div>
<div class="nav__spacer--small"></div>
<div class="nav__link-group">
{{ macros::nav_link(link="/about/", name="About") }}
{{ macros::nav_link(link="/blog/", name="Blog") }}
{{ macros::nav_link(link="/contact/", name="Contact") }}
{{ macros::nav_link(link="/gitea-clinic/", name="Gitea Clinic") }}
{{ macros::nav_link(link="/talks/", name="Talks") }}
{{ macros::nav_link(link="/about/", name="About") }}
{{ macros::nav_link(link="/blog/", name="Blog") }}
{{ 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="https://forum.gna.org", name="Forum") }}
{{ macros::nav_link(link="https://pouet.chapril.org/@gna", name="Mastodon") }}
</div>
<div class="nav__spacer"></div>
<div class="nav__link-group--small">
{{ macros::nav_link(link="https://hosteadashboard.gna.org/login/", name="Login") }}
{{ macros::nav_link_action(link="https://hosteadashboard.gna.org/register/", name="Join") }}
</div>
</nav>