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

Mostrando entradas con la etiqueta git repo. Mostrar todas las entradas
Mostrando entradas con la etiqueta git repo. Mostrar todas las entradas

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