diff --git a/contrib/start-server.sh b/contrib/start-server.sh
index c44ce7eccf2941c548b0f3f342e07959fbd43021..578a745bc8cd154ac0152d50e58a84ec710f2191 100755
--- a/contrib/start-server.sh
+++ b/contrib/start-server.sh
@@ -1,13 +1,15 @@
 #!/bin/sh
 
+deps_file=/var/lib/gitlab-deps/deps.json
+
 if [ -z "$GITLAB_URL" ]; then
     echo "Gitlab-deps is not configured (GITLAB_URL empty)" >&2
     exit 0
 fi
 
-if [ ! -e /var/lib/gitlab-deps/deps.json ]; then
+if [ ! -e $deps_file ]; then
     echo "No deps.json file, executing update..." >&2
-    /usr/sbin/update-gitlab-deps
+    /usr/sbin/update-gitlab-deps --no-reload
     if [ $? -gt 0 ]; then
         echo "update-gitlab-deps failed" >&2
         exit 1
@@ -16,4 +18,6 @@ fi
 
 exec /usr/bin/gitlab-deps server \
      --token-file=$GITLAB_TOKEN_FILE --url=$GITLAB_URL \
-     < /var/lib/gitlab-deps/deps.json
+     --addr=${ADDR:-0.0.0.0} --port=${PORT:-3535} \
+     --webhook-auth-token=$WEBHOOK_AUTH_TOKEN \
+     < $deps_file
diff --git a/contrib/update.sh b/contrib/update.sh
index a6abffdcdb7779b5ba56dde3e3b7562b829677cf..10ff6fadcc6d61fbb4d46689d71b2ad82adc43ae 100755
--- a/contrib/update.sh
+++ b/contrib/update.sh
@@ -1,5 +1,13 @@
 #!/bin/sh
 
+deps_file=/var/lib/gitlab-deps/deps.json
+reload=1
+ret=0
+
+if [ "x$1" = "x--no-reload" ]; then
+    reload=0
+fi
+
 [ -e /etc/default/gitlab-deps ] && . /etc/default/gitlab-deps
 
 if [ -z "$GITLAB_URL" -o -z "$GITLAB_TOKEN_FILE" ]; then
@@ -9,7 +17,20 @@ fi
 
 opts="--token-file=$GITLAB_TOKEN_FILE --url=$GITLAB_URL"
 
+tmp_file="${deps_file}.tmp.$$"
+trap "rm -f $tmp_file 2>/dev/null" EXIT
+
 gitlab-deps list-projects $opts \
     | egrep "${PROJECT_REGEXP:-.*}" \
     | gitlab-deps deps $opts \
-    > $deps_file
+                  > $tmp_file
+
+if ! cmp $tmp_file $deps_file; then
+    mv -f $tmp_file $deps_file
+    if [ $reload -eq 1 ]; then
+        systemctl reload-or-restart gitlab-deps
+        ret=$?
+    fi
+fi
+
+exit $ret
diff --git a/debian/accountserver.service b/debian/accountserver.service
deleted file mode 100644
index af68e335c7961ec057034eb75ff2ef93551c02dc..0000000000000000000000000000000000000000
--- a/debian/accountserver.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=A/I account server
-After=slapd.service
-
-[Service]
-EnvironmentFile=-/etc/default/accountserver
-ExecStart=/usr/bin/accountserver $DAEMON_OPTS
-Restart=always
-
-[Install]
-WantedBy=multi-user.target
diff --git a/debian/gitlab-deps-update.service b/debian/gitlab-deps-update.service
new file mode 100644
index 0000000000000000000000000000000000000000..d2eb52185388c5bcae969c68fc8a77b109687e1e
--- /dev/null
+++ b/debian/gitlab-deps-update.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Update gitlab-deps dependency map
+After=gitlab-deps.service
+
+[Service]
+Type=oneshot
+ExecStart=/usr/sbin/update-gitlab-deps
+User=gitlab-deps
+Group=gitlab-deps
diff --git a/debian/gitlab-deps-update.timer b/debian/gitlab-deps-update.timer
new file mode 100644
index 0000000000000000000000000000000000000000..3800bb1ce73f774b47f6fcb5642d05e031b92e48
--- /dev/null
+++ b/debian/gitlab-deps-update.timer
@@ -0,0 +1,9 @@
+[Unit]
+Description=Timer for update-gitlab-deps
+
+[Timer]
+OnCalendar="18 2 * * *"
+Persistent=true
+
+[Install]
+WantedBy=timers.target
diff --git a/debian/gitlab-deps.default b/debian/gitlab-deps.default
index 3b34dd17562640dfa37f01b1f4bf73c9b1d75da4..8c294d2fa8bb50f597db2dc2b7687a83d5945bb8 100644
--- a/debian/gitlab-deps.default
+++ b/debian/gitlab-deps.default
@@ -7,3 +7,10 @@ GITLAB_TOKEN_FILE=/var/lib/gitlab-deps/auth_token
 # Set to a regular expression (extended) if you want to filter the
 # project list.
 #PROJECT_REGEXP=
+
+# Set to the X-Gitlab-Token to be used for request authentication.
+#WEBHOOK_AUTH_TOKEN=
+
+# Address and port to bind to.
+ADDR=0.0.0.0
+PORT=3535
diff --git a/debian/rules b/debian/rules
index 2e20730aa6cf2a6abe0e2aebfc56bd32124694ea..25922511aeafd07b04d178b87ebdb2f7cb996aba 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,6 +1,11 @@
 #!/usr/bin/make -f
 # -*- makefile -*-
 
+SYSTEMD_UNITS = \
+	gitlab-deps.service \
+	gitlab-deps-update.timer \
+	gitlab-deps-update.service
+
 export PYBUILD_NAME=gitlab-deps
 
 %:
@@ -13,3 +18,6 @@ override_dh_auto_install:
 	  $(CURDIR)/debian/gitlab-deps/usr/sbin/gitlab-deps-server-wrapper
 	install -o root -g root -m 755 $(CURDIR)/contrib/update.sh \
 	  $(CURDIR)/debian/gitlab-deps/usr/sbin/update-gitlab-deps
+
+override_dh_install_systemd:
+	dh_install_systemd $(SYSTEMD_UNITS)