<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Self-Hosted-Git on KnightLi Blog</title>
        <link>https://www.knightli.com/es/tags/self-hosted-git/</link>
        <description>Recent content in Self-Hosted-Git on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Wed, 07 Dec 2022 00:00:00 +0000</lastBuildDate><atom:link href="https://www.knightli.com/es/tags/self-hosted-git/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Montar un servidor Git en Synology NAS y respaldarlo con Hyper Backup</title>
        <link>https://www.knightli.com/es/2022/12/07/synology-git-server-hyper-backup/</link>
        <pubDate>Wed, 07 Dec 2022 00:00:00 +0000</pubDate>
        
        <guid>https://www.knightli.com/es/2022/12/07/synology-git-server-hyper-backup/</guid>
        <description>&lt;p&gt;Synology NAS puede funcionar como un servidor Git privado y ligero. Para proyectos personales o equipos pequeños suele ser suficiente: los repositorios quedan dentro de la LAN, el acceso se gestiona con cuentas del NAS y los datos pueden protegerse con las herramientas de copia de seguridad de Synology.&lt;/p&gt;
&lt;p&gt;Esta nota resume la configuración básica y el flujo de respaldo con Hyper Backup.&lt;/p&gt;
&lt;h2 id=&#34;instalar-git-server&#34;&gt;Instalar Git Server
&lt;/h2&gt;&lt;p&gt;Abre Package Center en Synology DSM e instala el paquete Git Server.&lt;/p&gt;
&lt;p&gt;Después de instalarlo, abre Git Server y permite que los usuarios necesarios usen Git por SSH. La cuenta del NAS debe tener acceso SSH y permiso sobre la carpeta donde se guardarán los repositorios.&lt;/p&gt;
&lt;h2 id=&#34;preparar-el-directorio-de-repositorios&#34;&gt;Preparar El Directorio De Repositorios
&lt;/h2&gt;&lt;p&gt;Crea una carpeta compartida o un subdirectorio para los repositorios Git, por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/volume1/git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Dentro de esa carpeta, crea repositorios bare:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git init --bare project.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Un repositorio bare no tiene working tree. Es el formato adecuado para usarse como remoto.&lt;/p&gt;
&lt;h2 id=&#34;conectar-desde-un-cliente&#34;&gt;Conectar Desde Un Cliente
&lt;/h2&gt;&lt;p&gt;Desde otra máquina, clona el repositorio por SSH:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone user@nas-ip:/volume1/git/project.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También puedes añadirlo como remoto en un proyecto local existente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git remote add origin user@nas-ip:/volume1/git/project.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git push -u origin master
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si SSH usa un puerto no estándar, configúralo en SSH o usa una URL remota personalizada.&lt;/p&gt;
&lt;h2 id=&#34;permisos&#34;&gt;Permisos
&lt;/h2&gt;&lt;p&gt;Asegúrate de que el directorio del repositorio pertenece al usuario o grupo correcto. Si varios usuarios necesitan acceso, colócalos en un grupo común y otorga permisos de lectura/escritura sobre la carpeta Git.&lt;/p&gt;
&lt;p&gt;Si el push falla, revisa primero:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;si el inicio de sesión SSH funciona;&lt;/li&gt;
&lt;li&gt;si el usuario está autorizado en Git Server;&lt;/li&gt;
&lt;li&gt;si la carpeta tiene permiso de escritura;&lt;/li&gt;
&lt;li&gt;si el repositorio fue creado como bare;&lt;/li&gt;
&lt;li&gt;si la URL remota es correcta.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;copia-de-seguridad-con-hyper-backup&#34;&gt;Copia De Seguridad Con Hyper Backup
&lt;/h2&gt;&lt;p&gt;Cuando los repositorios estén en el NAS, configura Hyper Backup para respaldar la carpeta Git.&lt;/p&gt;
&lt;p&gt;En Hyper Backup:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Crea una nueva tarea de backup.&lt;/li&gt;
&lt;li&gt;Selecciona el destino, como otro disco, otro NAS, un servidor rsync o almacenamiento cloud.&lt;/li&gt;
&lt;li&gt;Selecciona la carpeta de repositorios Git.&lt;/li&gt;
&lt;li&gt;Configura la programación.&lt;/li&gt;
&lt;li&gt;Activa la retención de versiones si la necesitas.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Esto protege los datos ante fallos de disco, borrados accidentales o pushes incorrectos.&lt;/p&gt;
&lt;h2 id=&#34;notas-de-restauración&#34;&gt;Notas De Restauración
&lt;/h2&gt;&lt;p&gt;Al restaurar, recupera el directorio completo del repositorio bare. Después prueba:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone user@nas-ip:/volume1/git/project.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si el clone funciona, el repositorio vuelve a estar disponible.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Synology Git Server es sencillo, pero suficiente para muchos repositorios privados. Los puntos importantes son acceso SSH, permisos correctos, repositorios bare y una tarea fiable de Hyper Backup.&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
