Gitea ... un github opensource
==============================


J'utilise beaucoup *gitweb* pour générer un serveur git.
Cela à l'avanateg d'être standard, supporté par git et de fournir une interface minimale
pour visualiser son repository git.
De plus l'image docker que je maintiens permet de créer automatique des repositories et des utilisateurs
Malheureusement cette solution n'est pas viable si on veut rajouter les fonctionnalités
- gestion de ticket
- création de dépot par un utilisateur
- fork
- proposition de pull
- notification
- gestion simple des utilisateurs
- ...
Jusqu'à present pour avoir ces fonctionnalités j'utilisais
- gitlab: mais cela est très lourd
- github: mais pas en administration interne
Il existe une solution nommé *gitea* complètement développé en **Go**
Pour lancer un serveur rien de plus simple
```
docker run -d --name=gitea -p 2222:22 -p 3000:3000 -v /data:$HOME/data gitea/gitea:latest
```
A la premièer connexion vous allez vous retrouver sur une page d'installation.
Il s'agit d'une appliction n-tiers qui necessite une base de donnée.
Sqlite fait très bien l'affaire pour de petite configuration
Vous pouvez retrouver sur le lien `https://docs.gitea.io/fr-fr/install-with-docker/`_ et sur le lien
`https://docs.gitea.io/en-us/install-with-docker/`_ toutes les informations pour avoir une configuration
plus robuste.
Pour moi les moins sont:
- impossible de créer en une image l'ensemble des utilisateurs et repository
- nécessite suite à l'installation de modifier les variables d'environnements
Cela reste une excellent solution, maintenue qui offre un visuel classique avec de nombreuses possibilités
Il est possible de customizer les pages de gitea, par exemple pour rajouter la possibilité d'utiliser mermaid.js il suffit de créer un fichier dans /data/gitea/templates/custom/footer.tmpl contenant
```html
{{if .RequireHighlightJS}}
{{end}}
```
et par la suite dans un fichier .md d'ajouter le code
```
```mermaid
stateDiagram
[*] --> Active
state Active {
[*] --> NumLockOff
NumLockOff --> NumLockOn : EvNumLockPressed
NumLockOn --> NumLockOff : EvNumLockPressed
--
[*] --> CapsLockOff
CapsLockOff --> CapsLockOn : EvCapsLockPressed
CapsLockOn --> CapsLockOff : EvCapsLockPressed
--
[*] --> ScrollLockOff
ScrollLockOff --> ScrollLockOn : EvCapsLockPressed
ScrollLockOn --> ScrollLockOff : EvCapsLockPressed
}
```
plus d'info sur https://docs.gitea.io/en-us/customizing-gitea/