PHPackages                             mikejw/base-docker - 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. mikejw/base-docker

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

mikejw/base-docker
==================

Dev environment project for Empathy PHP.

v2.0.4(8mo ago)080MITShell

Since Dec 30Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/mikejw/base-docker)[ Packagist](https://packagist.org/packages/mikejw/base-docker)[ Docs](https://empathy.sh)[ RSS](/packages/mikejw-base-docker/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (29)Used By (0)

Base Docker
===========

[](#base-docker)

About
-----

[](#about)

Soon to be named something else?

A local dev environment for working on one *or more* Empathy apps. (See .)

For macOS/Linux workstations you must have Docker and Ansible installed on your local machine, however if you are on Windows, read the [Windows instructions](./docs/windows.md) before reading the rest of this README, beginning at the "Usage" section.

Licence
-------

[](#licence)

Now distributed under an MIT license. See [LICENSE](./LICENSE).

Getting starting
----------------

[](#getting-starting)

##### Decide your local hostname:

[](#decide-your-local-hostname)

Decide which local hostname you will be using for development.

The recommended custom hostname is `www.dev.org`.

You might decide to use an IP address instead (useful for testing from another device on your network), `localhost`, or something else entirely.

If you decide to use something other than `www.dev.org`, even if it is an IP address or is another custom hostname, make a note of it now.

##### Hosts file entry for `www.dev.org` or custom hostname:

[](#hosts-file-entry-for-wwwdevorg-or-custom-hostname)

Whether you are going with the default hostname `www.dev.org` or something custom, create a `/etc/hosts` file entry for it now if it is *not* a system default hostname. (IP address or `localhost`.) `www.dev.org` is being used in the following example:

```
127.0.0.1	localhost www.dev.org

```

##### Virtualenv in `./python`:

[](#virtualenv-in-python)

Initialise virtualenv within the root directory of `base-docker` on your machine. (E.g. for macOS):

```
brew install virtualenv
virtualenv ./python

```

##### Install `pip` package `packaging`:

[](#install-pip-package-packaging)

This package is a pre-requisite before pip packages can be installed through Ansible.

Install it manually now:

```
cd ./python/bin
./pip3 install packaging

```

##### Install Anisble galaxy roles/collections:

[](#install-anisble-galaxy-rolescollections)

From the root `base-docker` directory, run the script as follows:

```
./ansible-install.sh

```

Usage
-----

[](#usage)

##### Initialise config on new machine:

[](#initialise-config-on-new-machine)

```
cd dev/ansible
ansible-playbook ../init.yml

```

This creates settings file for `base-docker` in `~/.config`.

If you are using any hostname other than the default (`www.dev.org`), specify it with the `h` argument. E.g:

```
cd dev/ansible
ansible-playbook ../init.yml -e "h=10.0.0.22"

```

##### Initialise global `developer` flag:

[](#initialise-global-developer-flag)

Running the `init.yml` playbook, by default will disable this global flag. It can be enabled with:

```
cd dev/ansible
ansible-playbook ../init.yml -e "dev=true"

```

When enabled, this currently ensures all composer dependencies are cloned (via git) during quickstart templating installs.

##### Switch project:

[](#switch-project)

```
cd dev/ansible
ansible-playbook ../main.yml -e "op=switch cb=a.ce"

```

In the above example the project found in `~/code/a.ce` will be set as active.

##### Boot current project:

[](#boot-current-project)

```
cd dev/ansible
ansible-playbook ../main.yml -e "op=boot"

```

##### Quick-start commands:

[](#quick-start-commands)

Boostrap Empathy projects giving target extension template name. Template default is "vanilla" for base empathy app with no extensions, (when no argument is provided).

Others available are "elib-base", "elib-acl", "elib-blog" and "elib-cms".

NB: elib-cms dummy content (database dump data, image upload, footer background image) generated with ChatGPT!

The playbook will fail if codebase path already exists.

```
cd dev/ansible
ansible-playbook ../main.yml -e "op=qs cb=myproject tpl=elib-base"

```

Caveats
-------

[](#caveats)

The default `app` container has apcu cache enabled for reading `config.yml` files and dependency injection `services.php` definition files.

Restart the app container after making changes to these files.

```
docker stop app
docker start app

```

Ansible my have trouble connecting to Docker Desktop on macOS when running docker tasks. If this happens run this command:

```
sudo ln -s "$HOME/.docker/run/docker.sock" /var/run/docker.sock

```

###  Health Score

39

—

LowBetter than 86% of packages

Maintenance77

Regular maintenance activity

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity53

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

Recently: every ~17 days

Total

22

Last Release

246d ago

Major Versions

v1.6.0 → v2.0.02025-07-03

### Community

Maintainers

![](https://www.gravatar.com/avatar/715d4159043b7e1e6daa0f1717d396c480616e1db9aee2d1c4738d69217cbd37?d=identicon)[mikejw](/maintainers/mikejw)

---

Top Contributors

[![mikejw](https://avatars.githubusercontent.com/u/115110?v=4)](https://github.com/mikejw "mikejw (216 commits)")

---

Tags

lib

### Embed Badge

![Health badge](/badges/mikejw-base-docker/health.svg)

```
[![Health](https://phpackages.com/badges/mikejw-base-docker/health.svg)](https://phpackages.com/packages/mikejw-base-docker)
```

###  Alternatives

[deployer/deployer

Deployment Tool

11.0k25.4M207](/packages/deployer-deployer)[appwrite/server-ce

End to end backend server for frontend and mobile apps.

55.3k84.2k](/packages/appwrite-server-ce)[pragmarx/health

Laravel Server &amp; App Health Monitor and Notifier

2.0k1.0M2](/packages/pragmarx-health)[felixfbecker/language-server-protocol

PHP classes for the Language Server Protocol

22476.7M6](/packages/felixfbecker-language-server-protocol)[heroku/heroku-buildpack-php

Toolkit for starting a PHP application locally, with or without foreman, using the same config for PHP and Apache2/Nginx as on Heroku

8161.3M10](/packages/heroku-heroku-buildpack-php)[tiamo/phpas2

PHPAS2 is a php-based implementation of the EDIINT AS2 standard

4674.7k](/packages/tiamo-phpas2)

PHPackages © 2026

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