diff --git a/ct/listmonk.sh b/ct/listmonk.sh
index a44f147cca5..24ebbbf936f 100644
--- a/ct/listmonk.sh
+++ b/ct/listmonk.sh
@@ -66,8 +66,12 @@ if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_v
 
   msg_info "Updating ${APP} to v${RELEASE}"
   cd /opt
+  mv /opt/listmonk/ /opt/listmonk-backup
+  mkdir /opt/listmonk/
   wget -q "https://github.com/knadh/listmonk/releases/download/v${RELEASE}/listmonk_${RELEASE}_linux_amd64.tar.gz"
   tar -xzf "listmonk_${RELEASE}_linux_amd64.tar.gz" -C /opt/listmonk
+  mv /opt/listmonk-backup/config.toml /opt/listmonk/config.toml
+  mv /opt/listmonk-backup/uploads /opt/listmonk/uploads
   /opt/listmonk/listmonk --upgrade --yes --config /opt/listmonk/config.toml &>/dev/null
   echo "${RELEASE}" >/opt/${APP}_version.txt
   msg_ok "Updated $APP to v${RELEASE}"
@@ -78,6 +82,7 @@ if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_v
 
   msg_info "Cleaning up"
   rm -rf "/opt/listmonk_${RELEASE}_linux_amd64.tar.gz"
+  rm -rf /opt/listmonk-backup/
   msg_ok "Cleaned"
 
   msg_ok "Updated Successfully"
diff --git a/install/listmonk-install.sh b/install/listmonk-install.sh
index 09c2893310b..18b8eaeb893 100644
--- a/install/listmonk-install.sh
+++ b/install/listmonk-install.sh
@@ -38,6 +38,7 @@ msg_ok "Set up PostgreSQL"
 msg_info "Installing listmonk"
 cd /opt
 mkdir /opt/listmonk
+mkdir /opt/listmonk/uploads
 RELEASE=$(curl -s https://api.github.com/repos/knadh/listmonk/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 wget -q "https://github.com/knadh/listmonk/releases/download/v${RELEASE}/listmonk_${RELEASE}_linux_amd64.tar.gz"
 tar -xzf "listmonk_${RELEASE}_linux_amd64.tar.gz" -C /opt/listmonk