Crea un servidor GIT en un NAS Synology

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:

synology_git-server

 

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

2496 Visitas Totales 2 Visitas para Hoy

7 response on “Crea un servidor GIT en un NAS Synology

  1. Gracias por la info! Ahora puedo usar GIT con mi Synology.
    Pero hay dos cosas que no consigo, a ver si tu experiencia me ayuda:
    1. Un usuario que no es admin, como puede crear un repo en el synology? Ya que no tiene acceso a SSH ni linea de comandos.
    2. Como puedo hacer un ‘clone’ de un repositorio que no es mio? Cuando quiero clonar el repositorio, me pide contraseña. Si es mi repo perfecto, pero si quiero compartirlo para que lo use otro? Puede hacer clone sin que le pida contraseña?
    Un saludo!

    • Hola Martín,

      voy a intentar despejar las dudas que me planteas:

      1) No, un usuario que no es admin NO puede crear un repositorio por SSH. Ya lo remarco en el artículo. Si vas a la documentación oficial de Synology te pone lo mismo. Hay formas de hacerlo, pero no sin ocasionar durante el proceso potenciales problemas de seguridad. Recuerda que los NAS de Synology son de propósito general y solo mediante aplicaciones enfocadas a dicha actividad como Gitlab (https://www.synology.com/en-us/dsm/app_packages/Docker-GitLab) puedes hacerlo de manera correcta y segura. Dependiendo del modelo que tengas es posible que no puedas instalarlo por falta de recursos hardware.

      2) Puedes hacer clone de cualquier repositorio con un usuario que tengas habilitado para usar comandos git contra el NAS. Fíjate que todos los repositorios son creados con el usuario admin, con lo que la propiedad final del repositorio es del admin. Por eso está la utilidad de Git Server que comento en la entrada, para dar acceso a los usuarios.
      Es normal que te pida contraseña para cualquier operación git. Al final son los usuarios de tu NAS y todos necesitan usuario y contraseña. Si quieres compartir el acceso al respositorio deberás crear cuentas con su respectivo usuario y contraseña.

      Un saludo.

  2. Buenas, seria posible una vez instalado, utilizar alguna herramienta como Gitkraken, SmartGit…
    Un cliente, para trabajar sobre el Git, o se debe de hacer todo desde consola?

    Saludos

    • ¡No hay ningún problema!

      Al final tienes tu URL de acceso que como pone en el artículo es de la forma:

      ssh://[DDNS:Puerto]/volumeX/GIT/mi-repositorio.git

      Cualquiera de las herramientas que me has dicho puede manejarlo.
      Yo concretamente lo he probado con Source Tree.

      Simplemente es meter la URL como remoto en tu repositorio y usar las credenciales que tengas definidas para el usuario. No olvides habilitar el acceso a los usuario como indica el artículo.

      Espero haber solventado tus dudas.

  3. Buenos días.
    Conectado por putty y con usuario admin no tengo permisos para crear la carpeta GIT ni ninguna.
    Entiendo k no deberia ser asi. El NAS es nuevo y actualizado a dia de hoy, puede ser la versión del sistema operativo?
    No se si podrias indicarme como conseguir estos permisos.

    Gracias.
    Un saludo

Deja un comentario