GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer le service Git auto-hébergé de Gitea à l'aide de Docker sur Ubuntu 18.04

Gitea est un fork de Gogs, le service Git auto-hébergé facile à utiliser. Il est similaire à GitHub, Bitbucket et Gitlab. Gitea est une solution d'hébergement de code légère écrite en Go, pouvant fonctionner avec des exigences matérielles minimales. Il s'agit d'une application multiplateforme, qui peut s'exécuter partout où Go peut être compilé, comme Windows, Linux, MacOS, ARM, etc.

Dans ce tutoriel, je vais vous montrer étape par étape comment installer et configurer le service Git léger à l'aide de Gitea. Nous déploierons le serveur Gitea à l'aide de Docker et utiliserons la base de données PostgreSQL et le proxy Traefik Reverse. Pour ce guide, nous utiliserons le dernier serveur Ubuntu 18.04.

Prérequis

  • Ubuntu 18.04
  • Privilèges root

Qu'allons-nous faire ?

  1. Installer Docker-CE
  2. Installer Docker Compose
  3. Déployer Gitea en tant que conteneur à l'aide de Docker
  4. Post-installation de Gitea
  5. Créer le premier dépôt
  6. Tester le premier commit

Étape 1 - Installer Docker-CE

La première étape que nous ferons pour ce guide consiste à installer l'édition de la communauté Docker sur le serveur Ubuntu 18.04. Nous allons installer le package Docker CE à partir du référentiel officiel Docker.

Ajoutez le référentiel Docker et Docker en exécutant les commandes ci-dessous.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

La commande 'add-apt-repository' mettra automatiquement à jour le référentiel.

Installez maintenant le package Docker CE.

sudo apt policy docker-ce
sudo apt install docker-ce=18.06.1~ce~3-0~ubuntu

Une fois l'installation terminée, démarrez le service Docker et activez-le pour qu'il se lance à chaque démarrage du système.

sudo systemctl start docker
sudo systemctl enable docker

Docker CE est opérationnel sur le serveur Ubuntu 18.04. Vérifiez l'installation en vérifiant la version de docker.

docker version

ou lancez le docker 'hello-world'.

docker run hello-world

Étape 2 - Installer Docker Compose

Docker-Compose est un outil de ligne de commande permettant de définir et de gérer des applications docker multi-conteneurs. Il vous permet de créer un conteneur en tant que service, idéal pour votre environnement de développement, de test et de préproduction.

Installez Docker Compose en téléchargeant le fichier binaire et faites-en un exécutable.

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Vérifiez maintenant la commande docker-compose.

docker-compose version

Docker Compose est maintenant installé.

Étape 3 - Déployer Gitea en tant que conteneur Docker

Dans cette étape, nous allons créer un nouveau script docker-compose qui contient toutes les configurations de services, y compris la base de données PostgreSQL et le proxy inverse Traefik. Nous allons configurer tous les fichiers de déploiement dans le répertoire nommé 'deployment'.

Créer un réseau Docker personnalisé

Avant de créer la configuration de déploiement, créons un nouveau réseau de pont personnalisé. Il sera utilisé pour le reverse proxy traefik du service externe.

Vérifiez la liste des réseaux Docker.

docker network ls

Créez maintenant un nouveau réseau de pont personnalisé nommé "hakasenet".

docker network create hakasenet

Vérifiez à nouveau.

docker network ls

Vous obtiendrez maintenant le réseau 'hakasenet' sur la liste.

Répertoire et fichiers de déploiement de configuration

Créez un nouveau répertoire nommé 'deployment' et le script 'docker-compose.yml' dessus.

mkdir deployment; cd deployment
touch docker-compose.yml

Créez maintenant le nouveau répertoire 'gitea' et le volume de données 'postgres'.

mkdir -p gitea/ postgres/

Créez un nouveau fichier 'acme.json' et modifiez l'autorisation du fichier. il sera utilisé pour stocker les données Letsencrypt.

touch acme.json
chmod 600 acme.json

Créez maintenant le fichier 'traefik.toml' de configuration globale de traefik.

touch traefik.toml

Et ci-dessous se trouvent les fichiers et répertoires que nous avons pour l'installation de Gitea à l'aide de Docker.

