In un confronto gitea contro forgejo contro onedev, hai davanti tre strumenti che rispondono a due domande diverse. Gitea e Forgejo sono server git a cui viene aggiunta la gestione dei progetti. OneDev è una piattaforma di project management e CI che, per inciso, ospita git molto bene. Quindi la decisione non è "quale di questi tre è il migliore". È "voglio un piccolo server git, o una piattaforma tutto in uno, e posso permettermi la RAM che costa la soluzione tutto in uno?"
Quest'ultimo punto è il nodo della questione. OneDev fa di più fin da subito, e i test di nodatools.com hanno misurato che a riposo consuma circa 3 volte la memoria di un'installazione essenziale di Forgejo, il che su un piccolo VPS può raddoppiare la tua bolletta mensile. Questo compromesso è tutta la partita. (E no, GitLab non fa parte di questo confronto. Se volessi l'ingombro di GitLab, non staresti leggendo di questi tre.)
Li ho usati tutti e tre. Di seguito quello che conta davvero quando ne scegli uno per un team: le differenze di governance e licenza che separano Gitea da Forgejo, le funzionalità che giustificano l'esistenza di OneDev, i numeri di RAM testati e un chiaro "scegli questo se..." per ciascuno.
TL;DR
- Vuoi un server git leggero con una CI in stile Actions? Gitea o Forgejo. Scegli Gitea se una compatibilità più stretta con GitHub Actions è importante; scegli Forgejo se una sintassi dei workflow simile a GitHub con alcuni aggiustamenti in fase di migrazione è accettabile.
- Ti interessa una governance no profit o una licenza copyleft? Forgejo. È il fork governato dalla community, ed è la mia scelta predefinita per la maggior parte dei team.
- Vuoi la licenza MIT, la più grande community di forge, o un livello Enterprise a pagamento con SLA/SSO? Gitea.
- Vuoi project management integrato, CI inclusa e code intelligence in un'unica installazione, e hai RAM da spendere? OneDev. Sappi solo che ha bisogno di circa 4 GB minimo, mentre Forgejo si accontenta di 1 GB.
Verdetto rapido: Per la maggior parte dei team, Forgejo è la scelta predefinita giusta e leggera: stesso nucleo di Gitea, governance più pulita e Forgejo Actions con una sintassi dei workflow simile a GitHub. Scegli OneDev solo quando desideri davvero l'esperienza combinata di PM e CI in un unico pacchetto e non stai migrando una pila di workflow GitHub Actions esistenti.
Le due domande a cui questi tre strumenti rispondono

OneDev esegue il proprio daemon di build CI all'interno del processo OneDev, quindi non c'è nessun runner separato da distribuire. Gitea e Forgejo fanno l'opposto: il server git è una cosa, e distribuisci un CI runner come processo separato accanto ad esso. Questo singolo dato architetturale rivela come ciascuno strumento concepisce se stesso.
Gitea e Forgejo sono git-first. Repository, pull request e code review sono il nucleo; issue e kanban sono utili componenti aggiuntive; la CI è qualcosa che colleghi. L'intero sistema è costruito attorno all'hosting di git e a non intralciarti il lavoro. Ecco perché sono leggeri, veloci ed economici da gestire.
OneDev è costruito nella direzione opposta. È una piattaforma di project management e CI/CD in cui l'hosting git è un componente di prim'ordine ma non il principio organizzativo. Le board kanban sono automatizzate, la CI è integrata, l'intelligenza sul codice è incorporata, e si aspetta di essere il posto in cui vive il tuo team, non solo il posto dove risiede il tuo codice. Si tratta di un prodotto davvero diverso, motivo per cui confrontarlo con Gitea su "chi ospita meglio git" non coglie il punto. Ospitano git più o meno altrettanto bene. OneDev vuole semplicemente fare molto di più, e ti fa pagare in risorse questo privilegio.
Tutto ciò che segue si ricollega a questa divisione. La scelta Gitea contro Forgejo è una sotto-decisione all'interno del ramo "forge leggera". La domanda "vale la pena OneDev" è l'altro ramo completamente separato.
Gitea contro Forgejo: la decisione tra quasi gemelli

Entrambi si attestano intorno a 180-350 MB di RAM, entrambi condividono la stessa codebase fino al punto del fork, ed entrambi gestiscono l'hosting git di base allo stesso modo. Per repository, pull request, code review, issue e CI in stile Actions, farai fatica a trovare una differenza significativa nell'uso quotidiano, a meno che tu non stia migrando workflow GitHub Actions esistenti. Quindi chiariamolo subito: non è una battaglia di funzionalità. Il divario onedev vs gitea è ampio; il divario gitea vs forgejo riguarda chi controlla il progetto e sotto quale licenza viene distribuito.
Ecco il contesto che ti serve davvero. Nell'ottobre 2022, il dominio e il marchio Gitea sono diventati il centro di una disputa di governance, e Forgejo è stato creato in risposta. Forgejo ora vive sotto Codeberg e.V., un'organizzazione no profit in Germania, e viene distribuito sotto GPL-3.0. Gitea rimane sotto licenza MIT e ha un'edizione self-hosted open source gratuita, mentre CommitGo vende Gitea Enterprise accanto ad essa. Forgejo descrive questo assetto come Open Core; Gitea/CommitGo contesta questa etichetta e afferma che il progetto open source Gitea in sé non include codice proprietario. Per i lettori, la differenza pratica è più semplice della politica: Forgejo ottimizza per una governance no-profit, copyleft e interamente libera; Gitea offre il nucleo permissivo MIT più un percorso Enterprise sostenuto da un fornitore.
Da questo derivano tre cose, e ognuna è rilevante per la decisione:
- Licenza. GPL-3.0 copyleft (Forgejo) significa che se modifichi Forgejo e distribuisci la versione modificata, devi condividere le tue modifiche sotto GPL. MIT (Gitea) non lo richiede. Per la maggior parte dei team che eseguono internamente un'istanza non modificata, questo non si presenta mai. Ma se stai costruendo qualcosa sopra la forge e lo distribuisci, la cosa conta.
- Divulgazioni sulla sicurezza. Forgejo notifica a tutti gli avvisi di sicurezza attraverso canali pubblici. Gitea riserva le notifiche di sicurezza anticipate ai clienti Enterprise a pagamento, il che significa che gli amministratori self-hosted sul livello gratuito possono essere esposti a una vulnerabilità nota più a lungo dei clienti paganti. Se usi la versione gratuita, vale la pena conoscere questa asimmetria.
- Da una parte esiste un livello a pagamento. Gitea ha un'edizione Enterprise commerciale ($9,50-$19/utente/mese) che aggiunge SSO, log di audit, supporto prioritario e un SLA. Forgejo non ha un livello a pagamento, ogni funzionalità è nella build GPL gratuita.
Se oggi usi Gitea e questo ti spinge verso Forgejo, la buona notizia è che esiste un percorso di migrazione supportato (con uno spartiacque di versione a Gitea 1.22 che vale la pena capire prima di iniziare). Ne ho scritto separatamente, vedi la guida completa alla migrazione per la ripartizione versione per versione. Se stai arrivando da GitHub e non hai ancora scelto una forge, si tratta di una decisione separata con i propri compromessi, che vale la pena affrontare a sé stante.
Il punto della sezione: per l'hosting git di base, Gitea e Forgejo sono alla pari. Scegli Forgejo se vuoi una proprietà no-profit, il copyleft e le divulgazioni pubbliche sulla sicurezza. Scegli Gitea se vuoi la licenza MIT, la community più grande o il livello Enterprise commerciale.
Dove OneDev è davvero diverso
Usa OneDev (16.0.1 al momento in cui scrivo) per un giorno e la prima cosa che noti è che non hai mai distribuito un runner di CI. Il demone di build vive all'interno del server OneDev, quindi la CI funziona nel momento in cui la piattaforma è attiva. Puoi costruire una pipeline in una GUI senza scrivere una riga di YAML, fare il debug di un job tramite un terminale web e testare una build rispetto a modifiche locali non ancora committate prima ancora di fare il push. Si tratta di una vera semplificazione operativa rispetto al balletto "installa il server, poi installa e registra un runner separato" richiesto da Gitea e Forgejo.
Il problema, e per i team esistenti è un problema grosso, è che OneDev usa un proprio dialetto YAML. È non compatibile con GitHub Actions. Ogni workflow che hai scritto per GitHub, Gitea o Forgejo deve essere riscritto per funzionare su OneDev. Se hai una pila di file .github/workflows su cui fai affidamento, questo è un costo di migrazione reale, non una nota a margine. Gitea e Forgejo ereditano entrambi l'ecosistema GitHub Actions, ma non lo ereditano allo stesso modo. Gitea Actions è progettato come sostituto diretto di GitHub Actions, quindi la maggior parte dei workflow si trasferisce senza modifiche. Il runner di Forgejo è compatibile in pratica ma presenta lacune documentate: una sottochiave permissions mancante, continue-on-error ignorato, una sintassi OIDC diversa. Verificale prima di dare per scontata la piena portabilità.
La seconda cosa che OneDev fa e che le forge più piccole semplicemente non fanno: code intelligence nella UI web. La ricerca di simboli, il vai-alla-definizione e la ricerca dei riferimenti funzionano su una serie di linguaggi (l'elenco ufficiale include Java, JavaScript, C, C++, C#, Go, PHP e Python) senza clonare il repository in locale. Gitea e Forgejo non hanno nulla di equivalente integrato, quindi dovresti ricorrere a uno strumento esterno. Se il tuo team fa molta code review nel browser, questa è una cosa genuinamente utile.
Completa il quadro con un kanban completamente automatizzato (spostamento dei task basato su regole, stati e campi personalizzati, regole di transizione), un service desk che trasforma le email in arrivo in issue senza che il mittente debba avere un account, e issue riservate all'interno di progetti pubblici, e hai capito il senso: OneDev sta cercando di essere il tuo issue tracker, il tuo sistema di CI, il tuo browser di codice e la tua bacheca di progetto, tutto insieme.
Vale la pena fare una precisazione sui registri dei pacchetti. OneDev ha un registro integrato; questa parte è chiara. Il suo tutorial sui pacchetti elenca Docker, npm, NuGet, Maven, PyPI e RubyGems, mentre il testo attuale del prodotto menziona anche Helm. Gitea e Forgejo coprono ancora un insieme molto più ampio di formati di pacchetto, tra cui Alpine, Arch, Cargo, Composer, Conan, Conda, Debian, Go, Helm, Maven, npm, NuGet, PyPI, RPM, RubyGems, Swift, Vagrant e altri ancora. Se il tuo team si affida a formati di pacchetto al di fuori dell'insieme di registri più ristretto di OneDev, Gitea o Forgejo è la scelta più sicura.
Il punto della sezione: OneDev ti offre CI integrata, code intelligence e una suite PM completa in una sola installazione. Lo paghi riscrivendo eventuali workflow di GitHub Actions, accettando un ecosistema più piccolo e (come vedremo nella prossima sezione) dandogli molta più RAM.
Il costo delle risorse: di cosa ha davvero bisogno ciascuno

Il numero che decide questo intero confronto per molti team viene dai test di nodatools.com: OneDev a riposo consumava circa 600 MB di RAM, mentre Forgejo a riposo ne consumava circa 180 MB. Sono più di 3 volte, e la differenza aumenta sotto carico. Ecco le cifre da loro testate tratte da nodatools.com's measured comparison, eseguito su un VPS nuovo:
| Strumento | Versione attuale | RAM a riposo (testata) | RAM attiva sotto carico (testata) | Minimo ufficiale |
|---|---|---|---|---|
| Forgejo | v15.0.3 LTS | ~180 MB | ~320 MB | 512 MB |
| Gitea | 1.26.4 | ~200 MB | ~350 MB | 512 MB |
| OneDev | 16.0.1 | ~600 MB | ~950 MB | 2 GB |
Perché questa differenza? OneDev è scritto principalmente in Java, quindi la JVM comporta un sovraccarico di heap che Gitea e Forgejo, basati su Go, semplicemente non hanno. Oltre a questo, OneDev indicizza il codice per le sue funzionalità di intelligence, e quell'indicizzazione iniziale è affamata di memoria. Quando l'ho messo in piedi per la prima volta, il picco al momento dell'avvio è stata la parte più spaventosa, e non è lo stato stazionario.
Consiglio pratico: non farti prendere dal panico per la memoria di avvio di OneDev. Può salire di più subito dopo l'avvio mentre la JVM si scalda e si costruisce l'indice iniziale del codice, per poi tornare verso il valore a riposo una volta che le cose si stabilizzano. Detto questo, pianifica in base al numero di lavoro realistico, non a quello a riposo. Con la CI che esegue attivamente dei job, prevedi costantemente 1–2 GB. Il minimo ufficiale di 2 GB esiste per un motivo.
In termini di dimensionamento, questo si traduce chiaramente in livelli di VPS:
- Forgejo o Gitea, installazione base, nessun CI runner sulla macchina: 1 GB RAM / 1 vCPU is comfortable.
- Forgejo o Gitea con un CI runner sullo stesso server: passa a 4 GB di RAM / 2 vCPU in modo che il runner abbia spazio.
- OneDev, installazione base: 4 GB RAM is the practical floor. Go to 8 GB if code indexing is heavy or CI is busy.
Quindi la differenza di costo non è affatto sottile. Un server git essenziale che si trova bene su una macchina da 1 GB rispetto a un'istanza OneDev che ne vuole 4 GB significa più o meno raddoppiare la bolletta mensile del tuo VPS. Per uno sviluppatore singolo o un piccolo team, è la differenza tra "praticamente gratis da eseguire" e una voce di spesa che noterai. Per un team più grande che farà affidamento ogni giorno sulla CI e sul PM inclusi, può assolutamente valerne la pena. Ma è un compromesso reale: il sovraccarico di OneDev è la JVM, e quel costo ti compra ciò che la JVM fa funzionare.
Gitea, Forgejo, e OneDev sono tutti deploy a un clic in Il marketplace di Cloudzy, quindi una volta dimensionato correttamente, avviare una forge richiede un paio di minuti anziché un pomeriggio a smanettare con Docker. Se stai eseguendo un CI runner o l'indicizzazione del codice di OneDev, il margine extra si trova su un Linux VPS con accesso root, in modo da poter regolare tu stesso l'heap della JVM e la concorrenza dei runner.
Una nota specifica di Cloudzy: le card delle app nel Marketplace attualmente avviano Gitea, Forgejo e OneDev con 2 GB di RAM. Il consiglio di 1 GB sopra si applica a installazioni manuali essenziali senza un CI runner locale. Se effettui il deploy tramite il Cloudzy Marketplace, segui il minimo indicato nella card dell'app in modo che il sistema operativo, il database, gli aggiornamenti dei pacchetti e i servizi in background abbiano margine sufficiente.
Quale dovresti scegliere?
Hai visto la tabella e i compromessi, quindi ecco il mio giudizio diretto per ogni profilo di lettore, basato sull'aver usato tutti e tre.
Scegli Forgejo se vuoi una forge leggera, a governance comunitaria, con una CI in stile Actions e puoi tollerare piccole differenze nei workflow rispetto a GitHub Actions. Questa è la mia raccomandazione predefinita per la maggior parte dei team. Ottieni lo stesso hosting git di base di Gitea, una proprietà no-profit più pulita, divulgazioni pubbliche sulla sicurezza, una licenza copyleft e l'ingombro di RAM più leggero dei tre. Se non hai un motivo specifico per scegliere uno degli altri due, scegli questo.
Scegli Gitea se vuoi specificamente la licenza MIT (più permissiva del GPL-3.0 di Forgejo), la community e l'ecosistema di forge più grandi, oppure un livello Enterprise commerciale con SSO, log di audit e un SLA. Sull'hosting git puro e semplice è alla pari con Forgejo, quindi stai scegliendo in base alla licenza e alla preferenza di proprietà, oltre all'opzione di supporto a pagamento se la tua organizzazione ha bisogno di un fornitore da contattare.
Scegli OneDev se vuoi project management integrato, CI inclusa e code intelligence in un'unica installazione, stai partendo da zero (nessun workflow di GitHub Actions esistente da migrare), e hai il budget di RAM per una macchina da 4 GB o più. La decisione forgejo contro onedev si riduce davvero a questo: stai comprando un server git, o una piattaforma? Se la risposta è "una piattaforma, e non voglio aggiungere la CI da solo", OneDev si guadagna il suo sovraccarico.
Un elemento decisionale facile da trascurare: non esiste un percorso di migrazione tra la famiglia Gitea/Forgejo e OneDev. Modello di dati diverso, formato CI diverso, schema diverso. Se inizi con Forgejo e in seguito decidi di volere OneDev (o viceversa), ti trovi davanti a uno spostamento basato su API, repository per repository, che fa perdere la cronologia CI e i dati di project management. Quindi se l'approccio tutto in uno di OneDev ti attira anche solo un po', è molto più economico partire da lì che passarci in seguito. Tra Gitea e Forgejo, la migrazione esiste (è il percorso di migrazione trattati sopra), ma attraversare la linea che va da una forge leggera a OneDev è un viaggio a senso unico e con perdite. Tieni conto di questo nella decisione ora, non tra diciotto mesi.
Domande frequenti
Gitea è ancora open source?
Sì. Il nucleo di Gitea è concesso in licenza MIT ed è gratuito da auto-ospitare con utenti e repository illimitati. L'avvertenza pratica riguarda la governance, non la disponibilità del sorgente: Gitea è controllato da un'azienda e ha un'offerta Enterprise sostenuta da un fornitore tramite CommitGo, mentre Forgejo è il fork a governance comunitaria, con licenza GPL, sotto Codeberg e.V. Forgejo descrive l'accordo commerciale di Gitea come Open Core; Gitea/CommitGo contesta questa etichetta e afferma che il progetto open source in sé non include codice proprietario. Quindi Gitea è ancora open source, ma non ha una governance comunitaria nello stesso modo di Forgejo.
Forgejo è migliore di Gitea?
Per l'hosting git di base, sono quasi identici: Forgejo è un fork di Gitea e ne condivide la stessa base. Forgejo si differenzia per governance (la no profit Codeberg e.V.), licenza (GPL-3.0 copyleft contro il MIT di Gitea) e divulgazione delle vulnerabilità di sicurezza (pubblica per tutti, contro la politica di Gitea che privilegia prima i clienti Enterprise). "Migliore" dipende da quanto queste cose contano per te; sulle sole funzionalità è un pareggio.
Di quanta RAM ha bisogno OneDev?
Il minimo ufficiale di OneDev è 2 GB di RAM. Nei test di nodatools.com è rimasto a riposo intorno ai 600 MB e ha raggiunto circa 950 MB sotto carico. All'avvio può salire più in alto mentre la JVM si scalda e l'indicizzazione si completa, ma con la CI attivamente in esecuzione dovresti prevedere costantemente 1-2 GB. Per confronto, gli stessi test hanno posizionato Forgejo e Gitea a circa 180-200 MB a riposo.
Posso migrare da Gitea a OneDev, o da OneDev a Forgejo?
Non esiste alcun percorso di migrazione diretto tra la famiglia Gitea/Forgejo e OneDev. Usano modelli di dati, formati CI e schemi diversi, quindi il passaggio richiederebbe una migrazione basata su API, repository per repository, che perde la cronologia di CI e project management. La migrazione tra Gitea e Forgejo invece esiste (vedi la nostra guida di migrazione da Gitea a Forgejo), perché condividono la stessa origine.
OneDev supporta GitHub Actions?
No. OneDev usa un proprio dialetto YAML più un editor di pipeline con GUI, quindi i workflow scritti per GitHub, Gitea o Forgejo devono essere riscritti per funzionare su di esso. Gitea Actions è progettato come sostituto diretto, quindi la maggior parte dei workflow esistenti funziona senza modifiche. Il runner di Forgejo è compatibile in pratica ma non è progettato per rispecchiare esattamente GitHub Actions; controlla la documentazione ufficiale di Forgejo per le incompatibilità documentate prima di dare per scontata la piena portabilità.