Cómo instalar Gitea con PostgreSQL en Debian 11

Gitea es una solución gratuita, de código abierto y autoalojada para servidores Git. Gitea está escrito en el lenguaje de programación Go, una aplicación ligera, disponible como paquete binario que puede instalarse en la mayoría de las plataformas, incluyendo Windows, Linux y macOS. Es una de las alternativas a GitLab más robustas, escalables, rápidas y fáciles de usar.

Gitea ofrece muchas características, como un editor de archivos de repositorio, seguimiento de errores y tiempo, ramificación de repositorios, bloqueo de archivos, wiki incorporado, fusión, soporte de múltiples bases de datos, proceso de actualización fácil, registro de contenedores incorporado y mucho más.

En este tutorial, te mostraré cómo instalar Gitea desde el binario con PostgreSQL en Debian 11.

Requisitos previos

  • Un servidor con Debian 11.
  • Una contraseña de root configurada en el servidor.

Paso 1 – Actualizar el SO

Antes de comenzar la instalación de Gitea, ejecuta el siguiente comando para actualizar tu sistema con la última versión.

sudo apt-get update -y

sudo apt-get upgrade -y

Paso 2 – Instalar y configurar PostgreSQL

Gitea es compatible con las principales bases de datos como MySQL, MariaDB, SQLite, MySQL y PostgreSQL, pero en esta guía se utiliza PostgreSQL como base de datos de Gitea.

En primer lugar, crea un repositorio PostgreSQL con el siguiente comando:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

A continuación, tendrás que importar la clave de firma del repositorio:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

Ahora, instala PostgreSQL utilizando los siguientes comandos:

sudo apt-get update

sudo apt-get -y install postgresql

A continuación, inicia el servicio PostgreSQL, habilítalo al inicio del sistema y comprueba el estado del servicio PostgreSQL mediante el siguiente comando:

sudo systemctl start postgresql

sudo systemctl enable postgresql

sudo systemctl status postgresql

Instalar PostgreSQL

A continuación, tienes que cambiar el esquema de encriptación md5 por el esquema ‘SCRAM-SHA-256 ‘ para mejorar la seguridad. Si quieres conectarte a PostgreSQL de forma remota, tienes que permitir tu dirección IP en el archivo de configuración de PostgreSQL. Abre el archivo de configuración para realizar los cambios con el siguiente comando:

sudo vim /etc/postgresql/14/main/postgresql.conf

Si tienes instalada otra versión de PostgreSQL, entonces cambia la ruta del comando anterior de acuerdo con ella.

A continuación, cambia las siguientes variables según tus necesidades:

listen_addresses = 'localhost, 134.122.38.45'
password_encryption = scram-sha-256

Guarda y sal del archivo y reinicia el servicio PostgreSQL para aplicar los cambios.

sudo systemctl restart postgresql

A continuación, entra en el shell de PostgreSQL con el siguiente comando:

sudo -u postgres psql

A continuación, crea un rol de usuario y una base de datos para Gitea ejecutando el siguiente comando:

postgres=# CREATE ROLE gitea WITH LOGIN PASSWORD 'secure@123';

postgres=# CREATE DATABASE giteadb;

postgres=# GRANT ALL PRIVILEGES ON DATABASE giteadb TO gitea;

postgres=# exit

Aquí, tienes que establecer el nombre de usuario, el nombre de la base de datos y tu contraseña para Gitea.

Crear rol en postgres

Llegados a este punto, tu PostgreSQL está configurado y listo para Gitea, verifica la configuración de la autenticación en el archivo /etc/postgresql/14/main/pg_hba.conf.

PostgreSQL acepta todas las conexiones locales por defecto.

host    all             all             127.0.0.1/32            scram-sha-256

Si quieres utilizar giteadb de forma remota, añade la siguiente línea con tu dirección IP en /etc/postgresql/14/main/pg_hba.conf

host    giteadb        gitea            134.122.38.0/32           scram-sha-256 

Configurar el host

Paso 3 – Instalar y configurar Git

A continuación, instala git con el siguiente comando:

sudo apt install git

Verifica la instalación de git comprobando la versión de Git:

git --version

Salida:-

git version 2.30.2

A continuación, debes configurar tu nombre y dirección de correo electrónico para Git.

git config --global user.name "Your Name"

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

Puedes comprobar la configuración de Git utilizando el siguiente comando.

git config --list

Salida:-

user.name=Your Name
[email protected]

Paso 4 – Crear un usuario git para Gitea

Ahora, necesitarás crear un usuario Gitea. Puedes hacerlo con el siguiente comando:

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

Esto creará un nuevo usuario git.

Paso 5 – Instalar y configurar Gitea

Ve a la página de descargas de Gitea y descarga la última versión del binario de Gitea disponible. En el momento de escribir este tutorial, la última versión de Gitea es la 1.15.7. Puedes cambiar la variable VERSION en el siguiente comando para instalar cualquier otra versión.

cd /tmp
GITEAVERSION=1.15.7
wget -O gitea https://dl.gitea.io/gitea/${GITEAVERSION}/gitea-${GITEAVERSION}-linux-amd64

A continuación, mueve el binario de Gitea a la ruta del sistema con el siguiente comando:

sudo mv /tmp/gitea /usr/local/bin

A continuación, establece el permiso de ejecución para el archivo binario de Gitea ejecutando el siguiente comando en el terminal:

chmod +x /usr/local/bin/gitea

