PHPackages                             letoceiling-coder/deploy - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [DevOps &amp; Deployment](/categories/devops)
4. /
5. letoceiling-coder/deploy

ActiveLibrary[DevOps &amp; Deployment](/categories/devops)

letoceiling-coder/deploy
========================

Automated deployment package for Laravel projects with Git and HTTP API integration

1.1.0(6mo ago)02MITPHPPHP ^8.1

Since Dec 24Pushed 6mo agoCompare

[ Source](https://github.com/letoceiling-coder/deploy)[ Packagist](https://packagist.org/packages/letoceiling-coder/deploy)[ Docs](https://github.com/letoceiling-coder/deploy)[ RSS](/packages/letoceiling-coder-deploy/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (5)Versions (3)Used By (0)

Laravel Deploy Package
======================

[](#laravel-deploy-package)

[![Latest Version](https://camo.githubusercontent.com/f2080dce9310b7066f1c5ac8eea1995d865295fc6e700396508bf5320ae6f22a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6c65746f6365696c696e672d636f6465722f6465706c6f79)](https://github.com/letoceiling-coder/deploy)[![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE)[![PHP Version](https://camo.githubusercontent.com/f870cee2a2e2a442c6b62c8bf79f45ec0ce794dc5af13834902518c9107230f9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d382e312532422d626c75652e737667)](https://php.net)[![Laravel Version](https://camo.githubusercontent.com/656501e42d6ead7db8efbb54af40add83b798a83f23e350549ad0fefc174db81/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c61726176656c2d31302e302532422d7265642e737667)](https://laravel.com)

Автоматический деплой Laravel-проектов на сервер через Git и HTTP API.

✨ Особенности
-------------

[](#-особенности)

- 🚀 **Простая установка** - один команда через Composer
- 🔄 **Автоматический деплой** - Git commit, push и HTTP запрос на сервер
- 🛠️ **Гибкая настройка** - множество флагов для различных сценариев
- 📝 **Подробное логирование** - все операции записываются в лог
- 🔒 **Безопасность** - токены маскируются, SSL проверка
- 🧪 **Dry-run режим** - тестирование без выполнения
- 📦 **Автоматическая регистрация** - Laravel Package Auto-Discovery

📦 Установка
-----------

[](#-установка)

```
composer require letoceiling-coder/deploy
```

Пакет автоматически регистрируется. Никаких дополнительных действий не требуется!

⚙️ Настройка
------------

[](#️-настройка)

### 1. Переменные окружения (.env)

[](#1-переменные-окружения-env)

Добавьте следующие переменные в ваш `.env` файл:

```
# Git репозиторий
GIT_REPOSITORY_URL=https://github.com/username/repository.git

# URL сервера для деплоя
DEPLOY_SERVER_URL=https://your-server.com/api/deploy

# Токен авторизации
DEPLOY_TOKEN=your-secret-token-here
```

### 2. Автоматическая установка роутов

[](#2-автоматическая-установка-роутов)

**Роуты устанавливаются автоматически!** Endpoint `/api/deploy` будет доступен сразу после установки пакета.

Если нужно кастомизировать роуты, опубликуйте файл:

```
php artisan vendor:publish --tag=deploy-routes
```

Это создаст файл `routes/deploy.php`, который вы можете редактировать.

### 3. Публикация конфигурации (опционально)

[](#3-публикация-конфигурации-опционально)

```
php artisan vendor:publish --tag=deploy-config
```

🚀 Использование
---------------

[](#-использование)

### Базовое использование

[](#базовое-использование)

```
php artisan deploy
```

Команда выполнит:

1. ✅ Проверку окружения (git, composer, npm)
2. ✅ Проверку конфигурации (.env)
3. ✅ `git add .`
4. ✅ `git commit` (с автоматическим сообщением)
5. ✅ `git push` в `GIT_REPOSITORY_URL`
6. ✅ `npm run build` (если не пропущено)
7. ✅ HTTP POST запрос на сервер для деплоя

### Флаги команды

[](#флаги-команды)

#### `--message="Custom message"`

[](#--messagecustom-message)

Кастомное сообщение коммита:

```
php artisan deploy --message="Fix user authentication bug"
```

#### `--skip-build`

[](#--skip-build)

Пропустить сборку фронтенда:

```
php artisan deploy --skip-build
```

#### `--dry-run`

[](#--dry-run)

Показать все шаги без выполнения:

```
php artisan deploy --dry-run
```

#### `--insecure`

[](#--insecure)

Отключить проверку SSL сертификата:

```
php artisan deploy --insecure
```

#### `--with-seed`

[](#--with-seed)

Выполнить seeders на сервере:

```
php artisan deploy --with-seed
```

#### `--branch=main`

[](#--branchmain)

Указать ветку для деплоя:

```
php artisan deploy --branch=develop
```

#### `--version=v1.2.3`

[](#--versionv123)

Указать конкретную версию/тег:

```
php artisan deploy --version=v1.2.3
```

### Комбинирование флагов

[](#комбинирование-флагов)

```
php artisan deploy \
  --message="Production release" \
  --branch=main \
  --version=v1.0.0 \
  --with-seed \
  --skip-build
```

📋 Логирование
-------------

[](#-логирование)

Все операции логируются в файл:

```
storage/logs/deploy.log

```

Каждый шаг содержит:

- Временную метку
- Уровень логирования (INFO, ERROR, WARNING, DEBUG)
- Сообщение
- Контекст (дополнительные данные)

Пример лога:

```
[2024-12-24 12:30:45] [INFO] [STEP: DEPLOY] Deployment started
[2024-12-24 12:30:45] [INFO] [STEP: VALIDATE] Validating environment
[2024-12-24 12:30:46] [INFO] [STEP: GIT] Staging all changes
[2024-12-24 12:30:47] [INFO] [STEP: GIT] Committing changes: Deploy: 2024-12-24 12:30:47
[2024-12-24 12:30:48] [INFO] [STEP: GIT] Pushing to origin/main
[2024-12-24 12:30:50] [INFO] [STEP: BUILD] Running npm run build
[2024-12-24 12:31:15] [INFO] [STEP: HTTP] Sending deploy request to: https://server.com/api/deploy
[2024-12-24 12:31:16] [INFO] [STEP: DEPLOY] Deployment completed successfully

```

🖥️ Настройка сервера
--------------------

[](#️-настройка-сервера)

Сервер должен принимать POST запросы на `DEPLOY_SERVER_URL` со следующими параметрами:

### Запрос

[](#запрос)

**Headers:**

```
Authorization: Bearer {DEPLOY_TOKEN}
Content-Type: application/json
Accept: application/json

```

**Body:**

```
{
  "branch": "main",
  "version": "abc1234",
  "with_seed": false
}
```

### Ожидаемое поведение сервера

[](#ожидаемое-поведение-сервера)

Сервер должен выполнить следующие шаги:

1. ✅ Проверить токен авторизации
2. ✅ `git pull origin {branch}`
3. ✅ `composer install --no-dev`
4. ✅ `npm install`
5. ✅ `npm run build`
6. ✅ `php artisan migrate --force`
7. ✅ `php artisan db:seed` (если `with_seed: true`)
8. ✅ `php artisan optimize:clear`

### Пример ответа сервера

[](#пример-ответа-сервера)

**Успешный ответ:**

```
{
  "success": true,
  "message": "Deployment completed",
  "steps": {
    "git_pull": "success",
    "composer_install": "success",
    "npm_install": "success",
    "npm_build": "success",
    "migrate": "success",
    "optimize": "success"
  }
}
```

**Ошибка:**

```
{
  "success": false,
  "message": "Deployment failed",
  "error": "Migration failed: ...",
  "step": "migrate"
}
```

🔒 Безопасность
--------------

[](#-безопасность)

- ✅ Токен не логируется полностью (маскируется в логах)
- ✅ SSL проверка включена по умолчанию (отключается только с `--insecure`)
- ✅ Таймауты для HTTP запросов (300 секунд)
- ✅ Проверка exit-кодов всех shell-команд

🧪 Dry-Run режим
---------------

[](#-dry-run-режим)

При использовании `--dry-run` команда покажет все шаги без выполнения:

```
🔍 DRY-RUN mode: No changes will be made
📦 Processing Git operations...
  [DRY-RUN] Would stage and commit changes
  [DRY-RUN] Would push to origin/main
🔨 Building assets...
  [DRY-RUN] Would run: npm run build
🌐 Sending deploy request to server...
  [DRY-RUN] Would send POST request to: https://server.com/api/deploy

```

📁 Структура пакета
------------------

[](#-структура-пакета)

```
src/
├── Commands/
│   └── DeployCommand.php          # Главная команда
├── Services/
│   ├── GitService.php              # Работа с Git
│   ├── BuildService.php            # Сборка фронтенда
│   ├── HttpDeployService.php       # HTTP запросы
│   └── LoggerService.php           # Логирование
├── DTO/
│   ├── DeployOptionsDTO.php        # Опции команды
│   ├── DeployRequestDTO.php        # HTTP запрос
│   └── GitCommitDTO.php           # Git коммит
├── Exceptions/
│   ├── DeployException.php         # Базовое исключение
│   ├── GitException.php            # Ошибки Git
│   ├── BuildException.php          # Ошибки сборки
│   ├── HttpDeployException.php     # Ошибки HTTP
│   └── ConfigurationException.php  # Ошибки конфигурации
├── Contracts/
│   ├── GitServiceInterface.php
│   ├── BuildServiceInterface.php
│   ├── HttpDeployServiceInterface.php
│   └── LoggerServiceInterface.php
└── DeployServiceProvider.php       # Service Provider

```

🛠️ Разработка
-------------

[](#️-разработка)

### Требования

[](#требования)

- PHP 8.1+
- Laravel 10.0+ или 11.0+
- Git
- Node.js и npm (для сборки фронтенда)

### Установка для разработки

[](#установка-для-разработки)

```
git clone https://github.com/letoceiling-coder/deploy.git
cd deploy
composer install
```

### Тестирование

[](#тестирование)

```
php artisan deploy --dry-run
```

📝 Примеры использования
-----------------------

[](#-примеры-использования)

### Ежедневный деплой

[](#ежедневный-деплой)

```
php artisan deploy --message="Daily update"
```

### Деплой с миграциями и сидерами

[](#деплой-с-миграциями-и-сидерами)

```
php artisan deploy --with-seed --message="Database update"
```

### Деплой конкретной ветки

[](#деплой-конкретной-ветки)

```
php artisan deploy --branch=staging --message="Staging deployment"
```

### Деплой с версией

[](#деплой-с-версией)

```
php artisan deploy --version=v2.0.0 --message="Release v2.0.0"
```

### Деплой без сборки фронтенда

[](#деплой-без-сборки-фронтенда)

```
php artisan deploy --skip-build --message="Backend only update"
```

🐛 Решение проблем
-----------------

[](#-решение-проблем)

### Ошибка: "Git is not available"

[](#ошибка-git-is-not-available)

Установите Git:

```
# Ubuntu/Debian
sudo apt-get install git

# macOS
brew install git
```

### Ошибка: "npm is not available"

[](#ошибка-npm-is-not-available)

Установите Node.js и npm. См. документацию в `SERVER_SETUP.md`.

### Ошибка: "DEPLOY\_TOKEN is not set"

[](#ошибка-deploy_token-is-not-set)

Добавьте переменную в `.env`:

```
DEPLOY_TOKEN=your-token-here
```

### Ошибка: "SSL verification failed"

[](#ошибка-ssl-verification-failed)

Используйте флаг `--insecure` (только для тестирования):

```
php artisan deploy --insecure
```

📚 Документация
--------------

[](#-документация)

- [INSTALLATION.md](INSTALLATION.md) - Подробная инструкция по установке
- [USAGE.md](USAGE.md) - Примеры использования и best practices
- [TROUBLESHOOTING.md](TROUBLESHOOTING.md) - Решение типичных проблем
- [DEPLOY\_SERVER\_EXAMPLE.md](DEPLOY_SERVER_EXAMPLE.md) - Пример серверного endpoint
- [SERVER\_SETUP.md](SERVER_SETUP.md) - Настройка сервера Beget
- [CHANGELOG.md](CHANGELOG.md) - История изменений

🤝 Поддержка
-----------

[](#-поддержка)

Если у вас возникли проблемы:

1. Проверьте [TROUBLESHOOTING.md](TROUBLESHOOTING.md)
2. Создайте [Issue](https://github.com/letoceiling-coder/deploy/issues)

📄 Лицензия
----------

[](#-лицензия)

MIT License. См. [LICENSE](LICENSE) файл для деталей.

👤 Автор
-------

[](#-автор)

**Letoceiling Coder**

- GitHub: [@letoceiling-coder](https://github.com/letoceiling-coder)
- Email:

🙏 Благодарности
---------------

[](#-благодарности)

Спасибо всем, кто использует и улучшает этот пакет!

📈 Статистика
------------

[](#-статистика)

- Версия: 1.0.0
- PHP: 8.1+
- Laravel: 10.0+ / 11.0+

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance67

Regular maintenance activity

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

192d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/241832926?v=4)[letoceiling-coder](/maintainers/letoceiling-coder)[@letoceiling-coder](https://github.com/letoceiling-coder)

---

Top Contributors

[![Postads](https://avatars.githubusercontent.com/u/25578332?v=4)](https://github.com/Postads "Postads (24 commits)")

---

Tags

laravelautomationlaravel-packagegitdeploydeploymentci-cd

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/letoceiling-coder-deploy/health.svg)

```
[![Health](https://phpackages.com/badges/letoceiling-coder-deploy/health.svg)](https://phpackages.com/packages/letoceiling-coder-deploy)
```

###  Alternatives

[spatie/laravel-export

Create a static site bundle from a Laravel app

674146.0k6](/packages/spatie-laravel-export)[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9762.4M131](/packages/roots-acorn)[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

77022.3M151](/packages/laravel-mcp)[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M346](/packages/psalm-plugin-laravel)[simplestats-io/laravel-client

Server-side analytics for Laravel that follows the full funnel from visit to registration to payment, attributed to the channel that drove it. Revenue, MRR, churn and ad-spend profit (ROAS/CAC) per channel. GDPR compliant, ad-blocker proof.

5021.9k](/packages/simplestats-io-laravel-client)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
