Une fois Gitea installé et démarré, quelques ajustements dans app.ini transforment votre
instance en un serveur prêt pour la production : inscriptions fermées, SSH configuré, mailer
opérationnel, et sécurité renforcée.
Toute la configuration de Gitea tient dans un seul fichier : /etc/gitea/app.ini. Les
changements prennent effet après un redémarrage du service.
Structure de app.ini
Section intitulée « Structure de app.ini »app.ini suit le format INI standard, organisé en sections entre crochets. Les sections
principales d’une installation standard sont :
APP_NAME = Mon Gitea # Nom affiché dans l'interfaceRUN_USER = gitRUN_MODE = prod # prod = logs réduits, erreurs masquées aux utilisateurs
[server] # URL, ports, SSH[database] # Type et chemin de la base[security] # Tokens, hashage des mots de passe[service] # Inscriptions, e-mail de confirmation[mailer] # Envoi d'e-mails (notifications, reset de mot de passe)[log] # Niveau et format des journaux[repository] # Répertoire des dépôtsLa liste complète des options est disponible dans la documentation officielle.
Désactiver les inscriptions publiques
Section intitulée « Désactiver les inscriptions publiques »Par défaut, toute personne qui accède à l’interface web peut créer un compte. Pour un usage interne ou en équipe, désactivez cette option immédiatement.
sudo nano /etc/gitea/app.iniDans la section [service] :
[service]DISABLE_REGISTRATION = true # Seul l'admin peut créer des comptesREQUIRE_SIGNIN_VIEW = true # Les dépôts publics nécessitent une connexion pour être vusConfigurer l’URL externe
Section intitulée « Configurer l’URL externe »L’ROOT_URL est l’URL publique de votre instance. Elle est utilisée dans les liens de
clonage, les webhooks, et les e-mails de notification.
[server]DOMAIN = gitea.monentreprise.comROOT_URL = https://gitea.monentreprise.com/HTTP_PORT = 3000Configurer SSH
Section intitulée « Configurer SSH »Gitea propose deux modes pour SSH :
- SSH intégré — Gitea gère son propre serveur SSH sur un port dédié (recommandé si le port 22 est occupé par
sshd) - SSH système — Gitea utilise
sshddu système via un scriptauthorized_keys(recommandé pour le port 22 standard)
Pour utiliser le port 22, Gitea doit pouvoir écrire dans /home/git/.ssh/authorized_keys.
L’utilisateur git doit être dans le groupe sshd ou le fichier doit être accessible.
[server]DISABLE_SSH = falseSSH_DOMAIN = gitea.monentreprise.comSSH_PORT = 22SSH_CREATE_AUTHORIZED_HOSTS_FILE = trueConfigurez sshd pour déléguer les clés Git à Gitea :
# Créer le répertoire SSH pour l'utilisateur gitsudo -u git mkdir -p /home/git/.sshsudo chmod 700 /home/git/.ssh
# Gitea gère authorized_keys automatiquement lors de l'ajout de clés dans l'interface webLe serveur SSH intégré de Gitea s’exécute sur un port dédié, indépendamment de sshd.
Utile si sshd est déjà sur le port 22 et que vous ne pouvez pas le déplacer.
[server]DISABLE_SSH = falseSSH_DOMAIN = gitea.monentreprise.comSSH_PORT = 2222 # Port public affiché dans les URLs de clonageSTART_SSH_SERVER = true # Activer le serveur SSH intégréSSH_LISTEN_PORT = 2222 # Port sur lequel Gitea écoute réellementLes utilisateurs cloneront avec : git@gitea.monentreprise.com:2222:user/repo.git
Configurer le mailer
Section intitulée « Configurer le mailer »Le mailer est nécessaire pour les notifications (nouvelles issues, mentions, reset de mot de passe).
[mailer]ENABLED = trueFROM = gitea@monentreprise.comPROTOCOL = smtp+starttlsSMTP_ADDR = smtp.monentreprise.comSMTP_PORT = 587USER = gitea@monentreprise.comPASSWD = `monmotdepasse` # Entouré de backticks pour échapper les caractères spéciaux[mailer]ENABLED = trueFROM = moncompte@gmail.comPROTOCOL = smtp+starttlsSMTP_ADDR = smtp.gmail.comSMTP_PORT = 587USER = moncompte@gmail.comPASSWD = `mot_de_passe_application`Utilisez un mot de passe d’application Google, pas votre mot de passe principal.
Pour tester l’envoi :
# Envoyer un mail de test (redémarre le service d'abord)sudo systemctl restart gitea.service# Puis dans l'interface : Administration > E-mail de testSécuriser les tokens
Section intitulée « Sécuriser les tokens »Gitea génère deux tokens critiques au premier démarrage :
| Token | Rôle |
|---|---|
SECRET_KEY | Signature des cookies de session et des tokens API |
INTERNAL_TOKEN | Communication interne entre processus Gitea |
Ces valeurs sont automatiquement générées. Ne les modifiez pas après le premier démarrage — cela invaliderait toutes les sessions actives et les tokens API existants.
Pour vérifier qu’ils sont bien présents :
sudo grep -E 'SECRET_KEY|INTERNAL_TOKEN' /etc/gitea/app.iniLes deux lignes doivent avoir des valeurs non vides.
Personnaliser les limites
Section intitulée « Personnaliser les limites »Pour un usage intensif, ajustez les paramètres de performance :
[repository]MAX_CREATION_LIMIT = -1 # -1 = illimité par utilisateur
[service]MAX_DISPLAY_FILE_SIZE = 8388608 # 8 Mo — taille max d'affichage du code en ligne
[server]MAX_DISPLAY_FILE_SIZE = 8388608LANDING_PAGE = login # Page d'accueil : login | home | exploreAppliquer les changements
Section intitulée « Appliquer les changements »Chaque modification de app.ini nécessite un redémarrage du service :
sudo systemctl restart gitea.service
# Vérifier qu'il redémarre correctementsudo systemctl status gitea.service --no-pager -lVérifier la configuration effective
Section intitulée « Vérifier la configuration effective »Gitea peut afficher la configuration telle qu’elle est interprétée :
sudo -u git GITEA_WORK_DIR=/var/lib/gitea \ gitea doctor check --all \ --config /etc/gitea/app.ini 2>&1 | tail -20Un résultat sans [E] (erreur) confirme que la configuration est cohérente.
À retenir
Section intitulée « À retenir »- Toute la configuration tient dans
/etc/gitea/app.ini— un fichier à sauvegarder en priorité INSTALL_LOCK = trueetDISABLE_REGISTRATION = truesont les deux premières mesures de sécuritéROOT_URLdoit correspondre exactement à l’URL d’accès réelle des utilisateurs- Tout changement dans
app.ininécessite unsystemctl restart gitea.service gitea doctor check --allvalide la cohérence de la configuration