tree

Configurer le service PostgreSQL

Le service de base de données PostgreSQL est le premier service que nous voulons configurer. Le service de base de données ne fonctionnera que sur le réseau docker interne.

Et nous utiliserons l'image Postgres 9.6, en utilisant 'gitea' comme nom de base de données, utilisateur et mot de passe, et configurerons le volume de données postgres.

Modifiez le fichier 'docker-compose.yml' à l'aide de vim.

vim docker-compose.yml

Collez les configurations ci-dessous.

version: "3"

networks:
  hakasenet:
    external: true
  internal:
    external: false

services:
  db:
    image: postgres:9.6
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=gitea
      - POSTGRES_DB=gitea
    labels:
      - "traefik.enable=false"
    networks:
      - internal
    volumes:
      - ./postgres:/var/lib/postgresql/data

Enregistrez et quittez.

Configurer le proxy inverse Traefik

Nous allons maintenant configurer le reverse proxy Traefik pour notre installation Gitea.

Le service traefik fonctionnera sous les ports par défaut HTTP et HTTPS, s'exécutant sur le réseau de pont personnalisé nommé 'hakasenet', et nous le configurerons pour utiliser les certificats Letsencrypt qui seront définis sur le fichier 'traefik.toml'.

Modifiez le script de composition.

vim docker-compose.yml

Collez les configurations sous la configuration du service db.

  traefik:
    image: traefik:latest
    command: --docker
    ports:
      - 80:80
      - 443:443
    labels:
      - "traefik.enable=true"
      - "traefik.backend=dashboard"
      - "traefik.frontend.rule=Host:traefik.hakase-labs.io"
      - "traefik.port=8080"
    networks:
      - hakasenet
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik.toml:/traefik.toml
      - ./acme.json:/acme.json
    container_name: traefik
    restart: always

Enregistrez et quittez.

Modifiez maintenant le fichier de configuration 'traefik.toml'.

vim traefik.toml

Et collez la configuration suivante.

#Traefik Global Configuration
debug = false
checkNewVersion = true
logLevel = "ERROR"

#Define the EntryPoint for HTTP and HTTPS
defaultEntryPoints = ["https","http"]

#Define the HTTP port 80 and
#HTTPS port 443 EntryPoint
#Enable automatically redirect HTTP to HTTPS
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]

#Enable Traefik Dashboard on port 8080
#with basic authentication method
#hakase and password
[entryPoints.dash]
address=":8080"
[entryPoints.dash.auth]
[entryPoints.dash.auth.basic]
    users = [
        "hakase:$apr1$hEgpZUN2$OYG3KwpzI3T1FqIg9LIbi.",
    ]

[api]
entrypoint="dash"
dashboard = true

#Enable retry sending a request if the network error
[retry]

#Define Docker Backend Configuration
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "hakase-labs.io"
watch = true
exposedbydefault = false

#Letsencrypt Registration
#Define the Letsencrypt ACME HTTP challenge
[acme]
email = "[email protected]"
storage = "acme.json"
entryPoint = "https"
OnHostRule = true
  [acme.httpChallenge]
  entryPoint = "http"

Enregistrez et quittez.

Remarque :

  • Remplacez l'adresse e-mail acmeletsencrypt par votre adresse e-mail valide.

Configurer le service Gitea

Modifiez le fichier de configuration 'docker-compose.yml'.

vim docker-compose.yml

Collez la configuration du service gitea en bas de la ligne.

  server:
    image: gitea/gitea:latest
    environment:
      - USER_UID=1000
      - USER_GID=1000
    restart: always
    networks:
      - internal
    volumes:
      - ./gitea:/data
    ports:
      - "3000"
      - "22"
    labels:
      - "traefik.enabled=true"
      - "traefik.backend=gitea"
      - "traefik.frontend.rule=Host:git.hakase-labs.io"
      - "traefik.docker.network=hakasenet"
      - "traefik.port=3000"
    networks:
      - internal
      - hakasenet
    depends_on:
      - db
      - traefik

Enregistrez et quittez.

