Come migrare da GitHub a Codeberg
Guida passo-passo per spostare i tuoi repository da GitHub a Codeberg, la piattaforma tedesca non-profit di hosting Git. Gratuita per l'open source, sotto giurisdizione UE e costruita su Forgejo.
Prerequisiti
- Account GitHub con accesso admin ai repository
- Account Codeberg (gratuito)
- Chiave SSH configurata localmente
- Familiarità con la gestione dei remote Git
Passaggi
-
Crea un account Codeberg
Registrati su codeberg.org con email o migra direttamente da GitHub usando l'opzione signup OAuth.
-
Decidi quali repo migrare
Progetti open source: migra completamente. Progetti personali: migra o mirror. Codice proprietario commerciale: considera invece Forgejo self-hosted su Hetzner.
-
Usa l'import GitHub di Codeberg
Nuovo Repository > Migration > GitHub. Si autentica via OAuth e importa issue, pull request, wiki ed etichette.
-
Aggiorna i riferimenti CI/CD
Codeberg supporta Woodpecker CI (simile a GitHub Actions). Traduci i tuoi .github/workflows/ in .woodpecker.yml o usa CI esterno.
-
Configura le chiavi SSH e i remote Git
Aggiungi la tua chiave SSH a Codeberg e aggiorna i remote Git locali da github.com a codeberg.org.
-
Aggiorna badge README e riferimenti esterni
Sostituisci i badge GitHub (build status, versione) con equivalenti compatibili Codeberg.
-
Imposta mirror GitHub (opzionale)
Mantieni GitHub come mirror in sola lettura per la visibilità mentre Codeberg diventa la fonte di verità.
-
Archivia o elimina i repo GitHub
Dopo 30 giorni di sicurezza, archivia (soft delete) o elimina completamente la copia GitHub.
Perché migrare da GitHub a Codeberg?
GitHub è la piattaforma di hosting Git dominante nel 2026. È anche di proprietà di Microsoft, ospitato su infrastruttura USA soggetta al CLOUD Act e si sta sempre più trasformando in una fonte di dati di training AI, che tu abbia acconsentito o meno. Per progetti open source europei, sviluppatori individuali e organizzazioni che vogliono il proprio codice sotto giurisdizione UE, Codeberg è l’alternativa credibile.
Codeberg è un servizio di hosting Git tedesco non-profit costruito su Forgejo (il fork mantenuto dalla community di Gitea). Gratuito per progetti open source, finanziato da donazioni, residente in UE e costruito esplicitamente attorno ai valori di sostenibilità FOSS e sovranità digitale. La cosa più vicina a un ‘GitHub ma europeo’ che la community open source abbia.
Per il codice proprietario commerciale, l’alternativa naturale è Forgejo self-hosted su Hetzner — stesso software, ospitato sulla tua infrastruttura, a un costo di circa 5-30 €/mese in totale indipendentemente dalla dimensione del team. Questa guida si concentra specificamente su Codeberg, ma i passi di migrazione funzionano identicamente per Forgejo self-hosted.
Passi dettagliati per la migrazione
Passo 1: Crea un account Codeberg
Visita codeberg.org e crea un account. Gratuito, richiede solo l’email. Nessuna carta di credito.
Per le organizzazioni che migrano, crea un account organization dopo la registrazione individuale — questo ti permette di trasferire o forkare repository sotto il namespace dell’organizzazione.
Passo 2: Decidi cosa migrare
Sii selettivo. La migrazione è più veloce quando non porti con te dieci anni di repository morti.
Migra completamente:
- Progetti open source attivi
- Progetti personali che ti dispiacerebbe perdere se GitHub diventasse ostile
- Repository con codice sensibile o logica di business
Considera il mirroring (sync read-only GitHub → Codeberg):
- Repo inattivi ma referenziati
- Progetti pubblici dove la visibilità su GitHub ancora conta
Salta / archivia:
- Esperimenti personali da tempo morti
- Repo che esistono solo come riferimenti o fork
Per il codice proprietario commerciale, valuta Forgejo self-hosted su Hetzner invece di Codeberg. La missione di Codeberg è l’hosting della community open source; i repo commerciali sono accettati ma il carattere della piattaforma si adatta meglio al lavoro FOSS.
Passo 3: Usa l’import GitHub di Codeberg
Codeberg ha un import GitHub integrato:
- Clicca su + → Nuova migrazione
- Scegli GitHub
- Autenticati con GitHub OAuth (o usa un personal access token)
- Seleziona il repository da importare
- Scegli cosa migrare:
- Wiki
- Issue
- Etichette
- Pull Request (come Issue, poiché PR GitHub ↔ PR Codeberg non sono compatibili 1:1)
- Release
- Milestone
- Clicca su Migrate Repository
Per repository con migliaia di issue, la migrazione può richiedere 30-60 minuti. Non preoccuparti di fare altro lavoro durante questa fase — Codeberg gestisce tutto in modo asincrono.
Passo 4: Aggiorna i riferimenti CI/CD
Codeberg usa Woodpecker CI (analogo a GitHub Actions). Traduci i tuoi .github/workflows/*.yml in .woodpecker.yml:
# Esempio: .woodpecker.yml
steps:
build:
image: node:20
commands:
- npm install
- npm run build
- npm test
Per workflow GitHub Actions complessi, la traduzione può essere non banale. Alternative pragmatiche:
- Provider CI esterni che supportano Codeberg: Drone Cloud, CircleCI (con la loro integrazione Git generica)
- CI self-hosted su Hetzner: GitLab Runner puntato a Codeberg, o Woodpecker self-hosted
Per la maggior parte dei progetti, la traduzione del workflow richiede poche ore e produce una configurazione CI più semplice e leggibile.
Passo 5: Configura chiavi SSH e remote Git
Aggiungi la tua chiave SSH:
- Codeberg → Impostazioni utente → Chiavi SSH/GPG
- Incolla la tua chiave pubblica
Aggiorna i remote Git locali:
# Cambia il remote da GitHub a Codeberg
git remote set-url origin git@codeberg.org:username/repo-name.git
# Oppure aggiungi Codeberg come remote aggiuntivo (per il periodo di parallel-run)
git remote add codeberg git@codeberg.org:username/repo-name.git
git push codeberg --all
git push codeberg --tags
Passo 6: Aggiorna README e badge
Badge e link specifici di GitHub necessitano aggiornamento:
- Badge di build status → usa i badge Woodpecker CI
- Badge di versione → Codeberg supporta i pattern shields.io
- Conteggi di download → le release di Codeberg hanno API simili
- Link a issue nei doc → aggiorna da
github.com/user/repo/issuesacodeberg.org/user/repo/issues
Passo 7: Imposta mirror GitHub (opzionale)
Per progetti dove la visibilità su GitHub conta ancora (progetti open source scoperti tramite la ricerca GitHub), mantieni GitHub come mirror in sola lettura:
# Codeberg ha una funzione integrata 'Push Mirror'
# Repository Settings > Repository > Push Mirror
# Aggiungi github.com/user/repo con personal access token
Questo mantiene Codeberg come tua fonte di verità mantenendo la presenza su GitHub.
Passo 8: Archivia o elimina i repo GitHub
Dopo 30 giorni di sicurezza:
- Archivia (consigliato): Impostazioni repository → Archivia questo repository. Sola lettura, preserva la storia, segnala ‘spostato’ ai visitatori.
- Elimina (se sei certo): Impostazioni → Danger Zone → Elimina questo repository.
Entrambe le opzioni funzionano. L’archiviazione è il default più sicuro — preserva la traccia di migrazione e ti dà un fallback se scopri qualcosa che non è stato migrato.
Consigli per una migrazione fluida
- Migra prima un repository come test. Scegli un repo a basso rischio per validare il workflow prima di impegnarti nella migrazione bulk.
- La complessità di GitHub Actions è il principale attrito della migrazione. Se i tuoi workflow usano molto Actions di terze parti, pianifica tempo per tradurli o sostituirli.
- L’API di Codeberg è simile ma non identica a quella di GitHub. Strumenti personalizzati che chiamano l’API GitHub dovranno essere aggiornati per usare l’API compatibile Forgejo di Codeberg.
- I limiti di risorse di Codeberg sono pensati per il FOSS. Se hai repo molto grandi o esegui CI estesa, considera Forgejo self-hosted su Hetzner — stesso software, le tue risorse.
- Dona. Codeberg è finanziato da donazioni. Se lo usi a lungo termine, contribuisci per mantenerlo sostenibile. 5-10 €/mese è significativo per il progetto.
- Per organizzazioni che migrano grandi codebase: considera Forgejo self-hosted come primario con mirror Codeberg per i progetti della community. Il meglio di entrambi — pieno controllo + visibilità dove conta.
- Non migrare tutto in una volta. La maggior parte delle aziende che ha migrato con successo a Codeberg l’ha fatto progetto per progetto in 3-6 mesi, validando ciascuno prima di procedere.
Ti è stato utile?