Homestead performance and customization
Hello everyone!
I use Homestead and I love it. However, I am having some issues I don't know how to solve. I also have a few nagging questions about the best practices when it comes to Vagrant and Homestead in general.
I run Windows 10 on an SSD, i3-6100, 16 GB RAM, latest VirtualBox is my provider. I switched from WAMP and I am not a very good Linux user, sadly, so any help is appreciated.
-
Running a Symfony project on the VM is slow. Not unusable, but really slow. What can I do to mitigate this? I googled, not sharing file-heavy directories like vendor, node_modules and cache with the host makes sense. But how do I do that? For most directories I can make symlinks. However, that doesn't work with Composer and vendor directory. And I can't change vendor location in the code / configuration, as I am not the only person working on the projects and others don't use Vagrant / Homestead setup. So I don't want these changes in the Git repo. Also, I wouldn't want to make the symlinks and move the directories manually for every single new project (I maintain a lot of them). How do you solve this? Should I write a shell script? (Also, then you add XDebug to the mix and the performance tanks even more).
-
I (or rather our deployment tool) use multiple SSH keys to access our Bitbucket account, and to deploy the changes in code on our multiple VPNs. How do I share the keys, along with the config file with my client VM? Manually copying them feels really wrong.
-
I assume running a single box for multiple projects is not entirely correct and can influence the performance too? I'd love to have a box per project, so that I can just run vagrant up from the project folder. But this ties to the next point:
-
I need to customize the box. Some of the projects I work on are quite specific; specific PHP modules, specific daemons (Elasticsearch in a certain version with custom plugins and dictionaries, Stunnel, and others), but I don't understand at all how to do this the best way. Do I just customize it and save it as my own box to the cloud and then I can use and share it in the state I left it in? I will confess that I don't particularly understand the process of provisioning, I read a bit about Puppet, Chef, but I don't fully grasp it.
Thank you in advance for reading this and for any piece of advice you can give! I'll be more than happy to buy a coffee to anyone who can spare the time and help.
Jan
Please or to participate in this conversation.