7 de las Mejores Alternativas Autohospedadas a Github

Una fotografía de una pantalla de monitor mostrando un historial de commits de Git.

Después de que Microsoft adquirió Github, muchos desarrolladores han estado buscando alternativas para alojar su código. Microsoft (y muchas otras grandes empresas) tiene la costumbre de comprar tecnología probada, sitios web y productos para expandir su alcance. Skype es un ejemplo, y ahora Github también lo es.

Afortunadamente, hay muchos otros sistemas de control de versiones de los que puedes elegir. No todos tienen toda la funcionalidad de Github, pero dependiendo de lo que necesites, las opciones son bastante buenas. Este artículo revisará algunas de las mejores alternativas autohospedadas a Github que puedes instalar en tu propia máquina hoy.

Tabla de Contenidos

    1. GitLab
    1. Gogs
    1. Trac
    1. GitBucket
    1. Gitea
    1. Mercurial
    1. Fossil

1. GitLab

Incluso antes de que Microsoft adquiriera Github, GitLab ya era una popular plataforma alternativa de gestión de código. Es una herramienta de ciclo de vida DevOps de código abierto con funcionalidad de planificación, prueba, empaquetado y lanzamiento. También cuenta con un wiki y características de seguimiento de problemas, lo que la hace increíblemente atractiva para los usuarios que desean tener una experiencia “similar a Github” autohospedada.

Una captura de pantalla de la página de inicio de GitLab.

Si bien puedes usar GitLab como una plataforma de gestión de código autohospedada, sus desarrolladores también ofrecen una versión premium de SaaS de pago. Esta viene con características adicionales como la capacidad de sincronizar con un servidor LDAP y pipelines avanzados de CI/CD.

Dicho esto, puedes desplegar GitLab en tu máquina así como en su plataforma alojada de forma gratuita. La edición Premium, por otro lado, actualmente comienza en $29 por usuario al mes.

Consejo: aprende qué hace que GitLab sea diferente de Github y determina cuál es el mejor para ti.

2. Gogs

Gogs es una plataforma de hosting de Git liviana que puedes desplegar en casi cualquier hardware. Escrito en Go, sus desarrolladores diseñaron el programa para ser lo más rápido posible mientras depende de poco o ningún recurso externo. Por ejemplo, es posible ejecutar Gogs en un sistema con solo 512 MB de RAM.

Una captura de pantalla de la página web predeterminada de Gogs.

Uno de los mayores puntos de venta de Gogs es que es increíblemente fácil de ejecutar incluso en servidores virtuales. Por defecto, Gogs también viene con todas las herramientas que necesitas para gestionar tu código, rastrear problemas y documentar tus cambios. Por lo tanto, Gogs es una excelente opción si buscas una alternativa “sin complicaciones” a Github con la mejor relación “potencia-peso”.

Es bueno saber: aprende los conceptos básicos de la gestión de un repositorio Git.

3. Trac

Trac es una plataforma de gestión de código simple y altamente flexible para Linux. A diferencia de GitLab y Gogs, Trac puede trabajar con Subversion y Git como su sistema de control de versiones en el backend. Esto lo hace útil si ya tienes un proyecto funcionando en cualquiera de esos sistemas.

Una captura de pantalla de la página de inicio del proyecto Trac.

Aparte de ser una herramienta flexible, Trac también es un wiki mejorado y un sistema de seguimiento de problemas para tu proyecto. Puede gestionar varios tickets, asignar diferentes roles, así como crear niveles de prioridad para cada problema en tu repositorio.

Además, Trac también proporciona varios complementos que pueden cambiar la forma en que se comporta tu instancia de forma predeterminada. Por ejemplo, tiene un complemento que te permite integrar Trac a un proyecto existente de Github. Como resultado, Trac es una buena opción si necesitas monitorear el progreso de los proyectos de manera regular y cercana.

Consejo: Si solo necesitas una solución simple de pastebin utilizando Git, consulta Opengist.

