diff --git a/.env b/.env
new file mode 100644
index 0000000000000000000000000000000000000000..833e74150a27b8a7583fdd6187cbf6acc268ee01
--- /dev/null
+++ b/.env
@@ -0,0 +1 @@
+COMPOSE_PROJECT_NAME=mail
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e819724e236d023dd65e4853f12791b26378a7dd
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,46 @@
+# vim:ff=unix:ts=2:sw=2:ai:expandtab
+---
+version: '3.5'
+services:
+  imap:
+    build:
+      context: dovecot/
+    ports:
+      - 993:993
+    environment:
+      LDAP_URIS: ldap://slapd
+      LDAP_BASEDN: 'dc=nowhere,dc=com'
+    volumes:
+      - mail:/var/mail
+      - _run_dovecot:/run/dovecot
+
+  clamd:
+    build:
+      context: clamd/
+    volumes:
+      - _run_clamav:/run/clamav
+
+  spamd:
+    build:
+      context: spamd/
+    volumes:
+      - _run_spamd:/run/spamd
+      - mail:/var/mail:ro
+      - sa_learn:/var/backups/sa-learn
+
+  crond:
+    build:
+      context: crond/
+    volumes:
+      - /run/docker.sock:/run/docker.sock
+
+volumes:
+  _run_spamd:
+  _run_clamav:
+  _run_dovecot:
+  mail:
+  sa_learn:
+
+networks:
+  default:
+    name: shore