Couchdb
"Apache CouchDB is a document-oriented database that can be queried and indexed in a MapReduce fashion using JavaScript." - CouchDB homepage
Contents
Installation
Install the couchdb package.
By default, the package depends on erlang-nox without GTK, for headless servers. You can also install the standard version, erlang, that does require GTK.
Usage
Start/Enable the couchdb.service
daemon.
Test to see if the service is running by running curl -XGET http://127.0.0.1:5984/
. Ping will not work (it's not supposed to unlike on other systems where it does). Note that in order to access this instance of CouchDB from another system you'll need to configure it (see below).
Using Futon admin interface
You can now access the Futon admin interface by going to http://localhost:5984/_utils.
Configuration
Change the default port, bind address, log-level and other useful nuggets in /etc/couchdb/local.ini
.
If you want to run CouchDB on port 80 you will have to run the daemon as root or use an iptables rule such as:
$ iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 5984
Creating a self-signed certificate
If you would like to use ssl with a self-signed certificate you can create one like this:
# cd /etc/couchdb # openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt
Then uncomment httpsd and update the paths in [daemons]
and [ssl]
sections:
/etc/couchdb/local.ini
[daemons] httpsd = {couch_httpd, start_link, [https]} [ssl] cert_file = /etc/couchdb/server.crt key_file = /etc/couchdb/server.key
Futon can be accessed over SSL on port 6984 via https://localhost:6984/_utils/.
Creating administrator users
Before a server admin is configured, all clients have admin privileges. To create an admin user, click on "Fix this" link at bottom right of Futon interface.
See create a read-only database for locking down databases and further security.