diff --git a/vagrant/ansible/playbook.yml b/vagrant/ansible/playbook.yml
index 17b64f7fb8df030375d76844696bb0c7887dcc4e..3490a5359bb598067de3de3f1c34b367d484ce80 100644
--- a/vagrant/ansible/playbook.yml
+++ b/vagrant/ansible/playbook.yml
@@ -32,6 +32,7 @@
       #  - install libsodium from normal debian repos (current version 1.0.12)
       #  - uses ARGON2
   roles:
+    - jnv.debian-backports
     - init
     - mariadb
     - postfix
diff --git a/vagrant/ansible/roles/dovecot/tasks/install.yml b/vagrant/ansible/roles/dovecot/tasks/install.yml
index e49885159ed800069fa820fcfecd2f32f9b8dfee..d032533a7813c3f3672faf2b5a695b52b57b2735 100644
--- a/vagrant/ansible/roles/dovecot/tasks/install.yml
+++ b/vagrant/ansible/roles/dovecot/tasks/install.yml
@@ -27,6 +27,7 @@
   apt:
     pkg: "{{ item }}"
     state: present
+    default_release: "{{ ansible_distribution_release }}-backports"
   with_items:
     - dovecot-core
     - dovecot-common
diff --git a/vagrant/ansible/roles/dovecot/tasks/install_dovecot_libsodium_plugin.yml b/vagrant/ansible/roles/dovecot/tasks/install_dovecot_libsodium_plugin.yml
index d15a8ec783e65b40a9ddd472521203dfebde41b5..ca0bad9c194f2d269bbedd69dc47573c4b88019f 100644
--- a/vagrant/ansible/roles/dovecot/tasks/install_dovecot_libsodium_plugin.yml
+++ b/vagrant/ansible/roles/dovecot/tasks/install_dovecot_libsodium_plugin.yml
@@ -3,6 +3,7 @@
   apt:
     pkg: "{{ item }}"
     state: present
+    default_release: "{{ ansible_distribution_release }}-backports"
   with_items:
     - build-essential
     - dovecot-core
diff --git a/vagrant/ansible/roles/dovecot/templates/dovecot/conf.d/10-mail.conf.j2 b/vagrant/ansible/roles/dovecot/templates/dovecot/conf.d/10-mail.conf.j2
index cf2a0404e9eb389b3560fc830ffc191285fe14cd..260d521ba72f3067189a393868beb7d5c2186409 100644
--- a/vagrant/ansible/roles/dovecot/templates/dovecot/conf.d/10-mail.conf.j2
+++ b/vagrant/ansible/roles/dovecot/templates/dovecot/conf.d/10-mail.conf.j2
@@ -28,8 +28,8 @@
 # <doc/wiki/MailLocation.txt>
 #
 
-#mail_location = mdbox:/var/vmail/%Ld/%Ln/Maildir
-mail_location = {{ dovecot_mailbox_type }}:/var/vmail/%Ld/%Ln/Maildir
+mail_home = /var/vmail/%Ld/%Ln
+mail_location = {{ dovecot_mailbox_type }}:~/Maildir
 
 # If you need to set multiple mailbox locations or want to change default
 # namespace settings, you can do it by defining namespace sections.
