cloginrc

package: rancid

title: cloginrc(5)

summary: clogin configuration file

text:
# cloginrc(5)

## NAME

.cloginrc - clogin configuration file

## DESCRIPTION
.cloginrc contains configuration information for alogin(1), blogin(1), clogin(1), elogin(1), flogin(1), hlogin(1), htlogin(1), jlogin(1), nlogin(1), nslogin(1), rivlogin(1), and tntlogin(1), such as usernames, passwords, ssh encryption type, etc., and is read at run-time.

Each line contains either white-space (blank line), a comment which begins with the comment character '#' and may be preceded by white-space, or one of the directives listed below.

Each line containing a directive is of the form:

```
add <directive> <hostname glob> {<value>} [{<value>} ...]

or

include {<file>}
```

Note: the braces ({}) surrounding the values is significant when the values include TCL meta-characters. Best common practice is to always enclose the values in braces. If a value includes a (left or right) brace or space character, it must be backslash-escaped, as in:

```
add user <hostname glob> {foo\}bar}
add user <hostname glob> {foo\ bar}
```

As .cloginrc is searched for a directive matching a hostname, it is always the first matching instance of a directive, one whose hostname glob expression matches the hostname, which is used. For example; looking up the "password" directive for hostname foo in a .cloginrc file containing

```
add password *   {bar} {table}
add password foo {bar} {table}
```

would return the first line, even though the second is an exact match.

.cloginrc is expected to exist in the user's home directory and must not be readable, writable, or executable by "others". .cloginrc should be mode 0600, or 0640 if it is to be shared with other users who are members of the same unix group. See chgrp(1) and chmod(1) for more information on ownership and file modes.

## DIRECTIVES
The accepted directives are (alphabetically):

add autoenable <router name glob> {[01]}

When using locally defined usernames or AAA, it is possible to have a login which is automatically enabled. This is, that user has enable privileges without the need to execute the enable command. The router's prompt is different for enabled mode, ending with a # rather than a >. Example: add autoenable * {1}

Default: 0

zero, meaning that the user is not automatically enabled and clogin should execute the enable command to gain enable privileges, unless negated by the noenable directive or -noenable command-line option.

Also see the noenable directive.

add cyphertype <router name glob> {<ssh encryption type>}

cyphertype defines which encryption algorithm is used with ssh. A device may not support the type ssh uses by default. See ssh(1)'s -c option for details. Default: {3des}

add enableprompt <router name glob> {"<enable prompt>"}

When using AAA with a Cisco router or switch, it is possible to redefine the prompt the device presents to the user for the enable password. enableprompt may be used to adjust the prompt that clogin should look for when trying to login. Note that enableprompt can be a Tcl style regular expression. Example: add enableprompt rc*.example.net {"\[Ee]nter\ the\ enable\ password:"}

Default: "\[Pp]assword:"

add enauser <router name glob> {<username>}

This is only needed if a device prompts for a username when gaining enable privileges and where this username is different from that defined by or the default of the user directive.

add identity <router name glob> {<ssh identity file path>}

May be used to specify an alternate identity file for use with ssh(1). See ssh's -i option for details. Default: your default identity file. see ssh(1).

add method <router name glob> {ssh} [{...}]

Defines, in order, the connection methods to use for a device from the set {ssh, telnet, rsh}. Method telnet may have a suffix, indicating an alternate TCP port, of the form ":port". Note: Different versions of telnet treat the specification of a port differently. In particular, BSD derived telnets do not do option negotiation when a port is given. Some devices, Extreme switches for example, have undesirable telnet default options such as linemode. In the BSD case, to enable option negotiation when specifying a port the method should be "{telnet:-23}" or you should add "mode character" to .telnetrc. See telnet(1) for more information on telnet command-line syntax, telnet options, and .telnetrc.

Example: add method * {ssh} {telnet:-3000} {rsh}

Which would cause clogin to first attempt an ssh connection to the device and if that were to fail with connection refused, a telnet connection to port 3000 would be tried, and then a rsh connection.

Note that not all platforms support all of these connection methods.

Default: {telnet} {ssh}

add noenable <router name glob> {1}

clogin will not try to gain enable privileges when noenable is matched for a device. This is equivalent to clogin's -noenable command-line option. Note that this directive is meaningless for jlogin(1), nlogin(1) and clogin(1) [for Extreme] which do not have the concept of "enabled" and/or no way to elevate privleges once logged in; a user either has the necessary privleges or doesn't.

add passphrase <router name glob> {"<SSH passphrase>"}

Specify the SSH passphrase. Note that this may be particular to an identity directive. The passphrase will default to the password for the given router. Example: add passphrase rc*.example.net {the\ bird\ goes\ tweet}

add passprompt <router name glob> {"<password prompt>"}

When using AAA with a Cisco router or switch, it is possible to redefine the prompt the device presents to the user for the password. passprompt may be used to adjust the prompt that clogin should look for when trying to login. Note that passprompt can be a Tcl style regular expression. Example: add passprompt rc*.example.net {"\[Ee]nter\ the\ password:"}

Default: "(\[Pp]assword|passwd):"

add password <router name glob> {<vty passwd>} [{<enable passwd>}]

Specifies a vty password, that which is prompted for upon the connection to the router. The last argument is the enable password and need not be specified if the device also has a matching noenable or autoenable directive or the corresponding command-line options are used.

add sshcmd <router name glob> {<ssh>}

<ssh> is the name of the ssh executable. OpenSSH uses a command-line option to specify the protocol version, but other implementations use a separate binary such as "ssh1". sshcmd allows this to be adjusted as necessary for the local environment. Default: ssh

add timeout <router name glob> {<seconds>}

Time in seconds that the login script will wait for input from the device before timeout. Default: device dependent

add user <router name glob> {<username>}

Specifies a username clogin should use if or when prompted for one. Default: $USER (or $LOGNAME), i.e.: your Unix username.

add userpassword <router name glob> {<user password>}

Specifies a password to be associated with a user, if different from that defined with the password directive.

add userprompt <router name glob> {"<username prompt>"}

When using AAA with a Cisco router or switch, it is possible to redefine the prompt the device presents to the user for the username. userprompt may be used to adjust the prompt that clogin should look for when trying to login. Note that userprompt can be a Tcl style regular expression. Example: add userprompt rc*.example.net {"\[Ee]nter\ your\ username:"}

Default: "(Username|login|user name):"

include {<file>}

<file> is the pathname of an additional .cloginrc file to include at that point. It is evaluated immediately. That is important with regard to the order of matching hostnames for a given directive, as mentioned above. This is useful if you have your own .cloginrc plus an additional .cloginrc file that is shared among a group of folks. If <file> is not a full pathname, $HOME/ will be prepended.

Example: include {.cloginrc.group}

## FILES

```
$HOME/.cloginrc               Configuration file described here.
share/rancid/cloginrc.sample  A sample .cloginrc.
```

## ERRORS
.cloginrc is interpreted directly by Tcl, so its syntax follows that of Tcl. Errors may produce quite unexpected results.

## SEE ALSO
clogin(1), glob(3), tclsh(1)


lg.conf

title: lg.conf(5)

summary: looking glass configuration file

text:
# lg.conf(5)

## NAME
lg.conf - looking glass configuration file

## DESCRIPTION
lg.conf contains configuration for the looking glass scripts.

The syntax is that of perl(1). It is used to set variables that affect run-time behavior and/or to locate resources.

## VARIABLES
The following variables are used (alphabetically):

LG_AS_REG

*** not implemented.

LG_BGP_RT

Allows show ip bgp neighbor commands that can produce heavy output, such as sh ip bgp neighbor <ip> advertised-routes for a transit customer when the neighbor address is followed by 'advertised-routes' for the sh ip bgp neighbor query.

LG_CACHE_DIR

Sets the location of the cache directory. The looking glass uses this to hold lock files, log files, and output from cached commands. Default: ./tmp

Note that the default is relative to the directory where lg.cgi runs in the server's document root (e.g.: /usr/local/www/data/lg/tmp).

LG_CACHE_TIME

Sets the number of seconds that the looking glass should cache output from commands that tend to produce a lot of output, such as 'show ip bgp dampened-paths'. Default: 600

LG_CLOGINRC

Defines the location of the cloginrc(5) that the looking glass should use. The path may be relative to the directory where the CGI scripts run in the server's document root. Default: $HOME/.cloginrc

Note that the .cloginrc must be readable by the user or group that will be running the CGI and that clogin(1) will not allow a world readable .cloginrc. The user is normally that of the http server (httpd).

LG_IMAGE

Defines a html image tag () which, if defined, will be included at the top of the looking glass pages. It may contain any html as it is simply handed off to print(). Example: $LG_IMAGE="\n FOO";

LG_INFO

Defines information in html format which, if defined, will be included at the bottom of the looking glass form page. It may contain any html as it is simply handed off to print(). Example: $LG_INFO="For Support contact webmaster";

LG_LOG

Defines the fully qualified path name (i.e.: begins with '/') for the log file or the syslog(3) facility to use for logging. For syslog, the argument is the lowercase name of a syslog facility (see syslog.h) without the 'LOG_' prefix. Example: local0

Default: $LG_CACHE_DIR/lg.log

LG_ROUTERDB

Sets the location for the router.db file in rancid's router.db(5) format. It lists the devices that should be available to the looking glass users. Only those devices of supported types and with state 'up' are made available. If not defined and the default file does not exist, the looking glass will compile a list from the router.db files of all the groups present in rancid, that is, the list will be a concatenation of the available router.db(5) files. Note that if the concatenation method is used, it may be necessary to alter the mode of the router.db files in the rancid group directories, since rancid's default umask is 027 (see rancid.conf(5)).

LG_STRIP

Causes the LG to strip login information from the looking glass results. Since Expect often munges disabling echo when passwords are entered, this is a SECURITY CONCERN! However, this output can be very useful for debugging clogin problems.

LG_STYLE

Defines the URL of a style sheet to be used for HTML formatting.

PATH

Is a colon separated list of directory pathnames in the file system where rancid's login scripts, clogin(1) etc.) and programs needed within these, such as telnet(1), are located. Its value is set by configure. Should it be necessary to modify PATH, note that it must include $BASEDIR/bin (see above).

Queries ...................................

## ENVIRONMENT
LG_CONF

Location of lg.conf file. See the FILES section for more information.

