Docker for CouchDB servers in the nEDM experiment.
This docker is based off of klaemo/couchdb:1.6.1 and includes a number of scripts (os daemons and update notifiers) that need to be run in parallel.
The couchdb server which is run allows proxy authentication though with a randomly defined private key (automatically generated for each container), which means this is only used for the local scripts (os daemons/update notifiers) that run in the container.
- Mount lib directory (R/W) to
/usr/local/var/lib/couchdb
- Mount log directory (R/W) to
/usr/local/var/log/couchdb
- To define an admin user, export the environment variable for the hash
generated by CouchDB, i.e.:
-e "ADMINHASH=admin = -pbkdf2-0hashfollowshere"
- To define a private key that is always used by this server, export the environment variable
PRIVATE_KEY
, i.e.:-e "PRIVATE_KEY=private_key_to_use"
docker run -d \
-v /local_path_to_lib/couchdb:/usr/local/var/lib/couchdb \
-v /local_path_t_log/couchdb_log:/usr/local/var/log/couchdb \
-e "ADMINHASH=admin = -pbkdf2-HASH_OF_ADMIN_LOGIN" \
-e "PRIVATE_KEY=private_key_to_use" \
--name nEDM-CouchDB \
registry.hub.docker.com/mgmarino/couchdb-docker:latest
-e
parts of the command are optional. Note, if you want to test to see if the couchdb
instance is running, you can export port 5984
: -p 15984:5984
where the local port 15984
is used.
There are a few options that have to be taken care of to setup for an nEDM server:
If you wish to run the alarm daemon, change alarm_daemon:disabled
to be
false
in the configuration. Other configuration options:
{
email_agent : 'name.of.smtp.server', // name of SMTP server to send
// notification emails
emails : ['[email protected]', '[email protected]'], // list of email addresses
// that receive
// notification
disabled : true // don't run on this server
}
This runs to update views as well as aggregates changes from nedm/
databases
Options include:
{
write_aggregate : false, // Run aggregation (set to true to do this)
checked_types : ['data', 'heartbeat'], // Types of documents that are
// aggregated into the aggregate db
}