GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Gitea avec Docker sur Ubuntu 20.04

Gitea est un progiciel gratuit et open-source permettant d'auto-héberger un serveur Git. Il offre également des fonctionnalités collaboratives telles que le suivi des bogues, les wikis et la révision du code. Gitea est une solution de code communautaire légère écrite en Go.

Les développeurs doivent régulièrement fusionner leurs modifications de code dans un référentiel central lorsqu'ils travaillent. Il peut arriver que vous ayez besoin d'un référentiel central privé pour votre équipe que vous hébergerez et gérerez vous-même. Vous pouvez utiliser Gitea à cette fin. Il est similaire à GitHub, Bitbucket, etc.

Dans ce tutoriel, nous apprenons à installer Gitea en utilisant docker sur Ubuntu 20.04 .

Prérequis

  • Un nœud installé avec Ubuntu 20.04
  • Un utilisateur avec le privilège sudo

Étape 1 :Installer Docker sur Ubuntu

Gitea fournit la dernière version stable de ses images Docker depuis le hub Docker. Il peut être installé à partir de la source, du binaire et également en tant que package. Ici, nous déployons en tant qu'image Docker.

Pour installer docker, vous devrez installer quelques pré-requis :

$ sudo apt install apt-transport-https ca-certificates curl software-properties-common

Ajoutons maintenant la clé GP du référentiel docker :

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Ajoutez maintenant Docker aux sources APT. Il mettra automatiquement à jour le cache.

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

Installez maintenant docker à l'aide de la commande suivante :

$ sudo apt install docker-ce

Ajoutez l'utilisateur au groupe docker afin qu'il puisse utiliser la commande docker sans privilèges sudo :

$ sudo usermod -aG docker username

Étape 2 :Exécuter le docker Nginx

Pour activer HTTPS, vous pouvez utiliser des proxys de terminaison TLS tels que Nginx, Apache2 ou Caddy. Dans notre cas, nous exécuterons un conteneur indépendant en tant que notre proxy inverse Nginx.

$ docker run -d --name nginx -p 80:80 -p 443:443 -v /etc/nginx/htpasswd:/etc/nginx/htpasswd -v /etc/nginx/vhost.d:/etc/nginx/vhost.d:ro -v /etc/nginx/certs:/etc/nginx/certs -v /var/run/docker.sock:/tmp/docker.sock:ro etopian/nginx-proxy

Cela nous aidera à rediriger tout le trafic HTTP par défaut vers HTTPS lorsque vous intégrerez vos certificats. Vous devriez remarquer le volume mappé pour intégrer vos certificats qui est /etc/nginx/certs

Ouvrez maintenant les ports 80 et 443 sur le pare-feu :

$ sudo ufw allow 80,443/tcp

Assurez-vous également d'ouvrir ssh avant d'activer UFW si ce n'est pas encore fait

$ sudo ufw allow 'OpenSSH'

Activez maintenant UFW si ce n'est pas encore fait

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Étape 3 :Exécuter le docker MySQL

Gitea a besoin d'une base de données pour sauvegarder ses données. Gitea prend en charge MySQL/MariaDB, PostgreSQL, SQLite et MSSQL. Ici, nous allons exécuter un conteneur MySQL pour conserver toutes les données.

$ docker run -d --name mysql-gitea -e MYSQL_ROOT_PASSWORD=o$su876HG@zvsRt3BT -v /opt/docker-volume/mysql-gitea:/var/lib/mysql mysql:5.7

Nous pouvons vérifier si notre conteneur est en cours d'exécution

$ docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED       STATUS          PORTS                                                                      NAMES
6d41fec8b0e4   mysql:5.7             "docker-entrypoint.s…"   2 hours ago   Up 2 hours      3306/tcp, 33060/tcp                                                        mysql-gitea
ec9d83a3944e   etopian/nginx-proxy   "forego start -r"        3 days ago    Up 24 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   nginx

Le Gitea écoute par défaut les connexions sur le port 3000 et le proxy inverseur sur les ports HTTP et HTTPS. Si vous avez un pare-feu, assurez-vous que les ports sont ouverts pour accéder à l'interface Web de Gitea.

Jetons un coup d'œil à certains détails de notre conteneur MySQL, tels que l'adresse IP, car nous en aurons besoin plus tard

