Skip to content
VDS · Aplikácie a boti

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.