summaryrefslogtreecommitdiffstats
path: root/roles/IMAP-proxy/templates
diff options
context:
space:
mode:
authorGuilhem Moulin <guilhem@fripost.org>2013-12-16 04:29:55 +0100
committerGuilhem Moulin <guilhem@fripost.org>2015-06-07 02:51:29 +0200
commit522ba399d24e8166681b328f550904fcd4d8fad9 (patch)
tree0686ea8ab3271872d2ab15079fb53ef52b778090 /roles/IMAP-proxy/templates
parentde0914bf8105fa8c281a326e6e3e4e3f211bb0f3 (diff)
Use a local IMAP caching proxy under the webmail.
(Unless the webmail is itself a full IMAP server.) It replaces RoundCube's own IMAP and message caches. Dovecot's IMAPC storage backend is not very documented, but provides smart IMAP proxying. References include: http://dovecot.org/pipermail/dovecot/2011-January/056975.html http://wiki2.dovecot.org/HowTo/ImapcProxy http://wiki2.dovecot.org/Migration/Dsync
Diffstat (limited to 'roles/IMAP-proxy/templates')
-rw-r--r--roles/IMAP-proxy/templates/etc/dovecot/conf.d/20-imapc.conf.j218
-rw-r--r--roles/IMAP-proxy/templates/etc/dovecot/conf.d/auth-imap.conf.ext.j217
2 files changed, 35 insertions, 0 deletions
diff --git a/roles/IMAP-proxy/templates/etc/dovecot/conf.d/20-imapc.conf.j2 b/roles/IMAP-proxy/templates/etc/dovecot/conf.d/20-imapc.conf.j2
new file mode 100644
index 0000000..a6b70c6
--- /dev/null
+++ b/roles/IMAP-proxy/templates/etc/dovecot/conf.d/20-imapc.conf.j2
@@ -0,0 +1,18 @@
+# Smart IMAP proxying with imapc storage
+#
+# http://dovecot.org/pipermail/dovecot/2011-January/056975.html
+# http://wiki2.dovecot.org/HowTo/ImapcProxy
+# http://wiki2.dovecot.org/Migration/Dsync
+
+imapc_host = {{ IMAP }}
+imapc_port = 143
+imapc_user = %u
+
+# Read multiple mails in parallel, improves performance
+mail_prefetch_count = 20
+
+# The list of valid features can be found there
+# http://hg.dovecot.org/dovecot-2.1/file/f572fbafb445/src/lib-storage/index/imapc/imapc-settings.c
+# (in the struct 'imapc_feature_list imapc_feature_list')
+imapc_features = rfc822.size
+
diff --git a/roles/IMAP-proxy/templates/etc/dovecot/conf.d/auth-imap.conf.ext.j2 b/roles/IMAP-proxy/templates/etc/dovecot/conf.d/auth-imap.conf.ext.j2
new file mode 100644
index 0000000..5e2b28c
--- /dev/null
+++ b/roles/IMAP-proxy/templates/etc/dovecot/conf.d/auth-imap.conf.ext.j2
@@ -0,0 +1,17 @@
+# Authentication via remote IMAP server. Included from auth.conf.
+#
+# <doc/wiki/PasswordDatabase.IMAP.txt>
+
+passdb {
+ driver = imap
+ args = host={{ IMAP }} port=143
+ default_fields = userdb_imapc_user=%u userdb_imapc_password=%w
+}
+
+# "prefetch" user database means that the passdb already provided the
+# needed information and there's no need to do a separate userdb lookup.
+# <doc/wiki/UserDatabase.Prefetch.txt>
+userdb {
+ driver = prefetch
+ default_fields = home=/home/imapproxy/%d/%n
+}