self-hosted on/docs/self-hosted/Recent content in self-hosted onHugo -- gohugo.ioen-USGetting started/docs/self-hosted/getting-started/Mon, 01 Jan 0001 00:00:00 +0000/docs/self-hosted/getting-started/Get started There are two main ways to self-host mCaptcha: Bare metal With DockerDocker/docs/self-hosted/docker/Mon, 01 Jan 0001 00:00:00 +0000/docs/self-hosted/docker/Docker 1. Configure mcaptcha is highly configurable. Configuration is applied/merged in the following order: path to configuration file passed in via MCAPTCHA_CONFIG ./config/default.toml /etc/mcaptcha/config.toml 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.Deploy bare metal/docs/self-hosted/bare-metal/Mon, 01 Jan 0001 00:00:00 +0000/docs/self-hosted/bare-metal/2. Configure mcaptcha is highly configurable. Configuration is applied/merged in the following order: path to configuration file passed in via MCAPTCHA_CONFIG ./config/default.toml /etc/mcaptcha/config.toml environment variables. 1. Install postgres if you don’t have it already. For Debian based distributions: sudo apt install postgres 2. Create new user for running mcaptcha $ sudo useradd -b /srv -m -s /usr/bin/zsh mcaptcha 3. Create new user in Postgres $ sudo -iu postgres # switch to `postgres` user $ psql postgres=# CREATE USER mcaptcha WITH PASSWORD 'my super long password and yes you need single quote`; $ createdb -O mcaptcha mcaptcha # create db 'mcaptcha' with 'mcaptcha' as owner 4.Databse and cache/docs/self-hosted/dependencies/Mon, 01 Jan 0001 00:00:00 +0000/docs/self-hosted/dependencies/Notes Database Database migrations are baked into the server binary so don’t worry about them. When compiling from source, unset database configuration(comment out database configuration/ unset relevant environment variables). mCaptcha uses sqlx database client library which checks SQL queries at compile time. So if you are starting with a fresh database without migrations applied, compilation will fail. Redis Redis is an optional dependency.