2026-02-04 12:29:56 +03:00
|
|
|
# Several instances of the WAF can be deployed onto the same host if their
|
|
|
|
|
# names are different and they bind to different ports/interfaces. These
|
|
|
|
|
# instances may use different versions of Go, xcaddy, Caddy, and Coraza.
|
|
|
|
|
caddy_my_name: "mywaf"
|
2026-01-23 11:20:54 +03:00
|
|
|
caddy_http_port: 80
|
|
|
|
|
caddy_https_port: 443
|
2026-02-12 06:46:54 +01:00
|
|
|
caddy_default_bind: null
|
2026-01-23 11:20:54 +03:00
|
|
|
|
2026-03-16 11:35:24 +03:00
|
|
|
# If true, will not install software, just deploy Caddyfile and OWASP CRS
|
2026-02-04 12:29:56 +03:00
|
|
|
# configuration files.
|
|
|
|
|
caddy_config_only: false
|
2026-01-23 11:20:54 +03:00
|
|
|
|
2026-02-04 12:29:56 +03:00
|
|
|
# Debug will go to /var/log/<caddy_my_name>/debug.log.
|
|
|
|
|
caddy_debug: false
|
2026-01-23 11:20:54 +03:00
|
|
|
|
2026-02-04 12:29:56 +03:00
|
|
|
# Required for Let's Encrypt auto certificates.
|
2026-01-23 11:20:54 +03:00
|
|
|
caddy_email: null
|
|
|
|
|
|
2026-02-04 12:29:56 +03:00
|
|
|
# If a custom CA root have to be used.
|
2026-01-23 11:20:54 +03:00
|
|
|
caddy_ca_root: null
|
2026-01-20 12:27:03 +03:00
|
|
|
|
2026-02-06 17:35:03 +03:00
|
|
|
# For using a Consul cluster.
|
|
|
|
|
caddy_consul: false
|
2026-02-12 14:37:42 +01:00
|
|
|
caddy_consul_server: "{{ ansible_fqdn }}:8501"
|
2026-02-12 06:46:54 +01:00
|
|
|
caddy_consul_delegate_to: null # Required, Consul host for running Consul commands
|
2026-02-12 14:37:42 +01:00
|
|
|
caddy_consul_admin_token: null # Required
|
2026-02-06 17:35:03 +03:00
|
|
|
caddy_consul_aes_key: null # Required, 32 characters
|
2026-03-16 11:35:24 +03:00
|
|
|
caddy_consul_client_cert: null # Required, CN must be "server.<consul datacenter>.<consul domain>"
|
|
|
|
|
# At least, SANs must include:
|
|
|
|
|
# - "DNS:server.<consul datacenter>.<consul domain>"
|
|
|
|
|
# - "DNS:<host FQDN>"
|
2026-02-12 14:37:42 +01:00
|
|
|
caddy_consul_client_key: null # Required
|
2026-02-06 17:35:03 +03:00
|
|
|
|
2026-02-04 12:29:56 +03:00
|
|
|
# Accound id and license key are required if a site use Geoip filtering.
|
2026-01-23 14:08:31 +03:00
|
|
|
# See: https://dev.maxmind.com/geoip/updating-databases/
|
2026-02-04 12:29:56 +03:00
|
|
|
caddy_geoip_account_id: null
|
2026-01-23 14:08:31 +03:00
|
|
|
caddy_geoip_license_key: null
|
|
|
|
|
caddy_geoip_edition_ids: "GeoLite2-ASN,GeoLite2-Country,GeoLite2-City"
|
|
|
|
|
caddy_geoip_update_frequency: 86400 # In seconds
|
|
|
|
|
|
2026-02-04 12:29:56 +03:00
|
|
|
# Sotware versions
|
2026-03-16 11:35:24 +03:00
|
|
|
caddy_version: "2.11.2"
|
|
|
|
|
caddy_go_version: "1.26.1"
|
2026-02-04 12:29:56 +03:00
|
|
|
caddy_xcaddy_version: "0.4.5"
|
2026-03-16 11:35:24 +03:00
|
|
|
caddy_coraza_caddy_version: "v2@v2.2.0" # Coraza v3.3.3
|
2026-02-04 12:29:56 +03:00
|
|
|
# Different sites can use different versions of OWASP CRS
|
2026-03-16 11:35:24 +03:00
|
|
|
caddy_owasp_crs_versions: ["4.24.1"]
|
2026-02-04 12:29:56 +03:00
|
|
|
|
|
|
|
|
# Paths
|
|
|
|
|
caddy_binary: "/usr/local/bin/{{ caddy_my_name }}"
|
|
|
|
|
caddy_system_user: "{{ caddy_my_name }}"
|
|
|
|
|
caddy_system_group: "{{ caddy_my_name }}"
|
|
|
|
|
caddy_home_dir: "/opt/{{ caddy_my_name }}"
|
|
|
|
|
caddy_config_dir: "/etc/{{ caddy_my_name }}"
|
2026-02-05 09:53:38 +03:00
|
|
|
caddy_crs_plugins_dir: "{{ caddy_config_dir }}/crs-plugins"
|
|
|
|
|
caddy_sites_dir: "{{ caddy_config_dir }}/sites"
|
2026-02-04 12:29:56 +03:00
|
|
|
caddy_log_dir: "/var/log/{{ caddy_my_name }}"
|
2026-01-23 14:08:31 +03:00
|
|
|
|
2026-03-16 11:35:24 +03:00
|
|
|
# OWASP CRS plugins that can be actived per site.
|
2026-01-20 12:27:03 +03:00
|
|
|
# Cf.: https://github.com/coreruleset/plugin-registry
|
|
|
|
|
caddy_crs_plugins:
|
|
|
|
|
- name: "drupal-rule-exclusions"
|
|
|
|
|
version: "1.0.0"
|
|
|
|
|
- name: "wordpress-rule-exclusions"
|
|
|
|
|
version: "1.2.0"
|
|
|
|
|
- name: "nextcloud-rule-exclusions"
|
|
|
|
|
version: "1.5.0"
|
|
|
|
|
- name: "dokuwiki-rule-exclusions"
|
|
|
|
|
version: "1.0.0"
|
|
|
|
|
- name: "phpmyadmin-rule-exclusions"
|
|
|
|
|
version: "1.0.0"
|
|
|
|
|
has_after_config: true
|
|
|
|
|
- name: "roundcube-rule-exclusions"
|
|
|
|
|
version: "1.0.4"
|
|
|
|
|
provider: "EsadCetiner"
|
|
|
|
|
- name: "sogo-rule-exclusions"
|
|
|
|
|
version: "1.0.4"
|
|
|
|
|
provider: "EsadCetiner"
|
|
|
|
|
|
|
|
|
|
|
2026-02-04 12:29:56 +03:00
|
|
|
# Sites
|
2026-01-20 12:27:03 +03:00
|
|
|
caddy_sites: []
|
2026-03-11 15:40:38 +03:00
|
|
|
# - id: "" # Mandatory: short id for the site (for site specific directories and files)
|
|
|
|
|
# name: "" # Mandatory: canonical domain name
|
|
|
|
|
# paths: # Mandatory: targets for the reverse proxy
|
|
|
|
|
# - path: "*" # Optionnal: path of the request, default "*"
|
|
|
|
|
# strip_prefix: false # Optionnal: default "false"
|
|
|
|
|
# addrs: # Mandatory: upstreams
|
|
|
|
|
# - "" # Mandatory: URL of the upstream, minimum 1 required
|
2026-01-20 12:27:03 +03:00
|
|
|
|
|
|
|
|
|
2026-02-04 12:29:56 +03:00
|
|
|
# For overriding default global parameters. Will be merged with
|
|
|
|
|
# caddy_global_sites_defaults (in vars/main.yml).
|
2026-01-23 11:20:54 +03:00
|
|
|
caddy_my_sites_defaults: {}
|