public
Fork of atduskgreg/couchdb
Description: Unofficial Git mirror of CouchDB svn repository. (Updated every 10 mins)
Homepage: http://couchdb.org/
Clone URL: git://github.com/halorgium/couchdb.git
nslater (author)
Tue Mar 24 09:12:20 -0700 2009
commit  aa0e1876194f5ebab5c0162ee6ea97ecb049b155
tree    0072fd0b5e735e6ee3c61d9491e3cf0bcdbb6880
parent  caa32f377211815457fb20034fb1295485560cc0 parent  634011302c1adfb5f6a7ef751ba643e21da16ad4
name age message
file AUTHORS Loading commit data...
file BUGS Tue Mar 24 06:15:24 -0700 2009 remove references to the incubator git-svn-id:... [nslater]
file CHANGES Tue Mar 24 09:05:20 -0700 2009 minor corrections git-svn-id: http://svn.apach... [nslater]
file LICENSE Wed Jan 14 14:18:23 -0800 2009 Update to jQuery 1.3. git-svn-id: http://svn.a... [cmlenz]
file Makefile.am Sun Feb 01 00:00:46 -0800 2009 fixed local-clean target, thanks Paul Davis. cl... [nslater]
file NEWS Mon Mar 23 10:43:55 -0700 2009 added my changes to NEWS and CHANGES git-svn-i... [nslater]
file NOTICE
file README Tue Mar 24 09:11:11 -0700 2009 added PREFIX/etc/couchdb to chown instructions ... [nslater]
file THANKS
file acinclude.m4.in Mon Mar 23 10:02:23 -0700 2009 updated version number and metadata git-svn-id... [nslater]
directory bin/
file bootstrap
file configure.ac Wed Feb 18 02:49:06 -0800 2009 nit in configure.ac [bdionne]
directory etc/ Tue Mar 24 07:47:21 -0700 2009 added local_dev.ini to tarball git-svn-id: htt... [nslater]
directory m4/ Sat Dec 20 13:11:12 -0800 2008 removed dates from filenames git-svn-id: http:... [nslater]
directory share/
directory src/
directory test/
directory utils/ Thu Jan 29 14:15:48 -0800 2009 Replacement of inets with ibrowse. Fixes COUCHD... [jchris]
directory var/ Mon Jun 16 09:44:50 -0700 2008 renamed directory variables, stage one git-svn... [nslater]
README
Apache CouchDB README
=====================

Apache CouchDB is alpha software and still under heavy development. Please be
aware that important areas such as the public API or internal database format
may see backwards incompatible changes between versions.

Building From Checkout
----------------------

You can skip this section if you are installing from a release tarball.

Dependencies
~~~~~~~~~~~~

