# How to manage multiple projects and keep up-to-date versions of Roots

**URL:** https://discourse.roots.io/t/how-to-manage-multiple-projects-and-keep-up-to-date-versions-of-roots/4202
**Category:** archived 🗄
**Created:** 2015-07-07T20:00:08Z
**Posts:** 8

## Post 1 by @coreybruyere — 2015-07-07T20:00:08Z

Couldn’t fit an entire title for the question(s) I have. I can edit a better one later for future reference if anyone comes up with a better one. This is sort of a series of questions I have concerning best practice, setup, workflow, and deployment. I’m using Sage/Bedrock right now on a personal project and I’m liking it a lot. I’m considering using the Roots workflow on future client projects but don’t have any idea how to manage multiple projects in a sane manner. I’m coming from a MAMP workflow but have dabbled with Vagrant and understand it for the most part. I’m a front-end dev also so some of the stuff I find in the Roots/Sage/Bedrock docs can be intimidating at times. I plan on deploying these client sites to a WP-Engine install so that adds some limitations to a full circle Roots workflow/install, but here are some questions I have that I’ll try to categorize:

**Setup**

1. What’s the most efficient way to mange multiple projects on my local computer? Right now I have a personal project with the ‘bedrock-ansible’ and ‘site’ folders in the root of it. Should I have a default folder with a bunch of projects within that that also contain the ‘bedrock’ and ‘site’ folders? I’m used to the MAMP folder structure i.e., a folder – ‘htdocs’ – and all project folders inside of it.

**Development**

1. Do I have to run `vagrant up` everytime I want to jump back on a project or is Vagrant always running in the background, like MAMP is? On my personal project I’ve noticed that sometimes when I come back to my computer and run `gulp watch` nothing happens. Right now I have to exit that command and`cd` to the folder that holds the Vagrantfile and `vagrant up` then `cd` back to my theme folder and `gulp watch` again. Any workaround for this, or am I doing something wrong?

2. What’s the best way to develop with the Sage theme? I copied the Sage/Bedrock example from Github, renamed the theme folder and started developing from there. How should I be updating my entire Sage project when new commits and updates are made to Sage while keeping my theme changes intact?

**Deployment**

1. Like I mentioned earlier I plan on deploying to WP-Engine so their will be limitations to my deployment process and folder structure if I’m understanding everything correctly. Has anyone had any experience with a Sage/Bedrock project and WPE?

---

## Post 2 by @evanfuture — 2015-07-08T02:33:43Z

I’ve been working hard these past few days to migrate **away** from WPEngine, moving to DigitalOcean, so I can’t help you there, but as to the dev questions:

The VirtualBox Vagrant images should stay running so long as you don’t restart the computer, but the last time I checked, you couldn’t run multiple ones at the same time without editing the ip address during setup, and I was never sure how to do that. So my workflow is to cd into the directory of the site I’m not working on, _vagrant suspend_, then cd into the folder I am working on, _vagrant up_.

You could create a bash script that does it all for you, maybe take some variables to begin (site to suspend, site to launch), and save yourself some typing.

As to developing with Sage, I still find this hard to deal with, I think at a certain stage, you just need to let go of keeping it inline with the repo, and make it work for you. Anyone else have input?

---

## Post 3 by @poggen — 2015-07-08T08:01:31Z

I highly suggest you read [this thread](https://discourse.roots.io/t/best-practice-for-trellis-with-multiple-sites/3981?u=poggen), where I ask about running multiple projects.

**Setup**  
It doesn’t matter where on your computer you place your sites. It is not like with MAMP where you have to place projects inside a specific htdocs folder in order for them to work with the webserver. After getting help in the thread I linked above, I’ve setup a structure where I have one trellis (a.k.a. bedrock-ansible) installation with multiple sites which I want hosted on the same Digital Ocean droplet. It looks something like this;

```
- My project-folder
    .Vagrantfile
      /trellis
      /bedrock1
      /bedrock2
      .. and so on
```

Where all of the `bedrock` folders are git clones of the [bedrock-repo](https://github.com/roots/bedrock). Each time you add a new site you will need to add it to your `group_vars/` files as a new object inside `wordpress-sites` and then run `vagrant reload --provision`. Notice that the `.Vagrantfile` has to be moved up to the root of the project, as done in the [roots-example-repo](https://github.com/roots/roots-example-project.com). I then created one git repo in the root folder which has everything except /trellis and .Vagrantfile in .gitignore. I also create a new git repo inside of each bedrock folder, as this is needed for deploys via Trellis.

**Development**

1. As @evanfuture says – as long as you haven’t restarted your computer or ran `vagrant halt` or `vagrant suspend` you shouldn’t have to run `vagrant up`.
2. Sage is a starter theme and you don’t actually need to keep it aligned with the original repo, but if you wanted to follow along you could [add the roots repo as another remote called upstream](https://discourse.roots.io/t/how-to-update-to-latest-sage-without-losing-work/3866) using `git remote add upstream git@github.com:roots/sage.git`. This might be a bit tricky if you use the setup I use, since each of your sage folders will be inside one of the bedrock repos, but @swalkinshaw has eluded that it could be done. Search stack overflow.

**Deployment**

1. No experience of WP-Engine. I totally recommend [DigitalOcean](https://roots.io/r/digitalocean/) however, and I’m not really sure why you would use WP-Engine as Trellis configs everything for you. To be honest, I’m not really sure that a Trellis based setup would be able to deploy to WP-engine as I guess they don’t supply vanilla Ubuntu 14.04 servers.

---

## Post 4 by @coreybruyere — 2015-07-08T22:12:58Z

Thanks, let me know how your migration goes. I’m thinking about doing the same sometime in the near future. Just don’t know how demanding it will be.

---

## Post 5 by @kjprince — 2015-07-12T16:24:33Z

> To be honest, I’m not really sure that a Trellis based setup would be able to deploy to WP-engine as I guess they don’t supply vanilla Ubuntu 14.04 servers

The problem with deploying from a Bedrock site to WP Engine is with Bedrock’s directory structure…WP Engine uses the default WP directory setup. I think I remember someone created a bash script that will reorganize the folders to WordPress’s default setup.

---

## Post 6 by @coreybruyere — 2015-07-12T18:11:06Z

Yea I saw [that](https://discourse.roots.io/t/wpengine-bedrock-sage/3083). I might give it a try or just make the switch DO. The thing is I’ve never set up a server, but from I read it’s pretty easy to setup a DO droplet. I build lots of Woocommerce sites and like to always keep security and performance in mind when building a site. WPE does a good job at doing all of that on the server side for me. I prefer to stay away from most server side stuff but if DO is pretty easy and if it can eliminate unnecessary cost for future clients then I’m in.

---

## Post 7 by @evanfuture — 2015-07-12T19:02:21Z

A single site migration was very simple, though it required a database-synching plugin which is outside the scope of Trellis. I’d say the whole process only took me half an hour once I worked out the kinks. Thank goodness too, as I had five sites to transfer over.

I’m working through a more complicated migration at the moment, where I have on Trellis install/server managing five sites. That’s so I can keep them all on one DO droplet and save money. The setup required a bit more fiddling, but I’m finally at the deploy stage, and its going well so far. PM me if you need any advice along the way.

---

## Post 8 by @kjprince — 2015-07-13T19:24:45Z

While DO might be “easy” becoming the admin of the server is not, especially when you’re managing ecommerce sites with SSL + security + PCI and liability issues. Though I’d say if you want to learn it’s definitely worth it.

---

## Post 9 by @ben — 2022-02-26T03:20:05Z


