Usando Linux para muchas cosas y disfrutando de videojuegos, en dispositivos moviles, consolas y pc. Using Linux for many things and enjoying video games, mobile devices, consoles and pc

Como instalar y configurar Gogs en Linux Ubuntu server

DriveMeca instalando y configurando un servidor Git con Gogs en Linux Ubuntu server
Aunque lo neguemos, no siempre las mejores cosas son gratis en este mundo, y eso pasa a ratos en el opensource. Git de unos años para acá se ha vuelto muy popular en el ámbito de desarrollo y a su vez GitHub concentrando alrededor del mundo a los desarrolladores. Ahora, en algún momento puede que quieras tener tu propio servidor Git y allí llegamos al problema, GitHub no tiene versión para descargar e instalar en nuestra LAN (se pueden tener proyectos privados, pero debes pagar).
Menos mal estamos hablando de software opensource, donde todos los días nace una solución nueva llegando a nuestro tema del articulo de hoy, como instalar y configurar Gogs en un servidor Linux Ubuntu.
Gogs (Go Git Service) es una interfaz web para manejar repositorios Git algo mas fácil sin tener que conocer intricados comandos y con muchas facilidades.
Ya con esta breve introduccion veamos este articulo de Ubuntu en español.

Requerimientos



-Nuestro servidor para este articulo estara en la ip 192.168.1.163

-Instalamos dependencias y colocamos contraseña a la cuenta root de mariadb cuando lo pida
sudo apt-get install mariadb-server mercurial git supervisor
DriveMeca instalando y configurando un servidor Git con Gogs en Linux Ubuntu server

Articulo recomendado: Como instalar interfaz grafica en Ubuntu server paso a paso

-Creamos la db para gogs
mysql -u root -p
CREATE DATABASE gogsdb CHARACTER SET utf8;
exit;

-Agregamos al final de nuestro archivo .bashrc
vi ~/.bashrc
export GOPATH=/home/git/go
export GOROOT=/usr/local/src/go
export PATH=${PATH}:$GOROOT/bin

-Activamos las variables
source ~/.bashrc

-Descargamos desde este URL la ultima versión para Linux del lenguaje Go

wget -c https://storage.googleapis.com/golang/go1.6.2.linux-amd64.tar.gz

-Descomprimimos el archivo
tar xzvf go1.6.2.linux-amd64.tar.gz

-Lo movemos al home de git
sudo mv go $GOROOT

-Descargamos por medio de go el ultimo gogs disponible
go get -d github.com/gogits/gogs

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

-Creamos un directorio para logs
sudo mkdir -p /var/log/gogs

-Creamos un conf para supervisor, el encargado de ejecutar el servicio
sudo vi /etc/supervisor/supervisord.conf
[program:gogs]
directory=/home/git/go/src/github.com/gogits/gogs/
command=/home/git/go/src/github.com/gogits/gogs/gogs web
autostart=true
autorestart=true
startsecs=10
stdout_logfile=/var/log/gogs/stdout.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/var/log/gogs/stderr.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
environment = HOME="/home/git", USER="git"
user = git

-Reiniciamos el servicio
sudo service supervisor restart (Linux Ubuntu server 14.04)

sudo systemctl restart supervisor (Linux Ubuntu server 16.04)

-Verificamos este ejecutandose gogs
ps -ef | grep gogs
git      26831 26830  2 16:27 ?        00:00:00 /home/git/go/src/github.com/gogits/gogs/gogs web

-Miramos algo mas de su ejecucion
tail /var/log/gogs/stdout.log
2016/04/29 16:27:24 [W] Custom config '/home/git/go/src/github.com/gogits/gogs/custom/conf/app.ini' not found, ignore this if you're running first time
2016/04/29 16:27:24 [T] Custom path: /home/git/go/src/github.com/gogits/gogs/custom
2016/04/29 16:27:24 [T] Log path: /home/git/go/src/github.com/gogits/gogs/log
2016/04/29 16:27:24 [I] Gogs: Go Git Service 0.9.22.0425
2016/04/29 16:27:24 [I] Log Mode: Console(Trace)
2016/04/29 16:27:24 [I] Cache Service Enabled
2016/04/29 16:27:24 [I] Session Service Enabled
2016/04/29 16:27:24 [I] Run Mode: Development
2016/04/29 16:27:25 [I] Listen: http://0.0.0.0:3000

-Activamos permisos, creamos un directorio de logs dentro del home de los repositorios
sudo chown -R git.git /home/git/
sudo mkdir /usr/local/git/log
sudo chown git.git /usr/local/git/log

