Cómo instalar y configurar Gogs en Ubuntu 18.04 LTS

27 feb 2021 6 min di lettura
Cómo instalar y configurar Gogs en Ubuntu 18.04 LTS
Indice dei contenuti

Introducción

Gogs es un servidor git de código abierto autohospedado escrito en Go. Incluye un editor de archivos de repositorio, detección de problemas del proyecto y una wiki integrada.

Gogs es una aplicación ligera y se puede instalar en sistemas de baja potencia. Si está buscando una alternativa de Gitlab con una huella de memoria mucho más pequeña y no necesita todas las comodidades que ofrece Gitlab, entonces debería probar Gogs.

Este tutorial le muestra los pasos para instalar y configurar Gogs en Ubuntu 18.04. Las mismas instrucciones se aplican a Ubuntu 16.04.

Si su intención es instalar Gogs en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conectarse al servidor" y lea el siguiente.

Conexión al servidor

Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:

ssh root@IP_DEL_SERVER

A continuación, deberá ingresar la contraseña del usuario root.

Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:

ssh nome_utente@IP_DEL_SERVER

Luego se le pedirá que ingrese su contraseña de usuario.

El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Antes de empezar

Gogs puede usar la base de datos SQLite, PostgreSQL o MySQL /MariaDB para almacenar todos sus datos.

En este tutorial, usaremos SQLite como nuestra base de datos preferida. Si SQLite no está instalado en su sistema, puede instalarlo escribiendo:

sudo apt install sqlite3

Para una capa adicional de seguridad, se recomienda que configure un firewall básico. Puede seguir los pasos de nuestra guía: Cómo configurar UFW Firewall en Ubuntu 18.04 LTS.

Instalar Git

Instalaremos Gogs desde binario. La instalación es un proceso bastante sencillo.

El primer paso es instalar Git en su servidor. Para hacer esto, actualice el índice del paquete local e instale el paquete git ejecutando los siguientes comandos como usuario sudo:

sudo apt update
sudo apt install git

Verifique la instalación viendo la versión de Git:

git --version

Debería ver un mensaje de salida similar al siguiente:

git version 2.17.1

Crea un usuario de Git

Cree un nuevo usuario del sistema para ejecutar el servicio Gogs escribiendo:

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

El comando creará el usuario y establecerá el directorio de inicio en /home/git. La salida se verá así:

