GitHub je privzeta storitev za gostovanje kode, vendar ni nujno, da je tako. Razlogi za zasebnost, lokacija shranjevanja podatkov v EU, politika GitHuba, ki se spreminja, ko Microsoft deluje v ozadju, vezava na prodajalca ali preprosto stroški – vse to so veljavni razlogi za lastno gostovanje. To je vodnik o tem, kateri strežnik Git z lastnim gostovanjem izbrati in kako ga nastaviti.
Zakaj bi razmislili o samostojnem gostovanju Gita?
- Shranjevanje podatkov / GDPR – koda ostane v EU, na vaši infrastrukturi.
- Zasebnost – brez deljenja podatkov z Microsoftom (usposabljanje za GitHub Copilot, telemetrija).
- Stroški – z 10+ razvijalci postane GitHub Team drag (4 USD/uporabnika/mesec).
- Skladnost – nekatere panoge (bančništvo, obramba, zdravstvo) ne dovoljujejo kode za javni oblak.
- Lokalni nadzor – popoln dnevnik revizije, integracije, prilagoditve brez omejitev.
- Zračno izolirana okolja – koda, ki nikoli ne sme zapustiti zasebnega omrežja.
Gitea — lahka in hitra
Odprtokodno, na osnovi Go. Samostojno gostovanje z <1 GB RAM-a. Najbolj priljubljena izbira za posameznike in majhne ekipe.
Plus: hitra namestitev, majhna poraba virov, dober uporabniški vmesnik, podoben GitHubu, podpora za Git LFS, težave, zahteve za prevzem, wiki, CI/CD prek Gitea Actions (združljivo z GitHub Actions YAML).
Minus: manj funkcij za podjetja kot GitLab. Po nedavni drami (2023) o korporativnem nadzoru se je del skupnosti razdelil v Forgejo.
Sistem: 1 virtualni procesor, 1 GB RAM-a, 20 GB diska za do 50 uporabnikov.
Forgejo — skupnostna forka Gitea-e h2>
Razcepitev Gitee s strani skupnosti Codeberg (2022) po prehodu Gitee na neprofitno podjetje Gitea Limited. 100 % združljiva z Giteo, ista kodna baza, vendar pod upravljanjem skupnosti.
Plus: vse funkcije Gitea + vodenje skupnosti, brez vpliva podjetij. Združljivost z Gitea med selitvijo.
Razsodba: če želite orodje, podobno Gitei, s čistim upravljanjem OSS, uporabite Forgejo.
GitLab CE (izdaja za skupnost)
DevOps platforma s polnimi funkcijami. Brezplačna različica z lastnim gostovanjem (CE).
Plus: Git + Issues + CI/CD + Container Register + Pages + Wiki + Kanban table. Vse na enem mestu. Funkcije za podjetja (LDAP, revizija, napredna varnost) v različici EE (komercialna).
Slabost: poraba virov. Najmanj 4 GB RAM-a, realno 8 GB+ za 50 uporabnikov. Posodobitev je bolj zapletena.
Cena: CE je brezplačen. EE (Premium) od ~30 USD/uporabnika/mesec. Samostojno gostovanje EE je prav tako plačljivo.
Strežnik Bitbucket (Atlassian)
Komercialna možnost samostojnega gostovanja, integrirana z Jiro. Primerna za ekipe, ki že uporabljajo ekosistem Atlassian (BitBucket Data Center).
Cena: od ~3 USD/uporabnika/mesec.
Primerjava
| Orodja | Najmanjša količina RAM-a | Nastavitev | Cena (50 uporabnikov) | CI/CD |
|---|---|---|---|---|
| Gite | 512 MB | 5 minut | 0 EUR (stroški strežnika) | Dejanja Gitea |
| Forgejo | 512 MB | 5 minut | 0 evrov | Dejanja Forgeja |
| GitLab CE | 4 GB | 1–2 uri | 0 EUR (stroški strežnika) | Vgrajen GitLab CI |
| GitLab EE | 4 GB | 1–2 uri | ~1500 USD/mesec | Vgrajen GitLab CI |
| Bitbucket strežnik | 2 GB | 30 minut | ~150 USD/mesec | Cevovodi Bitbucket |
Nastavitev Gitea (najpreprostejša)
Dockerjev način – najhitrejši:
# docker-compose.yml version: '3' services: gitea: image: gitea/gitea:latest ports: - '3000:3000' - '2222:22' volumes: - ./data:/data - /etc/localtime:/etc/localtime:ro restart: unless-stopped environment: - USER_UID=1000 - USER_GID=1000 docker-compose up -d Odprite http://server:3000 in pojdite skozi čarovnika za namestitev. Nastavite MySQL/Postgres ali uporabite SQLite za manjšo namestitev.
Nastavitev GitLaba CE
Namestitveni program Omnibus (Ubuntu/Debian):
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh || sudo bash sudo apt install gitlab-ce sudo gitlab-ctl reconfigure Konfiguracija v /etc/gitlab/gitlab.rb . Po spremembi ponovno konfigurirajte: sudo gitlab-ctl reconfigure .
SSL in obratni proxy
Samostojno gostovan Git mora biti dostopen prek HTTPS. Pred: vnesite nginx ali Caddy.
# nginx server { listen 443 ssl http2; server_name git.tvojadomena.hr; ssl_certificate /etc/letsencrypt/live/git.tvojadomena.hr/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/git.tvojadomena.hr/privkey.pem; location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }Certbot za Let's Encrypt SSL.
Dostop prek SSH
Za operacije Git (kloniranje, push) prek SSH mora strežnik poslušati vrata SSH (Gitea privzeto uporablja vrata 2222, če so preslikana, GitLab uporablja standardna vrata 22).
Uporabniki dodajo svoj javni SSH ključ v svoj profil, klon:
git clone git@git.tvojadomena.hr:user/repo.gitStrategija varnostnega kopiranja
Git repozitoriji so vaša koda – o varnostni kopiji se ni mogoče pogajati.
- Gitea: ukaz
gitea dump, ustvari tar arhiv z repozitoriji + zbirko podatkov + konfiguracijo. Cron se izvaja dnevno. - GitLab CE:
gitlab-backup create. Dnevni cron, hramba 14 dni. - Zunaj spletnega mesta: rsync ali rclone varnostno kopiranje arhiva na S3/B2/drug strežnik.
- Testna obnovitev: mesečno na preizkusnem strežniku.
Možnosti CI/CD
Dejanja Gitea (Dejanja Forgejo)
Izvaja delovne tokove YAML, ki so združljivi z dejanji GitHub. Potrebujete izvajalce (lokalne ali Docker).
# .gitea/workflows/test.yml name: Test on: [push] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - run: composer install - run: vendor/bin/phpunitGitLab CI
.gitlab-ci.yml v korenu repozitorija. Izvajalci (skupni ali namenski) izvajajo cevovod.
test: image: php:8.2 script: - composer install - vendor/bin/phpunitDrone CI / Žolna
Lahek, osredotočen samo na CI/CD. Poveže se s katerim koli Git strežnikom.
Selitev iz GitHuba
- V skrbniškem delu Gitea/GitLab: Repozitoriji → Migracija.
- Navedite URL GitHub + osebni žeton za dostop (če gre za zasebno repozitorij).
- Čarovnik kopira commite, težave, PR-je, wiki, izdaje.
- Posodobi lokalni
git remote set-url origin git@git.tvoja.hr:user/repo.git. - Posodobite reference CI/CD v kodi (Dejanja YAML, če spreminjate potek dela).
Federacija — Forgejo
Forgejo razvija protokol za zvezo – več samostojno gostovanih instanc lahko komunicira med seboj, uporabniki z različnih strežnikov pa lahko sodelujejo v istem projektu (kot Mastodon za Git). Eksperimentalna, a zanimiva smer.
Težave in vodenje projektov
Samostojno gostovani Git strežniki imajo vgrajene težave, vendar ne na ravni Jira/Linear. Za resnejše vodenje projektov:
- Gitea + Plane (orodje za vodenje projektov, ki ga gostuje sama organizacija, s sedežem v EU).
- GitLab CE — vgrajene težave + epiki + table, zelo solidno.
- Forgejo + Jira, gostovana samostojno (če že imate Atlassian).
Orožje za množično uničevanje in samostojno gostovanje Gita
WMD ponuja upravljano namestitev Gitea in GitLab CE na namenskem VPS-ju – namestitev, SSL, nastavitev varnostnega kopiranja, spremljanje. Migracija iz GitHub-a je vključena v uvajanje. Za poslovne stranke konfiguriramo LDAP/SSO, dnevnik revizije, integracijo z Jira ali Linear. CI/CD izvajalce (Docker) na ločeni instanci, izolacijo. Zagotovljena rezidenca podatkov v EU (strežnik na lokaciji v EU po vaši izbiri).
Pogosta vprašanja
Gitea ali GitLab za 5-člansko ekipo? Gitea/Forgejo – nižji stroški, hitra namestitev, zadostno.
Gitea ali GitLab za 50-člansko ekipo? GitLab CE, če potrebujete resno CI/CD + vodenje projektov. Gitea, če uporabljate zunanjo CI (Drone, Woodpecker).
Ali lahko imam zasebno ogledalo repozitorij GitHub? Da, oba podpirata »pull mirror« – Gitea/GitLab samodejno sinhronizirata repozitorije GitHub.
Kaj pa, če se strežnik sesuje? Obnovi iz varnostne kopije (git dump arhiv). Preden obnovitev potrebujete, jo preizkusite.
Podaljšanje SSL-ja – samodejno? Da, opravilo cron Certbot. Poskrbite, da se nginx po podaljšanju ponovno naloži.
Večstrežniška / HA? GitLab CE to podpira (bolj zapletena nastavitev). Gitea ima omejeno HA. Za resno HA → GitLab EE ali upravljani Codeberg.
Potrebujete strežnik Git z lastnim gostovanjem? WMD namesti, konfigurira in vzdržuje Gitea/Forgejo/GitLab CE s SSL, varnostnim kopiranjem, CI/CD. Stopite v stik z nami prek kontaktnega obrazca .