Skip to content

Configuration

CloakProbe uses a TOML configuration file for clean, organized settings. Environment variables can override config values for container deployments.

Config files are searched in this order:

  1. Path specified with -c / --config argument
  2. ./cloakprobe.toml (current directory)
  3. /etc/cloakprobe/cloakprobe.toml (system-wide)
/etc/cloakprobe/cloakprobe.toml
[server]
bind_address = "127.0.0.1"
port = 8080
mode = "cloudflare"
region = "eu-central"
[privacy]
mode = "strict"
[database]
asn_db_path = "/opt/cloakprobe/data/asn_db.bin"
org_db_path = "/opt/cloakprobe/data/orgs_db.bin"
OptionDefaultDescription
bind_address0.0.0.0IP address to bind the HTTP server
port8080Port number to listen on
modecloudflareProxy mode: cloudflare or nginx
region(none)Optional region identifier shown in API

CloakProbe supports two proxy modes for client IP extraction:

[server]
mode = "cloudflare"
  • Trusts CF-Connecting-IP header from Cloudflare
  • Use when running behind Cloudflare CDN
  • Important: Only accept connections from Cloudflare IPs to prevent IP spoofing
OptionDefaultDescription
modestrictPrivacy mode: strict or balanced
[privacy]
mode = "strict"
  • No logging of IP addresses
  • Minimal server information exposed
  • logs_retained: false in API response
[privacy]
mode = "balanced"
  • Standard logging enabled
  • Full server information
  • logs_retained: true in API response
OptionDefaultDescription
asn_db_pathdata/asn_db.binPath to ASN database
org_db_pathdata/orgs_db.binPath to multi-RIR organization database (optional)
Terminal window
cloakprobe [OPTIONS]
OPTIONS:
-c, --config <PATH> Path to configuration file (TOML)
-h, --help Print help information
-v, --version Print version information

Environment variables override TOML config values. Useful for container deployments:

VariableDescription
CLOAKPROBE_BIND_ADDRESSOverride bind address
CLOAKPROBE_PORTOverride port
CLOAKPROBE_MODEOverride proxy mode (cloudflare or nginx)
CLOAKPROBE_REGIONOverride region identifier
CLOAKPROBE_PRIVACY_MODEOverride privacy mode
CLOAKPROBE_ASN_DB_PATHOverride ASN database path
CLOAKPROBE_ORG_DB_PATHOverride organization database path

The default systemd service uses the configuration file:

[Service]
ExecStart=/opt/cloakprobe/cloakprobe -c /etc/cloakprobe/cloakprobe.toml

To edit the configuration:

Terminal window
sudo nano /etc/cloakprobe/cloakprobe.toml
sudo systemctl restart cloakprobe

For running multiple instances (e.g., different proxy modes), use the template service:

Terminal window
# Create instance-specific configs
sudo cp /etc/cloakprobe/cloakprobe.toml /etc/cloakprobe/cloudflare.toml
sudo cp /etc/cloakprobe/cloakprobe.toml /etc/cloakprobe/nginx.toml
# Edit configs (different ports, modes)
sudo nano /etc/cloakprobe/cloudflare.toml # port=8080, mode=cloudflare
sudo nano /etc/cloakprobe/nginx.toml # port=8081, mode=nginx
# Start instances
sudo systemctl start cloakprobe@cloudflare
sudo systemctl start cloakprobe@nginx

For testing or development:

Terminal window
./cloakprobe -c cloakprobe.toml

CloakProbe loads databases into memory for fast lookups:

DatabaseApproximate Size
ASN database~50-100 MB
Multi-RIR org database~30-60 MB

Ensure your server has sufficient RAM for the databases plus application overhead.