7 das Melhores Alternativas Auto-Hospedadas ao Github

Após a aquisição do Github pela Microsoft, muitos desenvolvedores têm procurado alternativas para hospedar seu código. A Microsoft (e muitas outras empresas gigantes) tem o hábito de comprar tecnologias, sites e produtos comprovados para expandir seu alcance. O Skype é um exemplo, e agora o Github também.
Felizmente, há uma variedade de outros sistemas de controle de versão entre os quais você pode escolher. Nem todos eles possuem toda a funcionalidade do Github, mas dependendo do que você precisa, as opções são bastante boas. Este artigo abordará algumas das melhores alternativas auto-hospedadas ao Github que você pode instalar em sua própria máquina hoje.
Índice
- GitLab
- Gogs
- Trac
- GitBucket
- Gitea
- Mercurial
- Fossil
1. GitLab
Mesmo antes da Microsoft adquirir o Github, o GitLab já era uma plataforma popular de gerenciamento de código. É uma ferramenta de ciclo de vida DevOps de código aberto com funcionalidades de planejamento, teste, empacotamento e lançamento. Também vem com um wiki e recursos de rastreamento de problemas, o que a torna incrivelmente atraente para usuários que desejam ter uma experiência “semelhante ao Github” auto-hospedada.

Embora você possa usar o GitLab como uma plataforma de gerenciamento de código auto-hospedada, seus desenvolvedores também oferecem uma versão SaaS premium paga. Isso vem com funcionalidades adicionais, como a capacidade de sincronizar com um servidor LDAP e pipelines CI/CD avançados.
Dito isso, você pode implantar o GitLab em sua máquina, bem como em sua plataforma hospedada gratuitamente. A edição Premium, por outro lado, atualmente começa em $29 por usuário por mês.
Dica: descubra o que faz o GitLab diferente do Github e determine qual é o melhor para você.
2. Gogs
O Gogs é uma plataforma leve de hospedagem Git que você pode implantar em quase qualquer hardware. Escrito em Go, seus desenvolvedores projetaram o programa para ser o mais rápido possível, dependendo de pouca ou nenhuma dependência externa. Por exemplo, é possível executar o Gogs em um sistema com apenas 512 MB de RAM.

Um dos maiores pontos de venda do Gogs é que ele é incrivelmente fácil de executar, mesmo em servidores virtuais. Por padrão, o Gogs também vem com todas as ferramentas de que você precisa para gerenciar seu código, rastrear problemas e documentar suas alterações. Assim, o Gogs é uma ótima opção se você estiver procurando uma alternativa ao Github “sem complicações” com a melhor relação “potência/peso”.
Bom saber: aprenda o básico sobre como gerenciar um repositório Git.
3. Trac
O Trac é uma plataforma simples e altamente flexível de gerenciamento de código para Linux. Diferente do GitLab e do Gogs, o Trac pode trabalhar tanto com Subversion quanto com Git para seu sistema de controle de versão backend. Isso o torna útil se você já tem um projeto funcionando em qualquer um desses sistemas.

Além de ser uma ferramenta flexível, o Trac também é um sistema aprimorado de wiki e rastreamento de problemas para seu projeto. Ele pode gerenciar vários tickets, atribuir diferentes funções, bem como criar níveis de prioridade para cada problema em seu repositório.
Além disso, o Trac também fornece uma série de plug-ins que podem alterar como sua instância se comporta por padrão. Por exemplo, ele possui um plug-in que permite integrar o Trac a um projeto existente no Github. Assim, o Trac é uma boa escolha se você precisar monitorar regularmente e de perto o progresso dos projetos.
Dica: se você só precisa de uma solução simples de pastebin usando Git, confira o Opengist.
4. GitBucket
O GitBucket é um clone do GitHub baseado em JVM escrito em Scala. Ele não possui tantas funcionalidades quanto os outros aplicativos da lista. Na verdade, sua principal vantagem é sua semelhança com o GitHub. Em outras palavras, se você começar a sentir falta do GitHub, pode sempre recorrer ao GitBucket.

Dito isso, o GitBucket vem com um visualizador de repositórios decente, um rastreador de problemas, a capacidade de revisar e aceitar solicitações de pull, bem como um wiki simples. Além disso, você também pode estender a funcionalidade do GitBucket com a ajuda de plug-ins. Estes são pequenos trechos de código que podem introduzir novas funcionalidades ou alterar as existentes para o seu repositório. Por exemplo, você pode instalar um plug-in do GitHub Gist no seu GitBucket, assim como sites personalizados semelhantes ao GitHub Pages.
Dica: confira alguns dos melhores usos de hooks do Git para otimizar seu repositório.
5. Gitea
O Gitea é uma plataforma leve e focada em segurança para gerenciamento de código no Linux. Baseado no Gogs, ele visa fornecer uma alternativa abrangente ao GitHub pronta para uso, consumindo poucos ou nenhum recurso do sistema.

Alguns dos maiores recursos do Gitea em comparação com o Gogs são seus feeds RSS embutidos, suporte a fluxos de trabalho CI/CD, bem como múltiplas funções de usuário para o seu repositório. Além disso, ele também vem com sua própria estrutura de extensões que permite adicionar funcionalidades, como sites personalizados semelhantes às páginas do GitHub. O Gitea é uma ótima alternativa se você está procurando um GitHub auto-hospedado leve que também seja altamente extensível.
Para sua informação: você é um usuário do Emacs? Aprenda como integrar o Git ao Emacs usando Magit.
6. Mercurial
Diferente das entradas anteriores nesta lista, o Mercurial é uma plataforma de gerenciamento de código completamente diferente do GitHub. Ele fornece uma maneira mais limpa e concreta de gerenciar código que é mais fácil de aprender para novos desenvolvedores de software. Semelhante ao Subversion, o Mercurial busca cortar o desnecessário, fornecendo comandos que já são semelhantes ao seu sistema Linux.

Um dos pontos de venda do Mercurial é que ele é multiplataforma e altamente modular. Como resultado, a plataforma vem com uma tonelada de extensões que você pode usar para personalizar seu fluxo de trabalho do Mercurial. Por exemplo, a extensão hgnested permite que você crie sub-repositórios menores dentro do seu principal.
7. Fossil
O Fossil é um sistema de gerenciamento de código fonte não-Git para Linux que foca na simplicidade e confiabilidade. Diferente do Git e do Mercurial, o Fossil fornece uma plataforma completa e tudo-em-um para desenvolver e compartilhar código com outras pessoas. Logo de cara, toda instalação do Fossil vem com um fórum, rastreador de problemas e até mesmo um simples chat IRC.

Um ponto de venda único do Fossil é que é fácil de implantar e flexível às demandas da sua máquina. É possível criar seu repositório Fossil a partir de um único binário sem quaisquer permissões sudo, assim como executá-lo como um contêiner usando Docker e Docker Compose. Isso o torna atraente para usuários que já têm um servidor e precisam de uma plataforma de gerenciamento de código adaptável que seja fácil de implantar em quase qualquer ambiente.
Aprender algumas das melhores alternativas ao GitHub que você pode instalar em sua máquina é apenas o primeiro passo para recuperar sua privacidade digital online. Explore este maravilhoso mundo da auto-hospedagem criando sua própria alternativa ao bit.ly usando Shlink.
Créditos da imagem: Yancy Min via Unsplash. Todas as alterações e capturas de tela por Ramces Red.