
Desde hace unos meses adquirí un NAS DS215j de la marca Synology. La cual sorprende por la cantidad de aplicaciones que pueden instalarse con un par de clicks:
https://www.synology.com/es-es/dsm/app_packages
Una de las utilidades que pueden ser instaladas es Git Server, permitiendo crear un servidor Git propio en el que alojar tus proyectos.
Lo primero que necesitamos es habilitar el acceso por ssh a nuestro servidor desde Panel de control > Terminal. Es conveniente que no uses el puerto 22 y uses otro de tu elección, para mejorar la seguridad de tu NAS al no usar los puertos por defecto.
Lo segundo es instalar el paquete que nos proporciona el Servidor Git. Una vez instalado nos permitirá dar acceso a los usuarios que queramos:
Los usuarios de Git quedarán restringidos a realizar actividades relacionadas con Git con una herramienta shell llamada git-shell. Esta shell de inicio de sesión se aplicará a los usuarios de Git para garantizar que las cuentas se utilicen únicamente para operaciones Git. El resultado es que los usuarios de Git solo pueden utilizar la conexión SSH para introducir y extraer repositorios Git, y no tendrán acceso completo a DSM.
Debido a la limitación citada, sólo el usuario "admin" del NAS puede crear los repositorios. Una vez creados los repositorios, cualquier usuario al que demos acceso desde la app del Servidor Git, podrá usar los repositorios.
Para crear el repositorio podemos hacerlo desde un cliente ssh como Putty. Usando la dirección DDNS de nuestro NAS (Panel de control > Acceso Externo > DDNS) y el puerto que definimos para acceder por ssh (Panel de control > Terminal), nos conectamos con las credenciales de acceso del usuario "admin". Una vez dentro creamos el repositorio con los siguientes comandos:
cd /volumeX #Donde X es el número del volumen mkdir GIT #Crear la carpeta cd GIT git init --bare --shared mi-repositorio.git
Con el repositorio creado, podremos acceder un clone usando la dirección:
git clone ssh://[Usuarios]@[DDNS:Puerto]/volumeX/GIT/mi-repositorio.git
O si prefieres, sin el usuario, de la siguiente manera:
git clone ssh://[DDNS:Puerto]/volumeX/GIT/mi-repositorio.git
A partir de este momento, ya tenemos listo nuestro proyecto para trabajar con él en local y sincronizar los cambios con el servidor.
Para más información consulta la ayuda de Synology:
https://help.synology.com/dsm/?section=Git&version=2.3&link=git.htm