Difference between revisions of "Couchdb"

From ArchWiki
Jump to: navigation, search
(Running)
m (add ja link)
 
(13 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
[[Category:Database management systems]]
 
[[Category:Database management systems]]
 +
[[ja:Couchdb]]
 
''"Apache CouchDB is a document-oriented database that can be queried and indexed in a MapReduce fashion using JavaScript."'' - [http://couchdb.apache.org/ CouchDB homepage]
 
''"Apache CouchDB is a document-oriented database that can be queried and indexed in a MapReduce fashion using JavaScript."'' - [http://couchdb.apache.org/ CouchDB homepage]
  
 
== Installation ==
 
== Installation ==
  
Install the {{Pkg|couchdb}} package:
+
Install the {{Pkg|couchdb}} package.
# pacman -S couchdb
+
  
== Running ==
+
By default, the package depends on {{Pkg|erlang-nox}} without GTK, for headless servers.  You can also install the standard version, {{Pkg|erlang}}, that does require GTK.
  
Start Couch
+
== Usage ==
# systemctl start couchdb
+
  
To launch on startup, enable it:
+
[[Systemd#Using units|Start/Enable]] the {{ic|couchdb.service}} daemon.
  
  # systemctl enable couchdb
+
Test to see if the service is running by running {{ic|curl -XGET <nowiki>http://127.0.0.1:5984/</nowiki>}}. 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 ==
+
=== Using Futon admin interface ===
  
You can now access the Futon admin interface by going to [http://localhost:5984/_utils http://localhost:5984/_utils]
+
You can now access the Futon admin interface by going to [http://localhost:5984/_utils http://localhost:5984/_utils].
  
== Configuring ==
+
== Configuration ==
  
Change the default port, bind address, log-level and other useful nuggets in {{ic|/etc/couchdb/local.ini}}.  
+
Change the default port, bind address, log-level and other useful nuggets in {{ic|/etc/couchdb/local.ini}}.
 +
 
 +
{{Tip|Set {{ic|bind_address}} to {{ic|0.0.0.0}} to access CouchDB from any computer other than local.}}
  
 
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:
 
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
+
$ iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 5984
  
'''Note:''' Do not modify {{ic|/etc/couchdb/default.ini}} as it gets overwritten whenever couchdb is updated, copy any values you would like to change and put them in your local.ini. Also be sure to restart couchdb after changes to this file.
+
{{Note|Do not modify {{ic|/etc/couchdb/default.ini}} as it gets overwritten whenever couchdb is updated, copy any values you would like to change and put them in {{ic|/etc/couchdb/local.ini}}. Also be sure to restart {{ic|couchdb.service}} after changes to this file.}}
 +
 
 +
=== Creating a self-signed certificate ===
  
 
If you would like to use ssl with a self-signed certificate you can create one like this:
 
If you would like to use ssl with a self-signed certificate you can create one like this:
  
  # cd /etc/couchdb
+
# cd /etc/couchdb
  # openssl genrsa -des3 -out server.key 1024
+
# openssl req -new -x509 -nodes -newkey rsa:4096 -keyout server.key -out server.crt
  # openssl req -new -key server.key -out server.csr
+
 
  # cp server.key server.key.org
+
Then uncomment httpsd and update the paths in {{ic|[daemons]}} and {{ic|[ssl]}} sections:
  # openssl rsa -in server.key.org -out server.key
+
 
  # openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
+
{{hc|/etc/couchdb/local.ini|2=
 +
[daemons]
 +
httpsd = {couch_httpd, start_link, [https]}
  
Then uncomment httpsd and update the path in the '''[ssl]''' section
+
[ssl]
 +
cert_file = /etc/couchdb/server.crt
 +
key_file = /etc/couchdb/server.key
 +
}}
  
  [daemons]
+
Futon can be accessed over SSL on port 6984 via [https://localhost:6984/_utils/ https://localhost:6984/_utils/].
  httpsd = {couch_httpd, start_link, [https]}
+
  
  [ssl]
+
=== Creating administrator users ===
  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/
+
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.
  
Admin users can be created in your {{ic|local.ini}} file. Add the username and password in plaintext, next time couch is restarted it will hash the password. See [http://lizconlan.github.com/sandbox/securing-couchdb.html create a read-only database] for locking down databases and further security.
+
See [http://lizconlan.github.com/sandbox/securing-couchdb.html create a read-only database] for locking down databases and further security.
 
+
  [admins]
+
  admin = magicalunicorns
+
  
== More Resources ==
+
== See also ==
  
 
* [http://couchdb.apache.org/ Official CouchDB page]
 
* [http://couchdb.apache.org/ Official CouchDB page]

Latest revision as of 16:47, 21 November 2015

"Apache CouchDB is a document-oriented database that can be queried and indexed in a MapReduce fashion using JavaScript." - CouchDB homepage

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.

Tip: Set bind_address to 0.0.0.0 to access CouchDB from any computer other than local.

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
Note: Do not modify /etc/couchdb/default.ini as it gets overwritten whenever couchdb is updated, copy any values you would like to change and put them in /etc/couchdb/local.ini. Also be sure to restart couchdb.service after changes to this file.

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.

See also