Vlastný Git: Forgejo alebo Gitea
Ako si nastaviť osobný server na repozitáre s webovým rozhraním, SSH prístupom a build behmi — a čo zálohovať, aby si neprišiel o kód.
Aktualizované 23. augusta 2026
Vlastný Git potrebuješ vtedy, keď kód nesmie odísť na cudziu platformu, alebo keď nechceš žiadne limity na súkromné repozitáre a minúty na buildy. Forgejo a Gitea sú dva úzko príbuzné projekty (Forgejo vzniklo z Gitea); oba sa nainštalujú do jedného kontajnera a bežia na skromnom stroji.
Čo si vybrať a koľko prostriedkov
V každodennej práci takmer žiadny rozdiel: rozhranie, issues, pull requesty, zrkadlá, Actions na buildy. Forgejo vyvíja komunita, Gitea firma. Ak ti záleží na nezávislosti projektu, vyber si Forgejo.
Pre dvoch či troch ľudí stačí VDS-1. Len čo pridáš runner na buildy, ber VDS-3 alebo vyšší: buildy zožerú CPU aj disk a rýchlosť disku je obmedzená tierom.
Inštalácia cez Compose
services:
forgejo:
image: codeberg.org/forgejo/forgejo:11
container_name: forgejo
restart: unless-stopped
environment:
- USER_UID=1000
- USER_GID=1000
volumes:
- ./data:/data
- /etc/timezone:/etc/timezone:ro
ports:
- "3000:3000"
- "2222:22"
docker compose up -d
docker compose logs -f forgejo
Otvor http://<machine-address>:3000 a prejdi počiatočným nastavením. Prvý vytvorený používateľ sa stáva administrátorom.
Port 3000 nemusíš nechávať otvorený do vonkajšieho sveta. Zavri ho a pred službu postav webový server s certifikátom — tak získaš HTTPS a nebudeš ukazovať panel nastavenia cudzím ľuďom. Kým nastavenie nie je dokončené, administrátora môže vytvoriť ktokoľvek, kto otvorí adresu.
SSH prístup
Port 22 v kontajneri je presmerovaný na 2222, pretože 22 zaberá systémový SSH. V nastaveniach repozitára bude adresa vyzerať takto:
git clone ssh://git@example.com:2222/user/repo.git
Ak chceš obvyklé git@example.com:user/repo.git bez portu, nechaj 2222 pre kontajner a nastav presmerovanie na hostiteľovi cez systémový SSH, alebo presuň administratívny SSH na iný port (pozri ochrana prístupu).
Buildy
Actions spúšťa samostatný runner — kontajner forgejo-runner, ktorý sa zaregistruje tokenom z administrátorského nastavenia. Prístup k Docker socketu mu daj len zámerne: rovná sa to rootovi na stroji. Pre buildy je lepšie obmedziť runner pamäťou a CPU — pozri limity prostriedkov.
Čo zálohovať
Celý stav je uložený vo volume ./data: repozitáre, databáza, prílohy, konfigurácia. Záloha sa robí takto:
docker compose stop forgejo
restic -r <repository> backup ./data
docker compose start forgejo
Službu musíš zastaviť, ak používa SQLite — inak môže byť snímka databázy nekonzistentná. Pri PostgreSQL stačí pg_dump aj bez zastavenia. Viac podrobností nájdeš v čo presne zálohovať a Restic.
Časté chyby
- Zabudnutie na veľkosť repozitárov. Buildy herných serverov a médiá rýchlo zaplnia disk: 40 GB vstupného tieru sa minie nepozorovane.
- Nenastavený e-mail. Bez neho nefungujú pozvánky ani obnovenie hesla. Jednoduchšie je pripojiť externé SMTP než nastavovať vlastný mailový server.
- Aktualizácia bez zálohy. Zmena hlavnej verzie mení schému databázy. Najprv záloha, potom
docker compose pull— pozri aktualizácia kontajnerov.