Skip to content

Daemon Configuration

Scanopy daemons use the following priority order (highest to lowest):

  1. Command-line arguments (highest priority)
  2. Environment variables
  3. Configuration file
  4. Default values (lowest priority)

Later sources override earlier ones. For example, an environment variable overrides the config file but is overridden by a command-line argument.

Command-line arguments:

Terminal window
scanopy-daemon --server-url http://192.168.1.100:60072 --api-key YOUR_KEY

Environment variables:

Terminal window
export SCANOPY_SERVER_URL=http://192.168.1.100:60072
export SCANOPY_DAEMON_API_KEY=YOUR_KEY
scanopy-daemon

Docker environment:

environment:
- SCANOPY_SERVER_URL=http://192.168.1.100:60072
- SCANOPY_DAEMON_API_KEY=YOUR_KEY

Configuration file:

The daemon automatically creates a config file at:

  • Linux: ~/.config/scanopy/daemon/config.json
  • macOS: ~/Library/Application Support/com.scanopy.daemon/config.json
  • Windows: %APPDATA%\scanopy\daemon\config.json

The config file stores runtime state (daemon ID, host ID) alongside your settings. Command-line and environment variables take priority over the file.

ParameterCLI FlagEnvironment VariableConfig File KeyDefaultDescription
Server URL--server-urlSCANOPY_SERVER_URLserver_urlhttp://127.0.0.1:60072URL where the daemon can reach the server
API Key--daemon-api-keySCANOPY_DAEMON_API_KEYapi_keyRequiredAuthentication key for daemon (generated via UI)
Mode--modeSCANOPY_MODEmodePushPull: daemon polls server. Push: server initiates scans (daemon must be reachable)
Network ID--network-idSCANOPY_NETWORK_IDnetwork_idAuto-assignedUUID of the network to scan
Daemon URL--daemon-urlSCANOPY_DAEMON_URLdaemon_urldetected IP + portPublic URL where server can reach daemon (Push mode only)
Daemon Port--daemon-port or -pSCANOPY_DAEMON_PORTport60073Port for daemon to listen on
Bind Address--bind-addressSCANOPY_BIND_ADDRESSbind_address0.0.0.0IP address to bind daemon to
Daemon Name--nameSCANOPY_NAMEnamescanopy-daemonName for this daemon
Log Level--log-levelSCANOPY_LOG_LEVELlog_levelinfoLogging verbosity
Heartbeat Interval--heartbeat-intervalSCANOPY_HEARTBEAT_INTERVALheartbeat_interval30Seconds between heartbeats/work requests
Concurrent Scans--concurrent-scansSCANOPY_CONCURRENT_SCANSconcurrent_scansAutoMaximum parallel host scans
Allow Self-Signed Certs--allow-self-signed-certsSCANOPY_ALLOW_SELF_SIGNED_CERTSallow_self_signed_certsNoneAllow self-signed certs for daemon → server connections
Docker Proxy--docker-proxySCANOPY_DOCKER_PROXYdocker_proxyNoneOptional proxy for Docker API
Docker SSL Cert--docker-proxy-ssl-certSCANOPY_DOCKER_PROXY_SSL_CERTdocker_proxy_ssl_certNonePath to SSL certificate for Docker proxy
Docker SSL Key--docker-proxy-ssl-keySCANOPY_DOCKER_PROXY_SSL_KEYdocker_proxy_ssl_keyNonePath to SSL private key for Docker proxy
Docker SSL Chain--docker-proxy-ssl-chainSCANOPY_DOCKER_PROXY_SSL_CHAINdocker_proxy_ssl_chainNonePath to SSL chain for Docker proxy

Controls how many hosts the daemon scans simultaneously during network discovery.

Default behavior: Auto-detected based on system resources

  • Calculates based on available memory
  • Typical range: 10-20 for most systems
  • Adjusts to prevent memory exhaustion

When to set manually:

  • System crashes during scans
  • Memory errors in logs
  • Very large networks (100+ hosts)
  • Resource-constrained devices (Raspberry Pi)

Recommended values:

  • Raspberry Pi 4 (4GB): 5-10
  • Standard desktop: 15-20
  • Server: 20-30+
  • Low memory: Start with 5, increase gradually

Setting:

Terminal window
# CLI
scanopy-daemon --concurrent-scans 10
# Environment
export SCANOPY_CONCURRENT_SCANS=10
# Docker
environment:
- SCANOPY_CONCURRENT_SCANS=10

Symptoms of too high:

  • Daemon crashes during scans
  • “CONCURRENT_SCANS too high for this system” error
  • Out of memory errors
  • System becomes unresponsive

Impact:

  • Lower value = slower scans, more stable
  • Higher value = faster scans, more memory usage