diff --git a/blueprints/wordpress.tgz b/blueprints/wordpress.tgz
new file mode 100644
index 0000000000000000000000000000000000000000..b0eb7859be05e9a743c2a2879ea4d3840d05f6b3
Binary files /dev/null and b/blueprints/wordpress.tgz differ
diff --git a/importers/mysql.sh b/importers/mysql.sh
new file mode 100755
index 0000000000000000000000000000000000000000..632bc10f8cb5590b4512c8d12ce905db1cedab56
--- /dev/null
+++ b/importers/mysql.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+if [ ! -d "/data/per-user/$USER/mysql/data" ]; then
+  mkdir -p /data/per-user/$USER/mysql/data
+  echo MYSQL_PASS=`echo $RANDOM  ${date} | md5sum | base64 | cut -c-10` > /data/per-user/$USER/mysql/.env
+fi
diff --git a/importers/wordpress.sh b/importers/wordpress.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7e1f05698acd5488aaf8be1f18c304dd0c551466
--- /dev/null
+++ b/importers/wordpress.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+if [ ! -d "/data/per-user/$USER/wordpress/data" ]; then
+  cd /data/per-user/$USER/
+  tar xvzf /data/indiehosters/blueprints/wordpress.tgz
+  cat /data/per-user/$USER/mysql/.env | sed s/MYSQL_PASS/DB_PASS/ > /data/per-user/$USER/wordpress/.env
+fi
diff --git a/scripts/setup.sh b/scripts/setup.sh
index c743f2363fefc293264c98a53bd17e3b397b713a..edc6dddf6e37b5794167687e440ef275937ab38d 100755
--- a/scripts/setup.sh
+++ b/scripts/setup.sh
@@ -10,6 +10,8 @@ docker pull indiehosters/haproxy
 docker pull indiehosters/confd
 docker pull indiehosters/postfix-forwarder
 docker pull indiehosters/nginx
+docker pull indiehosters/mysql
+docker pull indiehosters/wordpress
 
 # Install unit-files
 cp /data/indiehosters/unit-files/* /etc/systemd/system
diff --git a/unit-files/mysql-importer@.service b/unit-files/mysql-importer@.service
new file mode 100644
index 0000000000000000000000000000000000000000..77af011a0f0b8388a2d225ac4014f4a6db7bdfe7
--- /dev/null
+++ b/unit-files/mysql-importer@.service
@@ -0,0 +1,12 @@
+[Unit]  
+Description=MySQL importer
+Before=mysql@%i.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+Environment=USER=%i
+ExecStart=/data/indiehosters/importers/mysql.sh
+
+[Install]
+WantedBy=mysql@%i.service
diff --git a/unit-files/mysql@.service b/unit-files/mysql@.service
new file mode 100644
index 0000000000000000000000000000000000000000..d96dd96e08861394e3c602df06865a0af79f9a31
--- /dev/null
+++ b/unit-files/mysql@.service
@@ -0,0 +1,22 @@
+[Unit]
+Description=%p-%i
+After=docker.service
+After=%p-importer@%i.service
+Requires=docker.service
+Requires=%p-importer@%i.service
+
+[Service]
+Restart=always
+TimeoutStartSec=0
+ExecStartPre=-/usr/bin/docker kill %p-%i 
+ExecStartPre=-/usr/bin/docker rm %p-%i
+ExecStart=/usr/bin/docker run\
+--name %p-%i\
+-v /data/per-user/%i/%p/data:/var/lib/mysql\
+--env-file /data/per-user/%i/%p/.env\
+indiehosters/mysql
+ExecReload=/usr/bin/docker restart %p-%i
+ExecStop=/usr/bin/docker stop %p-%i 
+
+[Install]
+WantedBy=multi-user.target
diff --git a/unit-files/wordpress-discovery@.service b/unit-files/wordpress-discovery@.service
new file mode 100644
index 0000000000000000000000000000000000000000..94b2cd219d254d96ee0f610de36e099b78951d23
--- /dev/null
+++ b/unit-files/wordpress-discovery@.service
@@ -0,0 +1,36 @@
+[Unit]
+Description=%p for %i etcd registration
+
+# Requirements
+Requires=etcd.service
+Requires=wordpress@%i.service
+
+# Dependency ordering and binding
+After=etcd.service
+After=wordpress@%i.service
+BindsTo=wordpress@%i.service
+
+[Service]
+
+EnvironmentFile=/etc/environment
+TimeoutStartSec=0
+# Start
+## Test whether service is accessible and then register useful information
+ExecStart=/bin/bash -c '\
+  sleep 3; \
+  while true; do \
+    app=`echo %p | cut -d"-" -f1`; \
+    ip=`docker inspect --format \'{{.NetworkSettings.IPAddress}}\' $app-%i`; \
+    curl -f $ip; \
+    if [ $? -eq 0 ]; then \
+      etcdctl set /services/$app/%i \'{"ip":"\'$ip\'", "port":"80"}\' --ttl 30; \
+    else \
+      etcdctl rm /services/$app/%i; \
+    fi; \
+    sleep 20; \
+  done'
+
+# Stop
+ExecStop=/bin/bash -ceux '\
+  app=`echo %p | cut -d"-" -f1`;\
+  /usr/bin/etcdctl rm /services/$app/%i
diff --git a/unit-files/wordpress-importer@.service b/unit-files/wordpress-importer@.service
new file mode 100644
index 0000000000000000000000000000000000000000..33f56658ef84e4e5137659ae429abcc5548bb05c
--- /dev/null
+++ b/unit-files/wordpress-importer@.service
@@ -0,0 +1,13 @@
+[Unit]  
+Description=WordPress importer
+After=mysql-importer@%i.service
+Before=wordpress@%i.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+Environment=USER=%i
+ExecStart=/data/indiehosters/importers/wordpress.sh
+
+[Install]
+WantedBy=wordpress@%i.service
diff --git a/unit-files/wordpress@.service b/unit-files/wordpress@.service
new file mode 100644
index 0000000000000000000000000000000000000000..96a540222c9442864553a95837133aad6688de40
--- /dev/null
+++ b/unit-files/wordpress@.service
@@ -0,0 +1,31 @@
+[Unit]
+Description=%p-%i
+After=docker.service
+
+Requires=etcd.service
+Requires=docker.service
+Requires=mysql@%i.service
+After=mysql@%i.service
+Requires=%p-importer@%i.service
+Requires=%p-discovery@%i.service
+
+After=%p-importer@%i.service
+Before=%p-discovery@%i.service
+
+[Service]
+Restart=always
+TimeoutStartSec=0
+ExecStartPre=-/usr/bin/docker kill %p-%i
+ExecStartPre=-/usr/bin/docker rm %p-%i
+ExecStart=/usr/bin/docker run\
+--name %p-%i\
+--link mysql-%i:db\
+-v /data/per-user/%i/%p/data/wp-content:/app/wp-content\
+-v /data/per-user/%i/%p/data/.htaccess:/app/.htaccess\
+--env-file /data/per-user/%i/%p/.env\
+indiehosters/wordpress
+ExecReload=/usr/bin/docker restart %p-%i
+ExecStop=/usr/bin/docker stop %p-%i
+
+[Install]
+WantedBy=multi-user.target