PHPackages                             shippercli/cli - 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. shippercli/cli

ActiveProject

shippercli/cli
==============

A shipper application built with Laravel Zero with strict type checking

v1.0.3(today)137↑2900%[1 issues](https://github.com/shippercli/cli/issues)[14 PRs](https://github.com/shippercli/cli/pulls)MITPHPPHP ^8.3CI passing

Since Dec 29Pushed todayCompare

[ Source](https://github.com/shippercli/cli)[ Packagist](https://packagist.org/packages/shippercli/cli)[ RSS](/packages/shippercli-cli/feed)WikiDiscussions main Synced today

READMEChangelog (4)Dependencies (16)Versions (42)Used By (0)

Shipper CLI
===========

[](#shipper-cli)

[![CI](https://github.com/shippercli/cli/actions/workflows/ci.yml/badge.svg)](https://github.com/shippercli/cli/actions)[![PHPStan](https://camo.githubusercontent.com/b72adb1f27170ecf486459c4b07e920bb3db2b464444bce8277e018270665646/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048505374616e2d6c6576656c253230392d627269676874677265656e)](https://phpstan.org/)[![PHP](https://camo.githubusercontent.com/b994e74a066e26a81c454f22ff2a8d89f8804c8c5af477139eb259c99ac339cd/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e332532422d373737626234)](https://www.php.net/)[![License](https://camo.githubusercontent.com/d6bc2b26794002c24d023acaab01b6dbb953c57ab9cb80ba5b8aa2f2bd5de99a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c7565)](LICENSE)

Declarative application deployments through provider plugins.

Shipper reads `shipper.yml`, validates the selected project and profile, shows the planned operations, and delegates deployment work to the installed provider package.

Install
-------

[](#install)

Install globally with Composer:

```
composer global require shippercli/cli
```

Or work from source:

```
composer install
./shipper list
```

Prebuilt PHAR binaries are published on the [releases page](https://github.com/shippercli/cli/releases).

Provider packages
-----------------

[](#provider-packages)

Providers are separate Composer packages:

ProviderPackagePloi`shippercli/provider-ploi`Laravel Forge`shippercli/provider-forge`cPanel`shippercli/provider-cpanel`EasyPanel`shippercli/provider-easypanel`Install the package for the target platform:

```
composer global require shippercli/provider-cpanel
```

Shipper discovers packages with Composer's runtime plugin metadata. Provider credentials, platform features, and configuration options belong to each provider's documentation rather than the core CLI.

Configure
---------

[](#configure)

Create `shipper.yml` in the application repository:

```
providers:
  provider_name:
    api_token: "${PROVIDER_API_TOKEN}"

projects:
  backend:
    provider: provider_name
    path: "."
    web_directory: /public
    profiles:
      production:
        branch: main
        domain: "api.example.com"
      staging:
        branch: develop
        domain: "api.example-test.com"
```

`provider_name` is the slug registered by the installed package. Profiles can override provider-supported runtime, database, domain, environment, and lifecycle options.

Environment placeholders use `${NAME}` syntax and are resolved at runtime. Keep credentials in the shell, CI secrets, or another secret manager.

Commands
--------

[](#commands)

```
# Validate all configured projects and profiles.
shipper validate

# Preview provider operations without changing remote state.
shipper plan backend --profile=production

# Apply a deployment. --force skips the confirmation prompt.
shipper apply backend --profile=production --force

# Inspect provider-defined deployment and resource state.
shipper status backend --profile=production

# Read recent provider or application log lines.
shipper logs backend --profile=production --lines=100

# Restore the latest or a named provider-managed release.
shipper rollback backend --profile=production
shipper rollback backend --profile=production --release=release-id

# Remove only resources the provider identifies as Shipper-managed.
shipper destroy backend --profile=preview --force
```

`status`, `logs`, and `rollback` are optional provider capabilities. Shipper returns a clear error when the selected provider does not implement one.

Provider contracts
------------------

[](#provider-contracts)

Every provider implements validation, planning, apply, destroy, name, and error-reporting methods from `shippercli/contracts`.

Optional contracts add:

- deployment status
- recent logs
- release rollback
- server provisioning and cleanup

The CLI adapts installed contract providers to its internal flows. Provider implementations do not belong in the core repository.

GitHub Actions
--------------

[](#github-actions)

A minimal deployment workflow validates before applying:

```
name: Deploy

on:
  push:
    branches: [main]

permissions:
  contents: read

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: shivammathur/setup-php@v2
        with:
          php-version: '8.3'
          extensions: yaml, zip

      - run: composer install --no-interaction --prefer-dist
      - run: ./shipper validate
      - run: ./shipper apply backend --profile=production --force
        env:
          PROVIDER_API_TOKEN: ${{ secrets.PROVIDER_API_TOKEN }}
```

See [GitHub Actions](docs/GITHUB_ACTIONS.md) for production, staging, preview, cleanup, and reusable-action patterns.

Documentation
-------------

[](#documentation)

- [Documentation index](docs/README.md)
- [Configuration](docs/CONFIGURATION.md)
- [Provider operations](docs/PROVIDER_OPERATIONS.md)
- [Server lifecycle](docs/SERVER_LIFECYCLE.md)
- [Sites](docs/SITES.md)
- [Databases](docs/DATABASES.md)
- [PR previews](docs/PR_PREVIEWS.md)
- [GitHub Actions](docs/GITHUB_ACTIONS.md)
- [Build and releases](docs/BUILD_SYSTEM.md)

Development
-----------

[](#development)

```
composer format
composer format:check
composer analyse
XDEBUG_MODE=coverage composer test
composer build
```

The codebase targets PHP 8.3+, Laravel Pint, PHPStan level 9, and Pest.

Release
-------

[](#release)

Tags build and publish the PHAR through GitHub Actions:

```
git tag v1.0.0
git push origin v1.0.0
```

License
-------

[](#license)

MIT

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance80

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 50.2% 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

4

Last Release

0d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9d02cdb7563da13d24667b14025c67a4e2fc52a104becc8bfe384da21d056768?d=identicon)[marktopper](/maintainers/marktopper)

---

Top Contributors

[![Copilot](https://avatars.githubusercontent.com/in/1143301?v=4)](https://github.com/Copilot "Copilot (120 commits)")[![marktopper](https://avatars.githubusercontent.com/u/2232539?v=4)](https://github.com/marktopper "marktopper (107 commits)")[![cursoragent](https://avatars.githubusercontent.com/u/199161495?v=4)](https://github.com/cursoragent "cursoragent (6 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (6 commits)")

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/shippercli-cli/health.svg)

```
[![Health](https://phpackages.com/badges/shippercli-cli/health.svg)](https://phpackages.com/packages/shippercli-cli)
```

###  Alternatives

[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M606](/packages/shopware-core)[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.9M754](/packages/sylius-sylius)[pimcore/pimcore

Content &amp; Product Management Framework (CMS/PIM/E-Commerce)

3.8k3.8M512](/packages/pimcore-pimcore)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

9421.6k64](/packages/open-dxp-opendxp)[contao/core-bundle

Contao Open Source CMS

1231.6M2.9k](/packages/contao-core-bundle)

PHPackages © 2026

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