Saltar para o conteúdo principal
50% de desconto todos os planos, tempo limitado. A partir de $2.48/mo
14 min left
Ferramentas de desenvolvimento e DevOps

Gitea vs Forgejo vs OneDev: escolhendo uma plataforma de git self-hosted

B Por Bill 14 min de leitura
Gitea vs Forgejo vs OneDev: choosing between a lightweight self-hosted git server and an all-in-one dev platform.

Em uma comparação entre gitea, forgejo e onedev, você está olhando para três ferramentas que respondem a duas perguntas diferentes. Gitea e Forgejo são servidores git que agregam gerenciamento de projetos. OneDev é uma plataforma de gerenciamento de projetos e CI que, por acaso, hospeda git muito bem. Então a decisão não é "qual dos três é o melhor". É "eu quero um servidor git pequeno, ou uma plataforma tudo-em-um, e posso pagar em RAM o custo do tudo-em-um?"

Essa última parte é a tensão. O OneDev faz mais coisas prontas de fábrica, e os testes do nodatools.com mediram um consumo ocioso de aproximadamente 3x a memória de uma instalação simples do Forgejo, o que em um VPS pequeno pode dobrar sua fatura mensal. Esse trade-off é o jogo inteiro. (E não, o GitLab não está nesta comparação. Se você quisesse a pegada do GitLab, não estaria lendo sobre esses três.)

Eu já rodei os três. Abaixo está o que realmente importa na hora de escolher um para uma equipe: as diferenças de governança e licença que separam Gitea de Forgejo, os recursos que justificam a existência do OneDev, os números de RAM testados, e um "escolha este se…" direto para cada um.

TL;DR

  • Quer um servidor git leve com CI no estilo Actions? Gitea ou Forgejo. Escolha o Gitea se uma compatibilidade mais próxima com o GitHub Actions for importante; escolha o Forgejo se uma sintaxe de workflow parecida com a do GitHub, com alguns ajustes de migração, for aceitável.
  • Se importa com governança sem fins lucrativos ou com uma licença copyleft? Forgejo. É o fork governado pela comunidade, e é minha escolha padrão para a maioria das equipes.
  • Quer a licença MIT, a maior comunidade de forge ou um nível Enterprise pago com SLA/SSO? Gitea.
  • Quer gerenciamento de projetos embutido, CI incluso e inteligência de código em uma única instalação, e tem RAM sobrando? OneDev. Só saiba que ele precisa de ~4 GB no mínimo, enquanto o Forgejo fica satisfeito com 1 GB.

Veredito rápido: Para a maioria das equipes, o Forgejo é a escolha padrão certa de baixo consumo: mesmo núcleo do Gitea, governança mais clara e Forgejo Actions com sintaxe de workflow parecida com a do GitHub. Recorra ao OneDev apenas quando você realmente quiser a experiência combinada de PM mais CI em uma única caixa e não estiver migrando uma pilha de workflows existentes do GitHub Actions.

As Duas Perguntas Que Essas Três Ferramentas Respondem

Diagram contrasting Gitea and Forgejo as a lightweight git platform with a separate CI runner against OneDev as an all-in-one platform bundling git hosting, built-in CI, project management, and code intelligence.

O OneDev roda seu daemon de build de CI dentro do próprio processo do OneDev, então não há um runner separado para implantar. Gitea e Forgejo fazem o oposto: o servidor git é uma coisa, e você implanta um CI runner como um processo separado ao lado dele. Esse único fato arquitetural é o indício de como cada ferramenta se enxerga.

Gitea e Forgejo são git-first. Repositórios, pull requests e revisão de código são o núcleo; issues e kanban são complementos úteis; CI é algo que você conecta. Todo o conjunto é construído em torno da hospedagem de git e de não atrapalhar seu caminho. É por isso que são pequenos, rápidos e baratos de rodar.

O OneDev é construído do jeito oposto. É uma plataforma de gerenciamento de projetos e CI/CD onde a hospedagem de git é um componente de primeira classe, mas não o princípio organizador. Os quadros kanban são automatizados, o CI é embutido, a inteligência de código já vem incluída, e ele espera ser o lugar onde sua equipe vive, não só o lugar onde seu código fica. Isso é um produto genuinamente diferente, e é por isso que compará-lo ao Gitea em "quem hospeda git melhor" perde o ponto. Ambos hospedam git mais ou menos igualmente bem. O OneDev só quer fazer muito mais, e cobra em recursos pelo privilégio.

