This project includes a ready to go devkit for developing Popup Maker plugins, including a custom docker stack, plugin installer
- Run
npm install && npm run install:all
to install initial dependencies. - Run
composer make-environment
to create a new .env file. Then customize the Stack Versions as needed. - Run
npm run docker:up -- --debug
with optional--admin
,--debug
, or--caching
flags, see below.
NOTES: Currently if core plugin or extension requires composer install, it needs to be done manually.
Options must be passed after a --
flag.
--admin
- This will install the admin services listed below.
--caching
- This will install the caching services listed below.
--debug
- This will install Xdebug & Mailcatcher debug tools.
npm run docker:down
Shut down all project docker containers.npm run docker:purge
Remove all project docker containers.npm run docker:update
Update all project docker containers after an .env version change.
npm run install:packages
Install all npm packages for core & each extension.npm run lerna:start
Run npm start for all core & extensions.
Sometimes the daemon isn't accessible due to your user not being root: https://stackoverflow.com/questions/48957195/how-to-fix-docker-got-permission-denied-issue
The following commands should resolve it.
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
Might have to run some of these to fix permission issues which need to be shared between you and the www-data user for full functionality such as installing plugins from Plugins page or writing error logs.
sudo usermod -aG www-data $USER
sudo chown -R :www-data ./data/uploads && sudo chmod -vR g+w ./data/uploads
sudo chown -R :www-data ./logs && sudo chmod -vR g+w ./logs
sudo chown -R :www-data ./public && sudo chmod -vR g+w ./public
The following list outlines the current stack setup via docker-compose.
Versions are mostly controlled in the .env file.
- WordPress Apache: Site, [WP Admin][http://localhost/wp-admin/] docker
- PHP Version: 8.0 by default, can be changed in .env
- WP Version: Currently 5.8 RC2 by default, can be changed in .env
- Percona MySQL: docker
- MySQL Version: 8.0 by default, can be changed in .env
- Adminer: docker http://localhost:8090
- Memcache Admin: docker http://localhost:8091
- Redis Commander: docker http://localhost:8092
- XDebug: On port 9000 using host.docker.internal by default.
- Mailcatcher: http://localhost:10800
- Additional docker config changes for Xdebug setup.
- Adds ${IP} environment variable automatically on build via
npm run start