Introducing DeployMint: A Staging and Deployment System Made for WordPress Multisite
Having a separate staging environment for your WordPress site is important when you need to test and roll out some major changes. It can also be a lifesaver, if the staging environment is a decent copy of the production state. I’d like to introduce you DeployMint, a system for staging and deployment that was specifically created for use with WordPress Multisite.
DeployMint requires that multisite is enabled in order to work. It then allows you to take snapshots of sites within WordPress multisite. DeployMint runs as a plugin to turn your snapshots into the staging environment(s), and features robust version control and zero down-time during deployments. It uses the Git version control system to safely and efficiently store site snapshots.
Here’s the basic flow: take a snapshot, modify it and then redeploy it.
DeployMint is designed to integrate with existing multisite network sites, and you can create as many subdomains as you like. For example:
example.com (your live site)
Here’s how DeployMint works behind the scenes:
When you install the plugin, you’ll need to create a data directory that is not under your web root, but is writable by your web server. As you create a new project, a new Git repository is created. When you use DeployMint to take a snapshot of one of your sites, it dumps all the tables belonging to that particular site into individual files. These files are then checked into a ‘Git’ repository. Every snapshot you create is a new branch in the repository and only the changes are stored.
What happens when you deploy?
DeployMint checks out the branch you want to deploy and imports it into a temporary database. The plugin will preserve the comments on the site that it is deploying to. It also modifies hostnames, when necessary.
The best part is that before deploying your changes, DeployMint will take a full backup of your entire multisite database, which includes all of your sites. It stores these backups just in case something goes wrong or you need to revert back to the way your site was before the changes.
Check out the demo video of DeployMint in action:
Essentially, you’re able to change themes, plugins, and content in your staging environment and then simply deploy to your live site. You can do this without losing any comments or data that has been added or changed on the live site in the meantime of your development efforts on the staging site.
While you may really want to be able to use this plugin with non-multisite installations, here’s why the plugin’s author has decided to start with multisite networks:
…it was a tough call to choose not to support non MU sites initially. I can probably add this in a future version, but the reason I chose to only support MU is so that you can install themes and plugins on the MU server and have it available for dev/staging and live blogs without having to transfer the files across to a different WP installation. It radically reduces the complexity and the only thing you need to worry about deploying when you’re on MU is data.
The ability to deploy from remote Git repositories would be a hugely beneficial feature for this plugin, and this is something the author is considering based on his reply to visitor’s comments on his blog.
If you are one of our many readers who operates a Multisite network and need a reliable staging and deployment system, you’ll want to consider using DeployMint. Not only is it a huge timeseaver, but it also performs the backups you need for extra assurance in the deployment process.
Download DeployMint for free from its project home at Google Code. If you have any questions, make sure to check out plugin author Mark Maunder’s blog post announcing DeployMint where many common questions have already been answered.