diff --git a/main.cpp b/main.cpp
index 09d9b70..bace238 100644
--- a/main.cpp
+++ b/main.cpp
@@ -61,9 +61,7 @@
 
 } // namespace pid_control
 
-/** the swampd daemon will check for the existence of this file. */
-constexpr auto jsonConfigurationPath = "/usr/share/swampd/config.json";
-std::string configPath = "";
+std::filesystem::path configPath = "";
 
 /* async io context for operation */
 boost::asio::io_context io;
@@ -80,6 +78,24 @@
 namespace pid_control
 {
 
+std::filesystem::path searchConfigurationPath()
+{
+    static constexpr auto name = "config.json";
+
+    for (auto pathSeg : {std::filesystem::current_path(),
+                         std::filesystem::path{"/var/lib/swampd"},
+                         std::filesystem::path{"/usr/share/swampd"}})
+    {
+        auto file = pathSeg / name;
+        if (std::filesystem::exists(file))
+        {
+            return file;
+        }
+    }
+
+    return name;
+}
+
 void restartControlLoops()
 {
     static SensorManager mgmr;
@@ -101,8 +117,8 @@
     zones.clear();
     isCanceling = false;
 
-    const std::string& path =
-        (configPath.length() > 0) ? configPath : jsonConfigurationPath;
+    const std::filesystem::path path =
+        (!configPath.empty()) ? configPath : searchConfigurationPath();
 
     if (std::filesystem::exists(path))
     {