## ERRORS
lg.conf is interpreted directly by perl(1), so its syntax follows that of perl. Syntax errors may produce quite unexpected results.

## FILES
/etc/rancid/lg.conf

Configuration file described here. lg.conf is located by the value of the environment variable LG_CONF, in the CWD (current working directory), or the sysconfdir defined when rancid was installed, in that order.

## SEE ALSO
cloginrc(5), lg_intro(1), router.db(5)

## HISTORY
In RANCID releases prior to 2.3, lg.conf was located in the util/lg sub-directory of the install path. This was changed to be more consistent with common file location practices.

branch: sisyphus


rancid.conf

title: rancid.conf(5)

summary: rancid environment configuration file

text:
# rancid.conf(5)

## NAME
rancid.conf - rancid environment configuration file

## DESCRIPTION
rancid.conf contains environment configuration information for rancid-run(1) and rancid-cvs(1), including shell PATH, list of rancid groups, etc. It is read by several scripts at run-time and others inherit the configration from a parent process which has read it.

The syntax of rancid.conf is that of sh(1). rancid.conf is used to set environment variables used by other rancid scripts to effect their run-time behavior or to enable them to find their resources.

## VARIABLES
The following variables are used (listed alphabetically):

ACLSORT

Permits disabling of access-list sorting, which could alter statement order that had been cleverly crafted by the administrator for optimal performance, thus making recovery and comparsion more difficult. Default: YES

BASEDIR

BASEDIR is the directory where rancid-run's log directory, the revision control system's repository, and rancid group directories will be placed. Its value is configure's localstatedir and should be modified if rancid is moved to a new location in the file system without re-installing from the distribution.

Default: /var/lib

CVSROOT

cvs(1) and rancid-cvs(1) use this environment variable to locate the CVS repository. In some cases, and for Subversion, it is used as an argument to commands. It should not be necessary to alter it. Default: $BASEDIR/CVS

FILTER_PWDS

Determines which passwords will be filtered from configs. The value may be "NO", "YES", or "ALL" to filter none of the passwords, only those which are reversable or plain-text, or all (plus ssh keys, etc), respectively. Default: YES

Note: a value of "NO" could be a security issue since diffs are sent via e-mail. A value of "ALL" is encouraged.

Note: FILTER_PWDS does not affect the handling of SNMP community strings. see NOCOMMSTR below.

Note: passwords whose value cycles and would produce erroneous diffs are always filtered (e.g.: Alteon passwords).

LIST_OF_GROUPS

Defines a list of group names of routers separated by white-space. These names become the directory names in $BASEDIR which contain the data for that set of devices. rancid-run(1) also uses this variable to determine which device groups it should collect. Choose these names to be descriptive of the set of devices and do not use spaces, unprintable characters, etc. Example: LIST_OF_GROUPS="UofO USFS"

Two groups are defined; UofO (University of Oregon) and USFS (US Forest Service). Each will have a directory created (see rancid-cvs(1)) $BASEDIR/UofO and $BASEDIR/USFS respectively, which will contain their data.

Each group must also have aliases for the administrative and diff recipients set-up in /etc/aliases. For example:

```
rancid-uofo:            frank
rancid-admin-uofo:      joe,bob
rancid-usfs:            frank
rancid-admin-usfs:      joe,bob
```

LOCKTIME

Defines the number of hours a group's lock file may age before rancid starts to complain about a hung collection. The default is 4 hours.

LOGDIR

Directory where rancid-run places log files. Default: $BASEDIR/logs

MAILDOMAIN

Define the domain part of addresses for administrative and diff e-mail. The value of this variable is simply appended to the normal mail addresses. For example rancid-usfs@example.com, if MAILDOMAIN had been set to "@example.com".

MAILHEADERS

Define additional mail headers to be added to rancid mail, such as Precedence or X- style headers. Individual headers must be separated by a \n (new line). Default: Precedence: bulk

Example: Precedence: bulk\nX-clamation: beef cake

MAX_ROUNDS

Defines how many times rancid should retry collection of devices that fail. The minimum is 1. Default: 4.

NOCOMMSTR

If set, rancid(1) will filter SNMP community strings from configs. Otherwise, they will be retained and may appear in clear-text in e-mail diffs. By default, this is not set.

NOPIPE

If set, rancid(1) will use temporary files to save the output from the router and then read these to build the file which will be saved in CVS (or Subversion). Otherwise, an IPC pipe will be used. We have found that the buffering mechanisms used in perl and expect are heinous. Using temporary files may result in a noticeable improvement in speed. By default, this is not set.

OLDTIME

Specified as a number of hours, OLDTIME defines how many hours should pass since a successful collection of a device's configuration and when control_rancid(1) should start complaining about failures. The value should be greater than the number of hours between rancid-run cron runs. Default: 24

PAR_COUNT

Defines the number of rancid processes that par(1) will start simultaneously as control_rancid(1) attempts to perform collections. Raising this value will decrease the amount of time necessary for a complete collection of a (or all) rancid groups at the expense of system load. The default is relatively cautious. If collections are not completing quickly enough for users, use trial and error of speed versus system load to find a suitable value. Default: 5

PATH

Is a colon separate list of directory pathnames in the the file system where rancid's sh(1) and perl(1) scripts should look for the programs that it needs, such as telnet(1). Its value is set by configure. Should it be necessary to modify PATH, note that it must include /usr/lib/rancid.

RCSSYS

Sets which revision control system is in use. Valid values are cvs for CVS or svn for Subversion. Default: cvs

TERM

Some Unix utilities require TERM, the terminal type, to be set to a sane value. Some clients, such as telnet(1) and ssh(1), communicate this to the server (i.e.: the remote device), thus this can affect the behavior of login sessions on a device. The default should suffice. Default: network

TMPDIR

Some Unix utilities recognize TMPDIR as a directory where temporary files can be stored. In some cases, rancid utilizes this directory for lock files and other temporary files. Default: /tmp

Each of these are simply environment variables. In order for them to be present in the environment of child processes, each must be exported. See sh(1) for more information on the built-in command export.

## ERRORS
rancid.conf is interpreted directly by sh(1), so its syntax follows that of the bourne shell. Errors may produce quite unexpected results.

## FILES
/etc/rancid/rancid.conf

Configuration file described here.

## SEE ALSO
control_rancid(1), rancid(1), rancid-cvs(1), rancid-run(1)

## HISTORY
In RANCID releases prior to 2.3, rancid.conf was named env and located in the bin directory. This was changed to be more consistent with common file location practices.


router.db

title: router.db(5)

summary: rancid group configuration file

text:
# router.db(5)

## NAME
router.db - rancid group configuration file

## DESCRIPTION
router.db contains information for devices which are members of a rancid group. control_rancid(1) reads this file to compile a list of devices which it should collect.

## SYNTAX
One device is listed per-line, where the syntax is:

```
<device_name>:<device_type>:<state>[:comments]
```

For example:

```
scooby.shrubbery.net:cisco:up
```

The fields are as follows:

<device_name>

The name of the device, which must resolve via gethostbyname, used as the argument to telnet(1), rsh(1), or ssh(1), to connect to the device. Once converted to lower-case, this also becomes the name of the file used to store the configuration under $BASEDIR/<group>/configs. Experience has shown that using the device's FQDN (Fully Qualified Domain Name) works best, as in the example above.

<device_type>

The type of device from the set:

agm

A Cisco Anomoly Guard Module (aka Riverhead). Suspect that at some point the UI will become more cisco-like and it can be merged with the IOS rancid module.

alteon

An Alteon WebOS switches.

arista

An Arista Networks device.

avocent

An Avocent Cyclades console server.

baynet

A Bay Networks router.

cat5

A Cisco catalyst series 5000 and 4000 switches (i.e.: running the catalyst OS, not IOS).

cisco

A Cisco router, PIX, or switch such as the 3500XL or 6000 running IOS (or IOS-like) OS, but not IOS-XR.

cisco-nx

A Cisco Nexus switch/router.

cisco-xr

A Cisco device running IOS-XR.

css

A Cisco content services switch.

enterasys

An enterasys NAS. This is currently an alias for the riverstone device type.

erx

A Juniper E-series edge router.

extreme

An Extreme switch.

ezt3

An ADC-Kentrox EZ-T3 mux.

f5

A F5 BigIP switch.

force10

A Force10 router.

fortigate

A Fortinet firewall.

foundry

A Foundry router, switch, or router-switch. This includes HP Procurve switches that are OEMs of Foundry products, such as the HP9304M.

hitachi

A Hitachi router.

hp

A HP Procurve switch such as the 2524 or 4108 procurve switches. Also see the foundry type.

juniper

A Juniper router.

mikrotik

A Mikrotik router.

mrtd

A host running the (Merit) MRTd daemon.

netscalar

A Netscalar load balancer.

netscreen

A Netscreen firewall.

procket

A Procket router.

redback

A Redback router, NAS, etc.

riverstone

A Riverstone NAS or Cabletron (starting with version ~9.0.3) router.

smc

A SMC switch (some Dell OEMs).

tnt

A Lucent TNT.

zebra

Zebra routing software.

<state>

The state is either "up", or some other arbitrary value, e.g. "down". If the device is not marked "up" the device's configuration will not be collected. It is highly recommended that comments are made for any router not listed as up, so as to indicate the reason a router is not to be polled, e.g.: dial1.paris:cisco:up:

core1.paris:cisco:down:in testing until 5/5/2001.

core2.paris:cisco:ticketed:Ticket 6054234, 5/3/2001

border1.paris:juniper:up:

The script "downreport" in util/ can be used to produce a report of routers in router.db that are not marked "up".

[comments]

Freeform string to describe the current state of the router.

A ``#'' at the begining of a line is a comment; the entire line is ignored.

If a device is deleted from the router.db file, then rancid will clean up by removing the device's config file from $BASEDIR/<group>/configs. The device will be removed from the revision control system. It is possible, in most cases, to resurrect or check-out copies of deleted device configurations.

## FILES
$BASEDIR/<group>/router.db

Configuration file described here, where <group> is a device group name defined in the variable LIST_OF_GROUPS within $BASEDIR/etc/rancid.conf.

## SEE ALSO
control_rancid(1), rancid(1), rancid.conf(5)


razor-agent.conf

package: razor

title: razor-agent.conf(5)

summary: Configuration file for Razor Agents

