# Using Docker - mCaptcha
Deploy mCaptcha using docker

# Using Docker

## With Docker#

### 1. Configure#

mcaptcha is highly configurable.

Configuration is applied/merged in the following order:

1. path to configuration file passed in via `MCAPTCHA_CONFIG`
2. `./config/default.toml`
3. `/etc/mcaptcha/config.toml`
4. environment variables.

See CONFIGURATION.md for configurable options.

### 2. Run image#

If you have already have a Postgres instance running, then:

    docker run -p <host-machine-port>:<port-in-configuration-file> \
    	--add-host=database:<database-ip-addrss> \
    	-e RUST_LOG=debug \
    	-e DATABASE_URL="postgres://<db-user>:<db-password>@database:<db-port>/<db-name>" \
    	mcaptcha/mcaptcha:latest

If you don’t have a Postgres instance running, you can either install one using a package manager or launch one with docker.

## With docker-compose#

1. Download docker-compose file and the configuration file:

    wget https://raw.githubusercontent.com/mCaptcha/mCaptcha/master/.env.docker-compose
    wget https://raw.githubusercontent.com/mCaptcha/mCaptcha/master/docker-compose.yml

2. Configure deployment using `.env.docker-compose` environment variable file

3. Launch containers:

    docker-compose up -d

4. Configure SSL using reverse proxy: mCaptcha doesn’t support SSL at the moment, so please use a reverse proxy to secure your instance. A reference nginx virtual host configuration file is available here.

Edit this page on git.batsense.net