Le service Gitea fonctionnera sur le port TCP '3000', en utilisant ces deux réseaux docker 'interne' et 'hakasenet', et fonctionnera sous le proxy inverse traefik sur le domaine 'git.hakase-labs.io'.

La configuration de Docker compose pour le déploiement de Gitea est terminée.

Déployer tous les services

Déployez maintenant la pile à l'aide de la commande 'docker-compose' ci-dessous.

docker-compose up -d

La commande téléchargera toutes les images docker nécessaires et exécutera les services définis sur le script docker-compose.

Et quand c'est terminé, vérifiez les services disponibles sur docker en utilisant l'option ps comme ci-dessous.

docker-compose ps

Vous obtiendrez maintenant le résultat ci-dessous.

La base de données PostgreSQL, Gitea et les conteneurs de proxy inverse traefik sont maintenant opérationnels. Le service de base de données s'exécute sur le port par défaut '5432', le serveur gitea s'exécute sur le port '3000' et le proxy traefik s'exécute sur les ports HTTP et HTTPS, accessibles depuis le réseau/internet extérieur.

Si vous souhaitez vérifier tous les journaux de docker check, exécutez la commande ci-dessous.

docker-compose logs

Étape 4 - Post-installation de Gitea

Ouvrez votre navigateur Web et saisissez votre URL d'installation Gitea. Le mien est :

https://git.hakase-labs.io/

Vous obtiendrez maintenant la page Gitea par défaut.

Ajoutez le chemin d'installation à l'URL.

https://git.hakase-labs.io/install

Vous obtenez maintenant la page d'installation de Gitea.

Configuration de la base de données

Tapez les détails de la base de données PostgreSQL et utilisez 'db ' en tant qu'hôte.

Configuration générale de Gitea

Remplacez le 'Titre du site' par votre propre titre, le 'Domaine du serveur SSH' (sans https) et l''URL de base Gitea' par l'URL de votre serveur gitea.

Paramètres du compte administrateur

Dans les paramètres d'administration, saisissez le nom d'utilisateur, le mot de passe et l'adresse e-mail de l'administrateur.

Cliquez maintenant sur le bouton "Installer Gitea".

Et vous serez redirigé vers le tableau de bord utilisateur par défaut de Gitea.

Étape 5 - Créer le premier référentiel dans Gitea

Sur la page d'accueil de l'utilisateur, cliquez sur le '+' bouton.

Tapez maintenant les détails du référentiel que vous souhaitez créer.

et cliquez sur le bouton "Créer un référentiel".

Le référentiel a été créé.

Étape 6 - Tester le premier commit

Revenez à votre shell de terminal et configurez l'utilisateur et l'e-mail git par défaut.

Exécutez les commandes git ci-dessous.

git config --global user.name "hakase"
git config --global user.email "[email protected]"

Maintenant, clonez le dépôt.

git clone https://git.hakase-labs.io/hakase/myrepo.git

Accédez au répertoire du référentiel 'myyrepo' et modifiez le fichier README.md.

cd myrepo/
vim README.md

apportez des modifications au fichier README, puis enregistrez et quittez.

Validez maintenant le dépôt.

git add .
git commit -m 'Edit the README.md file by hakase-labs'

Et poussez-le sur le serveur.

git push origin master

Saisissez votre nom d'utilisateur et votre mot de passe.

Et voici le résultat.

Consultez la page du référentiel et assurez-vous d'obtenir les modifications ci-dessous.

L'installation de Gitea avec Docker sur Ubuntu 18.04 s'est terminée avec succès.


Ubuntu
  1. Comment installer Docker sur Ubuntu 18.04

  2. Comment installer Git sur Ubuntu 18.04 / 20.04

  3. Comment installer Kubernetes sur Ubuntu 18.04

  4. Comment installer Docker Compose sur Ubuntu 18.04

  5. Comment installer Docker sur Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

Comment installer Docker sur Ubuntu 20.04, 18.04, 21.04

Comment installer Docker sur Ubuntu 14.04

Comment installer Git sur Ubuntu 15.04

Comment installer Git sur Ubuntu 16.04

Comment installer Gitea sur Ubuntu en utilisant Docker

Comment installer Gitea sur Ubuntu 22.04