Skip to content

Environment & Config Files

FileDefault LocationDescription
Config~/.config/sonar-catalog/config.jsonJSON configuration
Database~/.local/share/sonar-catalog/catalog.dbSQLite database

Override config path:

Terminal window
sonar-catalog --config /path/to/config.json COMMAND
  1. CLI flags (highest priority)
  2. Config file (--config or default path)
  3. Built-in defaults (lowest priority)
SectionKey Settings
databaseBackend (sqlite/postgresql), connection details
discoverySSH settings, hostname patterns, discovery methods
crawlerHash algorithm, workers, filters, incremental mode
metadataMIME detection, sonar extensions, custom magic bytes, nav extraction
pluginsDisabled plugin list
log_levelDEBUG, INFO, WARNING, ERROR
log_filePath to log file (null = stderr only)

For host discovery, three authentication methods:

Uses ssh-agent or a key file:

{
"discovery": {
"ssh_auth_method": "key",
"ssh_key_path": "~/.ssh/id_ed25519"
}
}

Reads password from a file (must be mode 0600):

{
"discovery": {
"ssh_auth_method": "sshpass_file",
"ssh_password_file": "/etc/sonar-catalog/ssh-password"
}
}

Reads password from SSHPASS:

{
"discovery": {
"ssh_auth_method": "sshpass_env"
}
}
Terminal window
export SSHPASS="your-password"
sonar-catalog discover

Zero configuration. Database is a single file. Supports FTS5 for full-text search.

{
"database": {
"backend": "sqlite",
"sqlite_path": "/path/to/catalog.db"
}
}

For multi-machine setups with concurrent crawlers:

{
"database": {
"backend": "postgresql",
"pg_host": "db.example.com",
"pg_port": 5432,
"pg_database": "sonar_catalog",
"pg_user": "sonar_catalog",
"pg_password": "secret"
}
}
{
"log_level": "DEBUG",
"log_file": "/var/log/sonar-catalog.log"
}

Or via CLI:

Terminal window
sonar-catalog -v crawl /mnt/nas01 # verbose (DEBUG)
sonar-catalog -q crawl /mnt/nas01 # quiet (WARNING)
~/.config/sonar-catalog/
config.json # User configuration
~/.local/share/sonar-catalog/
catalog.db # SQLite database