Introduction
Gitea est un dépôt git complet (HTTP/HTTPS et SSH) qui consomme peu de mémoire. Il est facilement installable sur une distribution "Alpine linux".
Installation
- Sur une "Alpine linux 3.14", 32 bits, 384 Mo de mémoire, disque dur de 32 Go.
- Il ne doit pas y avoir de serveur ssh actif (sshd ou dropbear). Désinstallez-le si nécessaire.
- Dans "/etc/apk/repositories", activez tous les dépôts, puis "apk update", "apk upgrade", reboot.
- Installez gitea : "apk add gitea".
- A partir d'un client, en mode graphique, avec un navigateur web :
- Connectez vous sur "http://ipDuServeurGitea:3000"
- Utilisez les options par défaut, il est possible de tout modifier plus tard.
- Créez un premier compte. Celui-ci sera l'administrateur de gitea.
- Sur la machine Alpine, modifiez le fichier "/etc/gitea/app.ini" :
# Configuration cheat sheet: https://docs.gitea.io/en-us/config-cheat-sheet/ RUN_USER = gitea RUN_MODE = prod APP_NAME = Git with a cup of tea [repository] ROOT = /var/lib/gitea/git SCRIPT_TYPE = sh [server] STATIC_ROOT_PATH = /usr/share/webapps/gitea APP_DATA_PATH = /var/lib/gitea/data LFS_START_SERVER = true LFS_JWT_SECRET = PhIAAXEQlWlR5vHbSmqUafS4X51OKGRIc-qWKoBPlvs SSH_DOMAIN = forge.mondomaine.net DOMAIN = forge.mondomaine.net HTTP_PORT = 3000 ROOT_URL = http://forge.mondomaine.net:3000/ DISABLE_SSH = false SSH_PORT = 2222 LFS_CONTENT_PATH = /var/lib/gitea/data/lfs OFFLINE_MODE = false START_SSH_SERVER = true [database] DB_TYPE = sqlite3 PATH = /var/lib/gitea/db/gitea.db SSL_MODE = disable HOST = 127.0.0.1:3306 NAME = gitea USER = gitea PASSWD = SCHEMA = CHARSET = utf8 LOG_SQL = false [session] PROVIDER = file [log] ROOT_PATH = /var/log/gitea MODE = console LEVEL = info ROUTER = console [security] INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE2MzkyMzU3NzB9.rgqpVi86zR-Tgt2ZkKGgQr5qKmiWsP9J2gIMa7HMRsU INSTALL_LOCK = true SECRET_KEY = S2QSbW7tL0MWG7CxlUGe1YzadHCIUu3DRL5IfTJemPrTBwL0XgJ3zSS55dzPTzkT PASSWORD_HASH_ALGO = pbkdf2 [mailer] ENABLED = false [service] REGISTER_EMAIL_CONFIRM = false ENABLE_NOTIFY_MAIL = false DISABLE_REGISTRATION = false ALLOW_ONLY_EXTERNAL_REGISTRATION = true ENABLE_CAPTCHA = false REQUIRE_SIGNIN_VIEW = false DEFAULT_KEEP_EMAIL_PRIVATE = false DEFAULT_ALLOW_CREATE_ORGANIZATION = true DEFAULT_ENABLE_TIMETRACKING = true NO_REPLY_ADDRESS = noreply.localhost [picture] DISABLE_GRAVATAR = false ENABLE_FEDERATED_AVATAR = true [openid] ENABLE_OPENID_SIGNIN = true ENABLE_OPENID_SIGNUP = true
- "ALLOW_ONLY_EXTERNAL_REGISTRATION = true" permet de désactiver la création de compte.
- "START_SSH_SERVER = true" permet de lancer le serveur ssh intégré à gitea.
- N'oubliez pas d'activer le service "gitea" au démarrage, avec la commande "rc-update add gitea".
- Reboot
Création d'utilisateurs
Compte classique
A l'aide du compte administrateur, dans la partie "Administration du site" (menu déroulant du profil) :
- Onglet "Comptes utilisateurs"
- Bouton "Créer un compte"
- User visibility : Limited (pour ne pas apparaître sans connexion)
Compte en lecture seule (eleve:btsinfo)
- Onglet "Comptes utilisateurs"
- Bouton "Créer un compte"
- User visibility : Limited
- Après création du compte, changer le nombre maximal de dépôts à 0.
- Ne pas autoriser la création d'organisation.
- Dans l'onglet "Couriels de l'utilisateur", désactiver l'email.
Compte administrateur
- User visibility : Private
Utilisation de SSH
- Le serveur SSH intégré utilise dans tous les cas le compte système gitea. Un mappage vers le compte utilisateur est réalisé en interne.
- L'accès classique avec login et mot de passe est impossible, il faut obligatoirement utiliser un système de clé privé/publique
- Par exemple pour le compte "classique" ezola :
- Créer sur un client une paire de clé avec "ssh-keygen". Je n'utilise pas de passphrase.
- Copier le contenu de la clé publique "~/.ssh/id_rsa.pub" en passant par un éditeur comme geany, vers le compte ezola sur gitea, dans la partie "configuration" du profil, onglet "Clés SSH/GPG".
- Le SSH est maintenant possible, uniquement à partir du client qui contient la clé privé "id_rsa", et vers le compte ezola.
- La commande git de clonage est semblable à :
git clone ssh://gitea@forge.mondomaine.net:2222/ezola/Essai.git