Tudo o que vem depois se encaixa nessa divisão. A escolha entre Gitea e Forgejo é uma subdecisão dentro do ramo "forge leve". A pergunta "o OneDev vale a pena" é o outro ramo por completo.

Gitea vs Forgejo: a decisão entre quase-gêmeos

Comparison of Gitea and Forgejo governance: Gitea is MIT-licensed, company-backed, with an Enterprise tier and larger ecosystem, while Forgejo is GPL-3.0, non-profit governed, with public security disclosures and an all-free build.

Ambos ficam em torno de 180–350 MB de RAM, ambos compartilham a mesma base de código até o ponto de fork, e ambos fazem a hospedagem principal do git da mesma forma. Para repositórios, pull requests, revisão de código, issues e CI no estilo do Actions, você terá dificuldade em encontrar uma diferença significativa no uso diário, a menos que esteja migrando workflows existentes do GitHub Actions. Então, para deixar claro desde já: isso não é uma disputa de recursos. A diferença entre onedev e gitea é grande; a diferença entre gitea e forgejo é sobre quem controla o projeto e sob qual licença ele é distribuído.

Aqui está o contexto que você realmente precisa. Em outubro de 2022, o domínio e a marca registrada do Gitea se tornaram o centro de uma disputa de governança, e o Forgejo foi criado em resposta. O Forgejo agora vive sob a Codeberg e.V., uma organização sem fins lucrativos na Alemanha, e é distribuído sob a GPL-3.0. O Gitea continua licenciado sob o MIT e tem uma edição self-hosted gratuita e de código aberto, enquanto a CommitGo vende o Gitea Enterprise em paralelo. O Forgejo descreve esse arranjo como Open Core; a Gitea/CommitGo contesta esse rótulo e afirma que o próprio projeto open source Gitea não inclui código proprietário. Para os leitores, a diferença prática é mais simples do que a política sugere: o Forgejo otimiza para uma governança sem fins lucrativos, copyleft e totalmente livre; o Gitea oferece o núcleo permissivo MIT além de um caminho Enterprise apoiado por fornecedor.

Três coisas decorrem disso, e cada uma é relevante para a decisão:

  • Licença. GPL-3.0 copyleft (Forgejo) significa que, se você modificar o Forgejo e distribuir a versão modificada, precisa compartilhar suas alterações sob a GPL. O MIT (Gitea) não exige isso. Para a maioria das equipes que rodam uma instância sem modificações internamente, isso nunca chega a ser um problema. Mas se você está construindo em cima da forge e distribuindo, isso importa.
  • Divulgações de segurança. O Forgejo notifica todo mundo sobre avisos de segurança por canais públicos. O Gitea reserva avisos de segurança antecipados para clientes Enterprise pagantes, o que significa que administradores self-hosted no plano gratuito podem ficar expostos a uma vulnerabilidade conhecida por mais tempo do que os clientes pagantes. Se você está usando a versão gratuita, vale a pena conhecer essa assimetria.
  • Existe um plano pago de um dos lados. O Gitea tem uma edição Enterprise comercial ($9.50–$19/usuário/mês) que adiciona SSO, logs de auditoria, suporte prioritário e um SLA. O Forgejo não tem plano pago, todos os recursos estão na build GPL gratuita.

Se você está no Gitea hoje e isso te empurra em direção ao Forgejo, a boa notícia é que existe um caminho de migração suportado (com um penhasco de versão no Gitea 1.22 que vale a pena entender antes de começar). Eu escrevi sobre isso separadamente, veja o passo a passo completo de migração para o detalhamento versão por versão. Se você está saindo do GitHub e ainda não escolheu um forge, essa é uma decisão separada, com seus próprios trade-offs, e vale a pena analisá-la por conta própria.

Resumo da seção: para hospedagem git essencial, Gitea e Forgejo empatam. Escolha o Forgejo se quiser propriedade sem fins lucrativos, copyleft e divulgações públicas de segurança. Escolha o Gitea se quiser a licença MIT, a comunidade maior ou o nível Enterprise comercial.