To build Apache CouchDB from checkout you need some of the following installed:

 * GNU Automake (>=1.6.3) (http://www.gnu.org/software/automake/)
 * GNU Autoconf (>=2.59)  (http://www.gnu.org/software/autoconf/)
 * GNU Libtool            (http://www.gnu.org/software/libtool/)
 * GNU help2man           (http://www.gnu.org/software/help2man/)

Debian-based (inc. Ubuntu) Systems
++++++++++++++++++++++++++++++++++

You can install the dependencies by running:

    apt-get install automake autoconf libtool help2man

Mac OS X
++++++++

You can install the dependencies using MacPorts by running:

    port install automake autoconf libtool help2man

Bootstrapping
~~~~~~~~~~~~~

Note: You must repeat this step every time you update your checkout.

Bootstrap the pristine source by running:

    ./bootstrap

Installation and First Run
--------------------------

UNIX-like Operating Systems (inc. Mac OS X)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Dependencies
^^^^^^^^^^^^

To build and install Apache CouchDB you will need the following installed:

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

It is recommended that you install Erlang OTP R12B-4 or above where possible.

Debian-based (inc. Ubuntu) Systems
++++++++++++++++++++++++++++++++++

You can install the dependencies by running:

    apt-get install build-essential erlang libicu38 libicu-dev libmozjs-dev \
                    libcurl4-openssl-dev

If you get an error regarding the `libicu38` or `libicu-dev` be sure to check
the version used by your distribution (using `apt-cache search libicu`) and
install those packages instead. `libcurl4-openssl-dev` is the current version of
`libcurl-dev` supplied by Ubuntu. You may need to specify an alternate package
name for libcurl bindings.

Mac OS X
++++++++

To install GNU Make and the GNU Compiler Collection on Mac OS X you should
install the Xcode Tools metapackage by running:

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

You can install the dependencies using MacPorts by running:

    port install icu erlang spidermonkey curl

Installing
^^^^^^^^^^

Once you have satisfied the dependencies you should run:

    ./configure

Note: Apache CouchDB is installed into `/usr/local` by default. If you want to
change where Apache CouchDB is installed (or where to find Erlang) be sure to
read the output from running the `./configure --help` command.

Note: All the examples assume you have installed into `/usr/local`.

If everything was successful you should see the following message:

    You have configured Apache CouchDB, time to relax.

Relax.

To install Apache CouchDB you should then run the following command:

    make && sudo make install

Note: The use of the `sudo` command is only required if you are installing into
a system owned directory. You do not need to do this if you are installing
elsewhere, such as your home directory.

If you are having problems running `make` you may want to try running `gmake` if
this is available on your system.

More options can be found by reading the `INSTALL` file.

Security Considerations
^^^^^^^^^^^^^^^^^^^^^^^

It is not advisable to run Apache CouchDB as the superuser. We strongly
recommend that you create a specific user to run Apache CouchDB and own the
data/log directories.

You can use whatever tool your system provides to create a new `couchdb` user.

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

Mac OS X provides the standard Accounts option from the System Preferences
application or you can optionally use the Workgroup Manager application which
can be downloaded as part of the Server Admin Tools:

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

You should make sure that the `couchdb` user has a working POSIX shell and set
the home directory to `/usr/local/var/lib/couchdb` which is the Apache CouchDB
database directory.

Change the ownership of the Apache CouchDB directories by running:

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

Running Manually
^^^^^^^^^^^^^^^^

You can start the Apache CouchDB server by running:

    sudo -i -u couchdb couchdb -b

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

When Apache 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.

Troubleshooting
^^^^^^^^^^^^^^^

If you're getting a cryptic error message, visit the wiki:

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

For general troubleshooting, visit the wiki:

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

Running as a Daemon
^^^^^^^^^^^^^^^^^^^

Note: These instructions assume you have created the `couchdb` user. See the
specific system information included below to learn how to reconfigure this.

Note: If any of these methods report a failure you can run the `couchdb` command
manually to see the error messages it is displaying.

The `/usr/local/etc/logrotate.d/couchdb` file is provided as a logrotate
configuration that you can use to rotate Apache CouchDB's logs.

SysV/BSD-style Systems
++++++++++++++++++++++

Depending on your system the `couchdb` init script will be installed into a
direcory called `init.d` (for SysV-style systems) or `rc.d` (for BSD-style
systems). These examples use the `[init.d|rc.d]` notation to indicate this.

You can control the Apache CouchDB daemon by running:

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

If you wish to configure how the init script works, such as which user to run
Apache CouchDB as, you must edit the `/usr/local/etc/default/couchdb` file as
appropriate. If you are running the init script as a non-superuser you need to
remove the line with the `COUCHDB_USER` setting.

If you wish the Apache CouchDB daemon to run as a system service you need to
copy the `/usr/local/etc/[init.d|rc.d]/couchdb` script into your system wide
`/etc/[init.d|rc.d]` directory and update your system configuration.

You may be able to configure your system using the following command:

    sudo update-rc.d couchdb defaults

Consult your system documentation for more information.

Mac OS X
++++++++

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

You can load the launchd configuration by running:

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

You can stop the Apache CouchDB daemon by running:

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

You can start Apache CouchDB by running:

    sudo launchctl start org.apache.couchdb

You can restart Apache CouchDB by running:

    sudo launchctl stop org.apache.couchdb

You can change the launchd configuration by running:

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

If you want the Apache CouchDB daemon to run at startup, copy the
`/usr/local/Library/LaunchDaemons/org.apache.couchdb.plist` file to your system
`/Library/LaunchDaemons` directory.

Windows
~~~~~~~

Windows documentation is incomplete. Please submit suggestions.