--- title: "Using Docker" description: "Deploy mCaptcha using docker" date: 2021-07-21 15:14 lastmod: 2021-07-21 15:14 draft: false images: [] menu: docs: parent: "Self-Hosting" weight: 534 toc: true --- ## 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](https://github.com/mCaptcha/mCaptcha/tree/master/docs/CONFIGURATION.md) for configurable options. ### 2. Run image If you have already have a Postgres instance running, then: ``` docker run -p : \ --add-host=database: \ -e RUST_LOG=debug \ -e DATABASE_URL="postgres://:@database:/" \ 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](../bare-metal/#6-install-and-configure-nginx).