Forgejo: forja de software leve com auto-hospedagem
(forgejo.org)- Forgejo é uma forja de software leve com auto-hospedagem para equipes que querem operar sua própria plataforma de desenvolvimento, com foco em reduzir a carga de instalação e manutenção
- É operado por uma comunidade ligada à Codeberg e.V., mantendo tanto o projeto quanto o processo de desenvolvimento baseados em software livre
- Oferece um ambiente fácil para quem já está acostumado com o GitHub migrar, mas foi projetado para que os usuários controlem diretamente a propriedade da plataforma e a produtividade da colaboração
- Oferece muitos recursos, mas mantém baixos requisitos de servidor, afirmando exigir uma quantidade de recursos de um dígito em comparação com outras forjas
- Coloca segurança, escalabilidade, federação e privacidade no centro, com foco em desenvolvimento colaborativo distribuído
Posição e modelo de operação do Forgejo
- Forgejo é uma forja de software leve com auto-hospedagem, permitindo operar uma plataforma de desenvolvimento de software em seu próprio servidor
- Busca facilitar a instalação e a manutenção, com baixa carga administrativa
- Você pode criar uma conta no Codeberg ou em outras instâncias públicas, ou baixar e fazer a auto-hospedagem por conta própria
- O projeto é administrado por uma comunidade inclusiva sob a Codeberg e.V.
- A Codeberg e.V. é apresentada como uma organização democrática sem fins lucrativos
- O Forgejo afirma ser confiável por ser exclusivamente software livre
- O foco do produto está em segurança, escalabilidade, federação e privacidade
- As diferenças em relação a outras forjas de software podem ser vistas na página de comparação
Direção de recursos e áreas de participação
- O Forgejo tem como objetivo retomar o controle do processo de desenvolvimento de software, auto-hospedar projetos e ajudar os participantes a se concentrarem juntos na entrega de software de qualidade
-
Usabilidade e carga operacional
- Destaca o gerenciamento simples de projetos e valoriza a experiência do usuário para colaboração e produtividade
- Oferece um ambiente familiar para usuários do GitHub, permitindo migrar para uma plataforma que eles próprios controlam
- Reduz a carga de instalação e manutenção para que seja possível operar sua própria forja de software mesmo sem conhecimento técnico especializado
-
Software livre e colaboração distribuída
- Mantém um perfil de servidor baixo mesmo oferecendo muitos recursos
- Tanto o Forgejo quanto o processo de desenvolvimento do projeto usam software livre
- Apresenta uma direção voltada a viabilizar o desenvolvimento colaborativo de software por meio de uma plataforma distribuída
-
Áreas em que é possível contribuir
1 comentários
Opiniões do Hacker News
Segundo o FAQ, a pronúncia é forˈd͡ʒe.jo e, para ouvidos do meio-oeste dos EUA, soa como “4 Jay yo”. Dizem que significa Forge em esperanto
É um fork do Gitea, mas é administrado como uma organização sem fins lucrativos e é bom por ser totalmente licenciado como software livre (GPL), sem upsell premium. Também gosto de a comunicação da comunidade ser pelo Matrix e pelo Mastodon
Parece que o Codeberg usa isso e, por fora, parece Gitea/GitHub, sem problemas. O código-fonte pode ser visto pelo pequeno ícone de branch no canto superior direito e está hospedado no Codeberg. O que descobri hoje foi que o próprio Codeberg é uma instância do Forgejo
https://forgejo.org/2024-02-forking-forward/
https://v10.next.forgejo.org/explore/repos
https://codeberg.org/forgejo/forgejo
Pelo que entendo, o fork surgiu porque o Gitea criou uma empresa que desenvolve funcionalidades sob medida quando empresas solicitam, e não porque houvesse muitos indícios de algo como uma mudança de licença
Dizem que o Fedora Project está migrando para ele: https://fedoramagazine.org/fedora-moves-towards-forgejo-a-unified-decision/
Fiquei curioso para saber por que o Forgejo se separou do Gitea e fui pesquisar; parece mais um caso de criadores/mantenedores de software livre e open source sem dinheiro sendo prejudicados por cima — e talvez também por baixo
Pelo anúncio de incorporação do Gitea, só software livre e open source não dava conta dos custos, e parece que havia aproveitadores ricos permitidos pela licença MIT
O trecho central é: “Ao longo dos anos, tentamos várias formas de apoiar os mantenedores e o projeto, como bounties, patrocínios diretos e subsídios. Muitas pessoas excelentes e algumas empresas foram muito generosas, mas algumas empresas faturam mais do que o PIB de certos países, usam o Gitea em seus produtos principais e não devolvem melhorias”
Não sou fã do Bruce Perens, mas a frase “temos um excelente programa de welfare corporativo, e os usuários são algumas das empresas mais ricas do mundo. Em contrapartida, se os desenvolvedores não trabalharem nessas empresas, quase não recebem compensação” acerta em cheio o problema
Por outro lado, quando os fundadores criaram uma empresa, a comunidade reagiu mal; pelo que dizem, o problema não era tanto a criação da empresa em si, mas o fato de ela deter o domínio e a marca. Parece um motivo pequeno à primeira vista, mas não conheço os detalhes
De todo modo, fora de desenvolvedores por hobby e da FAANG, parece caso #187 de fracasso do FOSS
Software livre era originalmente um movimento ético, e não precisava priorizar fontes de receita. O objetivo não era desenvolvimento sustentável, mas a liberdade do usuário. Em “o usuário deve ter a liberdade de fazer o que quiser com o software” não há nada como “e alguns desenvolvedores que trabalham por esse objetivo ético precisam poder receber salário”
Segundo a própria história da OSI, em algum momento as pessoas começaram a achar que o modelo de desenvolvimento aberto também era intrinsecamente bom para os negócios, a Netscape entrou nessa, e alguns se reuniram para rebatizar software livre como open source
http://web.archive.org/web/20071115150105/https://opensource.org/history/
O termo FOSS me soa parecido com o budismo corporativo à americana. Assim como mindfulness e meditação foram retirados de seu contexto religioso profundo original e transformados em programas de autoajuda, isso virou algo que os praticantes originais dificilmente reconheceriam. Software livre era sobre fazer a coisa certa — a liberdade do usuário —, não sobre desenvolvimento sustentável; o resto era meio para esse fim. Só que, em algum momento, o meio virou o fim, e passamos a nos perguntar por que o FOSS obviamente não paga as contas
Quem leu bem a tendência foi o GitLab. Eles encontraram um ponto de equilíbrio para oferecer o produto no estilo open source e ao mesmo tempo bancar os custos operacionais; ganharam confiança e receita, então fizeram bem
Se você quer viver de trabalho open source, precisa operar como um negócio e usar mecanismos empresariais adequados. Caso contrário, seu próprio esforço pode acabar se voltando contra você como exploração. Não estou falando de má-fé, mas justiça é uma questão de equilíbrio; se o trabalho duro não trata você adequadamente, isso também é injusto
É difícil entender a recusa em colocar condições copyleft adicionais na licença e, no fim, esperar que as empresas ajam de boa-fé como se essas condições existissem
Empresas como o Google gostam de licenças permissivas e chegam a financiar substitutos sob MIT/BSD para componentes comuns, como o toybox
Pelo visto, o Forgejo v9 em diante é de fato licenciado sob GPL
O espantalho da big tech é útil para justificar quando um projeto open source muda a licença de repente, mas não se encaixa aqui. Normalmente já não faz muito sentido, e neste caso os próprios mantenedores parecem nunca ter dito algo assim
Projetos como MongoDB, ElasticSearch e Redis ganharam popularidade porque eram open source, e provavelmente limitaram a concorrência por anos porque é difícil competir com o grátis. Depois, anos mais tarde, viraram as costas para os usuários. Se o MongoDB 1.0 fosse um produto comercial, ninguém teria usado; portanto, o dinheiro que eles ganharam existiu, para começo de conversa, porque era open source
O interessante no Forgejo é que o trabalho de federação de forjas (federation) está em andamento
https://codeberg.org/forgejo/forgejo/issues/59#issuecomment-1652830
Em um mundo ideal, GitHub e GitLab também dariam suporte à federação, mas provavelmente isso não vai acontecer
Como alternativa no mesmo espaço de problema, há opções P2P como https://radicle.xyz/
Uma federação útil entre instâncias do Forgejo poderia ser resolvida muito bem só com OIDC e alguns webhooks. Por exemplo, colaboração entre instâncias, forks e pull requests. Não sei por que seria necessária uma federação entre Forgejo e Mastodon, e também é meio nebuloso o que isso significaria
Antes, eles também publicavam relatórios anuais de progresso até 2023, mas esse site parece não estar mais acessível: https://web.archive.org/web/20240830030315/https://forgefriends.org/blog/2023/06/21/2023-06-state-forge-federation/
Ainda assim, a última menção à federação nas atualizações mensais foi em outubro, quando enfatizaram que a federação era, e continuaria sendo, a “maior prioridade” do projeto Forgejo
https://forgejo.org/2024-10-monthly-update/#:~:text=Forgejo%20federation%20is%20and%20will%20always%20be%20the%20highest%20priority%20of%20the%20Forgejo%20project
Expor um repositório Git na rede é muito fácil via HTTP ou SSH, e ele também oferece suporte a fluxos de revisão de código baseados em e-mail. Ainda assim, gosto bastante da abordagem do git-appraise, que armazena as revisões dentro do próprio repositório
https://github.com/google/git-appraise
Pipelines de CI/CD também podem ser integrados de forma simples se puderem ser acionados por push. Só que criamos UIs centralizadas em cima do Git e agora estamos tentando integrar essas UIs entre si. Considerando que o Git já é descentralizado, isso parece um passo na direção contrária
Conteúdo relacionado: https://gitlab.com/groups/gitlab-org/-/epics/11247#why
Hoje eu faço espelhamento entre um Forgejo auto-hospedado, github.com e gitlab.com, e a instância do Forgejo é mais parte do meu hobby de auto-hospedagem do que uma infraestrutura essencial
O GitLab Cells também parece poder seguir na mesma direção, e o documento de design menciona federação
https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/cells/
Ao longo de alguns anos, migrei do Gogs para o Gitea e depois para o Forgejo, e é um software realmente excelente
Em 90% dos casos, basta colocar repositórios Git pessoais em um servidor SSH. Se a ideia é só manter um repositório do Chezmoi em algum lugar acessível a partir de todos os computadores, a família Forgejo não acrescenta muita coisa
Mas nos outros 10%, ou seja, quando você quer compartilhar código de forma privada com alguns amigos, ele é ótimo. Gratuito é melhor do que um plano pago do GitHub e, se você já vai rodá-lo por causa desses 10% de projetos, faz sentido usar o resto também como seu repositório Git pessoal de referência
Também tem Kanban e editor de código
Ao trocar para o Gitea, foi um alívio; e quando o Fedora escolheu o Forgejo como servidor de repositórios, o Forgejo chamou minha atenção
Minhas necessidades são simples: algo como um armazenamento central de arquivos para notas e código-fonte. Testei a migração do Gitea 1.21 para o Forgejo 9 e foi sem atrito
Estou considerando seriamente a mudança, mas ainda fico pensando qual dos dois será mais bem suportado no longo prazo e mais adequado para uso gratuito
Sinceramente, acho que o próximo destino será o Forgejo com Forgejo Actions para CI/CD (https://forgejo.org/docs/next/user/actions/), ou então ir para o lado mais profundo e voltar para o Jenkins
A tagline não é muito explicativa. Só depois de rolar a página principal uma ou duas vezes consegui entender qual era o objetivo, isto é, uma alternativa auto-hospedada ao GitHub
Em software, a palavra “forge” pode ser interpretada de várias formas, então seria melhor deixar isso claro mais cedo
Tecnicamente, sistemas da época como o Redmine também poderiam ser chamados de forge, mas parece que o termo se consolidou depois disso
Referência: https://en.wikipedia.org/wiki/Forge_(software)
Quando ouço “forge”, penso em uma ferramenta que transforma matéria-prima em um produto acabado. Por exemplo, ferramentas de uma ferraria que transformam ferro em ferraduras
Como metáfora de software, faria mais sentido algo que transforma código-fonte em texto em binários executáveis, ou seja, um compilador ou interpretador
GitHub e SourceForge movem código-fonte de um lugar para outro. Se forçar a metáfora, parecem mais uma combinação de loja e serviço de entrega. O código-fonte se move, mas não é transformado
Então, do ponto de vista de um desenvolvedor antigo de C/C++, forge soa bem estranho como termo para um servidor Git auto-hospedado
Depois de sofrer tentando manter o GitLab CE rodando, por ele consumir muita CPU e memória, migrei para o Forgejo e não me decepcionei
Ele roda como contêiner rootless e quase não usa memória nem CPU. Atualizar também é simples: um
podman pulle tudo simplesmente funcionaAgora também rodo Actions para executar Jekyll e afins, mantendo sites estáticos sempre atualizados
Gosto de ter minha própria forge, capaz de importar repositórios, issues etc. de outras forges como GitHub e GitLab, e também estou ansioso por uma integração mais ampla com o Fediverse baseada em ActivityPub no futuro
Uma abordagem descentralizada, mas ainda conectada, para hospedagem de código era algo que eu sempre quis, e agora parece que estamos quase lá
Ao longo de alguns anos, migrei de GitHub → GitLab auto-hospedado → Gitea → Forgejo, e não me arrependo
O Forgejo é excelente e deve ficar ainda melhor quando a federação estiver completa. Quando forks e pull requests distribuídos entre várias instâncias forem possíveis, o problema da fragmentação das soluções auto-hospedadas será resolvido
Perdi a confiança no Gitea quando ele criou um braço comercial com dinheiro de VC, e foi exatamente por isso que o Forgejo foi criado como fork
A única coisa que perdi ao sair do GitLab foi a plataforma de CI/CD integrada. Mas consegui migrar meus pipelines para o Drone CI e acioná-los por webhooks. Ainda assim, dependendo da complexidade dos pipelines do GitLab, essa pode não ser sempre uma opção viável
De qualquer forma, eu não queria hospedar um servidor GitLab consumindo 5 GB de RAM por causa de alguns projetinhos. O Forgejo usa cerca de 500 MB de RAM mesmo nos picos
Fico curioso para saber como é a experiência de code review. Imagino que seja parecida com a do Gitea, mas nunca usei nenhum dos dois
Recentemente fiz um code review bem sério no GitHub e, como ferramenta de code review, ele pareceu quase uma versão de brinquedo. A menos que você projete todo o modelo de controle de código-fonte em torno dessa ferramenta, acho que ela não serve para trabalho de engenharia sério; e, se fizer isso, outros fatores que afetam a gestão do histórico acabam sendo sacrificados
Estou mais acostumado ao Gerrit; o modelo básico é razoável, mas tem muitas arestas e também problemas de desempenho
Pensando agora, acho que nunca usei uma ferramenta de revisão de que eu realmente gostasse. Fico com a impressão de que o setor está simplesmente se virando sem ferramentas adequadas
Pelo que lembro, o GitLab era um pouco melhor que o GitHub, mas não me recordo dos detalhes
Parece uma resposta à pergunta “o que é Forgejo?” do tipo: “Forgejo é uma forja de software leve que pode ser auto-hospedada. É fácil de instalar, exige pouca manutenção e faz o que precisa fazer”
Claro que nem tudo precisa ser adaptado ao inglês, e dizem que é esperanto, mas como outras partes do site não são assim, a maioria provavelmente não vai interpretar dessa forma