Cómo instalar Gitea con PostgreSQL en Debian 11
Gitea es una solución gratuita, de código abierto y autohospedada para servidores Git. Gitea ha escrito en el lenguaje de programación Go, una aplicación liviana, disponible como paquete binario que se puede instalar en la mayoría de las plataformas, incluidas Windows, Linux y macOS. Es una de las alternativas robustas, escalables, rápidas, fáciles de usar y a GitLab.
Gitea ofrece muchas funciones, incluido un editor de archivos de repositorio, seguimiento de errores y tiempo, bifurcación de repositorios, bloqueo de archivos, wiki incorporado, fusión, compatibilidad con múltiples bases de datos, proceso de actualización fácil, registro de contenedores incorporado y mucho más.
En este tutorial, le mostraré cómo instalar Gitea desde binario con PostgreSQL en Debian 11.
requisitos previos
- Un servidor que ejecuta Debian 11.
- Una contraseña de root está configurada en el servidor.
Paso 1: actualizar el sistema operativo
Antes de iniciar la instalación de Gitea, ejecute el siguiente comando para actualizar su sistema con la última versión.
sudo apt-get update -y
sudo apt-get upgrade -y
Paso 2: instalar y configurar PostgreSQL
Gitea admite todas 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.
Primero, cree el Repositorio de PostgreSQL usando 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, deberá importar la clave de firma del repositorio:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
Ahora, instale PostgreSQL usando los siguientes comandos:
sudo apt-get update
sudo apt-get -y install postgresql
A continuación, inicie el servicio PostgreSQL, actívelo al iniciar el sistema y verifique el estado del servicio PostgreSQL con el siguiente comando:
sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo systemctl status postgresql
A continuación, debe cambiar a ‘SCRAM-SHA-256’ esquema del esquema de cifrado md5 para una mejor seguridad. Si desea conectarse a PostgreSQL de forma remota, debe permitir su dirección IP en el archivo de configuración de PostgreSQL. Abra el archivo de configuración para realizar cambios con el siguiente comando:
sudo vim /etc/postgresql/14/main/postgresql.conf
Si tiene instalada otra versión de PostgreSQL, cambie la ruta de comando anterior de acuerdo con ella.
A continuación, cambie las siguientes variables según sus requisitos:
listen_addresses = 'localhost, 134.122.38.45' password_encryption = scram-sha-256
Guarde y salga del archivo y reinicie el servicio PostgreSQL para aplicar los cambios.
sudo systemctl restart postgresql
A continuación, inicie sesión en el shell de PostgreSQL con el siguiente comando:
sudo -u postgres psql
Luego cree un rol de usuario y una base de datos para Gitea ejecutando el siguiente comando:
postgres=# CREATE ROLE gitea WITH LOGIN PASSWORD '[email protected]';
postgres=# CREATE DATABASE giteadb;
postgres=# GRANT ALL PRIVILEGES ON DATABASE giteadb TO gitea;
postgres=# exit
Aquí, debe configurar el nombre de usuario, el nombre de la base de datos y su contraseña para Gitea.
En este punto, su configuración de PostgreSQL y listo para Gitea, verifique la configuración de 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 desea utilizar giteadb de forma remota, agregue la siguiente línea con su 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
Luego, instala git usando el siguiente comando:
sudo apt install git
Verifique la instalación de git comprobando la versión de Git:
git --version
Salida:-Publicidad
git version 2.30.2
A continuación, debe configurar su nombre y dirección de correo electrónico para Git.
git config --global user.name "Your Name"
git config –global user.email «[email protected]”
Puede verificar su configuración de Git usando el siguiente comando.
git config --list
Producción:-
user.name=Your Name [email protected]
Paso 4: crea un usuario git para Gitea
Ahora, deberás crear un usuario de Gitea. Puedes hacer esto 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
Ir a la Gitea Página de descarga y descarga la última versión disponible del binario Gitea. Al momento de escribir este tutorial, la última versión de Gitea es la 1.15.7. Puede cambiar la variable VERSIÓN 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, mueva el binario de Gitea a la ruta del sistema con el siguiente comando:
sudo mv /tmp/gitea /usr/local/bin
A continuación, configure el permiso ejecutable para el archivo binario de Gitea ejecutando el siguiente comando en la terminal:
chmod +x /usr/local/bin/gitea
A continuación, deberá crear una estructura de directorios para Gitea, para hacerlo, ejecute los siguientes comandos:
sudo mkdir -p /etc/gitea
sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
A continuación, otorgue 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, cree un archivo de servicio systemd para Gitea con el siguiente comando:
vim /etc/systemd/system/gitea.service
Pegue 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
Guardar y salir del archivo. Luego, vuelva a cargar systemd daemon e inicie el servicio Gitea usando el siguiente comando:
sudo systemctl daemon-reload
sudo systemctl start gitea
A continuación, debe habilitar el servicio Gitea al reiniciar el sistema:
sudo systemctl enable gitea
A continuación, verifica el estado de Gitea con el siguiente comando:Publicidad
sudo systemctl status gitea
Debería ver el siguiente resultado:
Como puede ver, Gitea se inicia y se ejecuta en el puerto 3000 de forma predeterminada. Puede verificar el puerto de Gitea con el siguiente comando:
netstat -tulpan | grep 3000
Debería ver una salida como la siguiente:
tcp6 0 0 :::3000 :::* LISTEN 43778/gitea
Paso 6: acceda a la interfaz web de Gitea
Gitea ahora está activo y escuchando en el puerto 3000 de forma predeterminada. Abre tu navegador y escribe https://TUDIRECCIÓNIPAD:3000.
A continuación, complete los parámetros requeridos de la siguiente manera:
Configuración de la base de datos
Tipo de base de datos: PostgreSQL
Anfitrión: 127.0.0.1:5432
Nombre de usuario: gitea
Contraseña: ingrese la contraseña que eligió durante la creación del rol de Postgres.
Nombre de la base de datos: giteadb
SSL: deshabilitar
Configuración general
Título del sitio: Título de su elección.
Ruta raíz del 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: su_dominio/IP
Puerto del servidor SSH: 22
Gitea HTTP Escuchar Publicación: 3000
URL base de Gitea: http://TUDIRECCIÓNIP:3000
Ruta de registro: /var/lib/gitea/log
En esta etapa, puede configurar su correo electrónico y la configuración del servidor y de terceros, o puede hacerlo más tarde. Sin embargo, debe configurar el administrador
nombre de usuario para iniciar sesión en Gitea. Por lo tanto, vaya a Configuración opcional e ingrese los detalles de Configuración de la cuenta del administrador y cree ‘Usuario administrador’ para Gitea.
A continuación, haga clic en el botón ‘Instalar Gitea’. Una vez que la instalación se haya completado con éxito, será redirigido al panel de control de Gitea que se muestra en la siguiente página:
Ahora, puede explorar Gitea y, desde la opción Administración del sitio desde su cuenta de administrador, puede configurar otros servicios de terceros, como la integración del directorio activo de Windows con Gitea.
Paso 7: configuración de notificaciones por correo electrónico
Puede habilitar las notificaciones por correo electrónico en Gitea mediante 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, abra el archivo de configuración de Gitea con el siguiente comando:
vim /etc/gitea/app.in
Luego, edite la siguiente sección en el archivo y agregue el siguiente código según su 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
Guarde y salga del archivo y reinicie el servicio de Gitea para aplicar los cambios:
sudo systemctl restart gitea
Paso 10 – Actualizar Gitea
Actualizar Gitea es un proceso sencillo y solo necesita descargar y reemplazar el binario de Gitea.
Primero, detenga el servicio de Gitea:
sudo systemctl stop gitea
A continuación, descargue e instale 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, inicie el servicio de Gitea con el siguiente comando:
sudo systemctl start gitea
Ahora, su Gitea está actualizada sin ningún tiempo de inactividad.
Conclusión
¡Felicidades! Ha instalado con éxito el servicio git de Gitea en Debian 11. Ahora puede actualizar fácilmente Gitea y administrar su repositorio git a través de un navegador web. Además, puede preguntarme si tiene alguna pregunta.