text:
# razor-agent.conf(5)

## NAME
"razor-agent.conf" - Configuration file for Razor Agents

## DESCRIPTION
"razor-agent.conf" is a configuration file read by the razor agents, which include razor-check(1), razor-admin(1), razor-report(1), and razor-revoke(1). The format is "attribute = value" pairs, one pair per line. Lines that begin with `#' are treated as comments.

## ATTRIBUTES
Following attributes can be specified:

razorhome

Directory where Razor Agents look for files. All files in "razor-agent.conf" without a full path will be relative to "razorhome". The default is "/etc/razor/" for root, and "~/.razor/" for every other user. If "razorhome" does not exist, it will be created.

logfile

Log file for the Razor Agents. The default is "razor-agent.log".

debuglevel

Controls the amount of messages written to logfile. It is an integer between 0 and 20. For Example, a value of 1 logs only startup and error messages, 5 includes every transaction with the server, and 14 is extremely verbose information intended for debugging use only. NOTE: 15 and higher create debug files on your filesystem -- do not use unless you know what you are doing. The default is 5.

identity

Specify an identify file to use for storing a newly registered identity during razor-admin(1). For razor-report(1) and razor-revoke(1), use this identity when authenticating with Razor Servers. If not specified, "<razorhome>/identity-<user>" is used.

listfile_nomination

File where Razor Nomination Servers are listed, in order of closest TCP ping time. Nomination Servers are used by razor-report(1) and razor-revoke(1). This file is created automatically. The default is "servers.nomination.lst".

listfile_catalogue

File where Razor Catalogue Servers are listed, in order of closest TCP ping time. Catalogue Servers are used by razor-check(1). This file is created automatically. The default is "servers.catalogue.lst".

listfile_discovery

File where Razor Discovery Servers are listed, in random order. This file is created automatically using DNS. The default is "servers.discovery.lst".

rediscovery_wait_dns

Max time in seconds Razor Agents will wait before computing a new "listfile_discovery" using DNS. The default is 604800, which is 7 days.

rediscovery_wait

Max time in seconds Razor Agents will wait before computing a new "listfile_nomination" and a new "listfile_catalogue". The default is 172800, which is 2 days.

turn_off_discovery

Turns off closest host discovery. When set to 1, "listfile_catalogue" and "listfile_nomination" will not be updated and "listfile_discovery" is not read or updated. The default is 0.

ignorelist

Automatically ignore mailing list posts. If set to 0, mailing list posts will be handled like all other mail. The default is 0.

whitelist

Name of whitelist file. Razor Agents can consult a whitelist of addresses and SHA1 hashes before checking a mail with Razor Servers. If the address/hash is found on the whitelist, the mail is marked `not spam', without checking against the server. The format of the whitelist can be found in razor-whitelist(5) manpage. The default is "razor-whitelist".

min_cf

When checking spam, the server optionally returns a spam confidence value ranging from 0 (not confident) to 100 (absolutely or 100% confident). To be considered spam, the server's spam confidence value must be greater than or equal to "min_cf". "min_cf" can be a number or an expression containing ac, the average confidence published by a Razor Server. Examples: 0, 60, 100, ac, ac + 10, ac - 20. If an expression evaluates to less than 0 it becomes 0, likewise those greater than 100 become 100. The default is "ac".

report_headers

When reporting spam, the entire email (headers and body) is sent to a Razor Nomination Server. When set to 0, all the headers are removed except headers beginning with "Content-" before sending, and a special header beginning with "X-Razor2" is added to note this action. The default is 1.

## AUTHORS
Vipul Ved Prakash, <mail@vipul.net> and Chad Norwood <chad@samo.org>

## SEE ALSO
razor-agents(1), razor-check(1), razor-admin(1), razor-report(1), razor-revoke(1), razor-whitelist(5)


razor-agents

title: razor-agents(5)

text:
# razor-agents(5)

## NAME
Razor-Agents - Collection of files for checking, reporting, and revoking spam

## DESCRIPTION
Vipul's Razor is a distributed, collaborative, spam detection, reporting, and filtering network. The primary focus of the system is to identify and remove all email spam from the internet. Visit the website at http://razor.sourceforge.net/.

## USAGE
First a razorhome directory should be created where log, conf, and cached server information will live. This is done via "-create" option to razor-admin(1). See man page for details.

You can immediately check spam using razor-check(1). See man page for details.

To report spam, an identity must be registered. This is done via "-register" option to razor-admin(1). After that, razor-report(1) and razor-revoke(1) will work flawlessly.

## CONFIGURATION
All Razor-Agents share a configuration file. The contents of the configuration file are detailed in the razor-agent.conf(5) manpage.

Config file is computed before razorhome, in the following order:

```
 -conf=/path/file.conf           used if readable, else
 <home>/.razor/razor-agent.conf  used if readable, else
 /etc/razor/razor-agent.conf     used if readable, else
 all defaults are used.
```

To see configuration defaults, do

razor-admin -create -conf=/tmp/razor2-defaults.conf

## RAZORHOME
All Razor-Agents also share a razorhome directory, where identity, logging, and cached information about servers is stored. Razorhome is computed after configuration file, in the following order.

```
 -home=/tmp/razor/                     used if readable, else
 'razorhome' from configuration file   used if readable, else
 <home>/.razor/                        used if readable, else
 <home>/.razor/                        is created.  if that fails,
                                       no razorhome.
 NOTE: If there is no razorhome, razor-report and razor-revoke will
       not work unless you specify  -ident=/path/identity
       razor-check will still work.
```

## FILES
Besides those listed at the end with their own manpages, Razor Agents also has the following files.

razorhome/identity

Usually a symlink to identity file containing user+pass. Used by razor-report(1) and razor-revoke(1).

razorhome/razor-agent.log

Default log file. To change, edit razor-agent.conf(5).

razorhome/servers.*.lst

Cached list of Razor Servers. If more than one, they are ordered by closest ping time.

razorhome/server.<name>.lst

Cached info for <name> server. The "srl" key in this file is compared against the server greeting, and if server's is greater, new cache info is retrieved from the server.

## EXAMPLES
razor-check -d -debuglevel=9 mbox

Checks spam in mbox. prints numbers for those found to be spam. -d logs to stdout, -debuglevel=9 is verbose logging

razor-admin -create -home=/home/chad/.razor -d -s

Creates razorhome in /home/chad/.razor, log to stdout, does not connect to server (-s simulate).

razor-report spam -debuglevel=0

sends spam to server, with no log msgs.

## AUTHORS
Vipul Ved Prakash, <mail@vipul.net> and Chad Norwood <chad@samo.org>

## SEE ALSO
razor-agent.conf(5), razor-check(1), razor-admin(1), razor-report(1), razor-revoke(1), razor-whitelist(5)


razor-whitelist

title: razor-whitelist(5)

summary: Format for Vipul's Razor Whitelist

text:
# razor-whitelist(5)

## NAME
"razor-whitelist" - Format for Vipul's Razor Whitelist

## DESCRIPTION
The razor whitelist is a list of email addresses and body signatures. Emails that match the whitelist are not processed by any of the Razor Agents. That is, They are not checked, reported, or revoked. In the case of razor-check(1), they are instantly marked as non-spam.

## LOCATION
The razor whitelist is usually "<razorhome>/razor-whitelist". The "whitelist" parameter in razor-agent.conf(5) should point to this file. If the "whitelist" parameter in razor-agent.conf(5) is missing, "whitelist" is not used.

## FORMAT
Each whitelist rule is placed on a line of its own. Lines that begin in a `#' character are considered to be comments and are ignored by the parser. A rule contains the name of a header and the string to match against the header, separated by whitespace. Here are some examples:

```
 to bugtraq@securityfocus.com
 cc a.list@somewhere.net
```

These rules imply that when a mail contains "bugtraq@securityfocus.com" in its `to' and `cc' headers, it should be whitelisted. It's worth noting that a match occurs if the address string matches any part of the address.

```
 from @mydomain.com
```

A special rule called `sha1' can be used for whitelisting signatures. For example:

```
 sha1 75f8bcc2357366bbfa9c6ab0b6e5648ed0cf7083
```

whitelists a message with the body of `test'.

## AUTHORS
Vipul Ved Prakash <mail@vipul.net>, and Chad Norwood <chad@samo.org>

## SEE ALSO
razor-agents(1), razor-agent.conf(5), razor-check(1), razor-admin(1), razor-report(1), razor-revoke(1)

## LICENSE
This is free software, distributed under the Artistic License 2.0.


rcsfile

package: rcs

title: rcsfile(5)

summary: \*o format

text:
# rcsfile(5)

## NAME
rcsfile - RCS file format

## DESCRIPTION
An RCS file's contents are described by the grammar below.

The text is free format: space, backspace, tab, newline, vertical tab, form feed, and carriage return (collectively, white space) have no significance except in strings. However, white space cannot appear within an id, num, or sym, and an RCS file must end with a newline.

Strings are enclosed by @. If a string contains a @, it must be doubled; otherwise, strings can contain arbitrary binary data.

The meta syntax uses the following conventions: `|' (bar) separates alternatives; `{' and `}' enclose optional phrases; `{' and `}*' enclose phrases that can be repeated zero or more times; `{' and '}+' enclose phrases that must appear at least once and can be repeated; Terminal symbols are in boldface; nonterminal symbols are in italics.

```
rcstext	::=	admin {delta}* desc {deltatext}*
```

```
admin	::=	head	{num};
		{ branch	{num}; }
		access	{id}*;
		symbols	{sym : num}*;
		locks	{id : num}*;  {strict  ;}
		{ integrity	{intstring}; }
		{ comment	{string}; }
		{ expand	{string}; }
```

```
delta	::=	num
		date	num;
		author	id;
		state	{id};
		branches	{num}*;
		next	{num};
		{ commitid sym; }
```

```
desc	::=	desc	string
```

```
deltatext	::=	num
		log	string
		text	string
```

```
num	::=	{digit | .}+
```

```
digit	::=	0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
```

```
id	::=	{idchar | .}+
```

```
sym	::=	{idchar}+
```

```
idchar	::=	any visible graphic character except special
```

```
special	::=	$ | , | . | : | ; | @
```

```
string	::=	@{any character, with @ doubled}*@
```

```
word	::=	id | num | string | :
```

```
intchar	::=	any character, except @
```

