PHPackages                             richdynamix/arc - 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. richdynamix/arc

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

richdynamix/arc
===============

Production ready docker based development environment for your Laravel project.

4.1.0(4y ago)1163.1k18[1 issues](https://github.com/richdynamix/arc/issues)MITShellPHP ^7.2|^8.0

Since Oct 11Pushed 4y ago7 watchersCompare

[ Source](https://github.com/richdynamix/arc)[ Packagist](https://packagist.org/packages/richdynamix/arc)[ RSS](/packages/richdynamix-arc/feed)WikiDiscussions master Synced 4w ago

READMEChangelog (10)Dependencies (2)Versions (13)Used By (0)

Arc
===

[](#arc)

Bootstrap your new Laravel projects with a highly configurable, production ready Docker environment. Automated build, test and deploy to [Kubernetes](https://kubernetes.io/) using [Travis CI](https://travis-ci.com/)

Overview
--------

[](#overview)

Arc is a simple Laravel package to add the ultimate Docker environment for the majority of your applications. Built upon the amazing [ContinuousPipe Dockerfiles](https://github.com/continuouspipe/dockerfiles), this package will add the correct Dockerfile, Docker Compose and configurations into your Laravel project.

Additionally - if selected, it can also add a Continuous Integration &amp; Continuous Deployment configuration to work with Travis CI and Kubernetes.

The Docker configuration provides the following:

- PHP 7.4 (Configurable for 5.6, 7.0, 7.1, 7.2, 7.3, 7.4)
- NodeJS 11 inc NPM
- NGINX
- MySQL 8
- REDIS 6
- ConfD templating
- SupervisorD for process management
- Configurable queue workers
- Auto start Laravel Horizon processes
- Auto start CRON
- Easily create a CRON only container. Useful for zero downtime deployments to a Kubernetes cluster
- Configure the entire infrastructure with environment variables.

CI/CD Configuration contains the following:

- Travis CI YAML configuration
- **Build** and **Push** your Docker image to [Docker Hub](https://hub.docker.com/)
- Automated BASH file &amp; Dockerfile linting
- Automated [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer), [PHPMD](https://github.com/phpmd/phpmd) &amp; [PHPStan](https://github.com/phpstan/phpstan) static code analysis
- Automated [PHP Unit](https://phpunit.de/) tests
- Configure **Kubernetes** cluster context via the [Kubectl](https://kubernetes.io/docs/reference/kubectl/overview/) tool
- Configure and deploy your application to Kubernetes with the use of [Helm](https://www.helm.sh/) &amp; [Helm Charts](https://helm.sh/docs/developing_charts/)

Requirements
------------

[](#requirements)

This package is intended for new Laravel 6 projects.

Installation
------------

[](#installation)

#### Require the package in your project

[](#require-the-package-in-your-project)

```
    composer require richdynamix/arc
```

#### Run the installer

[](#run-the-installer)

```
    php artisan arc:install
```

You will be prompted to choose if you want CI/CD configurations.

```
    Would you like a Travis CI and K8s CD configuration? (yes/no) [no]:
```

Once complete the installer will remove Arc as a composer dependency.

**Please Note: If you choose to use the CI/CD configurations then there are some local environment variables that are required before you can run the containers**

```
    export DOCKER_USERNAME=myUsername
    export DOCKER_REPO=my-repo
    export TAG=latest

    export GITHUB_TOKEN=1234567890 # optional
```

#### Run the Container

[](#run-the-container)

```
    docker-compose up
```

### Continuous Integration and Deployment

[](#continuous-integration-and-deployment)

Required environment variables to be added to your Travis CI repository settings -

VariableDescriptionExpected valuesDefault$GITHUB\_TOKENPersonal Access Token used to access a private repositorystring/nullnull$DOCKER\_EMAILThe email address of your Docker accountstringnull$DOCKER\_PASSWORDDocker account password to push and pull your imagestringnull$DOCKER\_REPOThe name of your Docker repository to be pushed tostringnull$DOCKER\_USERNAMEThe username of your Docker account to push and pull imagesstringnull$K8S\_CLUSTERThe name of the cluster in your Kubectl configurationstringnull$K8S\_CLUSTER\_APIKubernetes API endpoint URLFQDN stringnull$K8S\_PASSWORDThe password of the Kubernetes user to access the clusterstringnull$K8S\_USERNAMEThe username of the Kubernetes user to access the clusterstringnull### Static Code Analysis

[](#static-code-analysis)

- PHP CodeSniffer has been configured with a `phpcs.xml` file that will be in the root of your project. This will follow PSR2 coding styles within your `app` folder only.
- PHPMD has been configured to use a `ruleset.xml` file within the root of your project that follows best practices.
- PHPStan has been configured on the lowest possible level `0`. If you wish to increase this level you may modify the `tools/docker/usr/local/share/container/plan.sh` file at the function `do_phpstan`

*You may use your phpcs.xml and ruleset.xml file to configure your IDE such as PHPStorm to automatically check your code during development*

From within the container, you may run any of your static code analysis tools at any time using the following commands:

- `container phpcs`
- `container phpmd`
- `container phpstan`

Additionally, you can run `container phpunit` to run your test suite within the container.

#### Connecting to the Web Container

[](#connecting-to-the-web-container)

As part of the Arc configurations there is a simple bash script added to the root of your project which allows you to call -

```
    ./ssh web
```

This is simply a wrapper script for convenience. Under the hood it's simply calling `docker exec -it web bash`

Addtionally, you may swap the `web` argument for any of the container names i.e. `./ssh database`, `./ssh redis`

Configuration
-------------

[](#configuration)

Arc is nothing more than a way to automatically copy the correct Docker configuration into your Laravel project. While you may have come across several Laravel based Docker environments, none of them cover the production ready setup that the ContinuousPipe Dockerfile provides.

ContinuousPipe Dockerfile offers an extremely flexible and solid infrastructure setup using a simple system of ConfD for templates and SupervisorD for controlling the start of services. The contents of `tools/docker/etc` and `tools/docker/usr` are copied into the container at build time which means that we can influence any environment variable and configuration.

Rather that explain all the functions and environment variables available to Arc, it is easier to point you to the documentation for the parent images:

- [PHP NGINX](https://github.com/continuouspipe/dockerfiles/tree/master/php/nginx) - The direct parent of the Arc Docker file. By default, it uses PHP 7.4, but you can change this within the Arc Dockerfile to match your needs. (Available versions are 5.6, 7.0, 7.1, 7.2, 7.3, 7.4)
- [Ubuntu 16.04](https://github.com/continuouspipe/dockerfiles/tree/master/ubuntu/16.04) - This is the base image which the PHP image extends. This sets up all the ConfD and SupervisorD configuration.

To manipulate your environment you can add values for any of the environment variables for any of the above. Additionally, there are a few specific to Arc which are all defined in `tools/docker/usr/local/share/env/20-arc-env`.

VariableDescriptionExpected valuesDefaultSTART\_QUEUEShould the Laravel Queue worker be started.true/falsetrueRUN\_LARAVEL\_CRONShould the Laravel Queue worker be started.true/falsefalseSTART\_HORIZONShould Laravel Horizon worker be started. Do not start START\_QUEUE &amp; START\_HORIZON at the same time.true/falsefalseCOMPOSER\_INSTALL\_FLAGSAllow the override of composer flags during installationstring'--no-interaction --optimize-autoloader --ignore-platform-reqs'Credits
-------

[](#credits)

This package would not have been possible would it not have been for the amazing work of the ContinuousPipe team. Also, a special thanks to Samuel for the introduction of ContinuousPipe and Kubernetes. His ability to teach Docker concepts has been of great value. A huge thanks to Kieren for his attention to detail and everlasting patience when helping me to understand the ContinuousPipe Dockerfiles and setup.

- [Samuel ROZE](https://github.com/sroze)
- [Kieren Evans](https://github.com/kierenevans)

License
-------

[](#license)

MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity33

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity75

Established project with proven stability

 Bus Factor1

Top contributor holds 50% 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 ~128 days

Recently: every ~206 days

Total

12

Last Release

1772d ago

Major Versions

v0.1.0-beta1 → 1.0.02018-09-19

1.0.1 → 2.0.02019-02-23

2.2.1 → 3.0.02019-09-05

3.0.0 → 4.0.02020-12-21

PHP version history (3 changes)1.0.0PHP ^7.1.3

3.0.0PHP ^7.2

4.1.0PHP ^7.2|^8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1104549?v=4)[Steven Richardson](/maintainers/richdynamix)[@richdynamix](https://github.com/richdynamix)

---

Top Contributors

[![ejunker](https://avatars.githubusercontent.com/u/4758?v=4)](https://github.com/ejunker "ejunker (1 commits)")[![enesdemir](https://avatars.githubusercontent.com/u/19864662?v=4)](https://github.com/enesdemir "enesdemir (1 commits)")

### Embed Badge

![Health badge](/badges/richdynamix-arc/health.svg)

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

###  Alternatives

[laravel/ai

The official AI SDK for Laravel.

1.0k2.1M169](/packages/laravel-ai)[spatie/laravel-health

Monitor the health of a Laravel application

87511.3M154](/packages/spatie-laravel-health)[tallstackui/tallstackui

TallStackUI is a powerful suite of Blade components that elevate your workflow of Livewire applications.

721160.4k12](/packages/tallstackui-tallstackui)[spatie/laravel-export

Create a static site bundle from a Laravel app

672139.5k6](/packages/spatie-laravel-export)[laravel/surveyor

Static analysis tool for Laravel applications.

8690.3k12](/packages/laravel-surveyor)[iazaran/smart-cache

Smart Cache is a caching optimization package designed to enhance the way your Laravel application handles data caching. It intelligently manages large data sets by compressing, chunking, or applying other optimization strategies to keep your application performant and efficient.

2119.7k](/packages/iazaran-smart-cache)

PHPackages © 2026

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