nix is a cross-platform package-manager.
nix runs on top of most Linux distributions (Debian, Ubuntu, Redhat, etc) as well as MacOS.
Nix packages are stored in a separate folder (
/nix), and you can safely run multiple versions of any package.
nix is used by the CI test-infrastructure for
These instructions will install the following packages in
- Interpreters: PHP-CLI, NodeJS
- Servers: Apache HTTPD, MySQL, PHP-FPM, MailHog, Redis
Additionally, they will install buildkit in
nixruns locally on Linux and MacOS at full/native speed. Configuration is packaged, editable, and disposable. Can be combined with desktop tools (IDEs/debuggers). Packages don't interfere with host.
- Con: No Windows support. Customization requires learning an obscure language.
- Linux or MacOS (Note: Generally, you'll get the best results with an OS release that is 3-24 months old -- something recent but not brand new.)
- x86 or arm64
- Sudo privileges
## Download the configuration git clone https://github.com/civicrm/civicrm-buildkit ~/buildkit ## Download and install the binaries cd ~/buildkit ./nix/bin/install-developer.sh
install-developer.sh" script will download a few gigabytes worth of data.
It may compile some packages from source.
For further discussion about these commands and their variations, see nix/doc/install-developer.md.
## Open a subshell use-bknix dfl -s ## Start the services - HTTPD, MySQL, etc cd ~/buildkit loco run
loco run" command will start HTTPD, MySQL, etc on alternative ports.
This allows them to coexist with any other services you have.
For further discussion about these commands and their variations, see nix/doc/usage-loco.md.
Finally, once you are able to work with
loco, you can move on to using