PHPackages                             reyemtech/sail - 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. reyemtech/sail

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

reyemtech/sail
==============

Docker files for running a basic Laravel application.

v2.0.0(2mo ago)0775[1 PRs](https://github.com/reyemtech/sail/pulls)MITPHPPHP ^8.0CI passing

Since May 1Pushed 2mo agoCompare

[ Source](https://github.com/reyemtech/sail)[ Packagist](https://packagist.org/packages/reyemtech/sail)[ RSS](/packages/reyemtech-sail/feed)WikiDiscussions 1.x Synced 1mo ago

READMEChangelog (10)Dependencies (16)Versions (51)Used By (0)

[![Logo Laravel Sail](/art/logo.svg)](/art/logo.svg)

[![Total Downloads](https://camo.githubusercontent.com/2161a9b7a996e96bb31eb4372147d22d7eb13550e472fd636ce8f53f7b13d906/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6c61726176656c2f7361696c)](https://packagist.org/packages/laravel/sail)[![Latest Stable Version](https://camo.githubusercontent.com/d6d4cf054970f47630980435bc3d7e37e8def1bc4d60194cd84d469799cf7418/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6c61726176656c2f7361696c)](https://packagist.org/packages/laravel/sail)[![License](https://camo.githubusercontent.com/66b8444fb2b05bc5ca469230ab75dfaa5e06577a3fffb766ca2013acf5190332/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6c61726176656c2f7361696c)](https://packagist.org/packages/laravel/sail)

Introduction
------------

[](#introduction)

This fork of Laravel Sail adds:

- Helm chart generation (with scheduler vendor PVC support)
- Non-interactive `sail:build` flags (`--use-previous`, `--bump`, etc.)
- Laravel Boost guideline for IDE/AI context
- Multi-stage Docker builds (bake) shared across PHP versions (8.x/8.5)

Quick start
-----------

[](#quick-start)

```
composer require reyemtech/sail --dev
php artisan sail:install --php=8.4   # or 8.5
php artisan sail:publish
```

Multi-project support
---------------------

[](#multi-project-support)

This fork includes a `sail-wrapper` that automatically finds and runs the nearest project's Sail script. This allows you to use `sail` from any directory when working with multiple Sail projects on the same machine.

**Automatic installation**: The wrapper is automatically installed to `~/.local/bin/sail` (or `~/bin` if available) when you install or update the package via Composer.

**Usage**: Simply run `sail` from any directory, and it will automatically find and execute the nearest project's `vendor/bin/sail`:

```
cd /path/to/project-a
sail up -d        # Uses project-a's Sail

cd /path/to/project-b
sail artisan migrate  # Uses project-b's Sail
```

**Manual installation**: If automatic installation fails, you can manually install:

```
cp vendor/reyemtech/sail/bin/sail-wrapper ~/.local/bin/sail
chmod +x ~/.local/bin/sail
```

**Note**: Make sure `~/.local/bin` (or `~/bin`) is in your PATH. Add to your `~/.bashrc` or `~/.zshrc`:

```
export PATH="$HOME/.local/bin:$PATH"
```

Build with bake + Helm
----------------------

[](#build-with-bake--helm)

```
php artisan sail:build \
  --environments=production \
  --architectures=linux/amd64,linux/arm64 \
  --repository=ghcr.io \
  --organization=acme \
  --domains=app.example.com \
  --build-version=1.2.3 \
  --push \
  --use-previous \
  --bump=patch
```

Key flags:

- `--use-previous`: reuse the last saved config without prompts
- `--bump=patch|minor|major|no`: bump version non-interactively
- `--repository=none`: local-only build (disables push)
- `--remove-vendor-node-modules`: Remove vendor/ and node\_modules/ from final image (default: true)
- `--keep-vendor-node-modules`: Keep vendor/ and node\_modules/ in final image

Validation:

- Environments must be in `local, production`
- Architectures must be in the allowed list from the package
- Repository must be one of the known registries, `none`, or a full registry URL (e.g., `888657980245.dkr.ecr.us-east-1.amazonaws.com`)

### Registry Support

[](#registry-support)

The build command supports multiple container registries with automatic authentication:

**Standard Registries:**

- GitHub Container Registry (`ghcr.io`)
- Docker Hub (`docker.io`)
- GitLab Container Registry (`registry.gitlab.com`)
- Quay.io (`quay.io`)
- Custom registries (any valid registry URL)

**AWS ECR:**

```
php artisan sail:build --repository=888657980245.dkr.ecr.us-east-1.amazonaws.com --push
# Or use shorthand:
php artisan sail:build --repository=ecr --push
# Requires: AWS CLI configured (aws configure)
# Environment variables: AWS_REGION, AWS_ACCOUNT_ID (optional)
```

**Azure ACR:**

```
php artisan sail:build --repository=myregistry.azurecr.io --push
# Or use shorthand:
php artisan sail:build --repository=azurecr --push
# Requires: Azure CLI installed and logged in (az login)
# Environment variable: AZURE_ACR_NAME (optional)
```

The build command will automatically check if you're logged in and prompt for authentication if needed.

Helm Commands
-------------

[](#helm-commands)

### Regenerate Helm Chart

[](#regenerate-helm-chart)

Regenerate the Helm chart without building Docker images:

```
# Regenerate with current version
php artisan sail:helm

# Regenerate with specific version
php artisan sail:helm --chart-version=1.2.3

# Bump version and regenerate
php artisan sail:helm --bump=patch

# Skip version update in Chart.yaml
php artisan sail:helm --no-version-update
```

This command:

- Updates Helm templates from stubs
- Merges new configuration variables from `values.stub` into existing `values.yaml`
- Updates `Chart.yaml` version (unless `--no-version-update` is used)
- Validates the chart using `helm lint`

Useful when you need to update templates or add new configuration options without rebuilding Docker images.

Helm Chart Notes
----------------

[](#helm-chart-notes)

- Stubs live in `stubs/helm`
- Scheduler vendor PVC: enabled by default (`scheduler.vendorPvc.*`), default size 5Gi, storage class `sata`
- Resources &amp; security defaults:
    - `resources` requests/limits set in `values.stub`
    - `securityContext` defaults to non-root, fsGroup 1000
- Probes: web gets readiness/liveness on `/up`
- **Autoscaling**: HPA enabled by default for web tier, configurable per tier
- **Pod Disruption Budgets**: Configurable PDBs for high availability
- **ServiceAccounts**: Optional ServiceAccount creation with annotations
- **External Secrets**: Automatic API version detection (v1 or v1beta1)

Docker runtime
--------------

[](#docker-runtime)

- PHP 8.x bake files reside in `runtimes/8.x`
- PHP 8.5 reuses the 8.x bake structure (`runtimes/8.5/docker-bake.hcl` targets 8.x, PHP\_VERSION=8.5)
- Multi-stage targets: base, app, production (cli/fpm)

CI/CD Integration
-----------------

[](#cicd-integration)

Generate CI/CD configuration files for automated Docker builds:

```
# Interactive selection
php artisan sail:ci

# Direct selection
php artisan sail:ci --provider=github-actions
php artisan sail:ci --provider=gitlab-ci
php artisan sail:ci --provider=azure-devops
php artisan sail:ci --provider=circleci
php artisan sail:ci --provider=aws-codebuild
php artisan sail:ci --provider=travis

# Overwrite existing configuration
php artisan sail:ci --provider=github-actions --overwrite
```

### Supported CI Platforms

[](#supported-ci-platforms)

1. **GitHub Actions** - `.github/workflows/build.yml`
2. **GitLab CI/CD** - `.gitlab-ci.yml`
3. **Azure DevOps Pipelines** - `azure-pipelines/build.yml`
4. **CircleCI** - `.circleci/config.yml`
5. **AWS CodeBuild** - `buildspec.yml`
6. **Travis CI** - `.travis.yml`

All CI configurations:

- Build on push to `main`/`master` branches
- Build on version tags (`v*`)
- Support multi-architecture builds (amd64, arm64)
- Include registry authentication (ECR, ACR, standard)
- Generate both Docker images and Helm charts
- Extract version from git tags or generate date-based versions

### CI Setup Requirements

[](#ci-setup-requirements)

**GitHub Actions:**

- Secrets: `REGISTRY_USERNAME`, `REGISTRY_PASSWORD` (or `GHCR_IO_USERNAME`, `GHCR_IO_PASSWORD`)
- For ECR: `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_REGION`
- For ACR: `AZURE_CREDENTIALS`

**GitLab CI:**

- CI/CD Variables: `REGISTRY_USERNAME`, `REGISTRY_PASSWORD` (or `CI_REGISTRY_USER`, `CI_REGISTRY_PASSWORD`)
- For ECR: `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_REGION`
- For ACR: `AZURE_CLIENT_ID`, `AZURE_CLIENT_SECRET`, `AZURE_TENANT_ID`

**Azure DevOps:**

- Variables: `REGISTRY_USERNAME`, `REGISTRY_PASSWORD`
- Service connections for ACR and AWS

**CircleCI:**

- Environment Variables: `REGISTRY_USERNAME`, `REGISTRY_PASSWORD`
- For ECR: `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_REGION`

**AWS CodeBuild:**

- Environment Variables: `REGISTRY_USERNAME`, `REGISTRY_PASSWORD`
- IAM role for ECR authentication (no credentials needed)

**Travis CI:**

- Environment Variables: `REGISTRY_USERNAME`, `REGISTRY_PASSWORD`

Rollback (Helm)
---------------

[](#rollback-helm)

```
helm rollback
helm history
```

Contributing / Security
-----------------------

[](#contributing--security)

- Issues:
- Security:
- License: MIT

###  Health Score

47

—

FairBetter than 94% of packages

Maintenance87

Actively maintained with recent releases

Popularity19

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~6 days

Recently: every ~18 days

Total

50

Last Release

62d ago

Major Versions

v1.51.1 → v2.0.02026-03-17

### Community

Maintainers

![](https://www.gravatar.com/avatar/79399147ddc617e3c70a84cfc7ebfc49b99488f4c1743b83ae61890bf6410e11?d=identicon)[mariomeyer](/maintainers/mariomeyer)

---

Top Contributors

[![driesvints](https://avatars.githubusercontent.com/u/594614?v=4)](https://github.com/driesvints "driesvints (187 commits)")[![taylorotwell](https://avatars.githubusercontent.com/u/463230?v=4)](https://github.com/taylorotwell "taylorotwell (104 commits)")[![mariomeyer](https://avatars.githubusercontent.com/u/867650?v=4)](https://github.com/mariomeyer "mariomeyer (92 commits)")[![Jubeki](https://avatars.githubusercontent.com/u/15707543?v=4)](https://github.com/Jubeki "Jubeki (21 commits)")[![finagin](https://avatars.githubusercontent.com/u/11045296?v=4)](https://github.com/finagin "finagin (11 commits)")[![jessarcher](https://avatars.githubusercontent.com/u/4977161?v=4)](https://github.com/jessarcher "jessarcher (7 commits)")[![nunomaduro](https://avatars.githubusercontent.com/u/5457236?v=4)](https://github.com/nunomaduro "nunomaduro (5 commits)")[![sweptsquash](https://avatars.githubusercontent.com/u/9886472?v=4)](https://github.com/sweptsquash "sweptsquash (4 commits)")[![SamuelMwangiW](https://avatars.githubusercontent.com/u/1807304?v=4)](https://github.com/SamuelMwangiW "SamuelMwangiW (4 commits)")[![crynobone](https://avatars.githubusercontent.com/u/172966?v=4)](https://github.com/crynobone "crynobone (4 commits)")[![abdounikarim](https://avatars.githubusercontent.com/u/15892761?v=4)](https://github.com/abdounikarim "abdounikarim (4 commits)")[![ribeirobreno](https://avatars.githubusercontent.com/u/1036515?v=4)](https://github.com/ribeirobreno "ribeirobreno (3 commits)")[![ankurk91](https://avatars.githubusercontent.com/u/6111524?v=4)](https://github.com/ankurk91 "ankurk91 (3 commits)")[![dimitriacosta](https://avatars.githubusercontent.com/u/5995547?v=4)](https://github.com/dimitriacosta "dimitriacosta (3 commits)")[![francoism90](https://avatars.githubusercontent.com/u/5028905?v=4)](https://github.com/francoism90 "francoism90 (3 commits)")[![kiani01lab](https://avatars.githubusercontent.com/u/185515145?v=4)](https://github.com/kiani01lab "kiani01lab (3 commits)")[![ariaieboy](https://avatars.githubusercontent.com/u/15873972?v=4)](https://github.com/ariaieboy "ariaieboy (3 commits)")[![prageeth](https://avatars.githubusercontent.com/u/230793?v=4)](https://github.com/prageeth "prageeth (3 commits)")[![amayer5125](https://avatars.githubusercontent.com/u/3212673?v=4)](https://github.com/amayer5125 "amayer5125 (3 commits)")[![totov](https://avatars.githubusercontent.com/u/2348955?v=4)](https://github.com/totov "totov (2 commits)")

---

Tags

laraveldocker

###  Code Quality

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/reyemtech-sail/health.svg)

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

###  Alternatives

[laravel/sail

Docker files for running a basic Laravel application.

1.9k186.9M1.0k](/packages/laravel-sail)[laravel/passport

Laravel Passport provides OAuth2 server support to Laravel.

3.4k85.0M532](/packages/laravel-passport)[laravel/cashier

Laravel Cashier provides an expressive, fluent interface to Stripe's subscription billing services.

2.5k25.9M107](/packages/laravel-cashier)[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k12.1M99](/packages/laravel-pulse)[laravel/roster

Detect packages &amp; approaches in use within a Laravel project

15510.4M7](/packages/laravel-roster)[ryoluo/sail-ssl

Laravel Sail plugin to enable SSL (HTTPS) connection with Nginx.

188672.6k2](/packages/ryoluo-sail-ssl)

PHPackages © 2026

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