Choisir un serveur git gratuit sur site : Gitea est le gagnant !
Essayer de choisir un bon serveur git open source
Souhaitez-vous déplacer vos projets loin des fournisseurs de git en nuage ouvert et envisager d’héberger localement un serveur git interne ?
Choix des serveurs
Faire fonctionner votre propre serveur git ne devrait pas être trop difficile, n’est-ce pas ?
Maintenant, choisir un serveur git gratuit parmi une très courte liste d’options. Bonobo Gogs vs Gitea vs Gitlab.
Bonobo est gratuit mais uniquement pour Windows, et n’a pas de version Linux.
Gitlab est riche en fonctionnalités et exige beaucoup de ressources, c’est une expérience manuelle. C’est un produit commercial mais il a également une version gratuite .
Gogs est très léger, je l’ai essayé et il a bien fonctionné, mais il manque d’un registre de conteneurs.
Le comparatif me semble favoriser Gitea.
Gitea et Postgresql dockerisés
https://docs.gitea.com/next/installation/install-with-docker
cd ~
mkdir gitea
cd gitea
docker-compose.yml :
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
depends_on:
- db
db:
image: postgres:14
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=gitea
- POSTGRES_DB=gitea
networks:
- gitea
volumes:
- ./postgres:/var/lib/postgresql/data
ensuite
docker-compose up -d
naviguez vers http://localhost:3000/
pour arrêter
docker-compose down
les volumes resteront
Utilisation des ressources
Les conteneurs utilisent 260 Mo de RAM et un peu de CPU.
Taille totale des images Docker : 583 Mo. 422 Mo de cela est l’image postgres:14. L’image postgres:14-alpine occupe 239 Mo, pourrait également fonctionner si les ressources sont limitées.
PS. Après avoir migré plus de 10 dépôts vers gitea, certains forking et clonage du conteneur gitea seul utilisent maintenant 420 Mo de RAM. Il faut rester attentif à cela.
Synchroniser deux dépôts
https://docs.gitea.com/next/usage/repo-mirror
On peut faire push et pull.
pull
- Sélectionnez Nouvelle migration dans le menu Créer… en haut à droite.
- Sélectionnez le service de dépôt distant.
- Entrez l’URL du dépôt.
- Si le dépôt nécessite une authentification, remplissez vos informations d’authentification.
- Cochez la case Ce dépôt sera un miroir.
- Sélectionnez Migrer le dépôt pour enregistrer la configuration.
Le dépôt est maintenant miroir périodiquement depuis le dépôt distant. Vous pouvez forcer une synchronisation en sélectionnant Synchroniser maintenant dans les paramètres du dépôt.
Vous ne pouvez configurer qu’une synchronisation en pull pour des dépôts qui n’existent pas encore sur votre instance. Une fois que le dépôt est créé, vous ne pouvez plus le convertir en miroir de pull.
Configuration HTTPS
Il y a plus sur la configuration SSL : https://docs.gitea.com/next/administration/https-setup
mais nous allons essayer cela pour l’instant (pris du site gitea) :
Utilisation du serveur intégré
Avant d’activer HTTPS, assurez-vous d’avoir des certificats SSL/TLS valides. Vous pouvez utiliser des certificats auto-générés pour l’évaluation et les tests. Veuillez exécuter
gitea cert --host [HOST]
pour générer un certificat auto-signé.
Si vous utilisez Apache ou nginx sur le serveur, il est recommandé de consulter le guide sur le proxy inverse.
Pour utiliser le support HTTPS intégré de Gitea, vous devez modifier votre fichier app.ini :
[server]
PROTOCOL = https
ROOT_URL = https://git.example.com:3000/
HTTP_PORT = 3000
CERT_FILE = cert.pem
KEY_FILE = key.pem
Notez que si votre certificat est signé par une autorité de certification tierce (c’est-à-dire non auto-signé), alors cert.pem doit contenir la chaîne de certificats. Le certificat serveur doit être le premier élément dans cert.pem, suivi des intermédiaires s’ils existent. Le certificat racine n’a pas besoin d’être inclus car le client connecté doit déjà le posséder pour établir la relation de confiance. Pour en savoir plus sur les valeurs de configuration, veuillez consulter la Feuille de répartition des configurations.
Pour le champ CERT_FILE ou KEY_FILE, le chemin du fichier est relatif à la variable d’environnement GITEA_CUSTOM lorsqu’il s’agit d’un chemin relatif. Il peut également être un chemin absolu.
Configuration de la redirection HTTP Le serveur Gitea n’est capable de réceptionner qu’un seul port ; pour rediriger les requêtes HTTP vers le port HTTPS, vous devrez activer le service de redirection HTTP :
[server]
REDIRECT_OTHER_PORT = true
; Port sur lequel le service de redirection doit écouter
PORT_TO_REDIRECT = 3080
Si vous utilisez Docker, assurez-vous que ce port est configuré dans votre fichier docker-compose.yml.
Utilisation d’un proxy inverse
Dans cet article : Gitea-ssl je configure Apache comme proxy inverse terminant le TLS.
À faire
configuration ssh : https://docs.gitea.com/next/installation/install-with-docker
test de sauvegarde/restauration.