Ever wondered on ways of automation for easy setup of Magento local development environment? Here I will proudly highlight our project, Mage2click Magento Docker Mutagen development environment and toolset with mutagen.io sync for files. This project is directly intended to make life easier when performing Magento installation and development on MacOS systems.
Besides of easy and configurable setup of Magento environment, it provides a rich toolset for further development and debugging. If talking in short, it includes out of the box tools like Xdebug for debugging, MailHog for catching local emails, Ngrok for sharing local environment to the internet, n98-magerun handy tools to work with Magento from the command line and much, much more.
The environment includes Redis for caching and optionally can use Varnish, Elasticsearch, and RabbitMQ of different versions of your choice.
As the project is Docker-based, of course, it requires running Docker on your system. Download & Install Docker Desktop for Mac (Community Edition).
brew install havoc-io/mutagen/mutagen
Simply create a directory where you would like to initialize the project and use one of the commands below. I would suggest using the interactive installation mode of our project. It’s like a simple questionnaire to gather information about the desired environment and based on that data perform the installation process.
curl -sL setup.m2c.run | bash -s -- -i
Another option is to use command like above but with specifying extra parameters to configure desired setup and skip questionnaire of interactive mode. To get more information about parameters, use command below.
curl -sL setup.m2c.run | bash -s
After setup is complete, all Magento source files will be located in
src subdirectory of the project root. You dont need to connect into Docker containers to perform
bin/magento command calls, this command can be called directly from your host machine in the project root directory!
To get an admin url, simply run
bin/magento info:admin. Admin username and password are
In case if you getting unusual slow page loads, check Magento cache status by using the command
bin/magento cache:status and enable cache if needed.
It’s a good practice to run
bin/stop command to stop the project’s Docker containers before switching to another Docker project. It helps to avoid getting an error about unavailable ports. To get the stopped project back to active state use
What about with actual development process? You can open the project directory with your favorite IDE. Write some code, for example in
src/app/code directory and all your code changes will be automatically synced to Docker container in real-time with lightning speed, thanks to mutagen.io sync service.
If you are using Phpstorm for developing, check the command
bin/dev-urn-catalog-generate, you might find it useful. It will Generate URN’s and remap paths to your local machine. Restart PHPStorm after running this command.
bin/setup/n98-magerun2 command you can install n98-magerun2 and use all its features with help of shorthand command
Needed to share your project over the web or check how it works on a real mobile device? Use
bin/setup/share command to install needed dependencies. Then you can use
bin/share command to share your Magento instance over the internet with the help of Ngrok secure tunnels.
Xdebug debugging is a must with Magento development. Run
bin/setup/xdebug to configure xdebug on your project and after that, you can use
bin/xdebug enable and
bin/xdebug disable to enable and disable debugging. For more information on how to configure xdebug, please visit our project’s wiki.
For detailed information about all commands and usage, check the project’s GitHub.
We are actively working on the project to make it better and more useful. PR’s are welcomed, stars helping the project to shine ☺. Keep an eye on the project for getting updates.
Thank you for reading!