GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Gitea usando Docker en Ubuntu 20.04

Gitea es un paquete de software gratuito y de código abierto para el autohospedaje de 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 ligero 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á. Puedes usar 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 .

Requisitos

  • Un nodo instalado con Ubuntu 20.04
  • Un usuario con privilegios de sudo

Paso 1:Instalar Docker en Ubuntu

Gitea proporciona la última versión estable de sus imágenes de Docker desde el centro 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 docker:

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

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

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

Ahora instala docker usando el siguiente comando:

$ sudo apt install docker-ce

Agregue el usuario al grupo docker para que pueda usar el comando docker sin privilegios sudo:

$ sudo usermod -aG docker username

Paso 2:Ejecute la ventana acoplable de Nginx

Para habilitar HTTPS, puede usar 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 asignado 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

$ 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 guardar 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

Por defecto, Gitea escucha las conexiones en el puerto 3000 y el proxy inverso 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 tarde

$ 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 vamos a conectarnos 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 en la carpeta Nginx. Puede usar el certificado gratuito de Let's Encrypt o el certificado de una autoridad certificadora.

Copie 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, debemos indicar cierta información sobre el contenedor MySQL que se ha lanzado antes, como:

  • 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 de 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 puedes intentar acceder a Gitea usando la URL https://giteadomain.com

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

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

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

Puedes crear un nuevo repositorio

Tienes el primer repositorio

Conclusión

Ahora 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.


Ubuntu
  1. Cómo instalar Docker en Ubuntu 18.04

  2. Cómo instalar Kubernetes en Ubuntu 18.04

  3. Cómo instalar Docker en Ubuntu 16.04

  4. Cómo instalar Docker en Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  5. ¿Cómo instalar Docker en Ubuntu 18.04?

Cómo instalar Maven en Ubuntu 18.04

Cómo instalar Gitea Self-hosted Git Service usando Docker en Ubuntu 18.04

Cómo instalar Docker en Ubuntu 20.04, 18.04, 21.04

Cómo instalar Docker en Ubuntu 14.04

Cómo instalar Gitea en Ubuntu usando Docker

Cómo instalar Docker en Ubuntu 18.04