| 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 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: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 Apache CouchDB directories by running: |
| |
| chmod -R 0770 /usr/local/etc/couchdb |
| chmod -R 0770 /usr/local/var/lib/couchdb |
| chmod -R 0770 /usr/local/var/log/couchdb |
| chmod -R 0770 /usr/local/var/run/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. |