Adding system user `git' (UID 111)...
 Adding new group `git' (GID 116)...
 Adding new user `git' (UID 111) with group `git'...
 Creating home directory `/home/git'...

Descarga el binario de Gogs

Visite la página de descarga de Gogs y descargue el binario más reciente para su arquitectura. En el momento de escribir este artículo, la última versión es 0.11.91, si hay una nueva versión disponible, cambie la VERSION en el siguiente comando.

Descargue el archivo de Gogs en el /tmp usando el siguiente comando wget:

VERSION=0.11.91
wget https://dl.gogs.io/${VERSION}/gogs_${VERSION}_linux_amd64.tar.gz -P /tmp

Una vez que se complete la descarga, extraiga el archivo Gogs tar.gz y muévalo al /home/git:

sudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git

Ejecute el siguiente comando para cambiar la propiedad del directorio de instalación de Gogs para el usuario y el grupo git:

sudo chown -R git: /home/git/gogs

Crear un archivo de unidad systemd

Gogs viene con un archivo de unidad Systemd que ya está configurado para coincidir con nuestra configuración.

Copie el archivo al /etc/systemd/system/ escribiendo:

sudo cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/

Una vez hecho esto, inicie y habilite el servicio Gogs con el siguiente comando:

sudo systemctl start gogs
sudo systemctl enable gogs

Verifique que el servicio se inicie correctamente:

sudo systemctl status gogs

Debería ver un mensaje de salida similar al siguiente:

● gogs.service - Gogs
 Loaded: loaded (/etc/systemd/system/gogs.service; enabled; vendor preset: enabled)
 Active: active (running) since Thu 2020-01-09 20:00:24 CET; 6s ago
 Main PID: 18347 (gogs)
 Tasks: 7 (limit: 2298)
 CGroup: /system.slice/gogs.service
 └─18347 /home/git/gogs/gogs web...

Configurar Gogs usando el instalador web

Ahora que Gogs está descargado y funcionando, es hora de finalizar la instalación a través de la interfaz web.

Abra su navegador, escriba http://TUO_DOMINIO_O_IP:3000 y aparecerá una pantalla de configuración de Gogs como la siguiente:

Configuración de la base de datos:

  • Tipo de base de datos: SQLite3
  • Ruta: use una ruta absoluta, /home/git/gogs/gogs.db

Configuración general de la aplicación:

  • Nombre de la aplicación: ingrese el nombre de la organización
  • Ruta raíz del repositorio: deje el /home/git/gogs-repositories
  • Ejecución del usuario: git
  • Dominio: ingrese la dirección IP de su dominio o servidor.
  • Puerto SSH: 22, cámbielo si SSH está escuchando en otro puerto
  • Puerto HTTP: 3000
  • URL de la aplicación: utilice http y la dirección IP del dominio o servidor.
  • Ruta de registro: deje el /home/git/gogs/log

Posteriormente, puede cambiar la configuración editando el archivo de configuración de Gogs.

Una vez hecho esto, presione el botón Instalar Gogs. La instalación es instantánea y una vez completada será redirigido a la página de inicio de sesión.

Haga clic en el enlace Registrarse ahora.

El primer usuario registrado se agrega automáticamente al grupo Admin.

Eso es todo. Gogs se instaló en su computadora Ubuntu.

Configuración de Nginx como proxy de terminación SSL

Este paso es opcional pero muy recomendable. Para usar Nginx como proxy inverso, debe tener un dominio o subdominio que apunte a la IP pública del servidor. En este tutorial, usaremos example.com.

Primero, instale Nginx y genere un certificado SSL Let's Encrypt gratuito siguiendo las guías a continuación:

Una vez hecho esto, abra su editor de texto y edite el archivo de bloque de servidor de dominio (Bloques de servidor - Hosts virtuales):

sudo nano /etc/nginx/sites-enabled/example.com


server {

 root /var/www/example.com/public_html;

 index index.html;

 server_name example.com www.example.com;

 access_log /var/log/nginx/example.com.access.log;
 error_log /var/log/nginx/example.com.error.log;

 location /{
 proxy_redirect off;
 proxy_pass http://127.0.0.1:3000;
 }

 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;


 listen [::]:443 ssl ipv6only=on; # managed by Certbot
 listen 443 ssl; # managed by Certbot
 ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
 include /etc/letsencrypt/options-ssl-nginx.conf;
 ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;



 }
 server {
 if ($host = www.example.com) {
 return 301 https://$host$request_uri;
 }


 if ($host = example.com) {
 return 301 https://$host$request_uri;
 }


 listen 80;
 listen [::]:80;

 server_name example.com www.example.com;
 return 404; # managed by Certbot

 }


No olvide reemplazar example.com con su dominio de Gogs y establecer la ruta correcta para los archivos del certificado SSL. Todas las solicitudes HTTP serán redirigidas a HTTPS.

Reinicie el servicio Nginx para que los cambios surtan efecto:

sudo systemctl restart nginx

A continuación, debemos cambiar el dominio de Gogs y la URL raíz. Para hacer esto, abra el archivo de configuración y edite las siguientes líneas:

sudo nano /home/git/gogs/custom/conf/app.ini

Ingrese su nombre de dominio:

[server]
 DOMAIN = example.com
 ROOT_URL = https://example.com/

Reinicie el servicio de Gogs escribiendo:

sudo systemctl restart gogs

En este punto, Gogs está configurado y puede acceder a él desde HTTPS: https://example.com.

Configurar notificaciones por correo electrónico

Para que Gogs pueda enviar correos electrónicos de notificación, puede instalar Postfix o utilizar algunos servicios 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 /home/git/gogs/custom/conf/app.ini
[mailer]
 ENABLED = true
 HOST = SMTP_SERVER:SMTP_PORT
 FROM = SENDER_EMAIL
 USER = SMTP_USER
 PASSWD = YOUR_SMTP_PASSWORD

Asegúrese de ingresar la información correcta del servidor SMTP.

Reinicie el servicio de Gogs para que los cambios surtan efecto:

sudo systemctl restart gogs

Gogs también te permite conectarte a Slack creando un webhook y enviando notificaciones a tus canales de Slack.

Actualizar Gogs

Para actualizar Gogs, se requieren varios pasos manuales.

Primera parada del servicio Gogs:

sudo systemctl stop gogs

Cambie el nombre del directorio de instalación de Gogs.

sudo mv /home/git/gogs{,_old}

Descargue la última versión de Gogs y muévala al /home/git:

VERSION=<THE_LATEST_GOGS_VERSION>
wget https://dl.gogs.io/${VERSION}/gogs_${VERSION}_linux_amd64.tar.gz -P /tmp
sudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git

Asegúrese de cambiar VERSION con la versión de lanzamiento actual de Gogs.

Copie custom data personalizados y log en el directorio extraído con el siguiente comando rsync:

sudo rsync -a /home/git/gogs_old/{custom,data,log} /home/git/gogs/

Finalmente, inicie el servicio Gogs:

sudo systemctl restart gogs

Eso es todo.

Conclusión

Este tutorial lo guió a través de la instalación y configuración de Gogs en Ubuntu 18.04. Ahora puede crear su primer proyecto y comenzar a usar su nuevo servidor Gogs.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.