{ "Antibot": { "id": "Antibot", "params": [ { "context": "multisite", "default": "no", "env": "USE_ANTIBOT", "id": "use-antibot", "label": "Use antibot", "regex": "^(no|cookie|javascript|captcha|recaptcha)$", "type": "text" }, { "context": "multisite", "default": "/challenge", "env": "ANTIBOT_URI", "id": "antibot-uri", "label": "Antibot uri", "regex": "^/([A-Za-z0-9\\-]/?)*$", "type": "text" }, { "context": "multisite", "default": "random", "env": "ANTIBOT_SESSION_SECRET", "id": "antibot-session-secret", "label": "Antibot session secret", "regex": "^([\\S]+)$", "type": "text" }, { "context": "multisite", "default": "", "env": "ANTIBOT_RECAPTCHA_SITEKEY", "id": "antibot-recaptcha-sitekey", "label": "Antibot recaptcha sitekey", "regex": "^([\\S]*)$", "type": "text" }, { "context": "multisite", "default": "", "env": "ANTIBOT_RECAPTCHA_SECRET", "id": "antibot-recaptcha-secret", "label": "Antibot recaptcha secret", "regex": "^([\\S]*)$", "type": "text" }, { "context": "multisite", "default": "0.7", "env": "ANTIBOT_RECAPTCHA_SCORE", "id": "antibot-recaptcha-score", "label": "Antibot recaptcha score", "regex": "^0\\.\\d$", "type": "text" } ] }, "Basic auth": { "id": "auth-basic", "params": [ { "context": "multisite", "default": "no", "env": "USE_AUTH_BASIC", "id": "use-auth-basic", "label": "Use auth basic", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "sitewide", "env": "AUTH_BASIC_LOCATION", "id": "auth-basic-location", "label": "Auth basic location", "regex": "^(sitewide|/[A-Za-z0-9/]*)$", "type": "text" }, { "context": "multisite", "default": "changeme", "env": "AUTH_BASIC_USER", "id": "auth-basic-user", "label": "Auth basic user", "regex": "^([A-Za-z0-9\\-_]+)$", "type": "text" }, { "context": "multisite", "default": "changeme", "env": "AUTH_BASIC_PASSWORD", "id": "auth-basic-password", "label": "Auth basic password", "regex": "^([\\S]+)$", "type": "text" }, { "context": "multisite", "default": "Restricted area", "env": "AUTH_BASIC_TEXT", "id": "auth-basic-text", "label": "Auth basic text", "regex": "^([\\S ]+)$", "type": "text" } ] }, "Blacklist": { "id": "blacklist", "params": [ { "context": "multisite", "default": "yes", "env": "USE_BLACKLIST_IP", "id": "use-blacklist-ip", "label": "Use blacklist ip", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "", "env": "BLACKLIST_IP_LIST", "id": "blacklist-ip-list", "label": "Blacklist ip list", "regex": "^(\\d+.\\d+.\\d+.\\d+(/\\d+)? ?)*$", "type": "text" }, { "context": "multisite", "default": "yes", "env": "USE_BLACKLIST_REVERSE", "id": "use-blacklist-reverse", "label": "Use blacklist reverse", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": ".shodan.io", "env": "BLACKLIST_REVERSE_LIST", "id": "blacklist-reverse-list", "label": "Blacklist reverse list", "regex": "^([a-z\\-0-9\\.]+ ?)*$", "type": "text" }, { "context": "global", "default": "", "env": "BLACKLIST_COUNTRY", "id": "blacklist-country", "label": "Blacklist country", "regex": "^([A-Z]{2} ?)*$", "type": "text" } ] }, "Block": { "id": "block", "params": [ { "context": "multisite", "default": "yes", "env": "BLOCK_USER_AGENT", "id": "block-user-agent", "label": "Block user agent", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "yes", "env": "BLOCK_TOR_EXIT_NODE", "id": "block-tor-exit-node", "label": "Block tor exit node", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "yes", "env": "BLOCK_PROXIES", "id": "block-proxies", "label": "Block proxies", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "yes", "env": "BLOCK_ABUSERS", "id": "block-abusers", "label": "Block abusers", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "yes", "env": "BLOCK_REFERRER", "id": "block-referrer", "label": "Block referrer", "regex": "^(yes|no)$", "type": "checkbox" } ] }, "Cache": { "id": "cache", "params": [ { "context": "multisite", "default": "no", "env": "USE_CLIENT_CACHE", "id": "use-client-cache", "label": "Use client cache", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "jpg|jpeg|png|bmp|ico|svg|tif|css|js|otf|ttf|eot|woff|woff2", "env": "CLIENT_CACHE_EXTENSIONS", "id": "client-cache-extensions", "label": "Client cache extensions", "regex": "^([a-z0-9]\\|?)*$", "type": "text" }, { "context": "multisite", "default": "public, max-age=15552000", "env": "CLIENT_CACHE_CONTROL", "id": "client-cache-control", "label": "Client cache control", "regex": "^([\\S ]*)$", "type": "text" }, { "context": "multisite", "default": "on", "env": "CLIENT_CACHE_ETAG", "id": "client-cache-etag", "label": "Client cache etag", "regex": "^(on|off)$", "type": "text" }, { "context": "multisite", "default": "no", "env": "USE_OPEN_FILE_CACHE", "id": "use-open-file-cache", "label": "Use open file cache", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "max=1000 inactive=20s", "env": "OPEN_FILE_CACHE", "id": "open-file-cache", "label": "Open file cache", "regex": "^([\\S ]*)$", "type": "text" }, { "context": "multisite", "default": "on", "env": "OPEN_FILE_CACHE_ERRORS", "id": "open-file-cache-errors", "label": "Open file cache errors", "regex": "^(on|off)$", "type": "text" }, { "context": "multisite", "default": "2", "env": "OPEN_FILE_CACHE_MIN_USES", "id": "open-file-cache-min-uses", "label": "Open file cache min uses", "regex": "^([1-9]+)$", "type": "text" }, { "context": "multisite", "default": "30s", "env": "OPEN_FILE_CACHE_VALID", "id": "open-file-cache-valid", "label": "Open file cache valid", "regex": "^\\d+(ms|s|m|h|d|w|M|y)$", "type": "text" }, { "context": "multisite", "default": "no", "env": "USE_PROXY_CACHE", "id": "use-proxy-cache", "label": "Use proxy cache", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "10m", "env": "PROXY_CACHE_PATH_ZONE_SIZE", "id": "proxy-cache-path-zone-size", "label": "Proxy cache path zone size", "regex": "^[0-9]+(k|K|m|M|g|G)?$", "type": "text" }, { "context": "multisite", "default": "max_size=100m", "env": "PROXY_CACHE_PATH_PARAMS", "id": "proxy-cache-path-params", "label": "Proxy cache path params", "regex": "^([\\S ]*)$", "type": "text" }, { "context": "multisite", "default": "GET HEAD", "env": "PROXY_CACHE_METHODS", "id": "proxy-cache-methods", "label": "Proxy cache methods", "regex": "^((GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|TRACE) ?)+$", "type": "text" }, { "context": "multisite", "default": "2", "env": "PROXY_CACHE_MIN_USES", "id": "proxy-cache-min-uses", "label": "Proxy cache min uses", "regex": "^([1-9]+)$", "type": "text" }, { "context": "multisite", "default": "\\$scheme\\$host\\$request_uri", "env": "PROXY_CACHE_KEY", "id": "proxy-cache-key", "label": "Proxy cache key", "regex": "^([\\S ]*)$", "type": "text" }, { "context": "multisite", "default": "200=10m 301=10m 302=1h", "env": "PROXY_CACHE_VALID", "id": "proxy-cache-valid", "label": "Proxy cache valid", "regex": "^(\\d{3}=\\d+(ms|s|m|h|d|w|M|y) ?)+$", "type": "text" }, { "context": "multisite", "default": "\\$http_authorization", "env": "PROXY_NO_CACHE", "id": "proxy-no-cache", "label": "Proxy no cache", "regex": "^([\\S ]*)$", "type": "text" }, { "context": "multisite", "default": "\\$http_authorization", "env": "PROXY_CACHE_BYPASS", "id": "proxy-cache-bypass", "label": "Proxy cache bypass", "regex": "^([\\S ]*)$", "type": "text" } ] }, "Compression": { "id": "compression", "params": [ { "context": "multisite", "default": "no", "env": "USE_GZIP", "id": "use-gzip", "label": "Use gzip", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "5", "env": "GZIP_COMP_LEVEL", "id": "gzip-comp-level", "label": "Gzip comp level", "regex": "^[1-9]$", "type": "text" }, { "context": "multisite", "default": "1000", "env": "GZIP_MIN_LENGTH", "id": "gzip-min-length", "label": "Gzip min length", "regex": "^[0-9]+$", "type": "text" }, { "context": "multisite", "default": "application/atom+xml application/javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype application/x-font-ttf application/x-javascript application/xhtml+xml application/xml font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml", "env": "GZIP_TYPES", "id": "gzip-types", "label": "Gzip types", "regex": "^([a-z/\\+\\-\\.] ?)*$", "type": "text" }, { "context": "multisite", "default": "no", "env": "USE_BROTLI", "id": "use-brotli", "label": "Use brotli", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "6", "env": "BROTLI_COMP_LEVEL", "id": "brotli-comp-level", "label": "Brotli comp level", "regex": "^[1-9]$", "type": "text" }, { "context": "multisite", "default": "1000", "env": "BROTLI_MIN_LENGTH", "id": "brotli-min-length", "label": "Brotli min length", "regex": "^[0-9]+$", "type": "text" }, { "context": "multisite", "default": "application/atom+xml application/javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype application/x-font-ttf application/x-javascript application/xhtml+xml application/xml font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml", "env": "BROTLI_TYPES", "id": "brotli-types", "label": "Brotli types", "regex": "^([a-z/\\+\\-\\.] ?)*$", "type": "text" } ] }, "CrowdSec": { "id": "use-crowdsec", "params": [ { "context": "multisite", "default": "no", "env": "USE_CROWDSEC", "id": "use-crowdsec", "label": "Use crowdsec", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "global", "default": "", "env": "CROWDSEC_HOST", "id": "crowdsec-host", "label": "CrowdSec host", "regex": "^(https?://[\\S]+:?\\d*)?$", "type": "text" }, { "context": "global", "default": "", "env": "CROWDSEC_KEY", "id": "crowdsec-key", "label": "CrowdSec key", "regex": "^([\\S])*$", "type": "text" } ] }, "DNSBL": { "id": "dnsbl", "params": [ { "context": "multisite", "default": "yes", "env": "USE_DNSBL", "id": "use-dnsbl", "label": "Use dnsbl", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "bl.blocklist.de problems.dnsbl.sorbs.net sbl.spamhaus.org xbl.spamhaus.org", "env": "DNSBL_LIST", "id": "dnsbl-list", "label": "dnsbl list", "regex": "^([a-z\\-0-9\\.]+ ?)*$", "type": "text" } ] }, "HTTPS": { "id": "https", "params": [ { "context": "multisite", "default": "no", "env": "AUTO_LETS_ENCRYPT", "id": "auto-lets-encrypt", "label": "Auto lets encrypt", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "", "env": "EMAIL_LETS_ENCRYPT", "id": "email-lets-encrypt", "label": "Email lets encrypt", "regex": "^([a-z0-9\\-\\.]+@([a-z\\-0-9]+\\.?)|.{0})$", "type": "text" }, { "context": "multisite", "default": "no", "env": "REDIRECT_HTTP_TO_HTTPS", "id": "redirect-http-to-https", "label": "Redirect http to https", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "yes", "env": "HTTP2", "id": "http2", "label": "HTTP2", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "TLSv1.2 TLSv1.3", "env": "HTTPS_PROTOCOLS", "id": "https-protocols", "label": "HTTPS protocols", "regex": "^(TLSv1.2|TLSv1.3|TLSv1.2 TLSv1.3)$", "type": "text" }, { "context": "multisite", "default": "yes", "env": "LISTEN_HTTP", "id": "listen-http", "label": "Listen http", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "no", "env": "USE_CUSTOM_HTTPS", "id": "use-custom-https", "label": "Custom TLS certificate", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "", "env": "CUSTOM_HTTPS_CERT", "id": "custom-https-cert", "label": "Custom TLS certificate path", "regex": "^[A-Za-z\\.0-9\\/\\-\\_]*$", "type": "text" }, { "context": "multisite", "default": "", "env": "CUSTOM_HTTPS_KEY", "id": "custom-https-key", "label": "Custom TLS certificate key", "regex": "^[A-Za-z\\.0-9\\/\\-\\_]*$", "type": "text" }, { "context": "multisite", "default": "no", "env": "GENERATE_SELF_SIGNED_SSL", "id": "generate-self-signed-ssl", "label": "Generate a self-signed TLS certificate", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "365", "env": "SELF_SIGNED_SSL_EXPIRY", "id": "self-signed-ssl-expiry", "label": "Expire date of the self-signed certificate", "regex": "^[0-9]+$", "type": "text" }, { "context": "multisite", "default": "CH", "env": "SELF_SIGNED_SSL_COUNTRY", "id": "self-signed-ssl-country", "label": "Country of the self-signed certificate", "regex": "^[:print:]+$", "type": "text" }, { "context": "multisite", "default": "Switzerland", "env": "SELF_SIGNED_SSL_STATE", "id": "self-signed-ssl-state", "label": "State of the self-signed certificate", "regex": "^[:print:]+$", "type": "text" }, { "context": "multisite", "default": "Bern", "env": "SELF_SIGNED_SSL_CITY", "id": "self-signed-ssl-city", "label": "City of the self-signed certificate", "regex": "^[:print:]+$", "type": "text" }, { "context": "multisite", "default": "IT", "env": "SELF_SIGNED_SSL_OU", "id": "self-signed-ssl-ou", "label": "Organizational Unit of the self-signed certificate", "regex": "^[:print:]+$", "type": "text" }, { "context": "multisite", "default": "Acme Inc", "env": "SELF_SIGNED_SSL_ORG", "id": "self-signed-ssl-org", "label": "Organization name of the self-signed certificate", "regex": "^[:print:]+$", "type": "text" }, { "context": "multisite", "default": "bunkerized", "env": "SELF_SIGNED_SSL_CN", "id": "self-signed-ssl-cn", "label": "Common Name of the self-signed certificate", "regex": "^[:print:]+$", "type": "text" } ] }, "Headers": { "id": "headers", "params": [ { "context": "multisite", "default": "DENY", "env": "X_FRAME_OPTIONS", "id": "x-frame-options", "label": "X frame options", "regex": "^([\\S ]*)$", "type": "text" }, { "context": "multisite", "default": "1; mode=block", "env": "X_XSS_PROTECTION", "id": "x-xss-protection", "label": "X xss protection", "regex": "^([\\S ]*)$", "type": "text" }, { "context": "multisite", "default": "nosniff", "env": "X_CONTENT_TYPE_OPTIONS", "id": "x-content-type-options", "label": "X content type options", "regex": "^([\\S ]*)$", "type": "text" }, { "context": "multisite", "default": "no-referrer", "env": "REFERRER_POLICY", "id": "referrer-policy", "label": "Referrer policy", "regex": "^([\\S ]*)$", "type": "text" }, { "context": "multisite", "default": "accelerometer 'none'; ambient-light-sensor 'none'; autoplay 'none'; camera 'none'; display-capture 'none'; document-domain 'none'; encrypted-media 'none'; fullscreen 'none'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; midi 'none'; payment 'none'; picture-in-picture 'none'; speaker 'none'; sync-xhr 'none'; usb 'none'; vibrate 'none'; vr 'none'", "env": "FEATURE_POLICY", "id": "feature-policy", "label": "Feature policy", "regex": "^([\\S ]*)$", "type": "text" }, { "context": "multisite", "default": "accelerometer=(), ambient-light-sensor=(), autoplay=(), camera=(), display-capture=(), document-domain=(), encrypted-media=(), fullscreen=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(), speaker=(), sync-xhr=(), usb=(), vibrate=(), vr=()", "env": "PERMISSIONS_POLICY", "id": "permissions-policy", "label": "Permissions policy", "regex": "^([\\S ]*)$", "type": "text" }, { "context": "multisite", "default": "* HttpOnly SameSite=Lax", "env": "COOKIE_FLAGS", "id": "cookie-flags", "label": "Cookie flags", "regex": "^([\\S ]*)$", "type": "text" }, { "context": "multisite", "default": "yes", "env": "COOKIE_AUTO_SECURE_FLAG", "id": "cookie-auto-secure-flag", "label": "Cookie auto secure flag", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "max-age=31536000", "env": "STRICT_TRANSPORT_SECURITY", "id": "strict-transport-security", "label": "Strict transport security", "regex": "^([\\S ]*)$", "type": "text" }, { "context": "multisite", "default": "object-src 'none'; frame-ancestors 'self'; form-action 'self'; block-all-mixed-content; sandbox allow-forms allow-same-origin allow-scripts allow-popups allow-downloads; base-uri 'self';", "env": "CONTENT_SECURITY_POLICY", "id": "content-security-policy", "label": "Content security policy", "regex": "^([\\S ]*)$", "type": "text" } ] }, "Info leak": { "id": "info-leak", "params": [ { "context": "multisite", "default": "Server X-Powered-By X-AspNet-Version X-AspNetMvc-Version", "env": "REMOVE_HEADERS", "id": "remove-headers", "label": "Remove headers", "regex": "^([A-Za-z0-9\\-] ?)*$", "type": "text" }, { "context": "global", "default": "no", "env": "DISABLE_DEFAULT_SERVER", "id": "disable-default-server", "label": "Disable default server", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "", "env": "ERRORS", "id": "errors", "label": "Custom error pages (code1=/page1 code2=/page2 ...)", "regex": ".*", "type": "text" } ] }, "Limit conn": { "id": "limit-conn", "params": [ { "context": "multisite", "default": "yes", "env": "USE_LIMIT_CONN", "id": "use-limit-conn", "label": "Use limit conn", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "50", "env": "LIMIT_CONN_MAX", "id": "limit-conn-max", "label": "Limit conn max", "regex": "^\\d+$", "type": "text" }, { "context": "global", "default": "10m", "env": "LIMIT_CONN_CACHE", "id": "limit-conn-cache", "label": "Limit conn cache", "regex": "^[0-9]+(k|K|m|M|g|G)?$", "type": "text" } ] }, "Limit req": { "id": "limit-req", "params": [ { "context": "multisite", "default": "yes", "env": "USE_LIMIT_REQ", "id": "use-limit-req", "label": "Use limit req", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "1r/s", "env": "LIMIT_REQ_RATE", "id": "limit-req-rate", "label": "Limit req rate", "regex": "^\\d+r/(ms|s|m|h|d)$", "type": "text" }, { "context": "multisite", "default": "2", "env": "LIMIT_REQ_BURST", "id": "limit-req-burst", "label": "Limit req burst", "regex": "^\\d+$", "type": "text" }, { "context": "global", "default": "10m", "env": "LIMIT_REQ_CACHE", "id": "limit-req-cache", "label": "Limit req cache", "regex": "^[0-9]+(k|K|m|M|g|G)?$", "type": "text" } ] }, "Misc": { "id": "misc", "params": [ { "context": "multisite", "default": "www.bunkerity.com", "env": "SERVER_NAME", "id": "server-name", "label": "Server name", "regex": "^([a-z\\-0-9]+\\.? ?)*$", "type": "text" }, { "context": "multisite", "default": "10m", "env": "MAX_CLIENT_SIZE", "id": "max-client-size", "label": "Max client size", "regex": "^[0-9]+(k|K|m|M|g|G)?$", "type": "text" }, { "context": "multisite", "default": "GET|POST|HEAD", "env": "ALLOWED_METHODS", "id": "allowed-methods", "label": "Allowed methods", "regex": "^([A-Z]+\\|?)+$", "type": "text" }, { "context": "multisite", "default": "yes", "env": "SERVE_FILES", "id": "serve-files", "label": "Serve files", "regex": "^(yes|no)$", "type": "checkbox" } ] }, "ModSecurity": { "id": "modsecurity", "params": [ { "context": "multisite", "default": "yes", "env": "USE_MODSECURITY", "id": "use-modsecurity", "label": "Use modsecurity", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "yes", "env": "USE_MODSECURITY_CRS", "id": "use-modsecurity-crs", "label": "Use modsecurity crs", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "RelevantOnly", "env": "MODSECURITY_SEC_AUDIT_ENGINE", "id": "modsecurity-sec-audit-engine", "label": "SecAuditEngine directive", "regex": "^(On|Off|RelevantOnly)$", "type": "text" } ] }, "PHP": { "id": "php", "params": [ { "context": "multisite", "default": "", "env": "REMOTE_PHP", "id": "remote-php", "label": "Remote php", "regex": "^([a-z\\-0-9\\_]+\\.?)*$", "type": "text" }, { "context": "multisite", "default": "/app", "env": "REMOTE_PHP_PATH", "id": "remote-php-path", "label": "Remote php path", "regex": "^/([A-Za-z0-9\\-]/?)*$", "type": "text" } ] }, "Reverse proxy": { "id": "reverse-proxy", "params": [ { "context": "multisite", "default": "no", "env": "USE_REVERSE_PROXY", "id": "use-reverse-proxy", "label": "Use reverse proxy", "regex": "^(yes|no)$", "type": "checkbox" }, { "id": "reverse-proxy-params", "label": "Reverse proxy", "params": [ { "context": "multisite", "default": "", "env": "REVERSE_PROXY_URL", "id": "reverse-proxy-url", "label": "Reverse proxy url", "multiple": "Reverse proxy", "regex": ".*", "type": "text" }, { "context": "multisite", "default": "", "env": "REVERSE_PROXY_HOST", "id": "reverse-proxy-host", "label": "Reverse proxy host", "multiple": "Reverse proxy", "regex": ".*", "type": "text" }, { "context": "multisite", "default": "no", "env": "REVERSE_PROXY_WS", "id": "reverse-proxy-ws", "label": "Reverse proxy ws", "multiple": "Reverse proxy", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "", "env": "REVERSE_PROXY_HEADERS", "id": "reverse-proxy-headers", "label": "Reverse proxy custom headers", "multiple": "Reverse proxy", "regex": ".*", "type": "text" } ], "type": "multiple" }, { "context": "multisite", "default": "no", "env": "PROXY_REAL_IP", "id": "proxy-real-ip", "label": "Proxy real ip", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "192.168.0.0/16 172.16.0.0/12 10.0.0.0/8", "env": "PROXY_REAL_IP_FROM", "id": "proxy-real-ip-from", "label": "Proxy real ip from", "regex": "^(\\d+.\\d+.\\d+.\\d+(/\\d+)? ?)*$", "type": "text" }, { "context": "multisite", "default": "X-Forwarded-For", "env": "PROXY_REAL_IP_HEADER", "id": "proxy-real-ip-header", "label": "Proxy real ip header", "regex": "^([A-Za-z0-9\\-])+$", "type": "text" }, { "context": "multisite", "default": "on", "env": "PROXY_REAL_IP_RECURSIVE", "id": "proxy-real-ip-recursive", "label": "Proxy real ip recursive", "regex": "^(on|off)$", "type": "text" } ] }, "Bad behavior": { "id": "bad-behavior", "params": [ { "context": "multisite", "default": "yes", "env": "USE_BAD_BEHAVIOR", "id": "use-bad-behavior", "label": "Use bad behavior", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "86400", "env": "BAD_BEHAVIOR_BAN_TIME", "id": "bad-behavior-ban-time", "label": "Ban duration time", "regex": "^[0-9]+$", "type": "text" }, { "context": "multisite", "default": "60", "env": "BAD_BEHAVIOR_COUNT_TIME", "id": "bad-behavior-count-time", "label": "Count time", "regex": "^[0-9]+$", "type": "text" }, { "context": "multisite", "default": "400 401 403 404 405 429 444", "env": "BAD_BEHAVIOR_STATUS_CODES", "id": "bad-behavior-status-codes", "label": "Status codes", "regex": "^([0-9]{3} ?)*$", "type": "text" }, { "context": "multisite", "default": "10", "env": "BAD_BEHAVIOR_THRESHOLD", "id": "bad-behavior-threshold", "label": "Threshold", "regex": "^[0-9]+$", "type": "text" } ] }, "API": { "id": "api", "params": [ { "context": "global", "default": "no", "env": "USE_API", "id": "use-api", "label": "Enable API", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "global", "default": "192.168.0.0/16 172.16.0.0/12 10.0.0.0/8", "env": "API_WHITELIST_IP", "id": "api-whitelist-ip", "label": "API whitelist IP", "regex": "^(\\d+.\\d+.\\d+.\\d+(/\\d+)? ?)*$", "type": "text" }, { "context": "global", "default": "random", "env": "API_URI", "id": "api-uri", "label": "API URI", "regex": "^(random|\\/[A-Za-z0-9\\-\\/]+)$", "type": "text" }, { "context": "global", "default": "no", "env": "SWARM_MODE", "id": "swarm-mode", "label": "Swarm mode", "regex": "^(yes|no)$", "type": "checkbox" } ] }, "nginx": { "id": "nginx", "params": [ { "context": "global", "default": "no", "env": "MULTISITE", "id": "multisite", "label": "Multisite", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "global", "default": "127.0.0.11", "env": "DNS_RESOLVERS", "id": "dns-resolvers", "label": "DNS Resolvers", "regex": "^(\\d+.\\d+.\\d+.\\d+ ?)*$", "type": "text" }, { "context": "global", "default": "$host $remote_addr - $remote_user [$time_local] \"$request\" $status $body_bytes_sent \"$http_referer\" \"$http_user_agent\"", "env": "LOG_FORMAT", "id": "log-format", "label": "Log format", "regex": "^.*$", "type": "text" }, { "context": "global", "default": "info", "env": "LOG_LEVEL", "id": "log-level", "label": "Log level", "regex": "^(debug|info|notice|warn|error|crit|alert|emerg)$", "type": "text" }, { "context": "global", "default": "/opt/bunkerized-nginx/www", "env": "ROOT_FOLDER", "id": "root-folder", "label": "Root folder", "regex": "^.*$", "type": "text" }, { "context": "multisite", "default": "", "env": "ROOT_SITE_SUBFOLDER", "id": "root-site-subfolder", "label": "Root site subfolder", "regex": "^.*$", "type": "text" }, { "context": "global", "default": "off", "env": "SERVER_TOKENS", "id": "server-tokens", "label": "Server tokens", "regex": "^(on|off)$", "type": "text" }, { "context": "global", "default": "8080", "env": "HTTP_PORT", "id": "http-port", "label": "HTTP port", "regex": "^[0-9]+$", "type": "text" }, { "context": "global", "default": "8443", "env": "HTTPS_PORT", "id": "https-port", "label": "HTTPS port", "regex": "^[0-9]+$", "type": "text" }, { "context": "global", "default": "2048", "env": "WORKER_RLIMIT_NOFILE", "id": "worker-rlimit-nofile", "label": "worker_rlimit_nofile directive", "regex": "^[0-9]+$", "type": "text" }, { "context": "global", "default": "1024", "env": "WORKER_CONNECTIONS", "id": "worker-connections", "label": "worker_connections directive", "regex": "^[0-9]+$", "type": "text" } ] }, "Whitelist": { "id": "whitelist", "params": [ { "context": "multisite", "default": "yes", "env": "USE_WHITELIST_IP", "id": "use-whitelist-ip", "label": "Use whitelist ip", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": "23.21.227.69 40.88.21.235 50.16.241.113 50.16.241.114 50.16.241.117 50.16.247.234 52.204.97.54 52.5.190.19 54.197.234.188 54.208.100.253 54.208.102.37 107.21.1.8", "env": "WHITELIST_IP_LIST", "id": "whitelist-ip-list", "label": "Whitelist ip list", "regex": "^(\\d+.\\d+.\\d+.\\d+(/\\d+)? ?)*$", "type": "text" }, { "context": "multisite", "default": "yes", "env": "USE_WHITELIST_REVERSE", "id": "use-whitelist-reverse", "label": "Use whitelist reverse", "regex": "^(yes|no)$", "type": "checkbox" }, { "context": "multisite", "default": ".googlebot.com .google.com .search.msn.com .crawl.yahoot.net .crawl.baidu.jp .crawl.baidu.com .yandex.com .yandex.ru .yandex.net", "env": "WHITELIST_REVERSE_LIST", "id": "whitelist-reverse-list", "label": "Whitelist reverse list", "regex": "^([a-z\\-0-9\\.]+ ?)*$", "type": "text" }, { "context": "multisite", "default": "", "env": "WHITELIST_COUNTRY", "id": "whitelist-country", "label": "Whitelist country", "regex": "^([A-Z]{2} ?)*$", "type": "text" }, { "context": "multisite", "default": "", "env": "WHITELIST_USER_AGENT", "id": "whitelist-user-agent", "label": "Whitelist user agent", "regex": ".*", "type": "text" }, { "context": "multisite", "default": "", "env": "WHITELIST_URI", "id": "whitelist-uri", "label": "Whitelist URI", "regex": "^(\\S ?)*$", "type": "text" } ] } }