```
thirdp	::=	^L {intchar}*
```

```
intstring	::=	@ {intchar}* {thirdp}* @
```

In releases prior to 5.8 (2011-08-30), the grammar included the newphrase production and used it in the admin, delta and deltatext productions. This allowed third-party programs to interoperate with RCS by storing opaque (to RCS) data in the file. As of 5.8, in the name of progress (towards more systematic file integrity support), the only area reserved for third-party interop is in the (string) value of the integrity field, specifically after the first ^L (formfeed). A further restriction (for all programs) is that the integrity value must not contain @.

Identifiers are case sensitive. Keywords are in lower case only. The sets of keywords and identifiers can overlap. In most environments RCS uses the ISO 8859/1 encoding: visible graphic characters are codes 041-176 and 240-377, and white space characters are codes 010-015 and 040.

Dates, which appear after the date keyword, are of the form Y.mm.dd.hh.mm.ss, where Y is the year, mm the month (01-12), dd the day (01-31), hh the hour (00-23), mm the minute (00-59), and ss the second (00-60). Y contains just the last two digits of the year for years from 1900 through 1999, and all the digits of years thereafter. Dates use the Gregorian calendar; times use UTC.

The delta nodes form a tree. All nodes whose numbers consist of a single pair (e.g., 2.3, 2.1, 1.3, etc.) are on the trunk, and are linked through the next field in order of decreasing numbers. The head field in the admin node points to the head of that sequence (i.e., contains the highest pair). The branch node in the admin node indicates the default branch (or revision) for most RCS operations. If empty, the default branch is the highest branch on the trunk.

All delta nodes whose numbers consist of 2n fields (n≥2) (e.g., 3.1.1.1, 2.1.2.2, etc.) are linked as follows. All nodes whose first 2n-1 number fields are identical are linked through the next field in order of increasing numbers. For each such sequence, the delta node whose number is identical to the first 2n-2 number fields of the deltas on that sequence is called the branchpoint. The branches field of a node contains a list of the numbers of the first nodes of all sequences for which it is a branchpoint. This list is ordered in increasing numbers.

The following diagram shows an example of an RCS file's organization.

```
                           Head

                             |

                             |

                             v                        / \

                         ---------                   /   \

   / \          / \      |       |      / \         /     \

  /   \        /   \     |  2.1  |     /   \       /       \

 /     \      /     \    |       |    /     \     /         \
/1.2.1.3\    /1.3.1.1\   |       |   /1.2.2.2\   /1.2.2.1.1.1\
---------    ---------   ---------   ---------   -------------

    ^            ^           |           ^             ^

    |            |           |           |             |

    |            |           v           |             |

   / \           |       ---------      / \            |

  /   \          |       \  1.3  /     /   \           |

 /     \         ---------\     /     /     \-----------
/1.2.1.1\      1.3.1       \   /     /1.2.2.1\     1.2.2.1.1
---------                   \ /      ---------

    ^                        |           ^

    |                        |           |

    |                        v           |

    |                    ---------       |

    |                    \  1.2  /       |

    ----------------------\     /---------

  1.2.1                    \   /       1.2.2

                            \ /

                             |

                             |

                             v

                         ---------

                         \  1.1  /

                          \     /

                           \   /

                            \ /
```

## IDENTIFICATION
Author: Walter F. Tichy.

Manual Page Revision: 5.10.1; Release Date: 2025-04-19.

Copyright © 2010-2022 Thien-Thi Nguyen.

Copyright © 1990, 1991, 1992, 1993, 1994, 1995 Paul Eggert.

Copyright © 1982, 1988, 1989 Walter F. Tichy.

## SEE ALSO
ci(1), co(1), ident(1), rcs(1), rcsclean(1), rcsdiff(1), rcsmerge(1), rlog(1).

Walter F. Tichy, RCS--A System for Version Control, Software--Practice & Experience 15, 7 (July 1985), 637-654.

The full documentation for RCS is maintained as a Texinfo manual. If the info(1) and RCS programs are properly installed at your site, the command

info rcs

should give you access to the complete manual. Additionally, the RCS homepage:

http://www.gnu.org/software/rcs/

has news and links to the latest release, development site, etc.


realmd.conf

package: realmd

title: realmd.conf(5)

summary: Tweak behavior of realmd

text:
# realmd.conf(5)

## NAME
realmd.conf - Tweak behavior of realmd

## CONFIGURATION FILE
realmd can be tweaked by network administrators to act in specific ways. This is done by placing settings in a /etc/realmd.conf. This file does not exist by default. The syntax of this file is the same as an INI file or Desktop Entry file. If the file is changed and realmd is running realmd must be restarted to read the new values.

In general, settings in this file only apply at the point of joining a domain or realm. Once the realm has been setup the settings have no effect. You may choose to configure SSSD[1] or Winbind[2] directly.

Only specify the settings you wish to override in the /etc/realmd.conf file. Settings not specified will be loaded from their packaged defaults which can be found in /usr/lib/realmd/realmd-defaults.conf and /usr/lib/realmd/realmd-distro.conf. Only override the settings below. You may find other settings if you look through the realmd source code. However these are not guaranteed to remain stable.

There are various sections in the config file. Some sections are global topic sections, and are listed below. Other sections are specific to a given realm. These realm specific sections should always contain the domain name in lower case as their section header.

Examples of each setting is found below, including the header of the section it should be placed in. However in the resulting file only include each section once, and combine the various section setting together as lines underneath the section. For example

```
[users]
default-home = /home/%U
default-shell = /bin/bash
```

## ACTIVE-DIRECTORY
These options should go in an [active-directory] section of the /etc/realmd.conf file. Only specify the settings you wish to override.

default-client

Specify the default-client setting in order to control which client software is the preferred default for use with Active Directory.

```
[active-directory]
default-client = sssd
# default-client = winbind
```

The default setting for this is sssd which uses SSSD[1] as the Active Directory client. You can also specify winbind to use Samba Winbind[2]. Some callers of realmd such as the realm(8) command line tool allow specifying which client software should be used. Others, such as GNOME Control Center, simplify choose the default.

You can verify the preferred default client softawre by running the following command. The realm with the preferred client software will be listed first.

```
$ realm discover domain.example.com
domain.example.com

  configured: no

  server-software: active-directory

  client-software: sssd

  type: kerberos

  realm-name: AD.THEWALTER.LAN

  domain-name: ad.thewalter.lan
domain.example.com

  configured: no

  server-software: active-directory

  client-software: winbind

  type: kerberos

  realm-name: AD.THEWALTER.LAN

  domain-name: ad.thewalter.lan
```

use-ldaps

Use the ldaps port when connecting to AD where possible. In general this option is not needed because realmd itself only read public information from the Active Directory domain controller which is available anonymously. The supported membership software products will use encrypted connections protected with GSS-SPNEGO/GSSAPI which offers a comparable level of security than ldaps. This option is only needed if the standard LDAP port (389/tcp) is blocked by a firewall and only the LDAPS port (636/tcp) is available. If this option is set to yes realmd will use the ldaps port when reading the rootDSE and call the adcli membership software with the option --use-ldaps. The Samba base membership currently offers only deprecated ways to enable ldaps. Support will be added in realmd when a new way is available.

os-name

(see below)

os-version

Specify the os-name and/or os-version settings to control the values that are placed in the computer account operatingSystem and operatingSystemVersion attributes. This is an Active Directory specific option.

It is also possible to use the --os-name or --os-version argument of the realm command to override the default values.

```
[active-directory]
os-name = Gentoo Linux
os-version = 9.9.9.9.9
```

## SERVICE
These options should go in an [service] section of the /etc/realmd.conf file. Only specify the settings you wish to override.

automatic-install

Set this to no to disable automatic installation of packages via package-kit.

```
[service]
automatic-install = no
# automatic-install = yes
```

legacy-samba-config

Set this to yes to create a Samba configuration file with id-mapping options used by Samba-3.5 and earlier version.

```
[service]
legacy-samba-config = no
# legacy-samba-config = yes
```

## USERS
These options should go in an [users] section of the /etc/realmd.conf file. Only specify the settings you wish to override.

default-home

Specify the default-home setting in order to control how to set the home directory for accounts that have no home directory explicitly set.

```
[users]
default-home = /home/%U@%D
# default-home = /nfs/home/%D-%U
# default-home = /home/%D/%U
```

The default setting for this is /home/%U@%D. The %D format is replaced by the domain name. The %U format is replaced by the user name. You can verify the home directory for a user by running the following command.

```
$ getent passwd 'DOMAIN/User'
DOMAIN\user:*:13445:13446:Name:/home/DOMAIN/user:/bin/bash
```

Note that in the case of IPA domains, most users already have a home directory configured in the domain. Therefore this configuration setting may rarely show through.

default-shell

Specify the default-shell setting in order to control how to set the Unix shell for accounts that have no shell explicitly set.

```
[users]
default-shell = /bin/bash
# default-shell = /bin/sh
```

The default setting for this is /bin/bash shell. The shell should be a valid shell if you expect the domain users be able to log in. For example it should exist in the /etc/shells file. You can verify the shell for a user by running the following command.

```
$ getent passwd 'DOMAIN/User'
DOMAIN\user:*:13445:13446:Name:/home/DOMAIN/user:/bin/bash
```

Note that in the case of IPA domains, most users already have a shell configured in the domain. Therefore this configuration setting may rarely show through.

## PATHS
These options should go in an [paths] section of the /etc/realmd.conf file. Only specify the settings you wish to override.

krb5.conf

Path to the Kerberos configuration file, typically /etc/krb5.conf. It can also be the path of a file included by /etc/krb5.conf, e.g. /etc/krb5.conf.d/realmd_settings, if the file does not exist if will be created.

```
[paths]
krb5.conf = /etc/krb5.conf.d/realmd_settings
```

When joining an Active Directory domain realmd will set the default_realm and udp_preference_limit options in the Kerberos configuration:

```
default_realm = DOMAIN.EXAMPLE.COM
udp_preference_limit = 0
```

