 Autor: [Adam Nadolny](/autorzy/adam-nadolny) Ekspert DevOps i infrastruktury · Zweryfikowano Kwiecień 2026

1.  [HostGrade.pl](/)
2.  ›
3.  [Baza wiedzy](/baza-wiedzy/)
4.  ›
5.  Git deploy na hostingu

# Git deploy na hostingu — automatyczny deployment przez git push

Opublikowano: 8 kwietnia 2026 · Kategoria: [Hosting](/baza-wiedzy/)

**Krótka odpowiedź:** Na hostingu z SSH możesz deployować przez **git push** używając bare repo + post-receive hook. Bez SSH: użyj **GitHub Actions + rsync** — działa z każdym hostingiem. Obie metody eliminują ręczne wgrywanie plików przez FTP.

## Metody git deploy — porównanie

Metoda

Wymagania

Trudność

Najlepiej dla

Bare repo + post-receive hook

SSH + Git na serwerze

Średnia

VPS, zaawansowani

GitHub Actions + rsync

SSH (klucze), GitHub

Niska

Każdy hosting z SSH

GitHub Actions + FTP

FTP (login/hasło)

Niska

Hosting bez SSH

cPanel Git Version Control

cPanel hosting

Bardzo niska

Smarthost, hostingi cPanel

DeployHQ / Buddy.works

Zewnętrzna usługa

Niska

Zespoły, wiele serwerów

## Metoda 1: Bare repo + post-receive hook

\# 1. Na SERWERZE (przez SSH) — utwórz bare repo

mkdir -p ~/repos/moja-strona.git

cd ~/repos/moja-strona.git && git init --bare

\# 2. Utwórz post-receive hook

nano hooks/post-receive

\# --- zawartość hooka: ---

#!/bin/bash

GIT\_WORK\_TREE=/home/uzytkownik/public\_html

GIT\_DIR=/home/uzytkownik/repos/moja-strona.git

git checkout -f main

\# opcjonalnie: cd $GIT\_WORK\_TREE && composer install --no-dev

\# 3. Nadaj uprawnienia wykonania

chmod +x hooks/post-receive

\# 4. LOKALNIE — dodaj remote i pushuj

git remote add hosting ssh://uzytkownik@serwer.pl/~/repos/moja-strona.git

git push hosting main

## Metoda 2: GitHub Actions + rsync

Najprostsze rozwiązanie — nie wymaga konfiguracji na serwerze, działa przez klucze SSH:

\# .github/workflows/deploy.yml

name: Deploy

on:

  push:

    branches: \[main\]

jobs:

  deploy:

    runs-on: ubuntu-latest

    steps:

      - uses: actions/checkout@v4

      - name: Deploy via rsync

        uses: easingthemes/ssh-deploy@main

        with:

\# Dodaj w GitHub: Settings → Secrets → Actions

          SSH\_PRIVATE\_KEY: ${{ secrets.SSH\_PRIVATE\_KEY }}

          REMOTE\_HOST: ${{ secrets.SSH\_HOST }}

          REMOTE\_USER: ${{ secrets.SSH\_USER }}

          SOURCE: ./

          TARGET: /home/uzytkownik/public\_html/

          EXCLUDE: ".git/, node\_modules/, .env"

**Bezpieczeństwo kluczy SSH:** Wygeneruj osobny klucz SSH tylko do deployu: `ssh-keygen -t ed25519 -C "github-deploy" -f ~/.ssh/github_deploy`. Dodaj klucz publiczny do `~/.ssh/authorized_keys` na serwerze, a klucz prywatny jako GitHub Secret. Nigdy nie używaj klucza głównego do CI/CD.

## cPanel Git Version Control — Smarthost i inne

Hostingi z cPanelem (np. Smarthost) mają wbudowany interfejs Git — bez konfiguracji przez SSH:

1.  Zaloguj się do cPanela → sekcja "Pliki" → "Git™ Version Control"
2.  Kliknij "Create" → wklej URL repozytorium GitHub/GitLab
3.  Wybierz katalog docelowy (zazwyczaj `public_html/`)
4.  Deploy: w panelu kliknij "Update from Remote" lub skonfiguruj automatyczny pull przez webhook

