diff --git a/.gitignore b/.gitignore
index fed72ef0594e1d525f78864a24386e19ee90ed44..ff7d90384b2263a675dfef203744c62e4840ca12 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,3 +14,4 @@ data/
 !data/tomcat/context/.gitkeep
 /Pipfile
 docker-compose-dev.yml
+cron/crontab.txt
diff --git a/cron/crontab.example.txt b/cron/crontab.example.txt
new file mode 100644
index 0000000000000000000000000000000000000000..de3fc4a6d591a8a78bcebb74ed1964858b27c241
--- /dev/null
+++ b/cron/crontab.example.txt
@@ -0,0 +1 @@
+30 1-23/3 * * * /scripts/sms_sync/sms_cv_tables.py > $STDOUT 2>$STDERR
diff --git a/cron/crontab.txt b/cron/crontab.txt
deleted file mode 100644
index ab29da22c9286918c81e88e4d8a9f08ecf3368f3..0000000000000000000000000000000000000000
--- a/cron/crontab.txt
+++ /dev/null
@@ -1 +0,0 @@
-15,45 * * * * /usr/bin/python3 /scripts/sms_sync/sms_cv_tables.py > $STDOUT 2>$STDERR
diff --git a/cron/scripts/sms_sync/sms_cv_tables.py b/cron/scripts/sms_sync/sms_cv_tables.py
old mode 100644
new mode 100755
index 5b5f73fac7c2d429a927cd83649ae9e8456028d5..7b4b0f0ed405d03b56d242cb03f714f5af408fe7
--- a/cron/scripts/sms_sync/sms_cv_tables.py
+++ b/cron/scripts/sms_sync/sms_cv_tables.py
@@ -1,18 +1,25 @@
+#!/usr/bin/python3
+
 from sync_utils import (
     create_table,
     upsert_table,
     get_connection_from_env,
 )
-from os import chdir, environ
+import os
 import json
 
-url = environ.get("CV_API_URL")
-home = environ.get("HOME")
-chdir(home)
+script_dir = os.path.dirname(os.path.abspath(__file__))
+
+file_names = [
+    "sms_cv_measured_quantity.json"
+]
 
-file_path_list = ["scripts/sms_sync/tables/sms_cv_measured_quantity.json"]
+file_path_list = [os.path.join(script_dir, "tables", file_name) for file_name in file_names]
 
 if __name__ == "__main__":
+    url = os.environ.get("CV_API_URL")
+    home = os.environ.get("HOME")
+    os.chdir(home)
     for file_path in file_path_list:
         db = get_connection_from_env()
         try:
diff --git a/docker-compose.yml b/docker-compose.yml
index 402aae4b249ff5092cb1362503590b748b5a4705..7f20fdec1441731ed7e1d4cd7549dff8756d6550 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -25,6 +25,7 @@ services:
     volumes:
       - "./data/minio/certs/:/tmp/certs"
       - "./nginx/html/:/home/tsm/html"
+      - "./cron:/tmp/cron"
 
 
   # Summary
@@ -697,6 +698,8 @@ services:
     depends_on:
         mqtt-broker:
             condition: "service_healthy"
+        init:
+          condition: "service_completed_successfully"
     environment:
       LOG_LEVEL: "${LOG_LEVEL}"
       TOPIC: "thing_creation"
@@ -791,6 +794,9 @@ services:
         ${FRONTEND_POSTGRES_PASS}@\
         ${FRONTEND_POSTGRES_HOST}/\
         ${FRONTEND_POSTGRES_DB}"
+    depends_on:
+      init:
+        condition: "service_completed_successfully"
     healthcheck:
       test: [ "CMD-SHELL", "service cron status || exit 1" ]
       interval: 5s
diff --git a/init/init.sh b/init/init.sh
index b9cef69ad049f5ba7aeb1ce94f527bbda2ad4db5..dd50a95d678407388bbcab5460ba0334a33ad23f 100755
--- a/init/init.sh
+++ b/init/init.sh
@@ -22,4 +22,10 @@ chmod a+x /home/tsm/html/css
 chmod a+x /home/tsm/html/images
 chmod -R a+r /home/tsm/html
 
-tree -pugfi /home/tsm/html
\ No newline at end of file
+tree -pugfi /home/tsm/html
+
+# Create crontab.txt if it not already exists
+if [ ! -f "/tmp/cron/crontab.txt" ]; then
+    touch "/tmp/cron/crontab.txt"
+    chmod 666 "/tmp/cron/crontab.txt"
+fi