Onde o OneDev É Genuinamente Diferente

Execute o OneDev (16.0.1 no momento em que este texto foi escrito) por um dia e a primeira coisa que você percebe é que nunca implantou um runner de CI. O daemon de build vive dentro do próprio servidor OneDev, então o CI funciona assim que a plataforma sobe. Você pode montar um pipeline em uma GUI sem escrever uma linha de YAML, depurar um job por um terminal web e testar um build com alterações locais ainda não commitadas antes mesmo de dar push. Essa é uma simplificação operacional genuína em relação à dança de "instalar o servidor e depois instalar e registrar um runner separado" exigida por Gitea e Forgejo.

A pegadinha, e é uma grande para equipes já existentes, é que o OneDev usa seu próprio dialeto YAML. Ele é não compatível com GitHub Actions. Todo workflow que você escreveu para o GitHub, Gitea ou Forgejo precisa ser reescrito para rodar no OneDev. Se você tem uma pilha de arquivos .github/workflows dos quais depende, esse é um custo de migração real, não uma nota de rodapé. Gitea e Forgejo herdam o ecossistema do GitHub Actions, mas não da mesma forma. O Gitea Actions foi projetado como um substituto direto do GitHub Actions, então a maioria dos workflows é transferida sem alterações. O runner do Forgejo é compatível na prática, mas tem lacunas documentadas: uma subchave permissions ausente, continue-on-error ignorado, sintaxe de OIDC diferente. Verifique isso antes de presumir portabilidade total.