The default_realm option is e.g. needed when trying to resolve enterprise principals and makes it more convenient to request Kerberos tickets for users of the default realm. Instead of specifying the whole principal just kinit username can be used. With udp_preference_limit = 0 always TCP will be used to send Kerberos request to domain controller. This is useful in Active Directory environments because Kerberos will typically switch to TCP after initially starting with UDP because AD Kerberos tickets are often larger than UDP can handle. Using TCP by default will avoid those extra UDP round trips. Additionally it helps to avoid issues with password changes when the DC does not reply soon enough and the client will send a second UDP request. The DC might reply with a reply error to the second request although the original password change request was successful and the client will no know if the request was successful or not. When using TCP this cannot happen because the client will never send a second request but waits on the connection until the server replies.

Please note that realmd will not remove those options while leaving the domain since they are useful in general. When joining a new domain realmd will of course overwrite default_realm.

## REALM SPECIFIC SETTINGS
These options should go in an section with the same name as the realm in the /etc/realmd.conf file. For example for the domain.example.com domain the section would be called [domain.example.com]. To figure out the canonical name for a realm use the realm command:

```
$ realm discover --name-only DOMAIN.example.com
domain.example.com
...
```

Only specify the settings you wish to override.

computer-ou

Specify this option to create directory computer accounts in a location other than the default. This currently only works with Active Directory domains.

```
[domain.example.com]
computer-ou = OU=Linux Computers,DC=domain,DC=example,DC=com
# computer-ou = OU=Linux Computers,
```

Specify the OU as an LDAP DN. It can be relative to the Root DSE, or a complete LDAP DN. Obviously the OU must exist in the directory. It is also possible to use the --computer-ou argument of the realm command to create a computer account at a specific OU.

computer-name

This option only applied to Active Directory realms. Specify this option to override the default name used when creating the computer account. The system's FQDN will still be saved in the dNSHostName attribute.

```
[domain.example.com]
computer-name = SERVER01
```

Specify the name as a string of 15 or fewer characters that is a valid NetBIOS computer name. It is also possible to use the --computer-name argument of the realm command to override the default computer account name.

user-principal

Set the user-principal to yes to create userPrincipalName attribute for the computer accounts in the realm. The exact value depends on the defaults of the used membership software. To have full control over the value please use the --user-principal option of the realm command, see realm(8) for details.

```
[domain.example.com]
user-principal = yes
```

automatic-join

This option only applies to Active Directory realms. This option is off by default. In Active Directory domains, a computer account can be preset with a known computer account password. This can be used for automatic joins without authentication. When automatic joins are used there is no mutual authentication between the machine and the domain during the join process.

```
[domain.example.com]
automatic-join = yes
```

automatic-id-mapping

This option is on by default for Active Directory realms. Turn it off to use UID and GID information stored in the directory (as-per RFC2307) rather than automatically generating UID and GID numbers. This option only makes sense for Active Directory realms.

```
[domain.example.com]
automatic-id-mapping = no
# automatic-id-mapping = yes
```

manage-system

This option is on by default. Normally joining a realm affects many aspects of the configuration and management of the system. Turning this off limits the interaction with the realm or domain to authentication and identity.

```
[domain.example.com]
manage-system = no
# manage-system = yes
```

When this option is turned on realmd defaults to using domain policy to control who can log into this machine. Further adjustments to login policy can be made with the realm permit command.

fully-qualified-names

This option is on by default. If turned off then realm user and group names are not qualified their name. This may cause them to conflict with local user and group names.

```
[domain.example.com]
fully-qualified-names = no
# fully-qualified-names = yes
```

## SEE ALSO
realm(8)

## AUTHOR
Stef Walter <stef@thewalter.net>

Maintainer

## NOTES
1.

SSSD

https://fedorahosted.org/sssd/

2.

Winbind

http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/winbind.html


recoll.conf

package: recoll

title: recoll.conf(5)

text:
# recoll.conf(5)

## NAME
recoll.conf - main personal configuration file for Recoll

## DESCRIPTION
This file defines the index configuration for the Recoll full-text search system.

The system-wide configuration file is normally located inside /usr/[local]/share/recoll/examples. Any parameter set in the common file may be overridden by setting it in the specific index configuration file, by default: $HOME/.recoll/recoll.conf

All recoll commands will accept a -c option or use the $RECOLL_CONFDIR environment variable to specify a non-default index configuration directory.

A short extract of the file might look as follows:

```
# Space-separated list of directories to index.
topdirs =  ~/docs /usr/share/doc
[~/somedirectory-with-utf8-txt-files]
defaultcharset = utf-8
```

There are three kinds of lines:

- Comment or empty.

- Parameter affectation.

- Section definition.

Empty lines or lines beginning with # are ignored.

Affectation lines are in the form 'name = value'. In the following description, they also have a type, which is mostly indicative. The two non-obvious ones are 'fn': file path, and 'dfn': directory path.

Section lines allow redefining a parameter for a directory subtree. Some of the parameters used for indexing are looked up hierarchically from the more to the less specific. Not all parameters can be meaningfully redefined, this is specified for each in the next section.

The tilde character (~) is expanded in file names to the name of the user's home directory.

Some 'string' values are lists, which is only indicated by their description. In this case white space is used for separation, and elements with embedded spaces can be quoted with double-quotes.

## OPTIONS
topdirs = string

Space-separated list of files or directories to recursively index. You can use symbolic links in the list, they will be followed, independently of the value of the followLinks variable. The default value is ~ : recursively index the user home folder.

monitordirs = string

Space-separated list of files or directories to monitor for updates. When running the real-time indexer, this allows monitoring only a subset of the whole indexed area. The elements must be included in the tree defined by the 'topdirs' members.

skippedNames = string

