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