Skip to content

Conversation

shyim
Copy link
Member

@shyim shyim commented Aug 25, 2025

No description provided.

@sneakyvv
Copy link

Hi @shyim
I attended multiple talks you gave and you were passionate about devenv, so I was wondering why this choice is made. Can you elaborate?

@shyim
Copy link
Member Author

shyim commented Aug 26, 2025

Hey,

We got a lot of feedback from newbies that it is difficult to setup a Shopware environment with things like:

  • What is Dockware, who is dasistweb can I trust them
  • Devenv, why do I need to adjust my entire system for setting up Shopware. What is this syntax: ...
  • Why there are so many variants to setup Shopware: Local, Docker, Devenv, DDev, ....

To address this we want to focus more on one way to install Shopware and only document this one way. And why Docker? Because it's the most common tech used by the industry, any developer have used it, there are more resources available on internet to debug things. Any project you're facing to host/develop has one setup with that.

We want to align our production ready Docker setup also to local development, so if you use containers for production that you kinda have the same environment also for local development.

@shyim shyim marked this pull request as draft August 26, 2025 09:34
@JoshuaBehrens
Copy link
Contributor

Will we lose the devenv setup? devenv really outperforms a lot and uses local storage. I understand the reasons tho. Every docker hosted setup I've used sucked. If you focus on pushing docker please annoy your hosting partners to follow these guidelines. Otherwise it will be yet another annoice to debug slow IOops and learning to understand, that you need a shared drive, that you need to expose with s3 because docker swarm/k8r can be weird at times. Do not expect others to understand kubernetes only by the means of existence of a documentation. kubernetes is a complexity hell that is not easy to start in the first place. Docker at all is not easy to start in the first place.

@lasomethingsomething lasomethingsomething changed the title feat: be more oponinated with shopware setup feat: be more opinionated with shopware setup Aug 27, 2025
@shyim
Copy link
Member Author

shyim commented Aug 27, 2025

We would keep devenv, but not actively promote it in the docs (the page stays, but not linked in setup guide).

If you focus on pushing docker please annoy your hosting partners to follow these guidelines. Otherwise it will be yet another annoice to debug slow IOops and learning to understand, that you need a shared drive, that you need to expose with s3 because docker swarm/k8r can be weird at times.

Would here help to have kinda a documentation how a best practise Shopware Hosting should look like?

Do not expect others to understand kubernetes only by the means of existence of a documentation. kubernetes is a complexity hell that is not easy to start in the first place.

You won't need Kubernetes for local setup? or to what are you referring too?

Docker at all is not easy to start in the first place.

We provide the compose, docker image, the developer runs it and this is easier than setting it up everything locally or using one of the existing variants.

@wlwwt
Copy link

wlwwt commented Aug 28, 2025

I would all go for DDEV, as it is actively maintained, works with docker, orbstack, etc. and the setup can be in version control with every project.
Here is a screenshot, how our config (.ddev folder in project) looks like. So this is a full stack local environment (without redis), with cronjobs, console comands and mapped tools in /bin folder. Really lightweight and works perfectly well.

Bildschirmfoto 2025-08-28 um 11 08 17

@JoshuaBehrens
Copy link
Contributor

JoshuaBehrens commented Aug 29, 2025

We would keep devenv, but not actively promote it in the docs (the page stays, but not linked in setup guide).

Great! I feared, that we will lose it towards docker. I sometimes see docker compose up like the next composer install / npm install. It will clog your disk and takes longer to start as you wait for downloading (sure on first start, but yet another step you need to take) new images (I am just pickled by Deutsche Bahn und cellular connections). This is obviously not a vouch for devenv it has the same issue. More towards Herd/MAMP/brew/apt setup.

Would here help to have kinda a documentation how a best practise Shopware Hosting should look like?

It does. Hosters need to understand how to make blue-green with the docker setup, how to do a proper mysql backup (compare mysqldump cronjob vs snapshot of idb files), run cronjobs in docker (base image is not root, so it cannot start cron, so you need tools like go-cron or change image user), when does the hoster need to tell the agency to activate certain configuration (cluster setup), lock image versions … there is so much that you have to work on.

You won't need Kubernetes for local setup? or to what are you referring too?