-Abrimos un browser y navegamos a http://192.168.1.163:3000/install ingresando los campos Database Type (MySQL), Host (127.0.0.1:3306), User (root) Password (contraseña del root de MySQL), Database Name (gogsdb), Application Name (Nombre de nuestro Gogs), Repository Root Path (path de donde almacenaremos los repo, en este caso /usr/local/git), Run User (git)
DriveMeca instalando y configurando un servidor Git con Gogs en Linux Ubuntu server

-Domain (ip del servidor), SSH Port (22), HTTP Port (3000), Application URL (http://192.168.1.163:3000), Log Path (/usr/local/git/log)
DriveMeca instalando y configurando un servidor Git con Gogs en Linux Ubuntu server

-Activamos opciones de Server and Other Services Settings y creamos una cuenta con privilegios de admin (no puede llamarse admin) en Admin Account Settings y damos click al botón Install Gogs
DriveMeca instalando y configurando un servidor Git con Gogs en Linux Ubuntu server

-Si seguiste los pasos, ya debes tener Gogs funcionando correctamente y nos debe mostrar la consola web
DriveMeca instalando y configurando un servidor Git con Gogs en Linux Ubuntu server

-Podemos personalizar nuestro perfil dándole click al botón gravatar de la derecha superior y entrando a Profile
DriveMeca instalando y configurando un servidor Git con Gogs en Linux Ubuntu server

-Como somos administradores podemos llegar al panel de configuracion y ver mas opciones de mantenimiento de nuestro Gogs
DriveMeca instalando y configurando un servidor Git con Gogs en Linux Ubuntu server

-Entre las tareas ya disponibles tenemos la de crear usuarios en el menu Users
DriveMeca instalando y configurando un servidor Git con Gogs en Linux Ubuntu server

-Ahora, para crear un repositorio vamos al URL http://192.168.1.163/repo/create y llenamos los campos. Terminamos dándole click al botón  Create Repository
DriveMeca instalando y configurando un servidor Git con Gogs en Linux Ubuntu server

-La otra forma es darle click al símbolo + superior derecho y allí veremos la opción. Así luce nuestro nuevo repositorio en Gogs
DriveMeca instalando y configurando un servidor Git con Gogs en Linux Ubuntu server

-Ya te había comentado que puedes poner en Español la interfaz web de Gogs? Bien, damos click al botón inferior con forma de planeta y allí veremos los idiomas
DriveMeca instalando y configurando un servidor Git con Gogs en Linux Ubuntu server

Trabajando localmente un repositorio

-Para descargar o clonar un repositorio ejecutamos
drivemeca@cabrera-VAIO:~$ git clone http://192.168.1.163:3000/admgogs/Repositorio_de_prueba.git
Clonar en «Repositorio_de_prueba»...
Username for 'http://192.168.1.163:3000': admgogs
Password for 'http://admgogs@192.168.1.163:3000':
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 5 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (5/5), done.
Checking connectivity... hecho.

-Ya tenemos una copia del repositorio en nuestro pc local
ls -la Repositorio_de_prueba/
total 56
drwxrwxr-x  3 drivemeca drivemeca  4096 may  2 17:24 .
drwxr-xr-x 50 drivemeca drivemeca  4096 may  2 17:23 ..
drwxrwxr-x  8 drivemeca drivemeca  4096 may  2 17:24 .git
-rw-rw-r--  1 drivemeca drivemeca  1552 may  2 17:24 .gitignore
-rw-rw-r--  1 drivemeca drivemeca 34570 may  2 17:24 LICENSE
-rw-rw-r--  1 drivemeca drivemeca    66 may  2 17:24 README.md

-Si modificamos el código en nuestra copia local, por ejemplo, cambiamos el README.md
cd Repositorio_de_prueba/
echo 'Me encanta Gogs, una forma amigable de manejar Git' >> README.md

-Publicamos los cambios al servidor Git con Gogs
git add --all && git commit -m "init commit" && git push origin master
[master 5c53be9] init commit
 1 file changed, 1 insertion(+), 1 deletion(-)
Username for 'http://192.168.1.163:3000': admgogs
Password for 'http://admgogs@192.168.1.163:3000':
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 350 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
To http://192.168.1.163:3000/admgogs/Repositorio_de_prueba.git
   e47361f..5c53be9  master -> master

Un cambio del cielo a la tierra dirás cuando comiences a manejar tus repositorios por medio de Gogs, ya lo conocías, usas otra alternativa, cual?, escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.
Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark