Sofa showcases the potential of pure CouchDB applications. It should provide an easy way for people to put thier thoughts online, anywhere there's a running Couch. It's just HTML, JavaScript and the magic of CouchDB.
Currently supports admin-only posting and anonymous comments.
Things are moving crazy fast around here right now as I bring this stuff up to ship-shape for the CouchDB book. I'll be renaming methods and stuff (if I find the time), any API feedback will be appreciated.
Also, some of the installation instructions below are "optimistic". Currently I've no RubyGems available, but the CouchApp repo does build a working gem. This will all be slick and easy "when the book is done."
You'll also need CouchDB's svn trunk, which is currently a moving target, with regard to the new features, especially the _show
API, that Sofa relies on.
svn checkout http://svn.apache.org/repos/asf/couchdb/trunk
cd trunk && cat README
Once you have that installed and the tests passing, you can install CouchApp and the blog software.
If you are going to put your blog in public, you'll want to follow the instructions on the CouchDB wiki about how to set up an Admin account.
Installing the Ruby Gem should be pretty quick if you're already setup with Ruby and RubyGems. If you don't already have a Ruby development environment (OSX comes with Ruby, on Debian-like systems, look for ruby-dev
) there's work on a Python version of the CouchApp script.
sudo gem install couchapp
CouchApp is a set of utilities for developing standalone CouchDB applications You can learn more about the CouchApp project here.
git clone git://github.com/jchris/sofa.git
cd sofa
couchapp push . blogdb
You'll want to edit the HTML and CSS to personalize your site. Don't worry, the markup is pretty basic, so it's easy to rework. Adding new features is just a few lines of JavaScript away.
Anytime you make edits to the on-disk version of Sofa, and want to see them in your browser, just run couchapp push . blogdb
again.
You can customize the blog title and other stuff in the blog.json
file.
- fulltext search?
- non-hack login method
- atom feed
- show-powered edit page