A continuación, tendrás que crear una estructura de directorios para Gitea, para ello ejecuta los siguientes comandos:

sudo mkdir -p /etc/gitea

sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}

A continuación, da los permisos necesarios para que Gitea funcione correctamente con los siguientes comandos:

sudo chown -R git:git /var/lib/gitea/

sudo chown root:git /etc/gitea

sudo chmod -R 750 /var/lib/gitea/

sudo chmod 770 /etc/gitea

A continuación, crea un archivo de servicio systemd para Gitea con el siguiente comando:

vim /etc/systemd/system/gitea.service

Pega el siguiente código en él.

[Unit]
Description=Gitea
After=syslog.target
After=network.target
After=postgresql.service

[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/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

Guarda y sal del archivo. A continuación, recarga el demonio systemd e inicia el servicio Gitea con el siguiente comando:

sudo systemctl daemon-reload
sudo systemctl start gitea

A continuación, debes habilitar el servicio Gitea al reiniciar el sistema:

sudo systemctl enable gitea

A continuación, verifica el estado de Gitea con el siguiente comando:

sudo systemctl status gitea

Deberías ver la siguiente salida:

Comprobar el estado de Gitea

Como puedes ver, Gitea se inicia y se ejecuta en el puerto 3000 por defecto. Puedes verificar el puerto de Gitea con el siguiente comando:

netstat -tulpan | grep 3000

Deberías ver una salida como la siguiente:

tcp6       0      0 :::3000                 :::*                    LISTEN      43778/gitea

Paso 6 – Accede a la interfaz web de Gitea

Gitea está ahora en marcha y escuchando en el puerto 3000 por defecto. Abre tu navegador y escribe https://YOURIPADDRESS:3000.

A continuación, rellena los parámetros necesarios como se indica a continuación:

Configuración de la base de datos

Tipo de base de datos: PostgreSQL
Host: 127.0.0.1:5432
Nombre de usuario: gitea
Contraseña: Introduce la contraseña que elegiste durante la creación del rol de Postgres.
Nombre de la base de datos: giteadb
SSL: Desactivar

Configuración de la base de datos Gitea

Configuración general


Título del sitio: Título de tu elección.
Ruta de acceso al repositorio: /var/lib/gitea/data/repositories
Ruta raíz de Git LFS: /var/lib/gitea/data/lfs
Ejecutar como nombre de usuario: git
Dominio del servidor SSH: tu_dominio/IP
Puerto del servidor SSH: 22
Puesto de escucha HTTP de Gitea: 3000
URL base de Gitea: http://YOURIPADDRESS:3000
Ruta de registro: /var/lib/gitea/log

Configuración general de Gitea

En este momento, puedes configurar tu correo electrónico y los ajustes del Servidor y de los Terceros, o puedes hacerlo más tarde. Sin embargo, debes configurar el Administrador

nombre de usuario para iniciar sesión en Gitea. Por lo tanto, ve a Configuración opcional e introduce los detalles de la configuración de la cuenta de administrador y crea ‘Usuario Administrador’ para Gitea.

Gitea Ajustes opcionales

A continuación, haz clic en el botón ‘Instalar Gitea’. Una vez que la instalación se haya completado con éxito, serás redirigido al panel de control de Gitea que se muestra en la siguiente página:

Panel de control de Gitea

Ahora, puedes explorar Gitea y desde la opción de Administración del Sitio desde tu cuenta de administrador, puedes configurar otros servicios de terceros como la integración del directorio activo de windows con Gitea.

Resumen de Gitea

Paso 7 – Configurar las notificaciones por correo electrónico

Puedes habilitar las notificaciones por correo electrónico en Gitea usando Sendmail o a través de un servicio de correo electrónico de terceros como Amazon SES, Sendgrid.

Para habilitar las notificaciones por correo electrónico, abre el archivo de configuración de Gitea usando el siguiente comando:

vim /etc/gitea/app.in

A continuación, edita la siguiente sección del archivo y añade el siguiente código según tu configuración de correo electrónico.

[mailer]
ENABLED        = true
FROM           = [email protected]
MAILER_TYPE    = smtp
HOST           = mail.example.com:587
IS_TLS_ENABLED = true
USER           = [email protected]
PASSWD         = password

Guarda y sal del archivo y reinicia el servicio Gitea para aplicar los cambios:

sudo systemctl restart gitea

Paso 10 – Actualizar Gitea

Actualizar Gitea es un proceso que no requiere ningún esfuerzo, y sólo tienes que descargar y sustituir el binario de Gitea.

Primero, detén el servicio Gitea:

sudo systemctl stop gitea

A continuación, descarga e instala el binario de Gitea con el siguiente comando:

cd /tmp
GITEAVERSION=LATESTVERSION
wget -O gitea https://dl.gitea.io/gitea/${GITEAVERSION}/gitea-${GITEAVERSION}-linux-amd64
sudo mv gitea /usr/local/bin
sudo chmod +x /usr/local/bin/gitea

A continuación, inicia el servicio Gitea con el siguiente comando:

sudo systemctl start gitea

Ahora, tu Gitea está actualizado sin ningún tiempo de inactividad.

Conclusión

¡Enhorabuena! Has instalado con éxito el servicio git de Gitea en Debian 11. Ahora puedes actualizar fácilmente Gitea y gestionar tu repositorio git a través de un navegador web. Además, puedes preguntarme si tienes alguna duda.

También te podría gustar...