Rechercher un article

Gitnet héberge vos pages statiques

Gitnet est la forge logicielle que je gère depuis quelques années et qui héberge la totalité de mes projets. Elle s'appuie sur l'excellentissime Gitea, un logiciel libre pour faire son propre Github/Gitlab sans dépenser des fortunes en ressources matérielles.

Gitea est un logiciel très complet mais une des fonctionnalités qui peut manquer à certain⋅e⋅s est la publication pages web statiques via la forge. Codeberg a développé Codeberg/pages-server, un projet écrit en GO qui permet de réaliser cette fonctionnalité. Il lance un serveur web et sert les fichiers qui sont récupérés via l'API. Après l'avoir forké pour le personnalisé, il est à présent déployé sur Gitnet Pages.

Pour commencer à publier, vous devez créer un dépot pages dans lequel vous déposerez y vos fichiers. Le contenu sera accessible via https://votre-login.gitnet.page/{fichier}.

Dans le cas où vous souhaitez intégrer des pages à un dépot existant, ajoutez une branche pages puis accédez à votre contenu via https://votre-login.gitnet.page/le-depot/{fichier} :

dev@project $ git switch --orphan pages
# Si vous avez des fichiers ignorés par git qui existent :
dev@project $ git rm --cached -r .

Et si vous désirez accéder à du contenu qui se trouve sur une autre branche, il faudra la spécifier de cette façon : https://votre-login.gitnet.page/le-depot/@la-branche/{fichier}.

Vous pouvez utiliser un générateur de site static mais il faudra ajouter un CI/CD. J'ai réalisé des tests avec Hugo + Woordpecker et ça marche bien ! On build la branche ou se trouve les sources, on copie le résultat dans la branche pages et on pousse le code sur Gitnet. Voici la configuration utilisée.

Si toutefois le service venait à être pas mal utilisé, alors j'intégrerai des fonctionnalités plus avancées comme le nom de domaine personnalité. Tel qu'il est déployé actuellement, ce n'est pas possible.

Gitnet Pages


Migration de Gogs vers Gitea

Gogs est une plateforme pour gérer des dépôts GIT à la manière de Github. C'est un projet sous licence MIT qui fonctionne bien mais son développeur ne propose par une collaboration des plus simple.

Il y a pas mal de temps déjà, la communauté a forké le projet pour créer Gitea. Au départ, nous avions une version très proche de Gogs mais Gitea évolue maintenant de façon indépendante. Gitea offre plus de fonctionnalités et j'ai décidé de migrer Gitnet vers cet outil.

La migration n'a pas été évidente mais voici une TODO list si vous souhaitez le faire de votre coté !

  1. Faire une sauvegarde de la base de données de Gogs
  2. Faire une sauvegarde des dépots de Gogs
  3. Suivre la procédure décrite dans la documentation

Après ça, mon répertoire gitea a cette forme :

/custom
/custom/conf/
/custom/conf/app.ini
/data
/data/avatars
/data/sessions
/log

Au départ, j'ai fait le bourrin et j'ai lancé la version 1.5 de gitea pour au final tout casser. Du coup, pour passer de Gogs à Gitea 1.5, j'ai décidé de récupérer les binaires des versions 1.0, 1.1, 1.2, 1.3 et 1.4 de Gitea et je les ai lancé successivement. Je me suis donc assuré de ne manquer aucne migrations de base de données.

Dans /path/to/gitea :

for v in 1.0.2 1.1.0 1.2.0 1.3.0 1.4.0 1.5.0; do
    wget https://github.com/go-gitea/gitea/releases/download/v${v}/gitea-${v}-linux-amd64
    chmod +x gitea-${v}-linux-amd64
done

…Et on migre la base de données en démarrant chacune de ces versions :

git@host: /path/to/gitea $ ./gitea-1.0.2-linux-amd64 web
git@host: /path/to/gitea $ ./gitea-1.1.0-linux-amd64 web
git@host: /path/to/gitea $ ./gitea-1.2.1-linux-amd64 web
git@host: /path/to/gitea $ ./gitea-1.3.0-linux-amd64 web
git@host: /path/to/gitea $ ./gitea-1.4.0-linux-amd64 web
git@host: /path/to/gitea $ ./gitea-1.5.0-linux-amd64 web

À l'heure où j'écris cet article, la version 1.5.1 est dispo mais elle ne fonctionne pas chez moi. Je vais donc attendre un peu pour upgrader Gitea.

J'ai fais le tour de Gitnet et je n'ai pas rencontré de bug. J'espère ne pas être passé à coté d'un gros soucis ! En tout cas, je suis très content d'avoir pu réaliser cette migration en même pas une heure !


Hébergement et déploiement de sites statiques via Gitnet

Comme je l'ai évoqué dans mon bilan 2015, je souhaite publier le plus de choses possibles cette année. Bien souvent, je me contente d'écrire un article et de mettre à disposition les sources avec un README en guise de documentation.

J'ai donc réfléchi à un système pour publier facilement des projets sans devoir mettre en place un hébergement "classique" sur mon serveur. Je me suis donc penché sur ce qui est fait ailleurs et je me suis rendu compte que le système de pages Github était à la fois pratique et simple. On ajoute un dépôt, on le met à jour et on a un site mis en ligne.

Gitnet

Tout n'est pas encore automatisé, mais je propose depuis peu un système équivalent : Gitnet. Vous devez vous créer un compte sur la forge gitnet et ensuite m'envoyer un email avec l'URL du dépôt et le nom de votre projet. Il faudra ensuite configurer un webhook et le tour est joué ! Vous pushez, vous déployez :)

webhook gitnet