$ docker inspect mysql-gitea
[
    {
        "Id": "6d41fec8b0e4b6ca465444d5cfea11913decddfd7586f4796702463cf08897fe",
        "Created": "2021-10-21T23:48:20.709365573Z",
...
...
        "Networks": {
                        "bridge": {
                            "IPAMConfig": null,
                            "Links": null,
                            "Aliases": null,
                            "NetworkID": "3f0b32613606db9e0761af15b7fa5d7f7c3b86f4d3b4668d574c579b9468915f",
                            "EndpointID": "f029fc1797c70d090da19d30cb31ca34c1b6baf4537a807397e931f87262f867",
                            "Gateway": "172.17.0.1",
                            "IPAddress": "172.17.0.3",
                            "IPPrefixLen": 16,
                            "IPv6Gateway": "",
                            "GlobalIPv6Address": "",
                            "GlobalIPv6PrefixLen": 0,
                            "MacAddress": "02:42:ac:11:00:03",
                            "DriverOpts": null
                        }
...
...

Connectons-nous maintenant au conteneur MySQL

$ docker container exec -it mysql-gitea bash

Accédez ensuite à la ligne de commande MySQL

# mysql -u root -po$su876HG@zvsRt3BT

Créez maintenant la base de données et l'utilisateur pour Gitea

mysql> CREATE USER 'gitea-user'@'%' IDENTIFIED BY '34@zv$TKji@s097BB';
mysql> CREATE DATABASE giteadb;
mysql> GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea-user'@'%';
mysql> FLUSH PRIVILEGES;
mysql> exit;

Maintenant, quittez également le conteneur

# exit;

Étape 4 :Configurer le certificat SSL

Afin d'accéder à votre Gitea via un nom de domaine sécurisé, vous devrez copier le certificat SSL dans le dossier Nginx. Vous pouvez utiliser le certificat Let's Encrypt gratuit ou un certificat d'une autorité de certification.

Copiez le certificat

$ cp gitea.websitefortesting.com.crt /etc/nginx/certs/

Copiez la clé

$ cp gitea.websitefortesting.com.key /etc/nginx/certs/

Étape 5 :Exécuter le docker Gitea

Pour faire fonctionner Gitea, nous devons indiquer certaines informations sur le conteneur MySQL qui a été lancé auparavant, telles que :

  • Le type de base de données qui est mysql
  • l'adresse IP du conteneur mysql
  • le nom de la base de données
  • le nom d'utilisateur de la base de données
  • le mot de passe de l'utilisateur de la base de données
  • le port utilisé par gitea
$ docker run -d --name gitea-selfhosted -v /opt/docker-volume/gitea-selfhosted:/data -p 3000:3000 -e VIRTUAL_HOST=gitea.websitefortesting.com -e VIRTUAL_PORT=3000 -e USER_UID=1001 -e USER_GID=1001 -e DB_TYPE=mysql -e DB_HOST=172.17.0.3:3306 -e DB_NAME=giteadb -e DB_USER=gitea-user -e DB_PASSWD=34@zv$TKji@s097BB gitea/gitea:1.8

Nous pouvons vérifier s'il fonctionne

$ docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS                                                                      NAMES
321b870a0735   gitea/gitea:1.8       "/usr/bin/entrypoint…"   11 seconds ago   Up 10 seconds   22/tcp, 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp                          gitea-selfhosted
6d41fec8b0e4   mysql:5.7             "docker-entrypoint.s…"   2 hours ago      Up 3 minutes    3306/tcp, 33060/tcp                                                        mysql-gitea
ec9d83a3944e   etopian/nginx-proxy   "forego start -r"        3 days ago       Up 29 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   nginx

Vous pouvez maintenant essayer d'accéder à Gitea en utilisant l'URL https://giteadomain.com

Allez maintenant dans "Connexion" afin de continuer le processus d'installation. Vous pouvez personnaliser certaines informations comme le titre du site.

Assurez-vous d'indiquer le nom de domaine là où c'est nécessaire. Indiquez également les informations du compte administrateur

Après l'installation, vous serez connecté

Vous pouvez créer un nouveau dépôt

Vous avez le premier dépôt

Conclusion

Vous connaissez maintenant toutes les étapes pour installer Gitea à l'aide de Docker sur Ubuntu 20.04 - votre référentiel central privé pour votre code. Vous pourrez le gérer en fonction de vos besoins.


Ubuntu
  1. Comment installer Docker sur Ubuntu 18.04

  2. Comment installer Kubernetes sur Ubuntu 18.04

  3. Comment installer Docker sur Ubuntu 16.04

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

  5. Comment installer Docker sur Ubuntu 18.04 ?

Comment installer Maven sur Ubuntu 18.04

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

Comment installer Docker sur Ubuntu 20.04, 18.04, 21.04

Comment installer Docker sur Ubuntu 14.04

Comment installer Gitea sur Ubuntu en utilisant Docker

Comment installer Docker sur Ubuntu 18.04