Вместо ручного FTP при каждом изменении — настройте git push для автоматического деплоя. Занимает 15 минут, экономит часы работы.
Деплой на VPS через Git bare repo
# На VPS: создать bare репозиторий
mkdir -p /var/repo/mysite.git
cd /var/repo/mysite.git
git init --bare
# Создать хук post-receive
nano hooks/post-receive
#!/bin/bash
GIT_WORK_TREE=/var/www/mysite git checkout -f main
echo "Deployed to /var/www/mysite"
chmod +x hooks/post-receive
# На локальном компьютере:
git remote add production user@server-ip:/var/repo/mysite.git
git push production main
Деплой на cPanel хостинг через Git
cPanel → Файлы → Git™ Version Control:
- Create → укажите путь к репозиторию (
public_html) - Укажите URL GitHub/GitLab репозитория
- Нажмите Update from Remote для ручного деплоя
GitHub Actions: полный автодеплой
# .github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Deploy via SSH
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd /var/www/mysite
git pull origin main
composer install --no-dev
php artisan migrate --force
✅ Храните SSH-ключ, IP и пароли в GitHub Secrets (Settings → Secrets → Actions). Никогда не коммитьте .env файлы.