diff --git a/webservice/systemd/cal-job-monitor.service b/webservice/systemd/cal-job-monitor.service
new file mode 100644
index 0000000000000000000000000000000000000000..115a986cc3e36af7d18c458590488046acd03808
--- /dev/null
+++ b/webservice/systemd/cal-job-monitor.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=XFEL offline calibration Slurm job monitor
+
+[Service]
+Type=exec
+WorkingDirectory=%h/deployments/development/git.xfel.eu/detectors/pycalibration/current/
+ExecStart=%h/deployments/development/git.xfel.eu/detectors/pycalibration/current/.venv/bin/python -m webservice.job_monitor --log-level DEBUG
+Restart=on-failure
+
+[Install]
+WantedBy=default.target
diff --git a/webservice/systemd/cal-overview-server.service b/webservice/systemd/cal-overview-server.service
new file mode 100644
index 0000000000000000000000000000000000000000..a952da03b554966069da6d48d676e34a070a8bae
--- /dev/null
+++ b/webservice/systemd/cal-overview-server.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=XFEL offline calibration status web page
+
+[Service]
+Type=exec
+WorkingDirectory=%h/deployments/development/git.xfel.eu/detectors/pycalibration/current/
+ExecStart=%h/deployments/development/git.xfel.eu/detectors/pycalibration/current/.venv/bin/python -m webservice.serve_overview
+Restart=on-failure
+
+[Install]
+WantedBy=default.target
diff --git a/webservice/systemd/cal-webservice.service b/webservice/systemd/cal-webservice.service
new file mode 100644
index 0000000000000000000000000000000000000000..835c5b0469ed2e1a6618ec516240982e5a4d6838
--- /dev/null
+++ b/webservice/systemd/cal-webservice.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=XFEL offline calibration ZMQ service
+
+[Service]
+Type=exec
+WorkingDirectory=%h/deployments/development/git.xfel.eu/detectors/pycalibration/current/
+ExecStart=%h/deployments/development/git.xfel.eu/detectors/pycalibration/current/.venv/bin/python -m webservice.webservice --mode prod --log-level DEBUG
+Restart=on-failure
+
+[Install]
+WantedBy=default.target