Dandelion: Git Deployment over FTP

Dandelion is an awesome deployment tool I adopted recently. When you run dandelion deploy from the command line, it automatically determines what has changed in your Git repository since the last deploy and adds, updates, or deletes just those files over FTP, SFTP, or Amazon S3. Kudos to Scott Nelson for his awesome work on this.

Packaged as a Ruby Gem, Dandelion is super simple to install: gem install dandelion. To setup, you create a tiny YAML config file in the same directory as your Git repository with the server connection details. Then you can run  dandelion deploy. Pure awesome.

Why not use Capistrano? I’m definitely not a Capistrano expert, but I don’t believe it’s as easy to set it up to deploy over FTP, SFTP, or Amazon S3. From what I understand, it’s primarily designed for use over SSH. Unfortunately not all web hosts offer SSH access and those that do sometimes require time to set it up. As a result, I’d been using the Transmit‘s Sync feature for years. It’s slow (needs to check each file for changes) and a break from my command line workflow. Dandelion keeps my workflow on the command line and is much quicker to upload changes. A nice little bump to developer happiness.

I’ve been deploying WP App Store to WP Engine with Dandelion for a couple weeks now and it has been fantastic. As I bring on additional developers and deployment becomes a bit more complex, I’ll likely move to deployhq.com.