← Zpět na všechny články blogu

Jak nastavit automatický deploy aplikací pomocí Gitlabu?

Matyáš Vaneš
Matyáš Vaneš Aktualizováno 13. 1. 2026 – 5 min. čtení

Vítejte u pokračování z původního článku: Jak nainstalovat GitLab. Tentokrát se zaměříme na klíčovou část – nastavení automatického deploye na testovací a produkční server.

Pokud ještě GitLab nemáte nainstalovaný, můžete si vyzkoušet náš server na týden zdarma. Doporučujeme minimální konfiguraci VPS Basic.

Co dnes probereme

  1. Základní nastavení
  2. Instalaci GitLab Runneru
  3. Nastavení SSH klíče
  4. Konfiguraci .gitlab-ci.yml
  5. Řešení chyb při deployi

Freelo - Nástroj na řízení úkolů a projektů

Přidej se, pozvi svůj tým a klienty, rozděl práci a sleduj, jak se úkoly dají do pohybu.

Základní nastavení

Než se pustíme do deploye, je potřeba vytvořit projekt. Můžete začít:

  • Novým projektem (v našem případě)
  • Klonováním existujícího projektu
  • Importem z jiného systému

V novém projektu vytvoříme tři důležité soubory:

  • .gitlab-ci.yml → definuje deployment skript
  • .deploy_ignore → seznam složek, které se při deployi nekopírují
  • .gitignore → ignorované soubory v Gitu

VPS Centrum

Vyzkoušejte zdarma naši aplikaci pro správu serveru a domén. Budete si připadat jako zkušený administrátor.

Instalace GitLab Runneru

Aby GitLab mohl automaticky provádět deploy, je nutné na server nainstalovat GitLab Runner.

Instalaci provedeme příkazem:

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | bash apt install gitlab-runner -y

Nyní se přesuneme zpět na webové rozhraní gitlabu a vstoupíme do CI/CD -> Runners -> New instance runner:

V okně nastavíme:

  • Tags: deploy

A stisknutím „Create runner“ runner začneme vytvářet:

Zkopírujeme celý příkaz, který vložíme do příkazového řádku našeho serveru. A poté postupujeme, jak nám říká konzole.

  1. V první řadě by se měla zobrazit ve hranatých závorkách naše URL, pokud je správně, tak stiskneme enter.
  2. Následující krok je pouze o tom, jak si pojmenujeme náš runner interně, jedná se o lokální informaci. Protože chceme pořádek napíšeme například „runner_01“.
  3. V dalším kroku vybereme shell (další možnosti lze porovnat zde: https://docs.gitlab.com/runner/executors/ 
  4. Nyní máme hotovo, runner byl úspěšně zaregistrován a my už vidíme na webovém rozhraní úspěšnou informaci.

Proklikem na Runners na webovém rozhraní i vidíme, že je spuštěn:

V posledním kroku je potřeba vytvořit uživatele deploy, kterého využijeme v pozdější fázi návodu.

useradd -m -s /bin/bash deploy

Nastavení SSH klíče

Poslední část je nejzáludnější a týká se vygenerování a správného nastavení SSH klíčů.

Pro vygenerování nového SSH klíče používáme metodu ed25519, která je modernější a bezpečnější.

Jako první se musíme přihlásit z rootu pod uživatele gitlab-runner, který byl při instalaci GitLabu automaticky vytvořen.

su gitlab-runner

Vygenerujeme SSH klíč:

ssh-keygen -t ed25519 -C "gitlab-runner@vas-server.cz"

Po vygenerování se vás zeptá, jestli chcete nechat defaultní cestu. Stiskněte Enter. Poté se vás zeptá na heslo pro klíč, které nechceme použít, proto stiskněte Enter dvakrát.

Poté se zobrazí vygenerovaný klíč, který si uložíme do poznámkového bloku.

Mezitím se STÁLE pod uživatelem gitlab-runner přihlásíme na SSH pod uživatele deploy:

ssh deploy@xxx11.vas-server.cz

Zeptá se vás, zda chcete serveru důvěřovat, odpovězte yes.

Můžeme si otevřít další terminál nebo se přihlásit zpět na roota a poté na uživatele deploy:

su deploy

Zkontrolujeme, zda uživatel deploy má složku .ssh:

cd ~

ls -a

Pokud složka .ssh neexistuje, vytvoříme ji:

mkdir .ssh

cd .ssh

touch authorized_keys

Pod rootem pak vložíme SSH klíč do souboru authorized_keys (upravíme IP, subdoménu/doménu, hostname serveru (například ika01) a hlavně i klíč):

echo "from="IP_ADRESA_SERVERU,subdomena.vasedomena.cz",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty <VÁŠ_KLÍČ> gitlab-runner@oznaceni_serveru.vas-server.cz ~deploy/.ssh/authorized_keys

Pokud vše proběhlo úspěšně, přihlaste se zpět pod uživatele deploy a ověřte, zda byl klíč správně vložen:

cat ~/.ssh/authorized_keys

Dále je třeba, aby uživatel deploy mohl spouštět sudo bez nutnosti zadávat heslo. To nastavíme pod rootem dvěma příkazy:

echo "deploy  ALL=(root) NOPASSWD:/usr/bin/rsync,/usr/sbin/nginx

deploy    ALL=(www-data) NOPASSWD:ALL" > /etc/sudoers.d/deploy

chmod 0440 /etc/sudoers.d/deploy

Po těchto krocích by měla konfigurace fungovat!

Nyní můžete provést změnu v souboru a po kliknutí na Commit changes se spustí nasazení změn.

V sekci Buid -> Pipelines sledujte stav nasazení. Zelená fajfka znamená, že vše proběhlo v pořádku.

Doporučujeme ověřit přes FTP, že soubory byly nahrány do správných složek, jak je definováno v .gitlab-ci.yml, a že GitLab správně ignoroval soubory určené v .deploy_ignore.

Pokud se vám podařilo GitLab správně nastavit, gratulujeme! Nebyla to žádná procházka růžovou zahradou. 🙂

Zůstaňte s námi v kontaktu

Jednou za měsíc posíláme souhrn novinek. Nemusíte se bát, spamovat vás nebudeme a odhlásit se můžete kdykoliv...

Karel Dytrych
Tým Váš Hosting
Vyzkoušejte náš trial na týden zdarma

Garance 14denní záruky vrácení peněz

Vyzkoušejte server na týden zdarma

Vyzkoušet server