I used to try it out using Iris Couch but it turns out for me that Iris Couch using the free of charge account is painful slow. Thus I decided to host my own CouchDB at home.
The Ubuntu repositories doesn't host an up to date version of Couch DB. I tried it using apt-get and got CouchDB version 1.0.1. This was not a viable choice, because I wanted to use the replicate function of CouchDB which only is available on version higher than 1.2.
I found a pretty good step by step guide in the Apache CouchDB wiki.
To sum it up:
I installed it by compiling it from source
using the following steps.
- Download CouchDB 1.5 sources
- Create a user and a group with name 'couchdb'. This is very important. Don't compile and install it with user 'root'. If you do it with root, CouchDB will not start nor write any error messages to any log file, because CouchDB will start under user 'couchdb' but all installed files and folders don't allow read or write access for any other user than 'root'. If you have compiled and installed it with user 'root' you have to adjust the permissions and owner rights of various files and folders by yourself. I have to admit that I did it with user 'root' the first time and it took me two hours to search for the causes and correct everything. So be warned ;-)
- Install at least the following packages.
- Extract and compile CouchDB using default installation directory /usr/local. You can change it by using a different --prefix when calling configure. Check manual.
- Install CouchDB. CouchDB installs into /usr/local
- Sometimes it's necessary to remove old stuff from ubuntu packages. This was not necessary in my case. But you can do the following:
- Install init scripts and logrotate
- Verify that CouchDB is running
- With this setup, CouchDB only listens on localhost (127.0.0.1). If you want CouchDB to listen on all interfaces and access it externally you have to configure it in /usr/local/etc/couchdb/local.ini
Just look for the [httpd] section and uncomment the line starting with 'bind_address' and replace 127.0.0.1 with 0.0.0.0 - Now restart CouchDB and you are done.
sudo apt-get install -y g++
sudo apt-get install -y erlang-dev erlang-manpages erlang-base-hipe erlang-eunit erlang-nox erlang-xmerl erlang-inets
sudo apt-get install -y libmozjs185-dev libicu-dev libcurl4-gnutls-dev libtool
cd /tmp && tar xvzf apache-couchdb-1.5.0.tar.gz
cd apache-couchdb-*
./configure && make
sudo make install
sudo rm /etc/logrotate.d/couchdb /etc/init.d/couchdb
sudo ln -s /usr/local/etc/logrotate.d/couchdb /etc/logrotate.d/couchdb
sudo ln -s /usr/local/etc/init.d/couchdb /etc/init.d
sudo update-rc.d couchdb defaults
curl http://127.0.0.1:5984/
It should give you an output like this: {"couchdb":"Welcome","uuid":"5a23983ac768251e1c8d413bb52e67b5","version":"1.5.0","vendor":{"version":"1.5.0","name":"The Apache Software Foundation"}}
[httpd]
;port = 5984
bind_address = 0.0.0.0
/etc/init.d/couchdb restart