All Projects → redgeoff → redgeoff-couchdb-docker

redgeoff / redgeoff-couchdb-docker

Licence: MIT license
CouchDB in a docker container

Programming Languages

shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to redgeoff-couchdb-docker

fake-fews
Candidate solution for Facebook's fake news problem using machine learning and crowd-sourcing. Takes form of a Chrome extension. Developed in under 24 hours at 2017 Crimson Code hackathon at Washington State University.
Stars: ✭ 13 (+8.33%)
Mutual labels:  ssl
couchdb-pkg
Apache CouchDB Packaging support files
Stars: ✭ 24 (+100%)
Mutual labels:  couchdb
safeminer
全网第一款本地连接矿池加密软件,隐藏本地ip、加密数据包、流量混淆,可实现防止被监管的目的
Stars: ✭ 8 (-33.33%)
Mutual labels:  ssl
easy-shell
A pure Python script to easily get a reverse shell
Stars: ✭ 48 (+300%)
Mutual labels:  ssl
Chromium-Gost
Chromium с поддержкой алгоритмов ГОСТ
Stars: ✭ 286 (+2283.33%)
Mutual labels:  ssl
net tcp client
Net::TCPClient is a TCP Socket Client with automated failover, load balancing, retries and built-in timeouts.
Stars: ✭ 48 (+300%)
Mutual labels:  ssl
tipi
Tipi - the All-in-one Web Server for Ruby Apps
Stars: ✭ 214 (+1683.33%)
Mutual labels:  ssl
react-deploy-s3
Deploy create react app's in AWS S3
Stars: ✭ 67 (+458.33%)
Mutual labels:  ssl
ez-s
⚠️ [discontinued] Run a green-badge local HTTPS server with zero configuration; no certificate creation, no tunnels and no hassle.
Stars: ✭ 10 (-16.67%)
Mutual labels:  ssl
hyper-proxy
A proxy connector for Hyper-based crates
Stars: ✭ 73 (+508.33%)
Mutual labels:  ssl
cryptonice
CryptoNice is both a command line tool and library which provides the ability to scan and report on the configuration of SSL/TLS for your internet or internal facing web services. Built using the sslyze API and ssl, http-client and dns libraries, cryptonice collects data on a given domain and performs a series of tests to check TLS configuration…
Stars: ✭ 91 (+658.33%)
Mutual labels:  ssl
WatsonCluster
A simple C# class using Watson TCP to enable a one-to-one high availability cluster.
Stars: ✭ 18 (+50%)
Mutual labels:  ssl
webpack-everything
Vue cli template with webpack, vuex, vue router, eslint, image compression, graphql, apollo, server side rendering, code splitting and progressive web app (PWA) capabilities
Stars: ✭ 19 (+58.33%)
Mutual labels:  ssl
offPIM
Decentralized, Offline-first, Personal Information Manager (PIM) using PouchDB/CouchDB. Includes task-, note-, and contact-management, as well as journaling.
Stars: ✭ 63 (+425%)
Mutual labels:  couchdb
Perfect-Crypto
Cryptographic Operations
Stars: ✭ 27 (+125%)
Mutual labels:  ssl
certbot-dns-loopia
Loopia DNS authentication plugin for Certbot
Stars: ✭ 28 (+133.33%)
Mutual labels:  ssl
vault-pki-monitor-venafi
Venafi PKI Monitoring Secrets Engine for HashiCorp Vault that enforces security policy and provides certificate visiblity to the enterprise.
Stars: ✭ 18 (+50%)
Mutual labels:  ssl
sslcli
Pretty awesome command-line client for public SSLLabs API
Stars: ✭ 17 (+41.67%)
Mutual labels:  ssl
CouchDB2
CouchDB v2.x Python 3 interface in a single module. Also a command line tool.
Stars: ✭ 19 (+58.33%)
Mutual labels:  couchdb
domnibus
Access domain information via python and command line.
Stars: ✭ 16 (+33.33%)
Mutual labels:  ssl

DEPRECATED: This repo is no longer supported

Use https://github.com/apache/couchdb-docker instead.

redgeoff-couchdb-docker

CouchDB in a docker container

Hashing a password

All your CouchDB nodes need the same hashed password so that user sessions can work seamlessly between nodes. You can use the couch-hash-pwd utility to generate this hash. For example, if your password is admin you can use:

$ sudo npm install -g couch-hash-pwd
$ couchdb-hash-pwd -p admin

You'll then want to use the outputted value as the value of COUCHDB_HASHED_PASSWORD

Example

docker run -d --name couchdb \
  --log-opt max-size=100m \
  --restart always \
  -p 5984:5984 \
  -v /home/ubuntu/common:/home/couchdb/common \
  -e COUCHDB_DATA_DIR="/home/couchdb/common/data/couchdb1.mydomain.com" \
  -e COUCHDB_USER='admin' \
  -e COUCHDB_HASHED_PASSWORD='-pbkdf2-b1eb7a68b0778a529c68d30749954e9e430417fb,4da0f8f1d98ce649a9c5a3845241ae24,10' \
  -e COUCHDB_COOKIE='mycookie' \
  -e COUCHDB_SECRET='mysecret' \
  redgeoff/couchdb

Creates a CouchDB instance listening on port 5984 with an admin username and password of admin. COUCHDB_COOKIE and COUCHDB_SECRET should be some random string of characters--you may want to use a password generator to generate these values.

Example with SSL

We assume /home/ubuntu/common/ssl/mydomain.com.crt and /home/ubuntu/common/ssl/mydomain.com.key are the certificate and private key for your SSL config.