4. GitBucket

GitBucket es un clon de GitHub basado en JVM escrito en Scala. No tiene tantas características como las otras aplicaciones de la lista. De hecho, su principal ventaja es su similitud con GitHub. En otras palabras, si comenzaras a extrañar GitHub, siempre puedes recurrir a GitBucket.

Página de inicio de GitBucket

Dicho esto, GitBucket viene con un visor de repositorios decente, un rastreador de problemas, la capacidad de revisar y aceptar solicitudes de extracción, así como un wiki simple. Aparte de eso, también puedes ampliar la funcionalidad de GitBucket con la ayuda de complementos. Estos son pequeños fragmentos de código que pueden introducir nuevas características o cambiar las existentes para tu repositorio. Por ejemplo, puedes instalar un complemento de GitHub Gist en tu GitBucket, así como sitios web personalizados similares a GitHub Pages.

Consejo: consulta algunos de los mejores ganchos de Git que se utilizan para optimizar tu repositorio.

5. Gitea

Gitea es una plataforma de gestión de código liviana y centrada en la seguridad para Linux. Basada en Gogs, tiene como objetivo proporcionar una alternativa completa “plug-and-play” a GitHub mientras consume pocos o ningún recurso del sistema.

Página de inicio de Gitea

Algunas de las características más destacadas de Gitea en comparación con Gogs son sus feeds RSS integrados, el soporte para flujos de trabajo de CI/CD, así como múltiples roles de usuario para tu repositorio. Además, también viene con su propio marco de extensiones el cual te permite agregar características como sitios web personalizados similares a las páginas de GitHub. Gitea es una gran alternativa si estás buscando un GitHub autohospedado ligero que también sea altamente extensible.

FYI: ¿Eres un usuario de Emacs? Aprende cómo puedes integrar Git en Emacs usando Magit.

6. Mercurial

A diferencia de las entradas anteriores en esta lista, Mercurial es una plataforma de gestión de código completamente diferente en comparación con GitHub. Proporciona una forma más limpia y concreta de gestionar el código que es más fácil de aprender para los nuevos desarrolladores de software. Similar a Subversion, Mercurial tiene como objetivo eliminar la complejidad proporcionando comandos que ya son similares a tu sistema Linux.

Página de inicio de Mercurial

Uno de los puntos de venta de Mercurial es que es multiplataforma y altamente modular. Como resultado, la plataforma viene con una gran cantidad de extensiones que puedes usar para personalizar tu flujo de trabajo de Mercurial. Por ejemplo, la extensión hgnested te permite crear sub-repositorios más pequeños dentro del tuyo principal.

7. Fossil

Fossil es un sistema de gestión de código fuente no Git para Linux que se centra en la simplicidad y la fiabilidad. A diferencia de Git y Mercurial, Fossil proporciona una plataforma completa “todo en uno” para desarrollar y compartir código con otras personas. Directamente desde la instalación, cada instalación de Fossil viene con un foro, un rastreador de problemas e incluso un simple chat IRC.

Mejores Alternativas a Github - Página de inicio de Fossil

Un punto único de venta de Fossil es que es fácil de implementar y flexible a las demandas de tu máquina. Es posible crear tu repositorio Fossil a partir de un solo binario sin permisos de sudo, así como ejecutarlo como un contenedor usando Docker y Docker Compose. Esto lo hace atractivo para los usuarios que ya tienen un servidor y necesitan una plataforma de gestión de código adaptable que sea fácil de desplegar en casi cualquier entorno.

Aprender algunas de las mejores alternativas a GitHub que puedes instalar en tu máquina es solo el primer paso para recuperar tu privacidad digital en línea. Explora este maravilloso mundo del autohospedaje creando tu propia alternativa a bit.ly usando Shlink.

Crédito de la imagen: Yancy Min a través de Unsplash. Todas las alteraciones y capturas de pantalla por Ramces Red.