Hi. I use dovecot in the simplest possible way, as an IMAP server in pre-auth mode over ssh or just locally over a unix-domain socket (e.g., with offlineimap, which runs much faster using dovecot for the local message store). Ideally I would like to avoid running any extra daemons or setting up anything as root. Until recently, this has worked fine by just setting the CONFIG_FILE environment variable to something in my home directory.
Here is my configuration:
$ export CONFIG_FILE=$HOME/etc/dovecot.conf
$ dovecot -n
# 2.1.3: /home/dm/etc/dovecot.conf
# OS: Linux 3.2.13-1-ARCH x86_64
mail_location = maildir:~/Mail/inbox
mail_plugins = " fts fts_squat"
plugin {
fts = squat
fts_squat = partial=4 full=10
}
doveconf: Error: ssl enabled, but ssl_cert not set
doveconf: Fatal: Error in configuration file /home/dm/etc/dovecot.conf: ssl enabled, but ssl_cert not set
Full text search used to work just fine with this configuration, and still does on a machine I have running dovecot 2.0.13. However, on the machine with 2.1, I get errors about /var/run/dovecot/index not existing.
$ printf "a select INBOX\nb search text xyzzy\nc logout\n"
| /usr/lib/dovecot/imap
- PREAUTH [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE] Logged in as dm imap(dm): Error: net_connect_unix(/var/run/dovecot/indexer) failed: No such file or directory ...
Needless to say, no dovecot.index.search or dovecot.index.search.uids file is created after this error.
While I can't write /var/run/dovecot, this is not a permission issue. For example, adding base_dir=/home/dm (my home directory) to the configuration file yields the same error for /home/dm/indexer. I'm guessing something has changed where imap requires an indexer daemon and doesn't launch it in pre-auth mode any more, but I can't find anything about this in the documentation.
In short, if anyone can tell me how to use FTS in conjunction with pre-auth mode or point me to a working example, I would appreciate it.