I'm planning a project that consists of the following parts:
- REST API in Lumen
- Web client in Laravel
- Product website in Jekyll
These separate products are going to be running on the same server.
I'd like to have a development environment that mimics the production environment as closely as possible, that's why I'm going with Vagrant in combination with a single Ansible playbook that provisions both environments.
What's the best way to organise such a project? Should I keep everything in one repository, or should I split up the parts into multiple repositories?
What about the development environment and provisioning scripts? Should I put these in a separate repository? How would I go about referencing the separate parts of the project in the development environment?
I'd like to be able to clone a single repository and spin up a development environment with as little work as possible.
Edit: My question differs from this question because I'm especially struggling with things related to production and development environments.