## Najczęstsze pytania

Czy mogę deployować aplikację przez git push na hostingu współdzielonym? ›

Tak — jeśli hosting obsługuje SSH i Git CLI. Metoda: (1) Na serwerze utwórz bare repo (git init --bare ~/repos/moja-strona.git); (2) Dodaj post-receive hook kopiujący pliki do public\_html/; (3) Lokalnie dodaj remote: git remote add hosting ssh://uzytkownik@serwer/~/repos/moja-strona.git; (4) Deploy: git push hosting main. LH.pl, CyberFolks i zenbox obsługują Git przez SSH. Sprawdź w panelu czy Git jest dostępny i jakiej wersji.

Jak używać GitHub Actions do deployu na hosting współdzielony? ›

GitHub Actions + rsync przez SSH to najpopularniejsza metoda. Workflow (.github/workflows/deploy.yml): (1) Trigger: push do branch main; (2) Steps: checkout, build (npm run build / composer install); (3) Deploy przez rsync: rsync -avz --delete ./dist/ uzytkownik@serwer:~/public\_html/. Wymagania: GitHub Secret SSH\_PRIVATE\_KEY (klucz prywatny), SSH\_HOST (adres serwera), SSH\_USER. Alternatywa: action "easingthemes/ssh-deploy" lub "appleboy/ssh-action". Metoda działa z każdym hostingiem z SSH niezależnie od panelu.

Co to jest bare repo i post-receive hook? ›

Bare repo (git init --bare) to repozytorium bez working directory — przechowuje tylko historię commitów. Używane jako "remote" na serwerze. Post-receive hook to skrypt Shell uruchamiany automatycznie po każdym git push. Przykład hooka: #!/bin/bash; GIT\_WORK\_TREE=/home/user/public\_html GIT\_DIR=/home/user/repos/site.git git checkout -f main. Zrób go wykonywalnym: chmod +x hooks/post-receive. Hook może też uruchamiać composer install, npm run build lub restarty procesów PM2.

Czy git deploy działa dla WordPress na hostingu? ›

Tak, ale z ograniczeniami. W git repozytorium trzymaj własny kod (motyw, wtyczki, wp-content/themes/moj-motyw/) — NIE core WordPress ani wp-content/uploads/. W .gitignore: wp-config.php (zawiera hasła DB), wp-content/uploads/, /vendor/. Workflow: git push deployuje tylko zmiany w motywie/wtyczkach. WordPress core i media pozostają na serwerze nienaruszone. Przy WooCommerce dodaj wp-content/woocommerce-logs/ do .gitignore.

## Szybkie przejście do ofert związanych z tym tematem

Wybraliśmy oferty i strony z kodami rabatowymi, które najczęściej pasują do tego scenariusza użycia.

LH.pl

Hosting z prostym wdrożeniem kodu przez Git.

Git

[Aktywuj rabat →](/out/lh-pl)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/lh-pl)

SmartHost

Shared hosting z naciskiem na prosty panel i stabilność.

Panel

[Aktywuj rabat →](/out/smarthost)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/smarthost)

webh.pl

Cloud hosting do częstych deployów.

Deploy

[Aktywuj rabat →](/out/webh)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/webh)

## Powiązane artykuły

-   [Composer na hostingu
    
    PHP Composer na shared hosting — instalacja i użycie.
    
    ](/baza-wiedzy/composer-na-hostingu)
-   [FTP, SFTP, SSH na hostingu
    
    Bezpieczne metody transferu plików na serwer.
    
    ](/baza-wiedzy/ftp-sftp-ssh-hosting)
-   [Node.js na hostingu
    
    Deploy aplikacji Node.js — opcje i konfiguracja.
    
    ](/baza-wiedzy/nodejs-na-hostingu-wspoldzielonym)
-   [Cron job na hostingu
    
    Automatyczne zadania po deploymencie — konfiguracja cron.
    
    ](/baza-wiedzy/co-to-jest-cron-job-hosting)