GNU/Linux >> Tutoriales Linux >  >> Panels >> Panels

Cómo instalar Gitea con NGINX y Free Let's Encrypt SSL en Ubuntu 20.04

En este tutorial, le mostraremos cómo instalar el software Gitea en su VPS junto con Nginx como servidor web y el certificado Free Let's Encrypt, usando Ubuntu 20.04.

Gitea es un software escrito en el lenguaje de programación "Go" y es similar a Bitbucket, GitHub y Gitlab. El software se usa para el servicio Git autohospedado y es compatible con múltiples sistemas operativos como Linux, Windows, macOS y ARM.

La instalación no tomará más de 10 minutos y la disfrutarás mientras la instalas. ¡Empecemos!

Requisitos

  • Instalación nueva de Ubuntu 20.04
  • Privilegios de usuario:usuario root o no root con privilegios sudo

Paso Paso 1. Actualizar el sistema

Una instalación nueva de Ubuntu 20.04 necesita una actualización del sistema y es por eso que necesitamos ejecutar los siguientes comandos.

sudo apt update -y && sudo apt upgrade -y

Paso 2. Instala las dependencias requeridas

Estos paquetes deben instalarse antes de continuar con la instalación.

apt install gnupg2 git unzip -y

Paso 3. Instalar el servidor web Nginx

El servidor web Nginx se puede instalar con el siguiente comando:

sudo apt install nginx -y

Una vez que se completa la instalación, puede verificar el estado del servicio Nginx:

sudo systemctl status nginx

Paso 4. Instalar el servidor de base de datos MariaDB

MariaDB se utiliza como backend de base de datos para Gitea y se puede instalar con el siguiente comando:

sudo apt-get install mariadb-server -y

Paso 5. Configurar el servidor de base de datos MariaDB

Una vez que el servidor de la base de datos se haya instalado correctamente, debemos configurarlo.

Inicie sesión en el shell de MariaDB con “mysql ” y habilite la tabla Innodb:

MariaDB [(none)]> SET GLOBAL innodb_file_per_table = ON;

Salga del shell de MariaDB con “salir ” y abra el archivo de configuración predeterminado de MariaDB:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Agregue las siguientes líneas de código debajo de “mysqld sección ”

innodb_file_format = Barracuda
innodb_large_prefix = 1
innodb_default_row_format = dynamic

Una vez realizados los cambios, reinicie el servicio MariaDB para que los cambios surtan efecto.

sudo systemctl restart mariadb

Paso 6. Crear base de datos y usuario de base de datos

El software de Gitea requiere una base de datos y un usuario para poder funcionar correctamente. Para crearlos y otorgar los privilegios adecuados, vuelva a iniciar sesión en el shell de MariaDB y ejecute los siguientes comandos:

MariaDB [(none)]>CREATE DATABASE gitea;
MariaDB [(none)]>CREATE USER 'gitea'@'localhost' IDENTIFIED BY 'strongpasswordhere';
MariaDB [(none)]>GRANT ALL ON gitea.* TO 'gitea'@'localhost' IDENTIFIED BY 'strongpasswordhere' WITH GRANT OPTION;
MariaDB [(none)]>ALTER DATABASE gitea CHARACTER SET = utf8mb4 COLLATE utf8mb4_unicode_ci;
MariaDB [(none)]>FLUSH PRIVILEGES;
MariaDB [(none)]>exit;

Paso 7. Instalar Gitea

Este es el paso que tanto esperábamos y es la instalación del software Gitea. Antes de instalarlo, necesitamos crear un usuario del sistema para ejecutar Gitea con el siguiente comando:

sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git

Lo siguiente es descargar la última versión de Gitea en su servidor.

sudo wget https://dl.gitea.io/gitea/1.14.6/gitea-1.14.6-linux-amd64

Una vez descargada la Gitea, necesitamos copiar el binario a la ruta del sistema y establecer los permisos correctos:

sudo cp gitea-1.14.6-linux-amd64 /usr/bin/gitea && chmod 755 /usr/bin/gitea

El siguiente paso es crear el directorio de Gitea para almacenar los datos y los registros junto con sus permisos:

sudo mkdir -p /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}
sudo chown git:git /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo chmod 770 /etc/gitea

Paso 8. Crear el Servicio Gitea

Crea un archivo vacío:

sudo nano /etc/systemd/system/gitea.service

E importa las siguientes líneas de código:

