diff --git a/roles/archweb/tasks/main.yml b/roles/archweb/tasks/main.yml
index 1dc8b8942a12131600489d16d703f484ff7d42e2..ca7df58f9f59c83a8d5bfbe7f4a38ba8e1ddbc3f 100644
--- a/roles/archweb/tasks/main.yml
+++ b/roles/archweb/tasks/main.yml
@@ -136,6 +136,18 @@
     - daemon reload
   when: archweb_services or archweb_mirrorresolv
 
+- name: install populate_signoffs service
+  template: src="archweb-populate_signoffs.service.j2" dest="/etc/systemd/system/archweb-populate_signoffs.service" owner=root group=root mode=0644
+  notify:
+    - daemon reload
+  when: archweb_services or archweb_populate_signoffs
+
+- name: install populate_signoffs timer
+  template: src="archweb-populate_signoffs.timer.j2" dest="/etc/systemd/system/archweb-populate_signoffs.timer" owner=root group=root mode=0644
+  notify:
+    - daemon reload
+  when: archweb_services or archweb_populate_signoffs
+
 - name: install pgp_import service
   template: src="archweb-pgp_import.service.j2" dest="/etc/systemd/system/archweb-pgp_import.service" owner=root group=root mode=0644
   notify:
@@ -186,3 +198,7 @@
 - name: start and enable archweb mirrorresolv timer
   service: name="archweb-mirrorresolv.timer" enabled=yes state=started
   when: archweb_services or archweb_mirrorresolv
+
+- name: start and enable archweb populate_signoffs timer
+  service: name="archweb-populate_signoffs.timer" enabled=yes state=started
+  when: archweb_services or archweb_populate_signoffs
diff --git a/roles/archweb/templates/archweb-populate_signoffs.service.j2 b/roles/archweb/templates/archweb-populate_signoffs.service.j2
new file mode 100644
index 0000000000000000000000000000000000000000..5784ad928e66039613a31d880e221052212d4b7d
--- /dev/null
+++ b/roles/archweb/templates/archweb-populate_signoffs.service.j2
@@ -0,0 +1,12 @@
+[Unit]
+Description=archewb populate_signoffs service
+After=network.target
+
+[Service]
+Type=oneshot
+User=archweb
+WorkingDirectory={{ archweb_dir }}
+ExecStart={{ archweb_dir }}/env/bin/python manage.py populate_signoffs -v0
+
+[Install]
+WantedBy=multi-user.target
diff --git a/roles/archweb/templates/archweb-populate_signoffs.timer.j2 b/roles/archweb/templates/archweb-populate_signoffs.timer.j2
new file mode 100644
index 0000000000000000000000000000000000000000..bcc09df1ca16d12cc5da5af76a08954526a8873e
--- /dev/null
+++ b/roles/archweb/templates/archweb-populate_signoffs.timer.j2
@@ -0,0 +1,10 @@
+[Unit]
+Description=archweb populate_signoffs timer
+
+[Timer]
+OnUnitActiveSec=20m
+OnBootSec=15min
+RandomizedDelaySec=1min
+
+[Install]
+WantedBy=timers.target