diff --git a/docker-compose/calibration-tables/Dockerfile b/docker-compose/calibration-tables/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..e7ce3d858a362c221401627b722ffef2e5fd9abe
--- /dev/null
+++ b/docker-compose/calibration-tables/Dockerfile
@@ -0,0 +1,2 @@
+FROM nginx
+COPY caltables /usr/share/nginx/html
diff --git a/docker-compose/calibration-tables/README.md b/docker-compose/calibration-tables/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..10261e80cbacf9081284a2ca4e950d3300a8b639
--- /dev/null
+++ b/docker-compose/calibration-tables/README.md
@@ -0,0 +1,3 @@
+# Calibration Tables
+
+Service to serve HDF5 calibration table files over HTTP. Used by antennafield device.
diff --git a/tangostationcontrol/tangostationcontrol/devices/calibrations/CalTable-DevStation-HBA-150MHz.h5 b/docker-compose/calibration-tables/caltables/CalTable-DevStation-HBA-150MHz.h5
similarity index 100%
rename from tangostationcontrol/tangostationcontrol/devices/calibrations/CalTable-DevStation-HBA-150MHz.h5
rename to docker-compose/calibration-tables/caltables/CalTable-DevStation-HBA-150MHz.h5
diff --git a/tangostationcontrol/tangostationcontrol/devices/calibrations/CalTable-DevStation-HBA-200MHz.h5 b/docker-compose/calibration-tables/caltables/CalTable-DevStation-HBA-200MHz.h5
similarity index 100%
rename from tangostationcontrol/tangostationcontrol/devices/calibrations/CalTable-DevStation-HBA-200MHz.h5
rename to docker-compose/calibration-tables/caltables/CalTable-DevStation-HBA-200MHz.h5
diff --git a/tangostationcontrol/tangostationcontrol/devices/calibrations/CalTable-DevStation-HBA-250MHz.h5 b/docker-compose/calibration-tables/caltables/CalTable-DevStation-HBA-250MHz.h5
similarity index 100%
rename from tangostationcontrol/tangostationcontrol/devices/calibrations/CalTable-DevStation-HBA-250MHz.h5
rename to docker-compose/calibration-tables/caltables/CalTable-DevStation-HBA-250MHz.h5
diff --git a/tangostationcontrol/tangostationcontrol/devices/calibrations/CalTable-DevStation-LBA-50MHz.h5 b/docker-compose/calibration-tables/caltables/CalTable-DevStation-LBA-50MHz.h5
similarity index 100%
rename from tangostationcontrol/tangostationcontrol/devices/calibrations/CalTable-DevStation-LBA-50MHz.h5
rename to docker-compose/calibration-tables/caltables/CalTable-DevStation-LBA-50MHz.h5
diff --git a/docker-compose/device-antennafield.yml b/docker-compose/device-antennafield.yml
index dd564967687f652132e44cc940d58d2c470dcc53..f2ac0746cd91e62f7eb8bf40c1a36fb9870d213d 100644
--- a/docker-compose/device-antennafield.yml
+++ b/docker-compose/device-antennafield.yml
@@ -41,6 +41,9 @@ services:
       - "host.docker.internal:host-gateway"
     volumes:
       - ..:/opt/lofar/tango:rw
+      - type: bind
+        source: ./calibration-tables/caltables
+        target: /opt/calibration-tables
     environment:
       - TANGO_HOST=${TANGO_HOST}
       - TANGO_ZMQ_EVENT_PORT=5815
diff --git a/docker-compose/lofar-device-base/Dockerfile b/docker-compose/lofar-device-base/Dockerfile
index 7b49a6cfcd2db4b786d7f5698267a672c6790a01..42254ec6f31dfc7e4844826e208556a45edba233 100644
--- a/docker-compose/lofar-device-base/Dockerfile
+++ b/docker-compose/lofar-device-base/Dockerfile
@@ -27,3 +27,4 @@ COPY lofar-device-base/casarc /home/tango/.casarc
 
 ENV TANGO_LOG_PATH=/var/log/tango
 RUN sudo mkdir -p /var/log/tango && sudo chmod a+rwx /var/log/tango
+RUN sudo mkdir -p /opt/calibration-tables && sudo chmod a+rwx /opt/calibration-tables
diff --git a/tangostationcontrol/tangostationcontrol/devices/antennafield.py b/tangostationcontrol/tangostationcontrol/devices/antennafield.py
index c6cde673ee2cba4933ccd070ea6f96a3ee9a16e0..d2a2baa771839b71e47710891357a224274ed718 100644
--- a/tangostationcontrol/tangostationcontrol/devices/antennafield.py
+++ b/tangostationcontrol/tangostationcontrol/devices/antennafield.py
@@ -8,7 +8,6 @@ import logging
 from enum import IntEnum
 from math import pi
 from typing import List
-from pathlib import Path
 
 import numpy
 
@@ -62,10 +61,7 @@ from tangostationcontrol.devices.sdp.common import (
 from tangostationcontrol.devices.sdp.sdp import SDP
 
 logger = logging.getLogger()
-ABS_PATH = str(Path().absolute()).replace("\\", "/")
-CALIBRATION_PATH = (
-    f"{ABS_PATH}/tangostationcontrol/tangostationcontrol/devices/calibrations"
-)
+CALIBRATION_ROOT_DIR = "/opt/calibration-tables"
 
 __all__ = ["AntennaField", "AntennaToRecvMapper", "AntennaToSdpMapper", "main"]
 
@@ -848,7 +844,10 @@ class AntennaField(LOFARDevice):
     def _create_calibration_table_filename(self, reference_frequency: str) -> str:
         """Create a valid calibration table filename given a mode"""
         antennafield_name = self.get_name().split("/")[2]
-        return f"{CALIBRATION_PATH}/CalTable-{self.station}-{antennafield_name}-{reference_frequency}MHz.h5"
+        return (
+            f"{CALIBRATION_ROOT_DIR}/"
+            + f"CalTable-{self.station}-{antennafield_name}-{reference_frequency}MHz.h5"
+        )
 
     def _get_calibration_table(self, reference_frequency: str) -> numpy.ndarray:
         """Returns a calibration table of shape