Local devenv set up - Shopware 6

This blog post is mainly a reference for myself. So that I don’t always have to search for commands and places where I need to change something. Basically it shows the steps to set up a new instance with devenv and Shopware 6. It also shows how to enable xdebug if needed. And how to use an SSL certificate and what needs to be changed. I assume that devenv, direnv and cachix are already set up (if not, take a look at this devenv guide).
Steps for set up a new Shopware 6 instance
Tested with devenv (0.6.3) and Shopware 6.4.20.2
Open Terminal 1
git clone git@github.com:shopware/shopware.git shopware-6-4-20-2
cd shopware-6-4-20-2
direnv allow
git checkout tags/v6.4.20.2 -b v6.4.20.2
devenv up
Open Terminal 2
cd shopware-6-4-20-2
devenv shell
composer setup
Now check http://localhost:8000/ and http://localhost:8000/admin.
Command to install some demo data (optional, execute inside devenv shell)
APP_ENV=prod bin/console framework:demodata && bin/console dal:refresh:index
Xdebug
Changes needed in devenv.nix file of your project
extensions = [ "grpc" "xdebug" ];
ini = ''
...
xdebug.mode = "debug"
xdebug.start_with_request = "trigger"
xdebug.discover_client_host = 1
xdebug.var_display_max_depth = -1
xdebug.var_display_max_data = -1
xdebug.var_display_max_children = -1
...
Example command to use Xdebug with CLI inside devenv shell
export XDEBUG_MODE=debug XDEBUG_SESSION=1; export XDEBUG_CONFIG="idekey=PHPSTORM"; php bin/console theme:compile
SSL
Create a devenv.local.nix file in your project root
{ lib, config, ... }: {
env.APP_URL = "https://localhost";
certificates = [
"localhost"
];
services.caddy = {
virtualHosts."localhost" = {
extraConfig = ''
tls .devenv/state/mkcert/localhost.pem .devenv/state/mkcert/localhost-key.pem
@default {
not path /theme/* /media/* /thumbnail/* /bundles/* /css/* /fonts/* /js/* /sitemap/*
}
root * public
php_fastcgi @default unix/${config.languages.php.fpm.pools.web.socket} {
trusted_proxies private_ranges
}
file_server
'';
};
};
}
If you still have trouble that HTTPS is not working and you are not the root user (and using Linux) try executing this and afterwards restart devenv:
sudo sysctl net.ipv4.ip_unprivileged_port_start=80
Alternatives
- Kellerkinder devenv
- dockware.io (Docker)