diff --git a/unit-files/discovery@.service b/unit-files/discovery@.service
deleted file mode 100644
index fe95a19da58e9bd22011bf2478d9e57990510a0a..0000000000000000000000000000000000000000
--- a/unit-files/discovery@.service
+++ /dev/null
@@ -1,25 +0,0 @@
-[Unit]
-Description=%p for %i etcd registration
-
-# Requirements
-Requires=etcd.service
-
-# Dependency binding
-BindsTo=web@%i.service
-
-[Service]
-ExecStart=/bin/bash -c ' \
-  sleep 30; \
-  while true; do \
-    ip=`docker inspect --format \'{{.NetworkSettings.IPAddress}}\' %i`; \
-    curl -f $ip; \
-    if [ $? -eq 0 ]; then \
-      etcdctl set /services/web/%i \'{"ip":"\'$ip\'", "port":"80"}\' --ttl 60; \
-    else \
-      etcdctl rm /services/web/%i; \
-    fi; \
-    sleep 50; \
-  done'
-
-ExecStop=-/usr/bin/etcdctl rm /services/web/%i
-
diff --git a/unit-files/web@.service b/unit-files/web@.service
index 5dbd89f4df3bbc63f7d754a87a933cbd2dd502f0..b63ae28c21ac5500a34557a681d6d9be86657e1f 100644
--- a/unit-files/web@.service
+++ b/unit-files/web@.service
@@ -3,12 +3,10 @@ Description=%p-%i
 
 # Requirements
 Requires=docker.service
-Requires=discovery@%i.service
 Requires=backup@%i.timer
 
 # Dependency ordering
 After=docker.service
-Before=discovery@%i.service
 Before=backup@%i.timer
 
 [Service]
@@ -30,6 +28,9 @@ ExecStart=/bin/bash -euxc ' \
     -v /data/runtime/domains/%i/log/apache2:/var/log/apache2 \
     ${DOCKER_ARGUMENTS} \
     pierreozoux/${APPLICATION}'
-ExecReload=/usr/bin/docker restart %i
+ExecStartPost=/bin/bash -c ' \
+  ip=`docker inspect --format \'{{.NetworkSettings.IPAddress}}\' %i`; \
+  /usr/bin/etcdctl --peers 172.17.42.1:4001 set /services/web/%i \'{"ip":"\'$ip\'", "port":"80"}\'
 ExecStop=/usr/bin/docker stop %i
+ExecStopPost=-/usr/bin/etcdctl --peers 172.17.42.1:4001 rm /services/web/%i