Cómo instalar Gitea usando Docker en Ubuntu 20.04 | Ubuntu 20.10

Cómo instalar Gitea usando Docker en Ubuntu 20.04 | Ubuntu 20.10

 

Gitea es un paquete de software gratuito y de código abierto para autohospedar un servidor Git. También ofrece funciones de colaboración como seguimiento de errores, wikis y revisión de código. Gitea es una solución de código ligera e impulsada por la comunidad escrita en Go.

Los desarrolladores necesitan fusionar regularmente sus cambios de código en un repositorio central cuando trabajan. Puede suceder que necesite tener un repositorio central privado para su equipo que usted mismo alojará y administrará. Puede utilizar Gitea para este propósito. Es similar a GitHub, Bitbucket, etc.

En este tutorial, aprendemos cómo instalar Gitea usando Docker en Ubuntu 20.04 .

Prerrequisitos

  • Un nodo instalado con Ubuntu 20.04
  • Un usuario con privilegio sudo

Paso 1: Instale Docker en Ubuntu

Gitea proporciona la última versión estable de sus imágenes de Docker desde el hub de Docker. Se puede instalar desde código fuente, binario y también como paquete. Aquí estamos implementando como una imagen de Docker.

Para instalar Docker, deberá instalar algunos requisitos previos:

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

Ahora agreguemos la clave GP del repositorio de Docker:

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

Ahora agregue Docker a las fuentes APT. Actualizará automáticamente la caché.

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

Ahora instale Docker usando el siguiente comando:

$ sudo apt install docker-ce

Agregue el usuario al grupo de la ventana acoplable para que pueda usar el comando de la ventana acoplable sin privilegios de sudo :

$ sudo usermod -aG docker username

Paso 2: Ejecute la ventana acoplable de Nginx

Para habilitar HTTPS, puede utilizar proxies de terminación TLS como Nginx, Apache2 o Caddy. En nuestro caso, ejecutaremos un contenedor independiente como nuestro proxy inverso de 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

Nos ayudará a redirigir todo el tráfico HTTP predeterminado a HTTPS cuando integre sus certificados. Debería notar el volumen mapeado para integrar sus certificados que es/etc/nginx/certs

Ahora abra el puerto 80 y 443 en el firewall:

$ sudo ufw allow 80,443/tcp

Además, asegúrese de abrir ssh antes de habilitar UFW si aún no lo ha hecho.

$ sudo ufw allow 'OpenSSH'

Ahora habilite UFW si aún no lo ha hecho

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

Paso 3: Ejecute la ventana acoplable de MySQL

Gitea necesita una base de datos para guardar sus datos. Gitea es compatible con MySQL / MariaDB, PostgreSQL, SQLite y MSSQL. Aquí ejecutaremos un contenedor MySQL para mantener todos los datos.

$ 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

Podemos comprobar si nuestro contenedor se está ejecutando.

$ 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

El Gitea escucha por defecto las conexiones en el puerto 3000 y el proxy inversor en los puertos HTTP y HTTPS. Si tiene un firewall, asegúrese de que los puertos estén abiertos para acceder a la interfaz web de Gitea.

Echemos un vistazo a algunos detalles de nuestro contenedor MySQL, como la dirección IP porque la necesitaremos más adelante.

$ 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
                        }
...
...

Ahora conectemos al contenedor MySQL

$ docker container exec -it mysql-gitea bash

Luego acceda a la línea de comandos de MySQL

# mysql -u root -po$su876HG@zvsRt3BT

Ahora cree la base de datos y el usuario para 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;

Ahora sal también del contenedor.

# exit;

Paso 4: configurar el certificado SSL

Para acceder a su Gitea a través de un nombre de dominio seguro, deberá copiar el certificado SSL a la carpeta Nginx. Puede utilizar el certificado Let’s Encrypt gratuito o el certificado de una autoridad certificadora.

Copia el certificado

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

Copia la clave

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

Paso 5: Ejecute la ventana acoplable Gitea

Para ejecutar Gitea, necesitamos indicar alguna información sobre el contenedor MySQL que se ha lanzado antes, como por ejemplo:

  • El tipo de base de datos que es mysql
  • la dirección ip del contenedor mysql
  • El nombre de la base de datos
  • el nombre de usuario de la base de datos
  • la contraseña del usuario de la base de datos
  • el puerto utilizado por 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

Podemos comprobar si se está ejecutando

$ 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

Ahora puede intentar acceder a Gitea utilizando la URL https://giteadomain.com

Cómo instalar Gitea usando Docker en Ubuntu 20.04

Ahora ve a «iniciar sesión» para continuar con el proceso de instalación. Puede personalizar cierta información como el título del sitio.

Cómo instalar Gitea usando Docker en Ubuntu 20.04

Asegúrese de indicar el nombre de dominio donde sea necesario. Indique también la información de la cuenta de administrador

Cómo instalar Gitea usando Docker en Ubuntu 20.04

Después de la instalación, iniciará sesión

Cómo instalar Gitea usando Docker en Ubuntu 20.04

Puedes crear un nuevo repositorio

Cómo instalar Gitea usando Docker en Ubuntu 20.04

Tienes el primer repositorio

Cómo instalar Gitea usando Docker en Ubuntu 20.04

Conclusión

Ahora ya conoce todos los pasos para instalar Gitea usando Docker en Ubuntu 20.04, su repositorio central privado para su código. Podrás gestionarlo en función de tus necesidades.

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.