Instalar Gogs en Vesta Panel

Instalación y configuración de Gogs en Vesta panel.

Se puede instalar gogs en muchas distribuciones de linux, y en muchos paneles de Vps.
Yo lo voy a detallar la instalación de gogs orientado explicitamente a Vesta Panel, porque es algo más específico y es el que uso yo y el que más me gusta.
Si usas Vesta Panel te voy a explicar como instalar y configurar Gogs de forma muy sencilla.

$ sudo apt-get update

Instalamos Git.

$ sudo apt-get install git

Instalar Gogs en nuestro Vps.

Vamos a la web oficial de gogs, o directamente a su página de paquetes de descargas:
https://gogs.io/docs/installation/install_from_binary

Creamos el site (si no está creado) desde nuestro Vesta Panel. (Los que administran su Vps con otro panel harán lo propio)

Si disponemos de una cpu de 64bits, buscamos el último paquete nombrado como “amd64”.
Copiamos su enlace, normalmente se hace haciendo click derecho sobre el enlace y “copiar dirección de enlace

En la consola nos situamos en la carpeta del site. En Vesta Panel es /home/{user}/web/{site}
Y ya estando allí, escribimos:

$ wget {url}

(La url la pegamos haciendo click derecho del ratón)

Finalmente descomprimimos el fichero descargado, y este nos ha de crear la carpeta “gogs”, con lo cual nuestro contenido de gogs será:
/home/{user}/web/{site}/gogs/*

Consideraciones:
– No hemos de situarlo nunca dentro de “public_html” porque no queremos que esté al acceso de los internautas.
– El contenido descomprimido puede heredar como dueño, el usuario con el que hemos hecho login, o el mismísimo “root”. En Vesta Panel debe tener como dueño el usuario de la cuenta /home/{user}

Ya hemos instalado gogs, pero todavía queda más 😀

Instalamos Supervisor.

Después de instalar gogs, instalamos Supervisor:

$ sudo apt-get -y install supervisor

¿que es Supervisor? (Una forma de que nuestro servicio permanezca vivo y no se caiga)

Creamos la configuración de Gogs para Supervisor.
En la consola:

$ sudo nano /etc/supervisor/conf.d/gogs.conf

Cuyo contenido será el que continua bajo: (nótese las palabars {user} y {site}, debemos cambiarlas por los valores que corresponda en nuestro entorno)

[program:gogs]
directory=/home/{user}/web/{site}/gogs/
command=/home/{user}/web/{site}/gogs/gogs web
autostart=true
autorestart=true
startsecs=10
stdout_logfile=/home/{user}/web/{site}/logs/gogs-stdout.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/home/{user}/web/{site}/logs/gogs-stderr.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
environment = HOME="/home/{user}", USER="{user}"
user = {user}

Proxy reverso para la conectividad de Gogs.

Gogs está programado en un lenguaje llamado “go”, y esto va por libre, incluso tiene su propio servidor.
Así que ahora tenemos que apañarnos para todo cuaje y funcione con Vesta y apache.
Entonces, para que nuestro servidor nos permita la conectividad de Gogs con su servidor interno (que estará escuchando desde su default port 3000), necesitamos crear un proxy reverso.
En Vesta Panel el tráfico entra por Nginx -> Apache2.
Así que tenemos que decirle que si el tráfico entrante/saliente es de Gogs, el tráfico circulará Nginx -> Apache2 -> Gogs (y viceversa)

Para ello debemos modificar el fichero “.conf” del site de apache.
En Vesta Panel lo tenemos mucho más fácil, porque todos los sites llaman a un fichero externo tipo “include”, así que haremos una inclusión en vez de una modificación.

Si el site se llama pepito.com, el fichero de extensión de apache será: /home/{user}/conf/web/apache2.pepito.com.conf
Si el site tiene certificado ssl entonces será: /home/{user}/conf/web/sapache2.pepito.com.conf
(Repito, esto es en Vesta Panel)

Entendiendo esto, el contenido siguiente lo colocaremos:
A) Si somos Vesta Panel creamos una extensión del site-apache en la forma que he explicado:

$ sudo nano /home/{user}/conf/web/apache2.{site}.conf

B) Si somos de otro panel modificamos el fichero que corresponda, que usualmente debe ser

$ sudo nano /etc/apache2/sites-available/{site}.conf

 

El contenido para crear la escucha del proxy reverso es:

ProxyRequests Off
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/

 

Pero todavía no hemos acabado.
Para que apache sea capaz de entender esta configuración de proxy reverso, debemos habilitar 2 módulos:

$ sudo a2enmod proxy; 
$ sudo a2enmod proxy_http; 
$ sudo service apache2 restart; 
$ sudo service supervisor restart

(Los 2 últimos reinician los servicios de apache y supervisor)

Arranque y configuración de Gogs.

Finalmente ya si hemos terminado de instalar gogs, así que vamos a dar los primeros pasos.
Vamos a la URL de nuestro site, para poder ejecutar la página de configuración inicial de gogs.

En el configurador asignamos lo que proceda en cuanto a mysql.
En Domain ponemos nuestra url sin el http/https
Y en Url de la aplicación ponemos la url completa (sin el puerto 3000)
Incluso Podemos configurar también la cuenta inicial

Si nos sale la página inicial de nginx en lugar de gogs, volveremos a la consola e iniciaremos el servidor a mano:

$ /home/{user}/web/{site}/gogs/gogs web

(El proceso será temporal hasta que pulsemos Ctrl+C o cerremos la consola)

Averiguar si Gogs está escuchando.

Así que, si hemos terminado de instalar gogs, y si nos encontramos con el caso comentado de necesitar iniciar de forma manual el servidor de Gogs, puede que tengamos un problema.
Es muy probable que el problema sea con las rutas que hemos escrito en la configuración de “Supervisor”.
La mejor forma e inequívoca de averiguarlo, es reiniciar el servidor.
Tras el arranque completo, podremos averiguar si gogs ha cargado correctamente y está a la escucha.

¿Se ha cargado gogs?

$ ps -A |grep gogs

¿Está el puerto de gogs escuchando?

$ netstat -tlnp |grep 3000

Sobre nosotros Pedro Reina

Más de 12 años de experiencia en programación PHP+Mysql+Html. Webmaster aprendiendo SEO. Entusiasta de la informática y la electrónica, pequeño emprendedor y fabricante de ideas.

Deja un comentario