File and directory names which should be ignored. White space separated list of wildcard patterns (simple ones, not paths, must contain no Have a look at the default configuration for the initial value, some entries may not suit your situation. The easiest way to see it is through the GUI Index configuration "local parameters" panel.

The list in the default configuration does not exclude hidden directories (names beginning with a dot), which means that it may index quite a few things that you do not want. On the other hand, email user agents like Thunderbird usually store messages in hidden directories, and you probably want this indexed. One possible solution is to have ".*" in "skippedNames", and add things like "~/.thunderbird" "~/.evolution" to "topdirs".

Not even the file names are indexed for patterns in this list, see the "noContentSuffixes" variable for an alternative approach which indexes the file names. Can be redefined for any subtree.

skippedNames- = string

List of name patterns to remove from the default skippedNames list. Allows modifying the list in the local configuration without copying it.

skippedNames+ = string

List of name patterns to add to the default skippedNames list. Allows modifying the list in the local configuration without copying it.

onlyNames = string

Regular file name filter patterns. This is normally empty. If set, only the file names not in skippedNames and matching one of the patterns will be considered for indexing. Can be redefined per subtree. Does not apply to directories.

noContentSuffixes = string

List of name endings (not necessarily dot-separated suffixes) for which we only index the names ("Ignored endings" in the GUI preferences). Only the names will be indexed. This complements the now obsoleted recoll_noindex list from the mimemap file, which will go away in a future release (the move from mimemap to recoll.conf allows editing the list through the GUI). This is different from skippedNames because these are name ending matches only (not wildcard patterns), and the file name itself gets indexed normally. This can be redefined for subdirectories.

noContentSuffixes- = string

List of name endings to remove from the default noContentSuffixes list.

noContentSuffixes+ = string

List of name endings to add to the default noContentSuffixes list.

skippedPaths = string

Absolute paths we should not go into. Space-separated list of wildcard expressions for absolute filesystem paths (for files or directories). The variable must be defined at the top level of the configuration file, not in a subsection. Any value in the list must be textually consistent with the values in topdirs, no attempts are made to resolve symbolic links. In practise, if, as is frequently the case, /home is a link to /usr/home, your default topdirs will have a single entry "~" which will be translated to "/home/yourlogin". In this case, any skippedPaths entry should start with "/home/yourlogin" *not* with "/usr/home/yourlogin".

The index and configuration directories will automatically be added to the list.

The expressions are matched using "fnmatch(3)" with the FNM_PATHNAME flag set by default. This means that "/" characters must be matched explicitly. You can set "skippedPathsFnmPathname" to 0 to disable the use of FNM_PATHNAME (meaning that "/*/dir3" will match "/dir1/dir2/dir3").

The default value contains the usual mount point for removable media to remind you that it is in most cases a bad idea to have Recoll work on these. Explicitly adding "/media/xxx" to the "topdirs" variable will override this.

skippedPathsFnmPathname = bool

Set to 0 to override use of FNM_PATHNAME for matching skipped paths.

nowalkfn = string

File name which will cause its parent directory to be skipped. Any directory containing a file with this name will be skipped as if it was part of the skippedPaths list. Ex: .recoll-noindex

daemSkippedPaths = string

skippedPaths equivalent specific to real time indexing. This enables having parts of the tree which are initially indexed but not monitored. If daemSkippedPaths is not set, the daemon uses skippedPaths.

followLinks = bool

Follow symbolic links during indexing. The default is to ignore symbolic links to avoid multiple indexing of linked files. No effort is made to avoid duplication when this option is set to true. This option can be set individually for each of the "topdirs" members by using sections. It can not be changed below the "topdirs" level. Links in the "topdirs" list itself are always followed.

indexedmimetypes = string

Restrictive list of indexed MIME types. Normally not set (in which case all supported types are indexed). If it is set, only the types from the list will have their contents indexed. The names will be indexed anyway if indexallfilenames is set (default). MIME type names should be taken from the mimemap file (the values may be different from xdg-mime or file -i output in some cases). Can be redefined for subtrees. Recoll versions after 1.43.7 (excluded) support wildcards in the values.

excludedmimetypes = string

List of excluded MIME types. Lets you exclude some types from indexing. MIME type names should be taken from the mimemap file (the values may be different from xdg-mime or file -i output in some cases) Can be redefined for subtrees. Recoll versions after 1.43.7 (excluded) support wildcards in the values.

nomd5types = string

MIME types for which we don't compute a md5 hash. md5 checksums are used only for deduplicating results, and can be very expensive to compute on multimedia or other big files. This list lets you turn off md5 computation for selected types. It is global (no redefinition for subtrees). At the moment, it only has an effect for external handlers (exec and execm). The file types can be specified by listing either MIME types (e.g. audio/mpeg) or handler names (e.g. rclaudio.py).

compressedfilemaxkbs = int

Size limit for compressed files. We need to decompress these in a temporary directory for identification, which can be wasteful in some cases. Limit the waste. Negative means no limit. 0 results in no processing of any compressed file. Default 100 MB. This does *not* concern archives like zip or rar files, but only single, e.g. gzipped, files.

textfilemaxmbs = int

Size limit for text files. Mostly for skipping monster logs. Also used for max mail msg body size. Default 20 MB. Use a value of -1 to disable.

textfilepagekbs = int

Page size for text files. If this is set, text/plain files will be divided into documents of approximately this size. This will reduce memory usage at index time and help with loading data in the preview window at query time. Particularly useful with very big files, such as application or system logs. Also see textfilemaxmbs and compressedfilemaxkbs.

textunknownasplain = bool

Process unknown text/xxx files as text/plain Allows indexing misc. text files identified as text/whatever by "file" or "xdg-mime" without having to explicitly set config entries for them. This works fine for indexing (also will cause processing of a lot of useless files), but the documents indexed this way will be opened by the desktop viewer, even if text/plain has a specific editor.

indexallfilenames = bool

Index the file names of unprocessed files. Index the names of files the contents of which we don't index because of an excluded or unsupported MIME type.

usesystemfilecommand = bool

Try to guess MIME type from data. The name is historical and kept for compatibility, old versions used to execute 'file' or 'xdg-mime' to determine a MIME type when not using the extension. Current Recoll versions use libmagic for this. (A compile-time configuration can still restore the old behaviour, disabling libmagic and using a command). This identification method can be more accurate in some cases than the suffix-based one, but it's slower and will cause the indexing of many bogus extension-less "text" files. In addition it will identify all zip-based formats (e.g. libreoffice) as application/zip, which is of course wrong, so it can only be a secondary step. Also see "systemfilecommand".

systemfilecommand = string

Command to use for guessing the MIME type (if not compiled to use libmagic). The default is now to use libmagic instead. If in use, this should be a "file --mime-type" workalike. The file path will be added as a last parameter to the command line. "xdg-mime" works better than the traditional "file" command, and is now the configured default (with a hard-coded fallback to "file")

processwebqueue = bool

Decide if we process the Web queue. The queue is a directory where the Recoll Web browser plugins create the copies of visited pages.

membermaxkbs = int

Size limit for archive members. This is passed to the MIME handlers in the environment as RECOLL_FILTER_MAXMEMBERKB.

indexStripChars = bool

Decide if we store character case and diacritics in the index. If we do, searches sensitive to case and diacritics can be performed, but the index will be bigger, and some marginal weirdness may sometimes occur. The default is a stripped index. When using multiple indexes for a search, this parameter must be defined identically for all. Changing the value implies an index reset.

indexStoreDocText = bool

Decide if we store the documents' text content in the index. Storing the text allows extracting snippets from it at query time, instead of building them from index position data. Newer Xapian index formats have rendered our use of positions list unacceptably slow in some cases. The last Xapian index format with good performance for the old method is Chert, which is default for 1.2, still supported but not default in 1.4 and will be dropped in 1.6.

The stored document text is translated from its original format to UTF-8 plain text, but not stripped of upper-case, diacritics, or punctuation signs. Storing it increases the index size by 10-20% typically, but also allows for nicer snippets, so it may be worth enabling it even if not strictly needed for performance if you can afford the space.

The variable only has an effect when creating an index, meaning that the xapiandb directory must not exist yet. Its exact effect depends on the Xapian version.

For Xapian 1.4, if the variable is set to 0, we used to use the Chert format and not store the text. If the variable was 1, Glass was used, and the text stored. We don't do this any more: storing the text has proved to be the much better option, and dropping this possibility simplifies the code.

So now, the index format for a new index is always the default, but the variable still controls if the text is stored or not, and the abstract generation method. With Xapian 1.4 and later, and the variable set to 0, abstract generation may be very slow, but this setting may still be useful to save space if you do not use abstract generation at all, by using the appropriate setting in the GUI, and/or avoiding the Python API or recollq options which would trigger it.

nonumbers = bool

Decides if terms will be generated for numbers. For example "123", "1.5e6", 192.168.1.4, would not be indexed if nonumbers is set ("value123" would still be). Numbers are often quite interesting to search for, and this should probably not be set except for special situations, ie, scientific documents with huge amounts of numbers in them, where setting nonumbers will reduce the index size. This can only be set for a whole index, not for a subtree.

notermpositions = bool

Do not store term positions. Term positions allow for phrase and proximity searches, but make the index much bigger. In some special circumstances, you may want to dispense with them.

dehyphenate = bool

Determines if we index "coworker" also when the input is "co-worker". This is new in version 1.22, and on by default. Setting the variable to off allows restoring the previous behaviour.

indexedpunctuation = string

String of UTF-8 punctuation characters to be indexed as words. The resulting terms will then be searchable and, for example, by setting the parameter to "%€" (without the double quotes), you would be able to search separately for "100%" or "100€" Note that "100%" or "100 %" would be indexed in the same way, the characters are their own word separators.

backslashasletter = bool

Process backslash as a normal letter. This may make sense for people wanting to index TeX commands as such but is not of much general use.

underscoreasletter = bool

Process underscore as normal letter. This makes sense in so many cases that one wonders if it should not be the default.

maxtermlength = int

Maximum term length in Unicode characters. Words longer than this will be discarded. The default is 40 and used to be hard-coded, but it can now be adjusted. You may need an index reset if you change the value.

maxdbdatarecordkbs = int

Maximum binary size of a Xapian document data record. The data record holds "stored" document metadata fields. A very big size usually indicates a document parse error. Xapian has a hard limit of around 100MB for this.

maxdbstoredtextmbs = int

Maximum binary size of a document stored text. Xapian has a hard limit of around 100MB for the compressed value, but our limit is before compression, so there may be some wiggle room.

nocjk = bool

Decides if specific East Asian (Chinese Korean Japanese) characters/word splitting is turned off. This will save a small amount of CPU if you have no CJK documents. If your document base does include such text but you are not interested in searching it, setting nocjk may be a significant time and space saver.

cjkngramlen = int

This lets you adjust the size of n-grams used for indexing CJK text. The default value of 2 is probably appropriate in most cases. A value of 3 would allow more precision and efficiency on longer words, but the index will be approximately twice as large.

hangultagger = string

External tokenizer for Korean Hangul. This allows using an language specific processor for extracting terms from Korean text, instead of the generic n-gram term generator. See https://www.recoll.org/pages/recoll-korean.html for instructions.

chinesetagger = string

External tokenizer for Chinese. This allows using the language specific Jieba tokenizer for extracting meaningful terms from Chinese text, instead of the generic n-gram term generator. See https://www.recoll.org/pages/recoll-chinese.html for instructions.

indexstemminglanguages = string

Languages for which to create stemming expansion data. Stemmer names can be found by executing "recollindex -l", or this can also be set from a list in the GUI. The values are full language names, e.g. english, french...

defaultcharset = string

Default character set. This is used for files which do not contain a character set definition (e.g.: text/plain). Values found inside files, e.g. a "charset" tag in HTML documents, will override it. If this is not set, the default character set is the one defined by the NLS environment ($LC_ALL, $LC_CTYPE, $LANG), or ultimately iso-8859-1 (cp-1252 in fact). If for some reason you want a general default which does not match your LANG and is not 8859-1, use this variable. This can be redefined for any sub-directory.

unac_except_trans = string

A list of characters, encoded in UTF-8, which should be handled specially when converting text to unaccented lowercase. For example, in Swedish, the letter a with diaeresis has full alphabet citizenship and should not be turned into an a. Each element in the space-separated list has the special character as first element and the translation following. The handling of both the lowercase and upper-case versions of a character should be specified, as appartenance to the list will turn-off both standard accent and case processing. The value is global and affects both indexing and querying. We also convert a few confusing Unicode characters (quotes, hyphen) to their ASCII equivalent to avoid "invisible" search failures. Examples: Swedish: unac_except_trans = ää Ää öö Öö üü Üü ßss œoe Œoe æae Æae ﬀff ﬁfi ﬂfl åå Åå ’' ❜' ʼ' ‐- - German: unac_except_trans = ää Ää öö Öö üü Üü ßss œoe Œoe æae Æae ﬀff ﬁfi ﬂfl ’' ❜' ʼ' ‐- - French: you probably want to decompose oe and ae and nobody would type a German ß unac_except_trans = ßss œoe Œoe æae Æae ﬀff ﬁfi ﬂfl ’' ❜' ʼ' ‐- - The default for all until someone protests follows. These decompositions are not performed by unac, but it is unlikely that someone would type the composed forms in a search. unac_except_trans = ßss œoe Œoe æae Æae ﬀff ﬁfi ﬂfl ’' ❜' ʼ' ‐-

maildefcharset = string

Overrides the default character set for email messages which don't specify one. This is mainly useful for readpst (libpst) dumps, which are utf-8 but do not say so.

localfields = string

Set fields on all files (usually of a specific fs area). Syntax is the usual: name = value ; attr1 = val1 ; [...] value is empty so this needs an initial semi-colon. This is useful, e.g., for setting the rclaptg field for application selection inside mimeview.

testmodifusemtime = bool

Use mtime instead of ctime to test if a file has been modified. The time is used in addition to the size, which is always used. Setting this can reduce re-indexing on systems where extended attributes are used (by some other application), but not indexed, because changing extended attributes only affects ctime. Notes: - This may prevent detection of change in some marginal file rename cases (the target would need to have the same size and mtime). - You should probably also set noxattrfields to 1 in this case, except if you still prefer to perform xattr indexing, for example if the local file update pattern makes it of value (as in general, there is a risk for pure extended attributes updates without file modification to go undetected). Perform a full index reset after changing this.

noxattrfields = bool

Disable extended attributes conversion to metadata fields. This probably needs to be set if testmodifusemtime is set.

metadatacmds = string

Define commands to gather external metadata, e.g. tmsu tags. There can be several entries, separated by semi-colons, each defining which field name the data goes into and the command to use. Don't forget the initial semi-colon. All the field names must be different. You can use aliases in the "field" file if necessary. As a not too pretty hack conceded to convenience, any field name beginning with "rclmulti" will be taken as an indication that the command returns multiple field values inside a text blob formatted as a recoll configuration file ("fieldname = fieldvalue" lines). The rclmultixx name will be ignored, and field names and values will be parsed from the data. Example: metadatacmds = ; tags = tmsu tags %f; rclmulti1 = cmdOutputsConf %f

cachedir = dfn

Top directory for Recoll data. Recoll data directories are normally located relative to the configuration directory (e.g. ~/.recoll/xapiandb, ~/.recoll/mboxcache). If "cachedir" is set, the directories are stored under the specified value instead (e.g. if cachedir is ~/.cache/recoll, the default dbdir would be ~/.cache/recoll/xapiandb). This affects dbdir, webcachedir, mboxcachedir, aspellDicDir, which can still be individually specified to override cachedir. Note that if you have multiple configurations, each must have a different cachedir, there is no automatic computation of a subpath under cachedir.

maxfsoccuppc = int

Maximum file system occupation over which we stop indexing. The value is a percentage, corresponding to what the "Capacity" df output column shows. The default value is 0, meaning no checking. This parameter is only checked when the indexer starts, it will not change the behaviour or a running process.

dbdir = dfn

Xapian database directory location. This will be created on first indexing. If the value is not an absolute path, it will be interpreted as relative to cachedir if set, or the configuration directory (-c argument or $RECOLL_CONFDIR). If nothing is specified, the default is then ~/.recoll/xapiandb/

idxstatusfile = fn

Name of the scratch file where the indexer process updates its status. Default: idxstatus.txt inside the configuration directory.

mboxcachedir = dfn

Directory location for storing mbox message offsets cache files. This is normally "mboxcache" under cachedir if set, or else under the configuration directory, but it may be useful to share a directory between different configurations.

mboxcacheminmbs = int

Minimum mbox file size over which we cache the offsets. There is really no sense in caching offsets for small files. The default is 5 MB.

mboxmaxmsgmbs = int

Maximum mbox member message size in megabytes. Size over which we assume that the mbox format is bad or we misinterpreted it, at which point we just stop processing the file.

webcachedir = dfn

Directory where we store the archived web pages after they are processed. This is only used by the Web history indexing code. Note that this is different from webdownloadsdir which tells the indexer where the web pages are stored by the browser, before they are indexed and stored into webcachedir. Default: cachedir/webcache if cachedir is set, else $RECOLL_CONFDIR/webcache

webcachemaxmbs = int

Maximum size in MB of the Web archive. This is only used by the web history indexing code. Default: 40 MB. Reducing the size will not physically truncate the file.

webqueuedir = fn

The path to the Web indexing queue. This used to be hard-coded in the old plugin as ~/.recollweb/ToIndex so there would be no need or possibility to change it, but the WebExtensions plugin now downloads the files to the user Downloads directory, and a script moves them to webqueuedir. The script reads this value from the config so it has become possible to change it.

webdownloadsdir = fn

The path to the browser add-on download directory. This tells the indexer where the Web browser add-on stores the web page data. The data is then moved by a script to webqueuedir, then processed, and finally stored in webcachedir for future previews.

webcachekeepinterval = string

Page recycle interval By default, only one instance of an URL is kept in the cache. This can be changed by setting this to a value determining at what frequency we keep multiple instances ("day", "week", "month", "year"). Note that increasing the interval will not erase existing entries.

aspellDicDir = dfn

Aspell dictionary storage directory location. The aspell dictionary (aspdict.(lang).rws) is normally stored in the directory specified by cachedir if set, or under the configuration directory.

filtersdir = dfn

Directory location for executable input handlers. If RECOLL_FILTERSDIR is set in the environment, we use it instead. Defaults to $prefix/share/recoll/filters. Can be redefined for subdirectories.

iconsdir = dfn

Directory location for icons. The only reason to change this would be if you want to change the icons displayed in the result list. Defaults to $prefix/share/recoll/images

idxflushmb = int

Threshold (megabytes of new data) where we flush from memory to disk index. Setting this allows some control over memory usage by the indexer process. A value of 0 means no explicit flushing, which lets Xapian perform its own thing, meaning flushing every $XAPIAN_FLUSH_THRESHOLD documents created, modified or deleted: as memory usage depends on average document size, not only document count, the Xapian approach is is not very useful, and you should let Recoll manage the flushes, however the program compiled value is 0. The configured default value (from this file) is now 100 MB, and should be ok in many cases. You can set it as low as 10 to conserve memory, but if you are looking for maximum speed, you may want to experiment with values between 20 and 300. In my experience, values beyond this tend to be counterproductive. If you find otherwise, please drop me a note.

filtermaxseconds = int

Linux: maximum external filter execution time in seconds. Default 1200 (20mn). Set to 0 for no limit. This is mainly to avoid infinite loops in postscript files (loop.ps)

filtermaxmbytes = int

Linux: maximum virtual memory space for filter processes (setrlimit(RLIMIT_AS)), in megabytes. Note that this includes any mapped libs (there is no reliable Linux way to limit the data space only), so we need to be a bit generous here. Anything over 2000 will be ignored on 32 bits machines. The high default value is needed because of java-based handlers (pdftk) which need a lot of VM (most of it text), esp. pdftk when executed from Python rclpdf.py. You can use a much lower value if you don't need Java.

oomadj = int

Linux: Out-Of-Memory killer adjust score value for the indexer process. See choom(1). During the indexer startup, this value is passed as the adjust parameter to the choom command with the indexer process as target.

thrQSizes = string

Task queue depths for each stage and threading configuration control. There are three internal queues in the indexing pipeline stages (file data extraction, terms generation, index update). This parameter defines the queue depths for each stage (three integer values). In practise, deep queues have not been shown to increase performance. The first value is also used to control threading autoconfiguration or disabling multithreading. If the first queue depth is set to 0 Recoll will set the queue depths and thread counts based on the detected number of CPUs. The arbitrarily chosen values are as follows (depth,nthread). 1 CPU -> no threading. Less than 4 CPUs: (2, 2) (2, 2) (2, 1). Less than 6: (2, 4), (2, 2), (2, 1). Else (2, 5), (2, 3), (2, 1). If the first queue depth is set to -1, multithreading will be disabled entirely. The second and third values are ignored in both these cases.

thrTCounts = string

Number of threads used for each indexing stage. If the first entry in thrQSizes is not 0 or -1, these three values define the number of threads used for each stage (file data extraction, term generation, index update). It makes no sense to use a value other than 1 for the last stage because updating the Xapian index is necessarily single-threaded (and protected by a mutex).

thrTmpDbCnt = int

Number of temporary indexes used during incremental or full indexing. If not set to zero, this defines how many temporary indexes we use during indexing. These temporary indexes are merged into the main one at the end of the operation. Using multiple indexes and a final merge can significantly improve indexing performance when the single-threaded Xapian index updates become a bottleneck. How useful this is depends on the type of input and CPU. See the manual for more details.

suspendonbattery = bool

Suspend the real time indexing when the system runs on battery. The indexer will wait for a return on AC and reexec itself when it happens.

loglevel = int

Log file verbosity 1-6. A value of 2 will print only errors and warnings. 3 will print information like document updates, 4 is quite verbose and 6 very verbose.

logfilename = fn

Log file destination. Use "stderr" (default) to write to the console.

logthedate = bool

Have each log line begin with the date and time. e.g.: 2025-08-21T18:58:24+0200 :3:...

idxloglevel = int

Override loglevel for the indexer.

idxlogfilename = fn

Override logfilename for the indexer.

idxlogthedate = bool

override logthedate for the indexer.

helperlogfilename = fn

Destination file for external helpers standard error output. The external program error output is left alone by default, e.g. going to the terminal when the recoll[index] program is executed from the command line. Use /dev/null or a file inside a non-existent directory to completely suppress the output.

daemloglevel = int

Override loglevel for the real time indexer. The default is to use the idx... values if set, else the log... values.

daemlogfilename = fn

Override logfilename for the real time indexer. The default is to use the idx... values if set, else the log... values.

daemlogthedate = bool

override logthedate for the real time indexer.

pyloglevel = int

Override loglevel for the Python extension.

pylogfilename = fn

Override logfilename for the Python extension.

pylogthedate = bool

override logthedate for the Python extension.

idxnoautopurge = bool

Do not purge data for deleted or inaccessible files This can be overridden by recollindex command line options and may be useful if some parts of the document set may predictably be inaccessible at times, so that you would only run the purge after making sure that everything is there.

orgidxconfdir = dfn

Original location of the configuration directory. This is used exclusively for movable datasets. Locating the configuration directory inside the directory tree makes it possible to provide automatic query time path translations once the data set has moved (for example, because it has been mounted on another location).

curidxconfdir = dfn

Current location of the configuration directory. Complement orgidxconfdir for movable datasets. This should be used if the configuration directory has been copied from the dataset to another location, either because the dataset is readonly and an r/w copy is desired, or for performance reasons. This records the original moved location before copy, to allow path translation computations. For example if a dataset originally indexed as "/home/me/mydata/config" has been mounted to "/media/me/mydata", and the GUI is running from a copied configuration, orgidxconfdir would be "/home/me/mydata/config", and curidxconfdir (as set in the copied configuration) would be "/media/me/mydata/config".

idxrundir = dfn

Indexing process current directory. The input handlers sometimes leave temporary files in the current directory, so it makes sense to have recollindex chdir to some temporary directory. If the value is empty, the current directory is not changed. If the value is (literal) tmp, we use the temporary directory as set by the environment (RECOLL_TMPDIR else TMPDIR else /tmp). If the value is an absolute path to a directory, we go there.

checkneedretryindexscript = fn

Script used to heuristically check if we need to retry indexing files which previously failed. The default script checks the modified dates on /usr/bin and /usr/local/bin. A relative path will be looked up in the filters dirs, then in the path. Use an absolute path to do otherwise.

recollhelperpath = string

Additional places to search for helper executables. This is used, e.g., on Windows by the Python code, and on Mac OS by the bundled recoll.app (because I could find no reliable way to tell launchd to set the PATH). The example below is for Windows. Use ":" as entry separator for Mac and Ux-like systems, ";" is for Windows only.

idxabsmlen = int

Length of abstracts we store while indexing. Recoll stores an abstract for each indexed file. The text can come from an actual "abstract" section in the document or will just be the beginning of the document. It is stored in the index so that it can be displayed inside the result lists without decoding the original file. The idxabsmlen parameter defines the size of the stored abstract. The default value is 250 bytes. The search interface gives you the choice to display this stored text or a synthetic abstract built by extracting text around the search terms. If you always prefer the synthetic abstract, you can reduce this value and save a little space.

idxmetastoredlen = int

Truncation length of stored metadata fields. This does not affect indexing (the whole field is processed anyway), just the amount of data stored in the index for the purpose of displaying fields inside result lists or previews. The default value is 150 bytes which may be too low if you have custom fields.

idxtexttruncatelen = int

Truncation length for all document texts. Only index the beginning of documents. This is not recommended except if you are sure that the interesting keywords are at the top and have severe disk space issues.

idxsynonyms = fn

Name of the index-time synonyms file. This is only used to issue multi-word single terms for multi-word synonyms so that phrase and proximity searches work for them (ex: applejack "apple jack"). The feature will only have an effect for querying if the query-time and index-time synonym files are the same.

idxniceprio = int

"nice" process priority for the indexing processes. Default: 19 (lowest) Appeared with 1.26.5. Prior versions were fixed at 19.

noaspell = bool

Disable aspell use. The aspell dictionary generation takes time, and some combinations of aspell version, language, and local terms, result in aspell crashing, so it sometimes makes sense to just disable the thing.

aspellLanguage = string

Language definitions to use when creating the aspell dictionary. The value must match a set of aspell language definition files. You can type "aspell dicts" to see a list The default if this is not set is to use the NLS environment to guess the value. The values are the 2-letter language codes (e.g. "en", "fr"...)

aspellAddCreateParam = string

Additional option and parameter to aspell dictionary creation command. Some aspell packages may need an additional option (e.g. on Debian Jessie: --local-data-dir=/usr/lib/aspell). See Debian bug 772415.

aspellKeepStderr = bool

Set this to have a look at aspell dictionary creation errors. There are always many, so this is mostly for debugging.

monauxinterval = int

Auxiliary database update interval. The real time indexer only updates the auxiliary databases (stemdb, aspell) periodically, because it would be too costly to do it for every document change. The default period is one hour.

monixinterval = int

Minimum interval (seconds) between processings of the indexing queue. The real time indexer does not process each event when it comes in, but lets the queue accumulate, to diminish overhead and to aggregate multiple events affecting the same file. Default 30 S.

mondelaypatterns = string

Timing parameters for the real time indexing. Definitions for files which get a longer delay before reindexing is allowed. This is for fast-changing files, that should only be reindexed once in a while. A list of wildcardPattern:seconds pairs. The patterns are matched with fnmatch(pattern, path, 0) You can quote entries containing white space with double quotes (quote the whole entry, not the pattern). The default is empty. Example: mondelaypatterns = *.log:20 "*with spaces.*:30"

monioniceclass = int

ionice class for the indexing process. Despite the misleading name, and on platforms where this is supported, this affects all indexing processes, not only the real time/monitoring ones. The default value is 3 (use lowest "Idle" priority).

monioniceclassdata = string

ionice class level parameter if the class supports it. The default is empty, as the default "Idle" class has no levels.

sofficecmd = string

Path to the soffice command (e.g. from libreoffice) This is used for Apple pages documents and big openoffice spreadsheets. Use double-quoting if there are spaces in the path (e.g. C:/Program Files/) *and* you want to add parameters to the default command (uncommon). If not set, recoll will try to find it in the PATH.

idxlocalguisettings = bool

Store some GUI parameters locally to the index. GUI settings are normally stored in a global file, valid for all indexes. Setting this parameter will make some settings, such as the result table setup, specific to the index.

autodiacsens = bool

auto-trigger diacritics sensitivity (raw index only). IF the index is not stripped, decide if we automatically trigger diacritics sensitivity if the search term has accented characters (not in unac_except_trans). Else you need to use the query language and the "D" modifier to specify diacritics sensitivity. Default is no.

autocasesens = bool

auto-trigger case sensitivity (raw index only). IF the index is not stripped (see indexStripChars), decide if we automatically trigger character case sensitivity if the search term has upper-case characters in any but the first position. Else you need to use the query language and the "C" modifier to specify character-case sensitivity. Default is yes.

maxTermExpand = int

Maximum query expansion count for a single term (e.g.: when using wildcards). This only affects queries, not indexing. We used to not limit this at all (except for filenames where the limit was too low at 1000), but it is unreasonable with a big index. Default 10000.

maxXapianClauses = int

Maximum number of clauses we add to a single Xapian query. This only affects queries, not indexing. In some cases, the result of term expansion can be multiplicative, and we want to avoid eating all the memory. Default 50000.

snippetMaxPosWalk = int

Maximum number of positions we walk while populating a snippet for the result list. The default of 1,000,000 may be insufficient for very big documents, the consequence would be snippets with possibly meaning-altering missing words.

thumbnailercmd = string

Command to use for generating thumbnails. If set, this should be a path to a command or script followed by its constant arguments. Four arguments will be appended before execution: the document URL, MIME type, target icon SIZE (e.g. 128), and output file PATH. The command should generate a thumbnail from these values. E.g. if the MIME is video, a script could use: ffmpegthumbnailer -iURL -oPATH -sSIZE.

stemexpandphrases = bool

Default to applying stem expansion to phrase terms. Recoll normally does not apply stem expansion to terms inside phrase searches. Setting this parameter will change the default behaviour to expanding terms inside phrases. If set, you can use a "l" modifier to disable expansion for a specific instance.

autoSpellRarityThreshold = int

Inverse of the ratio of term occurrence to total db terms over which we look for spell neighbours for automatic query expansion When a term is very uncommon, we may (depending on user choice) look for spelling variations which would be more common and possibly add them to the query.

autoSpellSelectionThreshold = int

Ratio of spell neighbour frequency over user input term frequency beyond which we include the neighbour in the query. When a term has been selected for spelling expansion because of its rarity, we only include spelling neighbours which are more common by this ratio.

kioshowsubdocs = bool

Show embedded document results in KDE dolphin/kio and krunner Embedded documents may clutter the results and are not always easily usable from the kio or krunner environment. Setting this variable will restrict the results to standalone documents.

pdfocr = bool

Attempt OCR of PDF files with no text content. This can be defined in subdirectories. The default is off because OCR is so very slow.

pdfforceocr = bool

Run OCR even if the PDF document has text content. This can be defined in subdirectories. The OCR output will be concatenated to the PDF text.

pdfoutline = bool

Extract outlines and bookmarks from PDF documents (needs pdftohtml). This is not enabled by default because it is rarely needed, and the extra command takes a little time.

pdfattach = bool

Enable PDF attachment extraction by executing pdfdetach (if available). This used to be disabled by default because it used pdftk. We now use pdfdetach, which is part of poppler-utils and fast.

pdfextrameta = string

Extract text from selected XMP metadata tags. This is a space-separated list of qualified XMP tag names. Each element can also include a translation to a Recoll field name, separated by a "|" character. If the second element is absent, the tag name is used as the Recoll field names. You will also need to add specifications to the "fields" file to direct processing of the extracted data.

pdfextrametafix = fn

Define name of XMP field editing script. This defines the name of a script to be loaded for editing XMP field values. The script should define a "MetaFixer" class with a metafix() method which will be called with the qualified tag name and value of each selected field, for editing or erasing. A new instance is created for each document, so that the object can keep state for, e.g. eliminating duplicate values.

zipUseSkippedNames = bool

Use skippedNames inside Zip archives. Fetched directly by the rclzip.py handler. Skip the patterns defined by skippedNames inside Zip archives. Can be redefined for subdirectories. See https://www.recoll.org/faqsandhowtos/FilteringOutZipArchiveMembers.html

zipSkippedNames = string

Space-separated list of wildcard expressions for names that should be ignored inside zip archives. This is used directly by the zip handler. If zipUseSkippedNames is not set, zipSkippedNames defines the patterns to be skipped inside archives. If zipUseSkippedNames is set, the two lists are concatenated and used. Can be redefined for subdirectories. See https://www.recoll.org/faqsandhowtos/FilteringOutZipArchiveMembers.html

zipMetaEncoding = string

File path encoding. Needs Python 3.11+. Set to "detect" for using chardet. This is useful for non-standard zip files where the metadata is neither UTF-8 (indicated by a file flag), nor CP437 (default). The parameter can be set for specific subtrees. You need to install the Python3 "chardet" package if the value is set to "detect".

orgmodesubdocs = bool

Index org-mode level 1 sections as separate sub-documents This is the default. If set to false, org-mode files will be indexed as plain text

mhmboxquirks = string

Enable thunderbird/mozilla-seamonkey mbox format quirks Set this for the directory(ies) where the email mbox files are stored.

imgocr = bool

Tell the non-default Python image handler to run OCR. See the PDF section for PDF OCR. The image OCR also needs mimeconf changes. See the manual. imgocr can be defined for subdirectories.

ocrprogs = string

OCR modules to try. The top OCR script will try to load the corresponding modules in order and use the first which reports being capable of performing OCR on the input file. Modules for tesseract (tesseract) and ABBYY FineReader (abbyy) are present in the standard distribution. For compatibility with the previous version, if this is not defined at all, the default value is "tesseract". Use an explicit empty value if needed. The value can be redefined in subtrees.

ocrcachedir = dfn

Location for caching OCR data. The default if this is empty or undefined is to store the cached OCR data under $RECOLL_CONFDIR/ocrcache.

tesseractlang = string

Language to assume for tesseract OCR. Important for improving the OCR accuracy. This can also be set through the contents of a file in the currently processed directory. See the rclocrtesseract.py script. Example values: eng, fra... See the tesseract Web sitedocumentation for language codes and how to download additional language packs. When specifying multiple languages, use a '+' separator and no spaces, e.g. eng+fra. The value can be redefined in subtrees.

tesseractcmd = fn

Path for the tesseract command. Do not quote. This is mostly useful on Windows, or for specifying a non-default tesseract command. E.g. on Windows. tesseractcmd = C:/ProgramFiles/Tesseract-OCR/tesseract.exe

abbyylang = string

Language to assume for abbyy OCR. Important for improving the OCR accuracy. This can also be set through the contents of a file in the currently processed directory. See the rclocrabbyy.py script. Typical values: English, French... See the ABBYY documentation.

abbyyocrcmd = fn

Path for the abbyy command The ABBY directory is usually not in the path, so you should set this.

speechtotext = string

Activate speech to text conversion The only possible value at the moment is "whisper" for using the OpenAI whisper program.

sttmodel = string

Name of the whisper model

sttdevice = string

Name of the device to be used by for whisper

## SEE ALSO
recollindex(1) recoll(1)