[Unit]
Description=Gitea
After=syslog.target
After=network.target
After=mysql.service
[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target

Después de crear el archivo con contenido, vuelva a cargar el archivo de configuración, habilite e inicie el servicio Gitea.

sudo systemctl daemon-reload
sudo systemctl enable gitea
sudo systemctl start gitea

Para verificar si Gitea se está ejecutando correctamente, ejecute el siguiente comando:

sudo systemctl status gitea

La salida debería ser similar a esta:

# sudo systemctl status gitea
● gitea.service - Gitea

Cargado:cargado (/etc/systemd/system/gitea.service; habilitado; valor preestablecido del proveedor:habilitado)
Activo:activo (en ejecución) desde el lun 2021-08-09 23:36:36 CEST; hace 8 minutos
PID principal:42187 (gitea)
Tareas:6 (límite:4652)
Memoria:111,8 M
CGroup:/system.slice/gitea.service
└─42187 /usr/bin/gitea web -c /etc/gitea/app.ini

Paso 9. Nginx como proxy inverso para Gitea

Primero, cree un nuevo archivo de configuración de Nginx:

sudo nano /etc/nginx/conf.d/gitea.conf

Agregue las siguientes líneas de código:

upstream gitea {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name gitea.yourdomain.com;
root /var/lib/gitea/public;
access_log off;
error_log off;
location / {
try_files maintain.html $uri $uri/index.html @node;
}
location @node {
client_max_body_size 0;
proxy_pass http://localhost:3000;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_max_temp_file_size 0;
proxy_redirect off;
proxy_read_timeout 120;
}
}

Una vez que se crea el archivo, guárdelo, ciérrelo y verifique la configuración de Nginx con el siguiente comando:

nginx -t

La salida debe ser:

#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Si la configuración es correcta, reinicie el servicio Nginx para obtener los cambios más recientes.

systemctl restart nginx

Paso 10. Instale el certificado SSL Let's Encrypt gratuito

A continuación, deberá instalar un certificado SSL gratuito "Let's Encrypt". 'Let's Encrypt' es actualmente uno de los proveedores de cifrado TLS más populares en los últimos años. Es la autoridad de certificación más grande del mundo, utilizada por más de 250 millones de sitios web.

Primero, debe instalar el software Certbot en el servidor con el siguiente comando:

sudo apt install certbot python3-certbot-nginx -y

Una vez que el Certbot está instalado, estamos listos para instalar el certificado para el dominio:

sudo certbot --nginx -d gitea.example.com

Durante la instalación, puede elegir la opción de redirección y todas las solicitudes de HTTP se redirigirán a HTTPS.

Después de la instalación exitosa, se recibirá el siguiente mensaje similar:

- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/gitea.example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/gitea.example.com/privkey.pem

11. Accede a la web de Gitea de forma segura

Ahora, cuando se completa cada paso, podemos acceder a nuestro sitio web de Gitea en https://gitea.example.com Ingrese la contraseña de usuario de MySQL que usó para crear en el paso 6. Desplácese hacia abajo en la parte inferior de la página y presione "Instalar Gitea “.

¡Felicidades! Ha instalado con éxito el software Gitea y puede disfrutar usándolo ahora. Por supuesto, simplemente puede suscribirse a cualquiera de nuestros planes de alojamiento VPS de Linux y dejar que nuestros expertos configuren todo en minutos, completamente gratis.

PD. Si le gustó esta publicación sobre cómo instalar Gitea en Nginx con Free Lets Encrypt SSL en Ubuntu 20.04, compártala con sus amigos en las redes sociales usando los botones a la izquierda o simplemente deje una respuesta a continuación. Gracias.


Panels
  1. Cómo instalar Nextcloud con Nginx y Lets Encrypt SSL en Ubuntu 20.04 LTS

  2. Cómo instalar Elgg con Nginx en Ubuntu 14.04

  3. Cómo instalar Let's Encrypt SSL en Ubuntu 18.04 con Nginx

  4. Cómo instalar Joomla con Nginx en Ubuntu 18.04

  5. Cómo proteger Nginx con Let's Encrypt en Ubuntu 20.04

Cómo instalar MediaWiki con Nginx y Lets Encrypt SSL en Ubuntu 20.04

Cómo instalar Gitea con Nginx y Lets Encrypt SSL gratis en Ubuntu 20.04

Cómo instalar Let's Encrypt SSL con Nginx en CentOS 7

Cómo instalar Let's Encrypt SSL con Nginx en Ubuntu 16.04 LTS

Cómo instalar Nginx con Let's Encrypt SSL en Ubuntu 20.04 LTS

Cómo proteger el servidor LEMP con Let's Encrypt Free SSL en Ubuntu 18.04 VPS