shopware/development

Unable to find a matching sales channel when using storefront:hot-proxy

Opened this issue · 4 comments

I installed the dev template as described in the docs, which worked well. My dev install is fully functional on the local storefront-dev.test URL.

I then created a new theme and called ./psh.phar storefront:hot-proxy

When trying to access proxy URL under http://localhost:9998/ I get following error:

Unable to find a matching sales channel for the request: http://shopware-dev.test:9998/". Please make sure the domain mapping is correct.

I then tried to add the http://localhost:9998/ as an additional domain to the sales channel but this is not possible because the port is always striped out from the URL field.

I also tried to set {% set isHMRMode = true %} in the base.html.twig template as described in many help forums but no success.

What am I doing wrong?

I'm using laravel valet as the dev environment.

I have same problem, somebody found a way to fix that?

Resolved it by setting my shop url (like "http://shopware.test") as a STOREFRONT_PROXY_URL instead of "http://localhost" in .env

for anyone finding this, if your dev domain is served via https (like "https://shopware.test/) you need to also add a non https saleschannel url (like "http://shopware.test/) in the backend in order to serve the hot proxy from http://localhost:9998

Hi @kinglouie, may I ask if I change the proxy service port from "80:80" to "8080:80"

version: "3.8"

services:

    proxy:
        container_name: proxy
        image: dockware/proxy:latest
        ports:
            - "80:80"          # Change to "8080:80"
            - "8888:8888"
            - "9999:9999"
            - "9998:9998"
        depends_on:
            - shop1
        volumes:
            - "./proxy/shop-1.conf:/etc/nginx/conf.d/shop-1.conf"

    shop1:
      image: dockware/dev:latest
      container_name: shop1
      ports:
         - "3308:3306"
         - "2222:22"
      volumes:
         - "db_volume:/var/lib/mysql"
         - "shop_volume:/var/www/html"
      environment:
         # default = 0, recommended to be OFF for frontend devs
         - XDEBUG_ENABLED=1
         # default = latest PHP, optional = specific version
         - PHP_VERSION=8.2

....

Then what should I change for the .env and shop-1.conf files as well as the url value from the sales_channel_domain table so that my app can work well?


shop-1.conf:

server {
    listen        80;
    server_name   shop1.shopware.com;

    location / {
        proxy_pass http://shop1;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
    }
}

server {
    listen                    8888 ssl;
    server_name               shop1.shopware.com;

    ssl_certificate /etc/nginx/ssl/selfsigned.crt;
    ssl_certificate_key /etc/nginx/ssl/selfsigned.key;

    location /admin {
        proxy_pass            http://shop1:8888;
        proxy_next_upstream   error timeout invalid_header http_500 http_502 http_503 http_504;
    }
    location /static {
        proxy_pass            http://shop1:8888;
        proxy_next_upstream   error timeout invalid_header http_500 http_502 http_503 http_504;
    }
    location /api {
        proxy_pass            http://shop1;
        proxy_next_upstream   error timeout invalid_header http_500 http_502 http_503 http_504;
    }
    location / {
        proxy_pass            http://shop1:8888;
        proxy_next_upstream   error timeout invalid_header http_500 http_502 http_503 http_504;
    }
}

server {
    listen                    9998;
    server_name               shop1.shopware.com;

    location / {
        proxy_pass            http://shop1:9998;
        proxy_next_upstream   error timeout invalid_header http_500 http_502 http_503 http_504;
    }
}

.env:

###> shopware/storefront ###
STOREFRONT_PROXY_URL=http://localhost
SHOPWARE_HTTP_CACHE_ENABLED=1
SHOPWARE_HTTP_DEFAULT_TTL=7200
###< shopware/storefront ###
APP_ENV=dev
APP_URL=http://shop1.shopware.com
DATABASE_URL=mysql://root:root@127.0.0.1:3306/shopware
MAILER_DSN=smtp://127.0.0.1:1025

/etc/hosts file:

127.0.0.1. shop1.shopware.com