diff --git a/vagrant/ansible/roles/jnv.debian-backports/README.md b/vagrant/ansible/roles/jnv.debian-backports/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..1de495ebba17dbc1912c46a8b167fd82b153df3d
--- /dev/null
+++ b/vagrant/ansible/roles/jnv.debian-backports/README.md
@@ -0,0 +1,40 @@
+# [Debian/Ubuntu Backports with Ansible](https://github.com/jnv/ansible-role-debian-backports)
+
+Adds backports repository for Debian and Ubuntu.
+
+## Usage
+
+Install via [Galaxy](https://galaxy.ansibleworks.com/):
+
+```
+ansible-galaxy install jnv.debian-backports
+```
+
+In your playbook:
+
+```yaml
+- hosts: all
+  roles:
+    # ...
+    - jnv.debian-backports
+```
+
+The role uses [apt_repository module](http://docs.ansible.com/apt_repository_module.html) which has additional dependencies. I highly recommend to use [bootstrap-debian](https://github.com/cederberg/ansible-bootstrap-debian) role to setup common Ansible requirements on Debian-based systems.
+
+You can use `default_release` option for [apt module](http://docs.ansible.com/apt_module.html) to install package from backports. For example:
+
+```yaml
+tasks:
+  - apt: name=mosh state=present default_release={{ansible_distribution_release}}-backports
+```
+
+`ansible_distribution_release` variable contains release name, i.e. `precise` or `wheezy`.
+
+## Variables
+
+- `backports_uri`: URI of the backports repository; change this if you want to use a particular mirror.
+    + Debian: `http://ftp.debian.org/debian`
+    + Ubuntu: `http://archive.ubuntu.com/ubuntu`
+- `backports_components`: Release and components for sources.list
+    + Debian: `{{backports_distribution}}-backports backports main contrib non-free`
+    + Ubuntu: `{{backports_distribution}}-backports main restricted universe multiverse`
diff --git a/vagrant/ansible/roles/jnv.debian-backports/UNLICENSE b/vagrant/ansible/roles/jnv.debian-backports/UNLICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..cf1ab25da0349f84a3fdd40032f0ce99db813b8b
--- /dev/null
+++ b/vagrant/ansible/roles/jnv.debian-backports/UNLICENSE
@@ -0,0 +1,24 @@
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+
+In jurisdictions that recognize copyright laws, the author or authors
+of this software dedicate any and all copyright interest in the
+software to the public domain. We make this dedication for the benefit
+of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of
+relinquishment in perpetuity of all present and future rights to this
+software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to <http://unlicense.org>
diff --git a/vagrant/ansible/roles/jnv.debian-backports/meta/.galaxy_install_info b/vagrant/ansible/roles/jnv.debian-backports/meta/.galaxy_install_info
new file mode 100644
index 0000000000000000000000000000000000000000..2c9fe53fb0fe1defdd46b0dcc9f7cd2beeae817b
--- /dev/null
+++ b/vagrant/ansible/roles/jnv.debian-backports/meta/.galaxy_install_info
@@ -0,0 +1 @@
+{install_date: 'Fri Aug 10 08:05:23 2018', version: v0.2.0}
diff --git a/vagrant/ansible/roles/jnv.debian-backports/meta/main.yml b/vagrant/ansible/roles/jnv.debian-backports/meta/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f73d4dc050b7a8b2ce2dad57ddcae1bc251f9c8d
--- /dev/null
+++ b/vagrant/ansible/roles/jnv.debian-backports/meta/main.yml
@@ -0,0 +1,79 @@
+---
+galaxy_info:
+  author: Jan Vlnas
+  description: Add backports repository for Debian and Ubuntu
+  license: Unlicense
+  min_ansible_version: 1.2
+  #
+  # Below are all platforms currently available. Just uncomment
+  # the ones that apply to your role. If you don't see your
+  # platform on this list, let us know and we'll get it added!
+  #
+  platforms:
+  #- name: EL
+  #  versions:
+  #  - all
+  #  - 5
+  #  - 6
+  #- name: GenericUNIX
+  #  versions:
+  #  - all
+  #  - any
+  #- name: Fedora
+  #  versions:
+  #  - all
+  #  - 16
+  #  - 17
+  #  - 18
+  #  - 19
+  #  - 20
+  #- name: opensuse
+  #  versions:
+  #  - all
+  #  - 12.1
+  #  - 12.2
+  #  - 12.3
+  #  - 13.1
+  #  - 13.2
+  #- name: GenericBSD
+  #  versions:
+  #  - all
+  #  - any
+  #- name: FreeBSD
+  #  versions:
+  #  - all
+  #  - 8.0
+  #  - 8.1
+  #  - 8.2
+  #  - 8.3
+  #  - 8.4
+  #  - 9.0
+  #  - 9.1
+  #  - 9.1
+  #  - 9.2
+  - name: Ubuntu
+    versions:
+    - all
+  - name: Debian
+    versions:
+    - all
+  categories:
+  #- cloud
+  #- cloud:ec2
+  #- cloud:gce
+  #- cloud:rax
+  #- database
+  #- database:nosql
+  #- database:sql
+  #- development
+  #- monitoring
+  #- networking
+  - packaging
+  - system
+  #- web
+dependencies: []
+  # List your role dependencies here, one per line. Only
+  # dependencies available via galaxy should be listed here.
+  # Be sure to remove the '[]' above if you add dependencies
+  # to this list.
+
diff --git a/vagrant/ansible/roles/jnv.debian-backports/tasks/main.yml b/vagrant/ansible/roles/jnv.debian-backports/tasks/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..87fd77a43af594169f703ca7356038307953a2ee
--- /dev/null
+++ b/vagrant/ansible/roles/jnv.debian-backports/tasks/main.yml
@@ -0,0 +1,6 @@
+---
+- name: add distribution-specific variables
+  include_vars: "{{ ansible_distribution }}.yml"
+
+- name: add backports repository
+  apt_repository: repo='deb {{backports_uri}} {{backports_components}}' state=present update_cache=yes
diff --git a/vagrant/ansible/roles/jnv.debian-backports/vars/Debian.yml b/vagrant/ansible/roles/jnv.debian-backports/vars/Debian.yml
new file mode 100644
index 0000000000000000000000000000000000000000..494372794c6957a602805ceef45c499902995b7b
--- /dev/null
+++ b/vagrant/ansible/roles/jnv.debian-backports/vars/Debian.yml
@@ -0,0 +1,3 @@
+---
+backports_uri: http://http.debian.net/debian
+backports_components: "{{backports_distribution}}-backports main contrib non-free"
diff --git a/vagrant/ansible/roles/jnv.debian-backports/vars/Ubuntu.yml b/vagrant/ansible/roles/jnv.debian-backports/vars/Ubuntu.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6666ac7b6dc3f22f947163b1012e6e5a5dc2fdbf
--- /dev/null
+++ b/vagrant/ansible/roles/jnv.debian-backports/vars/Ubuntu.yml
@@ -0,0 +1,3 @@
+---
+backports_uri: http://archive.ubuntu.com/ubuntu
+backports_components: "{{backports_distribution}}-backports main restricted universe multiverse"
diff --git a/vagrant/ansible/roles/jnv.debian-backports/vars/main.yml b/vagrant/ansible/roles/jnv.debian-backports/vars/main.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0b79f684d0a20656dca7f7f8f55fb577a6752444
--- /dev/null
+++ b/vagrant/ansible/roles/jnv.debian-backports/vars/main.yml
@@ -0,0 +1,2 @@
+---
+backports_distribution: "{{ansible_distribution_release}}"
diff --git a/vagrant/ansible/roles/trees/tasks/install.yml b/vagrant/ansible/roles/trees/tasks/install.yml
index 76912d20129ec9cdb9eed5d04716b02d3b92ab66..8903173a0a5c9c5a29c0721968412cfed1ea0a48 100644
--- a/vagrant/ansible/roles/trees/tasks/install.yml
+++ b/vagrant/ansible/roles/trees/tasks/install.yml
@@ -4,6 +4,7 @@
   apt:
     pkg: "{{ item }}"
     state: present
+    default_release: "{{ ansible_distribution_release }}-backports"
   with_items:
     - build-essential
     - dovecot-core