Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 238 lines (134 sloc) 6.027 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237
Apache CouchDB README.Unix
==========================

A high-level guide to Unix-like systems, inc. Mac OS X and Ubuntu.

Dependencies
------------

You will need the following installed:

 * Erlang OTP (>=R12B5) (http://erlang.org/)
 * ICU (http://icu.sourceforge.net/)
 * OpenSSL (http://www.openssl.org/)
 * Mozilla SpiderMonkey (1.8) (http://www.mozilla.org/js/spidermonkey/)
 * GNU Make (http://www.gnu.org/software/make/)
 * GNU Compiler Collection (http://gcc.gnu.org/)

It is recommended that you install Erlang OTP R12B-5 or above where possible.
 
Optional dependencies:
 
 * libcurl (http://curl.haxx.se/libcurl/)

This only affects the command line JavaScript test suite which
most users do not use.

Ubuntu
~~~~~~

See

  http://wiki.apache.org/couchdb/Installing_on_Ubuntu

for updated instructions on how to install on Ubuntu.

Debian-based Systems
~~~~~~~~~~~~~~~~~~~~

You can install the build tools by running:

    sudo apt-get install build-essential

You can install the other dependencies by running:

    sudo apt-get install erlang libicu-dev libmozjs-dev libcurl4-openssl-dev

Be sure to update the version numbers to match your system's available packages.

Mac OS X
~~~~~~~~

You can install the build tools by running:

    open /Applications/Installers/Xcode\ Tools/XcodeTools.mpkg

You can install the other dependencies by running:

    sudo port install icu erlang spidermonkey curl

You will need MacPorts installed to use the `port` command.

Installing
----------

Once you have satisfied the dependencies you should run:

    ./configure

This script will configure CouchDB to be installed into `/usr/local` by default.

If you wish to customise the installation, pass `--help` to this script.

If everything was successful you should see the following message:

    You have configured Apache CouchDB, time to relax.

Relax.

To install CouchDB you should run:

    make && sudo make install

You only need to use `sudo` if you're installing into a system directory.

Try `gmake` if `make` is giving you any problems.

If everything was successful you should see the following message:

    You have installed Apache CouchDB, time to relax.

Relax.

First Run
---------

You can start the CouchDB server by running:

    sudo -i -u couchdb couchdb

This uses the `sudo` command to run the `couchdb` command as the `couchdb` user.

When CouchDB starts it should eventually display the following message:

    Apache CouchDB has started, time to relax.

Relax.

To check that everything has worked, point your web browser to:

    http://127.0.0.1:5984/_utils/index.html

From here you should run the test suite.

Security Considerations
-----------------------

You should create a special `couchdb` user for CouchDB.

On many Unix-like systems you can run:

    adduser --system \
            --home /usr/local/var/lib/couchdb \
            --no-create-home \
            --shell /bin/bash \
            --group --gecos \
            "CouchDB Administrator" couchdb

On Mac OS X you can use the Workgroup Manager to create users:

  http://www.apple.com/support/downloads/serveradmintools1047.html

You must make sure that:

    * The user has a working POSIX shell

    * The user's home directory is `/usr/local/var/lib/couchdb`

You can test this by:

    * Trying to log in as the `couchdb` user

    * Running `pwd` and checking the present working directory

Change the ownership of the CouchDB directories by running:

    chown -R couchdb:couchdb /usr/local/etc/couchdb
    chown -R couchdb:couchdb /usr/local/var/lib/couchdb
    chown -R couchdb:couchdb /usr/local/var/log/couchdb
    chown -R couchdb:couchdb /usr/local/var/run/couchdb

Change the permission of the CouchDB directories by running:

    chmod 0770 /usr/local/etc/couchdb
    chmod 0770 /usr/local/var/lib/couchdb
    chmod 0770 /usr/local/var/log/couchdb
    chmod 0770 /usr/local/var/run/couchdb

Running as a Daemon
-------------------

SysV/BSD-style Systems
~~~~~~~~~~~~~~~~~~~~~~

You can use the `couchdb` init script to control the CouchDB daemon.

On SysV-style systems, the init script will be installed into:

    /usr/local/etc/init.d

On BSD-style systems, the init script will be installed into:

    /usr/local/etc/rc.d

We use the `[init.d|rc.d]` notation to refer to both of these directories.

You can control the CouchDB daemon by running:

    /usr/local/etc/[init.d|rc.d]/couchdb [start|stop|restart|status]

If you wish to configure how the init script works, you can edit:

    /usr/local/etc/default/couchdb

Comment out the `COUCHDB_USER` setting if you're running as a non-superuser.

To start the daemon on boot, copy the init script to:

    /etc/[init.d|rc.d]

You should then configure your system to run the init script automatically.

You may be able to run:

    sudo update-rc.d couchdb defaults

If this fails, consult your system documentation for more information.

A `logrotate` configuration is installed into:

    /usr/local/etc/logrotate.d/couchdb

Consult your `logrotate` documentation for more information.

It is critical that the CouchDB logs are rotated so as not to fill your disk.

Mac OS X
~~~~~~~~

You can use the `launchctl` command to control the CouchDB daemon.

You can load the configuration by running:

    sudo launchctl load \
         /usr/local/Library/LaunchDaemons/org.apache.couchdb.plist

You can stop the CouchDB daemon by running:

    sudo launchctl unload \
         /usr/local/Library/LaunchDaemons/org.apache.couchdb.plist

You can start CouchDB by running:

    sudo launchctl start org.apache.couchdb

You can restart CouchDB by running:

    sudo launchctl stop org.apache.couchdb

You can edit the launchd configuration by running:

    open /usr/local/Library/LaunchDaemons/org.apache.couchdb.plist

To start the daemon on boot, copy the configuration file to:

    /Library/LaunchDaemons

Consult your system documentation for more information.
Something went wrong with that request. Please try again.