This configuration has been introduced in v0.10, which is still in beta. For the stable 0.7 version, please see Docker Environment Variables (v0.7).
Previously, in v0.7, configuration was done solely via environment variables. Given the growing amount of configurable parameters, we now offer a file-based configuration too, on top of environment variables.
You can find below the exhaustive list of configurations, as well as their corresponding environment variable.
# Backend configuration.# Name to identify the backend.## Env variable: RCH__BACKEND_NAMEbackend_name ="backend-dev"# Host to bind the backend to.## Env variable: RCH__HTTP_HOSThttp_host ="127.0.0.1"# Port for the backend.## Env variable: RCH__HTTP_PORThttp_port =8080# Shared secret between a trusted client and the backend, required in the# `x-reacher-secret` header of all incoming requests.## Env variable: RCH__HEADER_SECRET# header_secret = "my-secret"# Name to use during the EHLO/HELO command in the SMTP conversation.# Ideally, this should match the reverse DNS of the server's IP address.## Env variable: RCH__HELLO_NAMEhello_name ="localhost"# Email to use during the MAIL FROM command in the SMTP conversation.# Ideally, the domain of this email should match the "hello_name" above.## Env variable: RCH__FROM_EMAILfrom_email ="hello@localhost"# Address of the Chrome WebDriver server for headless email verifications.## Env variable: RCH__WEBDRIVER_ADDRwebdriver_addr ="http://localhost:9515"# Timeout for each SMTP connection, in seconds. Leaving it commented out will# not set a timeout, i.e. the connection will wait indefinitely.## Env variable: RCH__SMTP_TIMEOUT# smtp_timeout = 45# Uncomment the lines below to route all SMTP verification requests# through a specified proxy. Note that the proxy must be a SOCKS5 proxy to work# with the SMTP protocol. This proxy will not be used for headless# verifications.## The username and password are optional and only needed if the proxy requires# authentication.## Env variables:# - RCH__PROXY__HOST# - RCH__PROXY__PORT# - RCH__PROXY__USERNAME# - RCH__PROXY__PASSWORD## [proxy]# host = "my.proxy.com"# port = 1080# username = "my-username"# password = "my-password"# Verification method to use for each email provider. Available methods are:# "smtp", "headless", and "api". Note that not all methods are supported by# all email providers.[verif_method]# Gmail currently only supports the "smtp" method.## Env variable: RCH__VERIF_METHOD__GMAILgmail ="smtp"# Hotmail B2B currently only supports the "smtp" method.## Env variable: RCH__VERIF_METHOD__HOTMAILB2Bhotmailb2b ="smtp"# Hotmail B2C supports both "headless" and "smtp" methods. The "headless"# method is recommended.hotmailb2c ="headless"# Yahoo supports both "headless" and "smtp" methods. The "headless" method is# recommended.yahoo ="headless"[worker]# Enable the worker to consume emails from the RabbitMQ queues. If set, the# RabbitMQ configuration below must be set as well.## Env variable: RCH__WORKER__ENABLEenable =true# RabbitMQ configuration.[worker.rabbitmq]# Env variable: RCH__WORKER__RABBITMQ__URLurl ="amqp://guest:guest@localhost:5672"# Number of concurrent emails to verify for this worker.## Env variable: RCH__WORKER__RABBITMQ__CONCURRENCYconcurrency =5# Throttle the maximum number of requests per second, per minute, per hour, and# per day for this worker.# All fields are optional; comment them out to disable the limit.## Important: these throttle configurations only apply to /v1/* endpoints, and# not to the previous /v0/check_email endpoint. The latter endpoint always# executes the verification immediately, regardless of the throttle settings.## Env variables:# - RCH__WORKER__THROTTLE__MAX_REQUESTS_PER_SECOND# - RCH__WORKER__THROTTLE__MAX_REQUESTS_PER_MINUTE# - RCH__WORKER__THROTTLE__MAX_REQUESTS_PER_HOUR# - RCH__WORKER__THROTTLE__MAX_REQUESTS_PER_DAY[worker.throttle]# max_requests_per_second = 20# max_requests_per_minute = 100# max_requests_per_hour = 1000# max_requests_per_day = 20000# Postgres configuration. Currently, a Postgres database is required to store# the results of the verifications. This might change in the future, allowing# for pluggable storage.[worker.postgres]# Env variable: RCH__WORKER__POSTGRES__DB_URLdb_url ="postgresql://localhost/reacherdb"# Optional Sentry DSN. If set, all errors will be sent to Sentry.## Env variable: RCH__SENTRY_DSN# sentry_dsn = "<PASTE_YOUR_DSN_NOW>"
Usage with Docker
You can continue using environment variables with Docker. For example, to overwrite the EHLO/HELO name, simply run: