Installing Spryker with DevVM on Windows

Edit on GitHub
Warning

We will soon deprecate the DevVM and stop supporting it. Therefore, we highly recommend installing Spryker with Docker.

To install the Demo Shop for B2B or B2C implementations on Windows with Spryker development virtual machine (DevVM), follow the steps below.

1. Install prerequisites

To set up your environment, do the following:

  1. Install the following prerequisites:

  2. Install vagrant-vbguest and vagrant-hostmanager plugins:

vagrant plugin install vagrant-vbguest &&
vagrant plugin install vagrant-hostmanager

2. Install Spryker DevVM

  1. Launch Git Bash:

    1. Click Start.

    2. Start typing Git Bash.

    3. In the search results, right-click Git Bash and select Run as administrator. Run git bash as administrator

  2. Create a folder for the DevVM:

mkdir devvm
  1. Navigate to the folder you’ve created:
cd devvm				
  1. Initialize the Vagrant environment:
vagrant init devv410 https://u220427-sub1:PpiiHzuF2OIUzmcH@u220427-sub1.your-storagebox.de/devvm_v4.1.0.box

For Spryker Core version 201907.0 or prior, initialize an older version of DevVM:

vagrant init devvm2.3.1 https://github.com/spryker/devvm/releases/download/v2.3.1/spryker-devvm.box
  1. Add hostmanager plugin configuration to the Vagrantfile:
mv Vagrantfile Vagrantfile.bak &&
awk '/^end/{print "  config.hostmanager.enabled = true\n  config.hostmanager.manage_host = true"}1' Vagrantfile.bak > Vagrantfile
  1. Build and start the DevVM without cloning the Demo Shop:

    • For the B2B Demo Shop:
    VM_SKIP_SF="1" VM_PROJECT=b2b-demo-shop SPRYKER_REPOSITORY="https://github.com/spryker-shop/b2b-demo-shop.git" vagrant up
    
    • For the B2C Demo Shop:
    VM_SKIP_SF="1" VM_PROJECT=b2c-demo-shop SPRYKER_REPOSITORY="https://github.com/spryker-shop/b2c-demo-shop.git" vagrant up
    

3. Configure the DevVM

  1. Log into the DevVM:
vagrant ssh
  1. Update the network configuration of the DevVM:
sudo sed -i "s/eth1/eth1 $(ip -o -4 route show to default | cut -d ' ' -f 5)/g; s/create mask = 0775/create mask = 0777/g; s/directory mask = 0775/directory mask = 0777\n  force user = vagrant\n  force group = vagrant/g"  /etc/samba/smb.conf
  1. Add the Samba server to the autoload configuration and restart it:
sudo systemctl enable smbd.service nmbd.service &&
sudo /etc/init.d/samba restart
  1. Update PHP and Jenkins configuration:
sudo sed -i 's/user = www-data/user = vagrant/g'  /etc/php/7.4/fpm/pool.d/*.conf &&
sudo sed -i 's/=www-data/=vagrant/g' /etc/default/jenkins-devtest &&
sudo chown -R vagrant:vagrant /data/shop/devtest/shared/data/common/jenkins
  1. Restart PHP and Jenkins:
sudo /etc/init.d/php7.4-fpm restart &&
sudo /etc/init.d/jenkins-devtest restart
  1. Change the permissions of the project directory:
sudo chown vagrant:vagrant . &&
sudo chmod og+rwx .
  1. Mount the share in Windows:

    1. To start Windows Command Prompt, do the following:

      1. Press Win+R.
      2. Enter cmd.
      3. Press Enter.
    2. Mount the share as a network drive:

      net use s: \\spryker-vagrant\project\current /persistent:yes
      

This mounts the share as the s: drive.

4. Install the Demo Shop

  1. Clone the needed Demo Shop to the VM:

    • Clone the B2B Demo Shop:

      1. Log out from the VM.
      2. In Git Bash, clone the Demo Shop:
      cd /c/ &&
      git clone https://github.com/spryker-shop/b2b-demo-shop.git
      
      1. In Windows Command Prompt, move the c:\b2b-demo-shop directory to the network drive:
      xcopy C:\b2b-demo-shop s: /he
      

      where:
      s: - is the network drive you’ve mounted in the previous step.

    • Clone the B2C Demo Shop:

      1. Log out from the VM.
      2. In Git Bash, clone the Demo Shop:
      cd /c/ &&
      git clone https://github.com/spryker-shop/b2c-demo-shop.git
      
      1. In Windows Command Prompt, move the c:\b2c-demo-shop directory to the network drive:
      xcopy C:\b2c-demo-shop s: /he
      

      where: s: - is the network drive you’ve mounted in the previous step.

  2. In Git Bash, go to the devvm folder you’ve created in Install Spryker DevVM.

  3. DevVM version below 2.2.0: Set the maximum number of connections to 65535:

ulimit -n 65535
  1. Install the Demo Shop:
vagrant ssh
composer install
vendor/bin/install

This installs all required dependencies, and runs the installation process. Also, this installs demo data and exports it to Redis and Elasticsearch.

When the installation process is complete, you can access your Spryker Commerce OS via the following links:

  • B2B Demo Shop:

    • http://de.b2b-demo-shop.local - frontend (Storefront)
    • http://zed.de.b2b-demo-shop.local - backend (the Back Office)
    • http://glue.de.b2b-demo-shop.local - REST API (Glue)
  • B2C Demo Shop:

    • http://de.b2c-demo-shop.local - frontend (Storefront)
    • http://zed.de.b2c-demo-shop.local - backend (the Back Office)
    • http://glue.de.b2c-demo-shop.local - REST API (Glue)

Back Office credentials:

  • EMAIL: admin@spryker.com
  • PASSWORD: change123

Next steps