Aller au contenu
Culture DevOps medium
🔐 Alerte sécurité — Incident supply chain Trivy : lire mon analyse de l'attaque

Configurer Gitea après l'installation

9 min de lecture

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.

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'interface
RUN_USER = git
RUN_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ôts

La liste complète des options est disponible dans la documentation officielle.

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.

Fenêtre de terminal
sudo nano /etc/gitea/app.ini

Dans la section [service] :

[service]
DISABLE_REGISTRATION = true # Seul l'admin peut créer des comptes
REQUIRE_SIGNIN_VIEW = true # Les dépôts publics nécessitent une connexion pour être vus

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.com
ROOT_URL = https://gitea.monentreprise.com/
HTTP_PORT = 3000

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 sshd du système via un script authorized_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 = false
SSH_DOMAIN = gitea.monentreprise.com
SSH_PORT = 22
SSH_CREATE_AUTHORIZED_HOSTS_FILE = true

Configurez sshd pour déléguer les clés Git à Gitea :

Fenêtre de terminal
# Créer le répertoire SSH pour l'utilisateur git
sudo -u git mkdir -p /home/git/.ssh
sudo chmod 700 /home/git/.ssh
# Gitea gère authorized_keys automatiquement lors de l'ajout de clés dans l'interface web

Le mailer est nécessaire pour les notifications (nouvelles issues, mentions, reset de mot de passe).

[mailer]
ENABLED = true
FROM = gitea@monentreprise.com
PROTOCOL = smtp+starttls
SMTP_ADDR = smtp.monentreprise.com
SMTP_PORT = 587
USER = gitea@monentreprise.com
PASSWD = `monmotdepasse` # Entouré de backticks pour échapper les caractères spéciaux

Pour tester l’envoi :

Fenêtre de terminal
# Envoyer un mail de test (redémarre le service d'abord)
sudo systemctl restart gitea.service
# Puis dans l'interface : Administration > E-mail de test

Gitea génère deux tokens critiques au premier démarrage :

TokenRôle
SECRET_KEYSignature des cookies de session et des tokens API
INTERNAL_TOKENCommunication 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 :

Fenêtre de terminal
sudo grep -E 'SECRET_KEY|INTERNAL_TOKEN' /etc/gitea/app.ini

Les deux lignes doivent avoir des valeurs non vides.

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 = 8388608
LANDING_PAGE = login # Page d'accueil : login | home | explore

Chaque modification de app.ini nécessite un redémarrage du service :

Fenêtre de terminal
sudo systemctl restart gitea.service
# Vérifier qu'il redémarre correctement
sudo systemctl status gitea.service --no-pager -l

Gitea peut afficher la configuration telle qu’elle est interprétée :

Fenêtre de terminal
sudo -u git GITEA_WORK_DIR=/var/lib/gitea \
gitea doctor check --all \
--config /etc/gitea/app.ini 2>&1 | tail -20

Un résultat sans [E] (erreur) confirme que la configuration est cohérente.

  • Toute la configuration tient dans /etc/gitea/app.ini — un fichier à sauvegarder en priorité
  • INSTALL_LOCK = true et DISABLE_REGISTRATION = true sont les deux premières mesures de sécurité
  • ROOT_URL doit correspondre exactement à l’URL d’accès réelle des utilisateurs
  • Tout changement dans app.ini nécessite un systemctl restart gitea.service
  • gitea doctor check --all valide la cohérence de la configuration

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn