GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar y configurar Gogs en Ubuntu 18.04

Gogs es un servidor git de código abierto autohospedado escrito en Go. Incluye un editor de archivos de repositorio, seguimiento de problemas de proyectos y un wiki integrado.

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

Este tutorial cubre los pasos para instalar y configurar Gogs en Ubuntu 18.04. Las mismas instrucciones se aplican a Ubuntu 16.04 y cualquier otra distribución basada en Ubuntu.

Antes de comenzar #

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

En este tutorial, utilizaremos SQLite como 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 configurar un firewall básico. Puede seguir los pasos de nuestra guía Cómo configurar un firewall con UFW en Ubuntu 18.04.

Instalando Gogs #

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

Instalar Git #

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

sudo apt updatesudo apt install git

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

git --version
git version 2.17.1

Crea un número de usuario de Git

Cree un nuevo usuario del sistema para ejecutar el servicio de 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á como a continuación:

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

Descargar el número binario de Gogs

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

Descarga el archivo Gogs en el /tmp directorio usando el siguiente comando wget:

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

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

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 al usuario y 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 en /etc/systemd/system/ directorio escribiendo:

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

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

sudo systemctl start gogssudo systemctl enable gogs

Verifique que el servicio se haya iniciado correctamente:

* gogs.service - Gogs
   Loaded: loaded (/etc/systemd/system/gogs.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-04-25 04:13:44 PDT; 9s ago
 Main PID: 14376 (gogs)
    Tasks: 8 (limit: 2319)
   CGroup: /system.slice/gogs.service
           `-14376 /home/git/gogs/gogs web

Instalar Gogs usando el instalador web #

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

Abra su navegador, escriba http://YOUR_DOMAIN_IR_IP:3000 y aparecerá una pantalla similar a la siguiente:

Configuración de la base de datos:

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

Configuración general de la aplicación

  • Nombre de la aplicación:ingrese el nombre de su organización
  • Ruta raíz del repositorio:deje el valor predeterminado /home/git/gogs-repositories
  • Ejecutar usuario:git
  • Dominio:Ingrese su dominio o dirección IP del servidor.
  • Puerto SSH:22, cámbielo si SSH está escuchando en otro puerto
  • Puerto HTTP:3000
  • URL de la aplicación:use http y su dominio o dirección IP del servidor.
  • Ruta de registro:deje el valor predeterminado /home/git/gogs/log
Más tarde, 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 cuando se complete 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 de administradores.

Eso es todo. Gogs se ha instalado en su máquina Ubuntu.

Configurar 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 de su servidor. En este tutorial, usaremos gogs.example.com .

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

  • Cómo instalar Nginx en Ubuntu 18.04
  • Proteja Nginx con Let's Encrypt en Ubuntu 18.04

Una vez hecho esto, abra su editor de texto y edite el archivo de bloqueo del servidor de dominio:

sudo nano /etc/nginx/sites-enabled/gogs.example.com
/etc/nginx/sites-enabled/gogs.example.com
server {
    listen 80;
    server_name gogs.example.com;

    include snippets/letsencrypt.conf;
    return 301 https://gogs.example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name gogs.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/gogs.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/gogs.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/gogs.example.com/chain.pem;
    include snippets/letsencrypt.conf;
    include snippets/ssl.conf;

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

    # Handle / requests
    location / {
       proxy_redirect off;
       proxy_pass http://127.0.0.1:3000;
    }
}
No olvide reemplazar gogs.example.com con su dominio de Gogs y establezca la ruta correcta a los archivos del certificado SSL. Todas las solicitudes HTTP se redirigirán 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 hacerlo, abra el archivo de configuración y edite las siguientes líneas:

sudo nano /home/git/gogs/custom/conf/app.ini
/home/git/gogs/custom/conf/app.ini
[server]
DOMAIN           = gogs.example.com
ROOT_URL         = https://gogs.example.com/

Reinicie el servicio de Gogs escribiendo:

sudo systemctl restart gogs

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

Configuración de notificaciones por correo electrónico #

Para que Gogs pueda enviar correos electrónicos de notificación, puede instalar Postfix o usar algún 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 /home/git/gogs/custom/conf/app.ini
/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 poner 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 le permite conectarse a Slack creando webhook y enviar notificaciones a sus canales de Slack.

Actualizando Gogs #

Para actualizar Gogs, se requieren varios pasos manuales.

  1. Primero detenga el servicio de Gogs:

    sudo systemctl stop gogs
  2. Cambie el nombre del directorio de instalación de Gogs.

    sudo mv /home/git/gogs{,_old}
  3. Descarga la última versión de Gogs y muévela a /home/git directorio:

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

    Asegúrate de cambiar VERSION con la versión de lanzamiento real de Gogs.

  4. Copiar custom , data , log directorios al directorio extraído usando el siguiente comando rsync:

    sudo rsync -a /home/git/gogs_old/{custom,data,log,gogs.db} /home/git/gogs/
  5. Finalmente, inicie el servicio Gogs:

    sudo systemctl restart gogs

Eso es todo.


Ubuntu
  1. Cómo instalar y configurar Redis en Ubuntu 18.04

  2. Cómo instalar y configurar Redmine en Ubuntu 18.04

  3. Cómo instalar y configurar Samba en Ubuntu 18.04

  4. Cómo instalar y configurar Redis en Ubuntu 20.04

  5. Cómo instalar y configurar Jenkins en Ubuntu 20.04

Cómo instalar y configurar Redis en Ubuntu 20.04

Cómo instalar y configurar Neo4j en Ubuntu 20.04

Cómo instalar y configurar Ubuntu SDK en Ubuntu 16.04 y 14.04

Cómo instalar y configurar PostgreSQL en Ubuntu

Cómo instalar y configurar Git en Ubuntu 20.04

Cómo instalar y configurar el servicio Gogs Git en Ubuntu Linux