Personnellement j'utilise PostgreSQL, créons une base et un utilisateur dédié pour Gitea :
-- Exemple de création de DB + USER avec PostgreSQL
CREATE DATABASE gitea;
CREATE USER gitea WITH PASSWORD 'mot-de-passe-fort-ici';
ALTER ROLE gitea SET client_encoding TO 'utf8';
ALTER ROLE gitea SET default_transaction_isolation TO 'read committed';
ALTER ROLE gitea SET timezone TO 'UTC';
Création d'un utilisateur (Linux) dédié au service gitea
Créons un utilisateur qui servira à executer Gitea, vous pouvez l'appeler git (ou tout autre username de votre choix)
Gitea signe tous ses binaires avec une clé GPG afin de s'assurer qu'aucune altération du fichier n'a été effectuée sur le fichier récupéré (avant ou pendant le téléchargement par ex.)
Pour valider le binaire, téléchargez le fichier de signature : il se termine en .asc et porte le nom de la version téléchargée.
Créons un service avec systemd pour Gitea, pour cela, créez le fichier : /etc/systemd/system/gitea.service
Éditez-le avec l'éditeur de votre choix
sudo vim /etc/systemd/system/gitea.service
Entrez le contenu suivant :
[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/conf/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
# If you want to bind Gitea to a port below 1024 uncomment
# the two values below
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target
Une fois que toutes les étapes ont été effectuées, vous avez deux choix possibles pour finaliser la configuration de Gitea :
Soit vous configurez votre gitea directement depuis votre navigateur (en visitant l'URL de votre gitea)
Soit vous créez le fichier un fichier de config /etc/gitea/conf/app.ini manuellement et remplissez les bonnes informations
Note de sécurité
Si vous avez opté pour la configuration via le web : pensez à configurer rapidement votre gitea car quiconque ayant accès et connaissant votre URL est en mesure de le faire à votre place.
Le risque est tout de même très faible, ca serait vraiment un coup de malchance.
Si vous voulez restreindre l'accès au formulaire de configuration, plusieurs options s'offrent à vous :
vous pouvez configurer une règle firewall pour autoriser les connexions entrantes uniquement depuis votre IP pour les ports TCP 80 et 443
autoriser seulement le port 22 et faire une redirection du port de gitea (3000) en local...
mettre un HTTP basic auth temporaire
etc.
Documentation du fichier de configuration
Voici la documentation officielle du fichier de configuration :
Ne vous fiez pas à l'image que vous allez voir dans la partie "Configuration via le web" car les couples clé/valeur sont ammenés à changer.
Si vous avez opté pour la même configuration que notre tutoriel, vous trouverez le fichier à l'emplacement suivant : /etc/gitea/conf/app.ini (c'est également l'emplacement par défaut).
Configuration via le web
Naviguez à l'URL de votre gitea (ex: gitea.exemple.com), vous devriez voir ce formulaire :
Remplissez les bonnes informations.
À la fin de la page, dans la section "Optionnal Settings" vous avez une sous-section "Administrator Account Settings" : c'est ici que pouvez créer votre compte administrateur.
Si vous avez déjà cliqué sur Install Gitea, ne vous inquiétez pas : le premier utilisateur créé sera automatiquement admin.
La section Email Settings peut également être intéressante à compléter pour que gitea envoie les emails liés au système (comme la réinitialisation de mot de passe, validation de pull request, etc.)
Dans tous les cas, vous pourrez revenir sur votre configuration en modifiant le fichier de configuration généré.
Désactivez l'enregistrement (signup) de nouveaux utilisateurs
Je vous conseille de désactiver l'enregistrement (signup) de nouveaux utilisateurs sur votre serveur gitea, vous pourrez toujours créer de nouveaux comptes depuis l'interface web avec votre compte admin.
Ouvrez le fichier de configuration et mettez DISABLE_REGISTRATION à true :