docker run -d --name couchdb \
  --log-opt max-size=100m \
  --restart always \
  -p 6984:6984 \
  -v /home/ubuntu/common:/home/couchdb/common \
  -e COUCHDB_DATA_DIR="/home/couchdb/common/data/couchdb1.mydomain.com" \
  -e COUCHDB_USER='admin' \
  -e COUCHDB_HASHED_PASSWORD='-pbkdf2-b1eb7a68b0778a529c68d30749954e9e430417fb,4da0f8f1d98ce649a9c5a3845241ae24,10' \
  -e COUCHDB_COOKIE='mycookie' \
  -e COUCHDB_SECRET='mysecret' \
  -e COUCHDB_CERT_FILE="/home/couchdb/common/ssl/mydomain.com.crt" \
  -e COUCHDB_KEY_FILE="/home/couchdb/common/ssl/mydomain.com.key" \
  -e COUCHDB_CACERT_FILE="/home/couchdb/common/ssl/mydomain.com.crt" \
  redgeoff/couchdb

Example with SSL and custom local.ini

We assume /home/ubuntu/common/etc/local.ini contains any custom config, e.g.

[chttpd]
bind_address = any

[httpd]
bind_address = any

[couchdb]
max_dbs_open=1000

Then run:

docker run -d --name couchdb \
  --log-opt max-size=100m \
  --restart always \
  -p 6984:6984 \
  -v /home/ubuntu/common:/home/couchdb/common \
  -v /home/ubuntu/common/etc/local.ini:/home/couchdb/couchdb/etc/local.d/local.ini \
  -e COUCHDB_DATA_DIR="/home/couchdb/common/data/couchdb1.mydomain.com" \
  -e COUCHDB_USER='admin' \
  -e COUCHDB_HASHED_PASSWORD='-pbkdf2-b1eb7a68b0778a529c68d30749954e9e430417fb,4da0f8f1d98ce649a9c5a3845241ae24,10' \
  -e COUCHDB_COOKIE='mycookie' \
  -e COUCHDB_SECRET='mysecret' \
  -e COUCHDB_CERT_FILE="/home/couchdb/common/ssl/mydomain.com.crt" \
  -e COUCHDB_KEY_FILE="/home/couchdb/common/ssl/mydomain.com.key" \
  -e COUCHDB_CACERT_FILE="/home/couchdb/common/ssl/mydomain.com.crt" \
  redgeoff/couchdb

Create Cluster

For example, assume that you have the following DNS config:

192.168.50.10 couchdb1.mydomain.com
192.168.50.11 couchdb2.mydomain.com

On server 1, run:

docker run -d --name couchdb \
  --log-opt max-size=100m \
  --restart always \
  -p 5984:5984 \
  -p 6984:6984 \
  -p 5986:5986 \
  -p 4369:4369 \
  -p 9100-9200:9100-9200 \
  -v /home/ubuntu/common:/home/couchdb/common \
  -v /home/ubuntu/common/etc/local.ini:/home/couchdb/couchdb/etc/local.d/local.ini \
  -e COUCHDB_DATA_DIR="/home/couchdb/common/data/couchdb1.mydomain.com" \
  -e COUCHDB_USER='admin' \
  -e COUCHDB_HASHED_PASSWORD='-pbkdf2-b1eb7a68b0778a529c68d30749954e9e430417fb,4da0f8f1d98ce649a9c5a3845241ae24,10' \
  -e COUCHDB_COOKIE='mycookie' \
  -e COUCHDB_NODE_NAME='192.168.50.10' \
  -e COUCHDB_SECRET='mysecret' \
  -e COUCHDB_CERT_FILE="/home/couchdb/common/ssl/mydomain.com.crt" \
  -e COUCHDB_KEY_FILE="/home/couchdb/common/ssl/mydomain.com.key" \
  -e COUCHDB_CACERT_FILE="/home/couchdb/common/ssl/mydomain.com.crt" \
  redgeoff/couchdb

On server 2, run:

docker run -d --name couchdb \
  --log-opt max-size=100m \
  --restart always \
  -p 5984:5984 \
  -p 6984:6984 \
  -p 5986:5986 \
  -p 4369:4369 \
  -p 9100-9200:9100-9200 \
  -v /home/ubuntu/common:/home/couchdb/common \
  -v /home/ubuntu/common/etc/local.ini:/home/couchdb/couchdb/etc/local.d/local.ini \
  -e COUCHDB_DATA_DIR="/home/couchdb/common/data/couchdb2.mydomain.com" \
  -e COUCHDB_USER='admin' \
  -e COUCHDB_HASHED_PASSWORD='-pbkdf2-b1eb7a68b0778a529c68d30749954e9e430417fb,4da0f8f1d98ce649a9c5a3845241ae24,10' \
  -e COUCHDB_COOKIE='mycookie' \
  -e COUCHDB_NODE_NAME='192.168.50.11' \
  -e COUCHDB_SECRET='mysecret' \
  -e COUCHDB_CERT_FILE="/home/couchdb/common/ssl/mydomain.com.crt" \
  -e COUCHDB_KEY_FILE="/home/couchdb/common/ssl/mydomain.com.key" \
  -e COUCHDB_CACERT_FILE="/home/couchdb/common/ssl/mydomain.com.crt" \
  redgeoff/couchdb

Create cluster:

./create-cluster.sh admin admin 5984 5986 "192.168.50.10 192.168.50.11"

You can then use a load balancer to balance port 6984 traffic over 192.168.50.10 and 192.168.50.11. You can also do the the SSL termination directly on the load balancer and have the load balancer connect with the CouchDB nodes on port 5984. For better security, you should use a firewall to make sure to only allow outside traffic via the load balancer.

Upgrade to latest image

$ docker pull redgeoff/couchdb
$ docker rm couchdb --force
$ docker run -d --name couchdb ...

On AWS

See Running a CouchDB 2.0 Cluster in Production on AWS with Docker

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].