I expect hosters to run swarm or kubernetes to provide something scalable and managable. Only one IT-team that mentioned to me they want to run it with docker was a single node with downtime during deployment. The others are going for kubernetes (aws fargate, azure container apps). And if you start to build a setup, that works for a hoster, this likely reflects back on more complexity, that you need in your project (e.g. changing your local file storage with min.io for a better network access). Having this complexity from the ground up will influence projects and ease of use.

We provide the compose, docker image, the developer runs it and this is easier than setting it up everything locally or using one of the existing variants.

With that in mind, not every Shopware dev is keen to use command line tools. Someone entrylevel with their first HTML and CSS experiences need a lot to understand to get their local setup running. There still must be an easy way to just kick start Laravel Herd or MAMP and get Shopware running. Docker Desktop/Orbstack Desktop with its licensing might be a stopper for that. If you raise the entrylevel to get your local environment starting, you will annoy the entrylevels and the senior devs, that needs to help out the trainees ^^'

@thomasmax-97
Copy link

I use laravel valet now for years, way better performance than dockware. For Database, Redis, RabbitMQ etc. i use docker containers to keep my OS clean. With local PHP setup using laravel valet its way more easy to setup and use XDebug. Performance is as mentioned way better this way since PHPStorm already use a lot of RAM.

- Updated the installation overview to emphasize the Docker-based setup as the recommended approach for local development.
- Revised the requirements section to highlight the Docker setup and removed detailed manual installation instructions for PHP, Composer, and Node.js.
- Created a new setup guide specifically for Docker, detailing the steps to create and manage a Shopware project using Docker.
- Removed the old Docker setup documentation and Symfony CLI setup guide, consolidating information into the new Docker setup guide.
- Updated alternative setup options to clarify when to consider them and emphasized the benefits of using Docker.
- Removed the project template guide, as its content is now integrated into the new Docker setup documentation.
- Introduced a new guide for deployment with Docker, detailing Dockerfile setup, available tags, environment variables, and best practices.
- Created a general deployment guide explaining the use of the Deployment Helper, installation steps, execution flow, and configuration options.
- Added an index for deployment guides to provide a structured overview.
- Developed a guide on extension management, emphasizing Composer usage for managing extensions and migration from manual to Composer-based installations.
- Included a detailed guide on OpenTelemetry integration for monitoring and tracing in Shopware.
- Established a guide for performing updates, outlining preparation steps, update types, and final checks post-update.
@JoshuaBehrens
Copy link
Contributor

JoshuaBehrens commented Oct 3, 2025

I gave k8s once again a try and it was a journey to setup. Asking the AI provider of my choice I asked for a tutorial to set things up. One get a list of about 12 tools one needs to use. At the end the tool list already contained monitoring tools. When you have no idea what you are doing there, this will be overwhelming at first.

When I stumbled upon a tutorial how to setup kubernetes on Hetzner I found this to cite, which summerized my journey working through different guides quite well:

You might have noticed that instead of installing k8s the traditional way, we're using k3s. This is because k3s is a lightweight k8s distribution that makes it way easier to install and manage k8s clusters. This tutorial would be way too long if we were to install k8s the traditional way.
https://community.hetzner.com/tutorials/setup-your-own-scalable-kubernetes-cluster

If you propose others to go for kubernetes, do not let them hanging. Warn them directly to go for a certified hoster from your hosting partner list, that supports kubernetes, or to employ a person for SRE/DevOps with docker kubernetes experience. Running kubernetes locally is explained well already in your docs and OrbStack supported me on running locally. For production you still need to explain everyone how to get kubernetes up and running as well as maintaining a cluster. If you state somewhere "to host Shopware, you need kubernetes, and for kubernetes you have to sign a contract with a kubernetes hoster (link to a listing e.g. having Linode) or go for the VPS ZIP installation here" it would be sort-of fine to me. But please do NOT raise the entry level to have to run a complete cluster locally.

grafik

Don't get me wrong. I see why everyone likes to have kubernetes at hand and performance tests felt quite good despite these amounts of abstraction levels. I was able to get things running over the past few weeks using k3s but it was quite a journey compared to placing a copy of the repository into /var/www/html and get a running page. Please do not overcomplicate things. Eventually I need to get the shop running in CI/CD for e2e tests and this feels basically like a kubernetes in kubernetes. This will be an other journey I'd like not to have.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants