Fargo -- the CMS outliner I use to publish this site -- has the ability to publish to GitHub Pages. I have long wanted to do this. I don't want a *.smallpict.com blog, I want to publish to blog.jeffreykishner.com. I could do this back when Fargo was using Trex (its original CMS), but Dave Winer did a complete rewrite, and mapping a CNAME to a smallpict blog no longer worked. FargoPublisher is too complicated for me to set up, and I know just enough GitHub to push commits to a repository from a subdirectory in Dropbox, so I chose the latter route.
The problem I've encountered for months: I don't blog at home, and I cannot sync Dropbox at the computer where I do blog. Hence, I cannot push commits from
/Dropbox/Apps/smallPicture/jkishner.github.io (where Fargo renders the HTML of my blog) to GitHub locally. I tried -- and failed -- to configure my AirPort Extreme at home to have a stable IP address so that I could SSH into my MacMini at home from another computer. That way I could sync Dropbox on my MacMini, and then push commits remotely to GitHub.
Only a few days ago, I realized that I have a "box" where I can do all this: the VPS that I rent from WiredTree. Over the past few days, I have installed GitHub, Dropbox, and the Dropbox CLI (command line interface) into the root of my VPS. It was complicated -- WiredTree had to install a parallel version of Python so that
dropbox.py could work, and a sysadmin there also changed a key file to allow Dropbox to monitor all the folders in my account -- but I got it to work. Now I can blog on Fargo, ssh into my root, make sure Dropbox has synced my jkishner.github.io folder, and add/commit/push changes. I set up a CNAME redirect so that jkishner.github.io will be viewable at blog.jeffreykishner.com, and it all works.
I used to use a web service called Mover that allowed me to FTP all the files in a specific Dropbox folder to the /blog directory on jeffreykishner.com, but the GitHub solution is faster because only the updated files are uploaded -- not my entire blog -- when I want to publish.