Menu
Hosting Domeny VPS SSL Kalkulator Porównania FAQ
Aktywne kody
Wszystkie kody rabatowe

Git deploy na hostingu — automatyczny deployment przez git push

Opublikowano: 8 kwietnia 2026 · Kategoria: Hosting

Git deploy to automatyczne wdrożenie aplikacji na serwer uruchamiane przez komendę git push — bez ręcznego kopiowania plików przez FTP, z pełną historią zmian i możliwością cofnięcia do poprzedniej wersji w kilka sekund.

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

Jaki hosting wybrać pod git deploy?

Nie każdy hosting współdzielony oferuje dostęp SSH i Git CLI. Poniżej zestawienie co obsługuje każda z metod deployu.

Dostawca SSH Git CLI cPanel Git GitHub Actions
LH.pl Tak (port 22) Tak Nie Tak (rsync)
SmartHost Tak Tak Tak Tak (rsync)
Zenbox Tak Tak Nie Tak (rsync)
Hosting bez SSH Nie Nie Nie Tak (FTP action)
Wskazówka przy wyborze hostingu:

Jeśli planujesz regularne deploye, sprawdź przed zakupem czy hosting oferuje SSH (nie tylko FTP). Dostęp SSH otwiera też możliwość uruchamiania Composera, npm, skryptów post-deploy i zarządzania kluczami. Przy porównywaniu ofert sprawdź też cenę po odnowieniu — atrakcyjna cena promocyjna na rok pierwszy to norma, ale różnica wobec ceny regularnej bywa znaczna.

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.