Gitea es un servidor git de código abierto autohospedado escrito en Go. Viene con un editor de archivos de repositorio, seguimiento de problemas de proyectos, administración de usuarios, notificaciones, wiki incorporado y mucho más.
Gitea es una aplicación ligera y se puede instalar en sistemas menos potentes. Si está buscando una alternativa de Gitlab con una huella de memoria mucho más pequeña y no necesita todas las campanas y silbatos que ofrece Gitlab, debe probar Gitea.
Este artículo le muestra cómo instalar y configurar Gitea en CentOS 8.
requisitos previos
Gitea admite SQLite, PostgreSQL y MySQL / MariaDB como backends de bases de datos.
Usaremos SQLite. Es una base de datos liviana que almacena datos dentro de un solo archivo. Si SQLite no está instalado en su máquina CentOS, puede instalarlo ejecutando el siguiente comando como usuario sudo :
sudo dnf install sqlite
Suponemos que SELinux está deshabilitado o configurado en modo permisivo.
Instalando Gitea
Gitea se puede instalar desde código fuente, binario y como paquete. También se puede implementar como una imagen de Docker. Instalaremos Gitea usando el binario.
Instalar Git
El primer paso es instalar Git en su CentOS:
sudo dnf install git
Verifique la instalación mostrando la versión de Git:
git --version
git version 2.18.4
Crear un usuario Git
Cree un nuevo usuario del sistema para ejecutar la aplicación Gitea:
sudo useradd \
--system \
--shell /bin/bash \
--comment 'Git Version Control' \
--create-home \
--home /home/git \
git
El comando creará un nuevo usuario y grupo llamado git
, y establecerá el directorio de inicio en /home/git
.
Descargar binario Gitea
El último binario de Gitea se puede descargar desde la página de descargas de Gitea . Asegúrese de descargar el binario correcto para su arquitectura.
Al momento de escribir, la última versión es 1.12.3. Si hay una nueva versión disponible, cambie la VERSION
variable en el siguiente comando.
Use wget
para descargar el binario de Gitea en el /tmp
directorio:
VERSION=1.12.3
sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
Puede ejecutar el binario desde cualquier ubicación. Seguiremos la convención y moveremos el binario al /usr/local/bin
directorio:
sudo mv /tmp/gitea /usr/local/bin
Hacer el ejecutable binario:
sudo chmod +x /usr/local/bin/gitea
Los siguientes comandos crearán los directorios necesarios y establecerán los permisos y la propiedad necesarios :
sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
sudo chown git: /var/lib/gitea/{data,indexers,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
La estructura de directorios anterior es la recomendada por la documentación oficial de Gitea.
Los permisos del /etc/gitea
directorio están configurados para 770
que el asistente de instalación pueda crear los archivos de configuración. Una vez que se complete la instalación, estableceremos permisos más restrictivos.
Crear un archivo de unidad Systemd
Gitea proporciona un archivo de unidad Systemd que está configurado para coincidir con nuestra configuración.
Descargue el archivo al /etc/systemd/system/
directorio escribiendo:
sudo wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/
Una vez hecho esto, habilite e inicie el servicio de Gitea:
sudo systemctl daemon-reload
sudo systemctl enable --now gitea
Verifique que el servicio se haya iniciado correctamente:
sudo systemctl status gitea
● gitea.service - Gitea (Git with a cup of tea)
Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2020-01-04 21:27:23 UTC; 3s ago
Main PID: 14804 (gitea)
Tasks: 9 (limit: 1152)
CGroup: /system.slice/gitea.service
└─14804 /usr/local/bin/gitea web --config /etc/gitea/app.ini
...
Configurar Gitea
Ahora que Gitea está funcionando, es hora de finalizar la instalación a través de la interfaz web.
De forma predeterminada, Gitea escucha las conexiones en el puerto 3000
en todas las interfaces de red. Deberá configurar su firewall para habilitar el acceso a la interfaz web de Gitea:
sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp
sudo firewall-cmd --reload
Abra su navegador, ingrese http://YOUR_DOMAIN_IR_IP:3000/install
y aparecerá la página de configuraciones iniciales:
Complete los campos requeridos de la siguiente manera:
Configuración de la base de datos:
- Tipo de base de datos: SQLite3
- Ruta: use una ruta absoluta,
/var/lib/gitea/data/gitea.db
Configuración general de la aplicación:
- Título del sitio: ingrese el nombre de su organización.
- Ruta raíz del repositorio: deje el valor predeterminado
/home/git/gitea-repositories
. - Git LFS Root Path: deje el valor predeterminado
/var/lib/gitea/data/lfs
. - Ejecutar como nombre de usuario - git
- Dominio del servidor SSH: ingrese su dominio o dirección IP del servidor.
- Puerto SSH - 22, cámbielo si SSH está escuchando en otro puerto
- Puerto de escucha HTTP Gitea - 3000
- URL base de Gitea: utilice http y la dirección IP de su dominio o servidor.
- Ruta de registro: deje el valor predeterminado
/var/lib/gitea/log
Una vez hecho esto, presione el botón "Instalar Gitea". La instalación es instantánea. Cuando haya terminado, será redirigido a la página de inicio de sesión.
Haga clic en el enlace "Regístrese ahora". El primer usuario registrado se agrega automáticamente al grupo Admin.
Para hacer la instalación más segura, cambie los permisos del archivo de configuración de Gitea a solo lectura usando:
sudo chmod 750 /etc/gitea
sudo chmod 640 /etc/gitea/app.ini
Eso es. Gitea se ha instalado en su máquina CentOS.
Configuración de Nginx como proxy de terminación SSL
Este paso es opcional, pero es muy recomendable. Para usar Nginx como proxy inverso , debe tener un dominio o subdominio que apunte a la IP pública de su servidor. En este tutorial, usaremos git.example.com
.
Primero, instale Nginx y genere un certificado Let's Encrypt SSL gratuito utilizando las siguientes guías:
- Cómo instalar Nginx en CentOS 8
- Asegure Nginx con Let's Encrypt en CentOS 8
Una vez hecho esto, abra su editor de texto y edite el archivo de bloqueo del servidor de dominio :
sudo nano /etc/nginx/conf.d/git.example.com.conf
server {
listen 80;
server_name git.example.com;
include snippets/letsencrypt.conf;
return 301 https://git.example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name git.example.com;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
client_max_body_size 50m;
# Proxy headers
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
# SSL parameters
ssl_certificate /etc/letsencrypt/live/git.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/git.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/git.example.com/chain.pem;
include snippets/letsencrypt.conf;
include snippets/ssl.conf;
# log files
access_log /var/log/nginx/git.example.com.access.log;
error_log /var/log/nginx/git.example.com.error.log;
# Handle / requests
location / {
proxy_redirect off;
proxy_pass http://127.0.0.1:3000;
}
}
No olvide reemplazar git.example.com con su dominio de Gitea y establezca la ruta correcta a los archivos del certificado SSL. El tráfico HTTP se redirige a HTTPS .
Una vez hecho esto, reinicie el servicio Nginx para que los cambios surtan efecto:
sudo systemctl restart nginx
A continuación, cambie el dominio de Gitea y la URL raíz. Para hacerlo, abra el archivo de configuración y edite las siguientes líneas:
sudo nano /etc/gitea/app.ini
[server]
DOMAIN = git.example.com
ROOT_URL = https://git.example.com/
Reinicie el servicio de Gitea escribiendo:
sudo systemctl restart gitea
En este punto, el proxy de Gitea está configurado y puede acceder a él en: https://git.example.com
Configuración de notificaciones por correo electrónico
Para que se envíen los correos electrónicos de notificación, puede instalar Postfix o usar un servicio de correo transaccional como SendGrid, MailChimp, MailGun o SES.
Para habilitar las notificaciones por correo electrónico, abra el archivo de configuración y edite las siguientes líneas:
sudo nano /etc/gitea/app.ini
[mailer]
ENABLED = true
HOST = SMTP_SERVER:SMTP_PORT
FROM = SENDER_EMAIL
USER = SMTP_USER
PASSWD = YOUR_SMTP_PASSWORD
Asegúrese de utilizar la información correcta del servidor SMTP.
Cada vez que edite el app.ini
archivo, debe reiniciar el servicio de Gitea para que los cambios surtan efecto:
sudo systemctl restart gitea
Para verificar la configuración y enviar un correo electrónico de prueba, inicie sesión en Gitea y vaya a: Administración del sitio > Configuración > Configuración de correo SMTP.
Gitea también le permite conectarse a Slack creando un webhook y enviar notificaciones a sus canales de Slack .
Mejorando Gitea
Actualizar a la última versión de Gitea es una tarea sencilla. Solo necesita descargar y reemplazar el binario.
Detener el servicio de Gitea:
sudo systemctl stop gitea
Descarga el último binario de Gitea y muévelo al
/usr/local/bin
directorio:VERSION=<THE_LATEST_GITEA_VERSION>
wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
sudo mv /tmp/gitea /usr/local/bin
Hacer el ejecutable binario:
sudo chmod +x /usr/local/bin/gitea
Reiniciar el servicio de Gitea:
sudo systemctl restart gitea
Eso es.
Conclusión
Le mostramos cómo instalar Gitea en CentOS 8. Ahora debe visitar la página de documentación de Gitea y aprender cómo configurar su instalación y crear su primer proyecto.
Si tiene preguntas, no dude en dejar un comentario a continuación.
0 Comentarios