Installation et configuration de Gogs avec Apache (CentOS 7.3)
Gogs (GO Git Service) est une interface web Git légère. Il est écrit en Go.
Installation de Gogs
Afin de nous simplifier l’installation et les mises à jour de Gogs, nous allons l’installer à partir du dépôt mis à disposition. Aucun fichier « .repo » n’étant fourni, nous allons le créer manuellement. Pour cela, on tape la commande suivante :
|
|
On y ajoute les lignes suivantes :
|
|
Nous allons maintenant la clé qui permettra de vérifier l’authenticité des paquets que nous téléchargerons depuis le dépôt via leur signature. Pour cela, on tape la commande suivante :
|
|
Maintenant que le fichier repo est créé et que la clé est importée, nous pouvons installé Gogs. Pour cela, on tape la commande suivante :
|
|
On démarre Nginx en utilisant la commande suivante :
|
|
Sur CentOS, le démon Gogs n’est pas configuré pour se lancer au démarrage de la machine. Nous allons le configurer pour qu’il se lance à chaque démarrage via la commande suivante :
|
|
Installation d’Apache
Nous allons installer Apache via la commande suivante :
|
|
Au démarrage d’Apache, il est possible que celui-ci ne soit pas capable de déterminer un nom de domaine. Ce message sera affiché dans le terminal :
|
|
Avant de modifier le fichier de configuration d’Apache, nous allons le sauvegarder via la commande suivante :
|
|
Pour corriger l’erreur, on édite le fichier de configuration Apache via la commande suivante :
|
|
On dé-commente la ligne #ServerName:80 (ligne 95) et on modifie le nom du serveur :
|
|
Par :
|
|
Configuration d’Apache
Sur CentOS, le démon httpd n’est pas configuré pour se lancer au démarrage de la machine. Nous allons le configurer pour qu’il se lance à chaque démarrage via la commande suivante :
|
|
On créé le répertoire qui contiendra les fichiers de log du site web via la commande suivante :
|
|
Nous allons créer un VirtualHost que nous appellerons « monsiteweb.fr.conf » via la commande suivante :
|
|
On y enregistre les lignes suivantes :
|
|
On démarre Apache en utilisant la commande suivante :
|
|
Configuration de Firewalld
Par défaut le port 80 n’est pas ouvert sur le firewall (firewalld). Nous allons donc l’ouvrir via la commande suivante :
|
|
Comme nous venons de créer une règle permanente, nous devons demander à « firewalld » de relire les règles via la commande suivante :
|
|
Installation et configuration de MariaDB
Installation du serveur MariaDB via la commande suivante :
|
|
Sur CentOS, le démon mysqld n’est pas configuré pour se lancer au démarrage de la machine. Nous allons le configurer pour qu’il se lance à chaque démarrage via la commande suivante :
|
|
Afin de pouvoir lancer l’outil de configuration MariaDB, nous allons lancer le service via la commande :
|
|
Maintenant nous pouvons lancer l’outil de configuration MariaDB pour configurer le mot de passe de root (« mariadb » par exemple), supprimer les utilisateurs anonymes, supprimer les bases de tests et désactiver la possibilité pour root de se connecter à distance via la commande :
|
|
Création d’un utilisateur et d’une base de données pour Gogs
Nous allons nous connecter au serveur MariaDB via la commande suivante :
|
|
Nous allons créer une base de données « gogsdb » via la commande suivante :
|
|
Nous allons créer un utilisateur « gogs » avec le mot de passe « password » et lui donner tous les droits à sur la base de donnée « gogsdb » ainsi que spécifier le type de moteur de stockage à utiliser pour cette base via les commandes suivantes :
|
|
On quitte le serveur MariaDB via la commande suivante :
|
|
Nous allons modifier le contexte SELinux pour autoriser Apache à se connecter au réseau de la machine via la commande suivante :
|
|
Configuration de Gogs
Afin de configurer Gogs, nous allons nous rendre à l’adresse : http://git.monsiteweb.fr/ et on rempli les champs comme ci-dessous. La base de données:
Paramètres généraux de Gogs
Paramètres facultatifs
Création d’un repository/dépôt Gogs
Un repository/dépôt Gogs est une sorte de répertoire qui contiendra l’ensemble des fichiers du projet. Pour en créer un, nous devons cliquer en haut à droite sur le petit « + », puis « Nouveau dépôt »
On renseigne le nom du repository/projet, ainsi qu’une description, puis l’on clique sur « Créer un dépôt »
Une nouvelle page va s’afficher avec les URL (au format HTTPS et SSH) pour la synchronisation avec notre futur repository/dépôt local. Nous allons copier l’URL au format SSH dans un document texte. Elle nous servira par la suite
Création d’une SSH
Nous allons maintenant nous attaquer à la création d’une paire clé SSH (Publique et Privée) afin de nous permettre de synchroniser notre repository/dépôt local avec notre repository/dépôt GitHub. Elles seront au format RSA et auront une longueur de 4096 bits. Pour cela on tape la commande suivante :
|
|
Lors de la création, il va vous êtes proposer de créer une passphrase (« mot de passe ») pour la clé. Pour plus de sécurité, je vous conseille d’en mettre un. Maintenant que la paire de clé est créée, nous devons copier la clé publique sur GitHub. Pour cela, nous éditons le fichier « id_rsa.pub » via la commande suivante :
|
|
On copie l’ensemble du contenu. Ensuite on se rend sur son compte Gogs, on clique en haut à droite, a droite du « + », puis sur « Paramètres »
On clique sur « Clés SSH » dans les onglets verticaux
On clique sur le bouton « Ajouter une clé »
Pour en simplifier la gestion on donne un nom (nom de l’ordinateur à partir duquel elle a été générée) à la clé publique et on la colle dans l’encadré « Contenu » prévu à cet effet, puis on clique sur « Ajouter une clé »
Configuration du client Git
Afin de pouvoir utiliser le client Git, nous devons configurer un nom d’utilisateur et une adresse mail. Pour cela, on tape les commandes suivantes :
|
|
Synchronisation sur Gogs à l’aide du client Git
Maintenant que le client est installé, nous devons créer un répertoire dans lequel nous créerons le repository/projet. Pour cela, nous tapons la commande suivante :
|
|
On se rend dans le répertoire via la commande suivante :
|
|
Maintenant que l’on est dans le répertoire, on peu créer le repository/projet via la commande suivante :
|
|
On se rend dans le répertoire « mon_projet » via la commande suivante :
|
|
Le repository/projet étant créé, on créé/copie les fichiers dans le répertoire « mon_projet » afin de pouvoir faire les actions qui vont suivre. Une fois les fichiers créés, nous allons devoir activer le suivi de version/modifications pour l’ensemble des fichiers présent dans le répertoire. Pour cela, nous allons taper les commandes suivantes :
|
|
Le suivi de version étant activé, nous devons maintenant « Valider » l’ensemble des modifications effectués dans le repository/projet. Pour cela on tape la commande suivante :
|
|
Avant de pouvoir synchroniser le repository/projet local avec Gogs, nous devons configurer l’URL du repository/dépôt Gogs dans le client Git. Pour cela on tape la commande suivante :
|
|
On peut vérifier la bonne prise en compte de l’URL via la commande suivante :
|
|
Maintenant que le client Git est configuré, on peut envoyer le contenu de notre repository dans la branche master sur GitHub via la commande suivante :
|
|
Quelques commandes supplémentaires
« Valider » les modifications avec un commentaire :
|
|
Effacer/Supprimer des fichiers du repository/projet :
|
|
Renommer un fichier du repository/projet :
|
|