GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar el servicio Gogs Go Git en Ubuntu 16.04

Gogs es un servicio Git gratuito y de código abierto escrito en lenguaje Go. Gogs es un servicio Git sencillo y autohospedado que le permite crear y ejecutar su propio servidor Git en un servidor de hardware mínimo. La interfaz de usuario web de Gogs es muy similar a GitHub y ofrece soporte para bases de datos MySQL, PostgreSQL y SQLite.

En este tutorial, le mostraremos paso a paso cómo instalar y configurar su propio servicio Git usando Gogs en Ubuntu 16.04. Este tutorial cubrirá detalles que incluyen cómo instalar Go en el sistema Ubuntu, instalar PostgreSQL e instalar y configurar el servidor web Nginx como un proxy inverso para la aplicación Go.

Requisitos

  • Ubuntu 16.04
  • Privilegios de raíz

Lo que haremos

  1. Actualizar y mejorar el sistema
  2. Instalar y configurar PostgreSQL
  3. Instalar Go y Git
  4. Instalar Gogs
  5. Configurar gafas
  6. Ejecución de Gogs como servicio
  7. Instalar y configurar Nginx como proxy inverso
  8. Pruebas

Paso 1:actualización y mejora del sistema

Antes de continuar, actualice todos los repositorios de Ubuntu y actualice todos los paquetes.

Ejecute los comandos apt a continuación.

sudo apt update
sudo apt upgrade

Paso 2:instalar y configurar PostgreSQL

Gogs ofrece soporte para sistemas de bases de datos MySQL, PostgreSQL, SQLite3, MSSQL y TiDB.

En esta guía, utilizaremos PostgreSQL como base de datos para nuestras instalaciones de Gogs.

Instale PostgreSQL usando el comando apt a continuación.

sudo apt install -y postgresql postgresql-client libpq-dev

Una vez completada la instalación, inicie el servicio PostgreSQL y permita que se inicie cada vez que se inicia el sistema.

systemctl start postgresql
systemctl enable postgresql

La base de datos PostgreSQL se ha instalado en un sistema Ubuntu.

A continuación, debemos crear una nueva base de datos y un usuario para Gogs.

Inicie sesión como usuario 'postgres' y ejecute el comando 'psql' para obtener el shell de PostgreSQL.

su - postgres
psql

Cree un nuevo usuario llamado 'git' y otorgue privilegios de usuario para 'CREATEDB'.

CREATE USER git CREATEDB;
\password git

Cree una base de datos llamada 'gogs_production' y establezca el usuario 'git' como propietario de la base de datos.

CREATE DATABASE gogs_production OWNER git;

Se ha creado la nueva base de datos de PostgreSQL 'gogs_production' y el usuario 'git' para la instalación de Gogs.

Paso 3:instalar Go y Git

Instale Git desde el repositorio usando el comando apt a continuación.

sudo apt install git

Ahora agregue el nuevo usuario 'git' al sistema.

sudo adduser --disabled-login --gecos 'Gogs' git

Inicie sesión como usuario 'git' y cree un nuevo directorio 'local'.

su - git
mkdir -p /home/git/local

Vaya al directorio 'local' y descargue 'Go' (la última versión) usando el comando wget como se muestra a continuación.

cd ~/local
wget https://dl.google.com/go/go1.9.2.linux-amd64.tar.gz

Extrae el archivo comprimido go y luego quítalo.

tar -xf go1.9.2.linux-amd64.tar.gz
rm -f go1.9.2.linux-amd64.tar.gz

El archivo binario 'Go' se ha descargado en el directorio '~/local/go'. Ahora necesitamos configurar el entorno:necesitamos definir los directorios 'GOROOT' y 'GOPATH para que podamos ejecutar un comando 'go' en el sistema bajo el usuario 'git'.

Ejecute todos los siguientes comandos.

cd ~/
echo 'export GOROOT=$HOME/local/go' >> $HOME/.bashrc
echo 'export GOPATH=$HOME/go' >> $HOME/.bashrc
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> $HOME/.bashrc

Y vuelva a cargar Bash ejecutando el comando 'source ~/.bashrc' como se muestra a continuación.

source ~/.bashrc

Asegúrate de estar utilizando Bash como shell predeterminado.

Ahora ejecute el comando 'ir' para verificar la versión.

go version

Y asegúrese de obtener el resultado como se muestra en la siguiente captura de pantalla.

Go ahora está instalado en el sistema bajo el usuario 'git'.

Paso 4:instalar el servicio Gogs Go Git

Inicie sesión como usuario 'git' y descargue 'Gogs' de GitHub usando el comando 'go'.

su - git
go get -u github.com/gogits/gogs

El comando descargará todo el código fuente de Gogs en el directorio 'GOPATH/src'.

Vaya al directorio '$GOPATH/src/github.com/gogits/gogs' y cree gogs usando los comandos a continuación.

cd $GOPATH/src/github.com/gogits/gogs
go build

Y asegúrese de que no recibe ningún error.

Ahora ejecute el servicio Gogs Go Git usando el siguiente comando.

./gogs web

El comando ejecutará Gogs en el puerto predeterminado 3000.

Abra su navegador web y escriba la dirección IP de su servidor con el puerto 3000, el mío es http://192.168.33.10:3000/

Y debería obtener el resultado como se muestra a continuación.