A segunda coisa que o OneDev faz e que os forges menores simplesmente não fazem: inteligência de código na UI web. Busca por símbolos, ir para definição e localizar referências funcionam em uma variedade de linguagens (a lista oficial inclui Java, JavaScript, C, C++, C#, Go, PHP e Python) sem clonar o repositório localmente. Gitea e Forgejo não têm nada equivalente embutido, então você recorreria a uma ferramenta externa. Se sua equipe faz muita revisão de código no navegador, isso é realmente bom.

Complete isso com um kanban totalmente automatizado (movimentação de tarefas baseada em regras, estados e campos personalizados, regras de transição), um service desk que transforma e-mails recebidos em issues sem exigir conta do remetente, e issues confidenciais dentro de projetos públicos, e você tem o quadro completo: o OneDev está tentando ser, ao mesmo tempo, seu rastreador de issues, seu sistema de CI, seu navegador de código e seu quadro de projeto.

Vale fazer um esclarecimento sobre registries de pacotes. O OneDev tem um registry embutido; essa parte é clara. Seu tutorial de pacote lista Docker, npm, NuGet, Maven, PyPI e RubyGems, enquanto o material de produto atual também menciona Helm. Gitea e Forgejo ainda cobrem um conjunto muito mais amplo de formatos de pacote, incluindo Alpine, Arch, Cargo, Composer, Conan, Conda, Debian, Go, Helm, Maven, npm, NuGet, PyPI, RPM, RubyGems, Swift, Vagrant e outros. Se sua equipe depende de formatos de pacote fora do conjunto mais restrito de registro do OneDev, Gitea ou Forgejo é a escolha mais segura.

Resumo da seção: o OneDev oferece CI embutido, inteligência de código e um pacote completo de PM em uma única instalação. Você paga por isso reescrevendo qualquer workflow do GitHub Actions, aceitando um ecossistema menor e (como a próxima seção aborda) alimentando-o com bem mais RAM.

O Custo de Recursos: O Que Cada Um Realmente Precisa

Idle RAM comparison showing Forgejo at about 180 MB and Gitea at about 200 MB as lightweight forges, versus OneDev at about 600 MB idle as an all-in-one platform, with VPS sizing guidance of 1 GB for a lean manual install and 4 GB or more for OneDev.

O número que decide toda essa comparação para muitas equipes vem dos testes do nodatools.com: o OneDev ficou ocioso em aproximadamente 600 MB de RAM, enquanto o Forgejo ficou ocioso em cerca de 180 MB. Isso é mais de 3x, e a diferença cresce sob carga. Aqui estão os números testados por eles, de nodatools.com's measured comparison, execute em uma VPS nova:

FerramentaVersão atualRAM ociosa (testado)RAM ativa sob carga (testado)Mínimo oficial
Forgejov15.0.3 LTS~180 MB~320 MB512 MB
Gitea1.26.4~200 MB~350 MB512 MB
OneDev16.0.1~600 MB~950 MB2 GB

Por que essa diferença? O OneDev é escrito majoritariamente em Java, então a JVM carrega um overhead de heap que Gitea e Forgejo, baseados em Go, simplesmente não têm. Além disso, o OneDev indexa o código para seus recursos de inteligência, e essa indexação inicial consome muita memória. Quando eu o coloquei em pé pela primeira vez, o pico no momento do boot foi a parte mais assustadora, e ele não representa o estado estável.

Dica profissional: não entre em pânico com o consumo de memória na inicialização do OneDev. Ele pode disparar logo após o boot, enquanto a JVM aquece e o índice inicial de código é criado, e depois se estabilizar de volta perto do valor ocioso assim que as coisas se acalmam. Dito isso, planeje-se para o número real de trabalho, não para o valor ocioso. Com o CI executando jobs ativamente, reserve de 1 a 2 GB de forma consistente. O mínimo oficial de 2 GB existe por um motivo.

Em termos de dimensionamento, isso se traduz claramente em níveis de VPS:

  • Forgejo ou Gitea, instalação básica, sem CI runner na máquina: 1 GB RAM / 1 vCPU is comfortable.
  • Forgejo ou Gitea com um CI runner no mesmo servidor: suba para 4 GB de RAM / 2 vCPU para que o runner tenha espaço.
  • OneDev, instalação básica: 4 GB RAM is the practical floor. Go to 8 GB if code indexing is heavy or CI is busy.

Portanto, a diferença de custo não é sutil. Um servidor git enxuto que funciona bem em uma máquina de 1 GB, contra uma instância do OneDev que exige 4 GB, representa aproximadamente o dobro da sua fatura mensal de VPS. Para um desenvolvedor solo ou uma equipe pequena, isso é a diferença entre "praticamente de graça para rodar" e um item de custo que você vai notar. Para uma equipe maior que vai depender do CI e do PM embutidos todos os dias, pode valer totalmente a pena. Mas é uma troca real: o overhead do OneDev é a JVM, e esse custo compra o que a JVM executa.

Gitea, Forgejo, e OneDev são todos deploys de um clique em O marketplace da Cloudzy, então, depois de dimensioná-la, colocar uma forge no ar leva alguns minutos em vez de uma tarde inteira mexendo com Docker. Se você está executando um CI runner ou a indexação de código do OneDev, a folga extra fica em uma Linux VPS com acesso root, para que você mesmo possa ajustar o heap da JVM e a concorrência dos runners.

Uma observação específica da Cloudzy: os cards de app do Marketplace atualmente iniciam Gitea, Forgejo e OneDev com 2 GB de RAM. A recomendação de 1 GB acima se aplica a instalações manuais enxutas, sem um CI runner local. Se você fizer o deploy pelo Marketplace da Cloudzy, siga o mínimo do card do app para que o SO, o banco de dados, as atualizações de pacotes e os serviços em segundo plano tenham folga.

Qual deve escolher?

Você já viu a tabela e os trade-offs, então aqui está meu veredito direto para cada perfil de leitor, com base em ter rodado os três.

Escolha o Forgejo se você quer um forge leve, governado pela comunidade, com CI no estilo Actions, e consegue tolerar pequenas diferenças de workflow em relação ao GitHub Actions. Essa é minha recomendação padrão para a maioria das equipes. Você obtém a mesma hospedagem git essencial do Gitea, uma propriedade sem fins lucrativos mais limpa, divulgações públicas de segurança, uma licença copyleft e a menor pegada de RAM entre os três. Se você não tem um motivo específico para escolher um dos outros, escolha este.

Escolha o Gitea se você especificamente quer a licença MIT (mais permissiva do que a GPL-3.0 do Forgejo), a maior comunidade e ecossistema de forge, ou um nível Enterprise comercial com SSO, logs de auditoria e um SLA. Na hospedagem git pura, é um empate com o Forgejo, então você está escolhendo com base em preferência de licença e propriedade, além da opção de suporte pago, caso sua organização precise de um fornecedor para acionar.

Escolha o OneDev se você quer gerenciamento de projetos embutido, CI incluso e inteligência de código em uma única instalação, está começando do zero (sem workflows existentes do GitHub Actions para migrar) e tem orçamento de RAM para uma máquina de 4 GB ou mais. A decisão entre forgejo e onedev realmente se resume a isto: você está comprando um servidor git ou uma plataforma? Se a resposta for "plataforma, e eu não quero montar o CI por conta própria", o OneDev justifica seu overhead.

Um fator de decisão fácil de esquecer: não existe caminho de migração entre a família Gitea/Forgejo e o OneDev. Modelo de dados diferente, formato de CI diferente, schema diferente. Se você começa no Forgejo e depois decide que quer o OneDev (ou o contrário), está diante de uma mudança baseada em API, repositório por repositório, que perde seu histórico de CI e os dados de gerenciamento de projetos. Então, se a abordagem tudo-em-um do OneDev te atrai de alguma forma, é muito mais barato começar por ele do que migrar para ele depois. Entre Gitea e Forgejo, a migração existe (isso é o caminho de migração abordadas acima), mas cruzar a linha de um forge leve para o OneDev é uma viagem sem volta e com perdas. Leve isso em conta na decisão agora, não daqui a dezoito meses.

Perguntas frequentes

O Gitea ainda é open source?

Sim. O núcleo do Gitea é licenciado sob MIT e livre para autohospedagem, com usuários e repositórios ilimitados. A ressalva prática é a governança, não a disponibilidade do código-fonte: o Gitea é controlado por uma empresa e tem uma oferta Enterprise apoiada por fornecedor através da CommitGo, enquanto o Forgejo é o fork governado pela comunidade, licenciado sob GPL, sob a Codeberg e.V. O Forgejo descreve o arranjo comercial do Gitea como Open Core; O Gitea/CommitGo contesta esse rótulo e afirma que o próprio projeto open source não inclui código proprietário. Então o Gitea continua sendo open source, mas não é governado pela comunidade da mesma forma que o Forgejo é.

O Forgejo é melhor que o Gitea?

Para a hospedagem principal do git, eles são quase idênticos: o Forgejo fez fork do Gitea e compartilha a mesma base. O Forgejo se diferencia na governança (a organização sem fins lucrativos Codeberg e.V.), na licença (GPL-3.0 copyleft versus o MIT do Gitea) e nas divulgações de segurança (públicas para todos, versus a política do Gitea que prioriza clientes Enterprise). "Melhor" depende de esses fatores importarem para você; só em recursos, é um empate.

De quanto RAM o OneDev precisa?

O mínimo oficial do OneDev é 2 GB de RAM. Nos testes do nodatools.com, ele ficou ocioso em torno de 600 MB e chegou a aproximadamente 950 MB sob carga. A inicialização pode ficar mais alta enquanto a JVM esquenta e a indexação é concluída, mas com o CI rodando ativamente você deve reservar de 1 a 2 GB de forma consistente. Para comparação, esse mesmo teste colocou Forgejo e Gitea em ~180-200 MB ociosos.

Posso migrar do Gitea para o OneDev, ou do OneDev para o Forgejo?

Não existe um caminho de migração direto entre a família Gitea/Forgejo e o OneDev. Eles usam modelos de dados, formatos de CI e schemas diferentes, então a mudança exigiria uma migração baseada em API, repositório por repositório, que perde o histórico de CI e de gerenciamento de projetos. A migração entre Gitea e Forgejo existe (veja nosso guia de migração de Gitea para Forgejo), porque compartilham uma linhagem.

O OneDev suporta GitHub Actions?

Não. O OneDev usa seu próprio dialeto de YAML mais um editor de pipeline com GUI, então workflows escritos para GitHub, Gitea ou Forgejo precisam ser reescritos para rodar nele. O Gitea Actions foi projetado como um substituto direto, então a maioria dos workflows existentes roda sem alterações. O runner do Forgejo é compatível na prática, mas não foi projetado para espelhar exatamente o GitHub Actions; verifique a documentação oficial do Forgejo para incompatibilidades documentadas antes de presumir portabilidade total.

Share

Mais do blogue

Continue a ler.

Pronto para implantar? A partir de $2,48/mês.

Cloud independente, desde 2008. AMD EPYC, NVMe, 40 Gbps. Reembolso em 14 dias.