Gogs está instalado en el sistema Ubuntu. Ahora regresa a tu terminal y presiona 'Ctrl + c' para salir.

Paso 5:configurar el servicio Gogs Go Git

En este paso, crearemos una configuración personalizada para Gogs.

Vaya al directorio de instalación de Gogs y cree un nuevo directorio 'custom/conf'.

cd $GOPATH/src/github.com/gogits/gogs
mkdir -p custom/conf/

Copie la configuración predeterminada en el directorio personalizado y edítela usando vim.

cp conf/app.ini custom/conf/app.ini
vim custom/conf/app.ini

En el '[servidor] ', cambie el servidor 'HOST_ADDR' por '127.0.0.1'.

[server]
PROTOCOL = http
DOMAIN = localhost
ROOT_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/
HTTP_ADDR = 127.0.0.1
HTTP_PORT = 3000

En la '[base de datos] ', cambie todo con su propia información de base de datos.

[database]
DB_TYPE = postgres
HOST = 127.0.0.1:5432
NAME = gogs_production
USER = git
PASSWD = [email protected]#

Guardar y salir.

Ahora verifique la configuración ejecutando el comando como se muestra a continuación.

./gogs web

Y asegúrese de obtener el siguiente resultado.

Gogs ahora se ejecuta con nuestra configuración personalizada, en 'localhost' con el puerto 3000.

Paso 6:ejecutar Gogs como servicio

En este paso, configuraremos Gogs como un servicio en el sistema Ubuntu. Crearemos una nueva configuración de archivo de servicio 'gogs.service' en el directorio '/etc/systemd/system'.

Vaya al directorio '/etc/systemd/system' y cree un nuevo archivo de servicio 'gogs.service' usando el editor vim.

cd /etc/systemd/system
vim gogs.service

Pegue la siguiente configuración del servicio gogs allí.

[Unit]
Description=Gogs
After=syslog.target
After=network.target
After=mariadb.service mysqld.service postgresql.service memcached.service redis.service

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
Type=simple
User=git
Group=git
WorkingDirectory=/home/git/go/src/github.com/gogits/gogs
ExecStart=/home/git/go/src/github.com/gogits/gogs/gogs web
Restart=always
Environment=USER=git HOME=/home/git

[Install]
WantedBy=multi-user.target

Guardar y salir.

Ahora recarga los servicios de systemd.

systemctl daemon-reload

Inicie el servicio gogs y permita que se inicie cada vez que se inicie el sistema con el comando systemctl.

systemctl start gogs
systemctl enable gogs

Gogs ahora se ejecuta como un servicio en el sistema Ubuntu.

Compruébalo usando los comandos a continuación.

netstat -plntu
systemctl status gogs

Y debería obtener el resultado como se muestra a continuación.

Paso 7:configurar Nginx como proxy inverso para Gogs

En este paso, configuraremos Nginx como proxy inverso para Gogs. Usaremos paquetes Nginx de su propio repositorio.

Agregue el repositorio Nginx usando el comando add-apt.

sudo add-apt-repository -y ppa:nginx/stable

Ahora actualice todos los repositorios de Ubuntu e instale Nginx usando el comando apt a continuación.

sudo apt update
sudo apt install nginx -y

A continuación, vaya al directorio '/etc/nginx/sites-disponible' y cree un nuevo archivo de host virtual 'gogs'.

cd /etc/nginx/sites-available
vim gogs

Pegue la siguiente configuración allí.

server {
    listen 80;
    server_name git.hakase-labs.co;

    location / {
        proxy_pass http://localhost:3000;
    }
}

Guardar y salir.

Nota:

Cambie la línea 'server_name' con su propio nombre de dominio.

Ahora active un nuevo host virtual y pruebe la configuración de nginx.

ln -s /etc/nginx/sites-available/gogs /etc/nginx/sites-enabled/
nginx -t

Asegúrese de que no haya ningún error, luego reinicie el servicio Nginx.

systemctl restart nginx

Paso 8 - Prueba

Abra su navegador web y escriba la URL de sus gogs, la mía es http://git.hakase-labs.co

Ahora obtendrá la página de instalación. En la parte superior de la página, escriba toda la información de su base de datos PostgreSQL.

Ahora desplácese hasta la parte inferior y haga clic en el menú desplegable "Configuración de la cuenta de administrador".

Escriba su usuario administrador, contraseña y correo electrónico.

Luego haga clic en el botón 'Instalar Gogs'.

Y se le redirigirá al Panel de usuario de Gogs como se muestra a continuación.

A continuación se muestra el 'Panel de administración' de Gogs.

Gogs ahora está instalado con la base de datos PostgreSQL y el servidor web Nginx en el servidor Ubuntu 16.04


Ubuntu
  1. Cómo instalar Git en Ubuntu 18.04 / 20.04

  2. Cómo instalar PostgreSQL en Ubuntu 18.04

  3. Cómo instalar Nginx en Ubuntu 18.04

  4. Cómo instalar PostgreSQL 9.6 en Ubuntu 20.04

  5. Cómo instalar git en ubuntu 16.04

Cómo instalar TimescaleDB en Ubuntu 20.04

Cómo instalar PostgreSQL 14 en Ubuntu 20.04

Cómo instalar TimescaleDB en Ubuntu 20.04

Cómo instalar Git en Ubuntu 15.04

Cómo instalar Git en Ubuntu 16.04

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