diff --git a/docker/Dockerfile_debian_unstable b/docker/Dockerfile_debian_unstable
new file mode 100644
index 0000000000000000000000000000000000000000..d7c23b4c701be3a2856abf8a3cbc1b427f913fff
--- /dev/null
+++ b/docker/Dockerfile_debian_unstable
@@ -0,0 +1,33 @@
+FROM debian:unstable
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get clean
+RUN apt-get update && \
+    apt-get install -y -o Acquire::Retries=10 \
+        ca-certificates \
+        devscripts \
+        dirmngr \
+        gnupg \
+        wget
+
+RUN wget -O - https://dl.jami.net/public-key.gpg | \
+    tee /usr/share/keyrings/jami-archive-keyring.gpg > /dev/null
+RUN sh -c "echo 'deb [signed-by=/usr/share/keyrings/jami-archive-keyring.gpg] https://dl.jami.net/nightly/debian_unstable_qt/ jami main' > /etc/apt/sources.list.d/libqt-jami.list"
+
+# add deb-src entries (needed for next step)
+RUN sed -n '/^deb\s/s//deb-src /p' /etc/apt/sources.list > /etc/apt/sources.list.d/deb-src.list
+RUN apt-get clean && apt-get update
+
+COPY packaging/rules/debian/* /tmp/builddeps/debian/
+RUN cd /tmp/builddeps && \
+    apt-get update; \
+    mk-build-deps \
+        --remove --install \
+        --tool "apt-get -y --no-install-recommends -o Acquire::Retries=10" \
+        "debian/control"; \
+    cd / && rm -rf /tmp/builddeps
+
+ADD scripts/build-package-debian.sh /opt/build-package-debian.sh
+
+CMD /opt/build-package-debian.sh
diff --git a/docker/Dockerfile_debian_unstable_qt b/docker/Dockerfile_debian_unstable_qt
new file mode 100644
index 0000000000000000000000000000000000000000..0412961dc4ecf8efd4362f3409f2ff478c589f10
--- /dev/null
+++ b/docker/Dockerfile_debian_unstable_qt
@@ -0,0 +1,26 @@
+FROM debian:unstable
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get clean
+RUN apt-get update && \
+    apt-get install -y -o Acquire::Retries=10 \
+        devscripts \
+        wget
+
+# add/enable src repos (needed for next step)
+RUN sed -n '/^deb\s/s//deb-src /p' /etc/apt/sources.list > /etc/apt/sources.list.d/deb-src.list
+
+RUN apt-get clean && apt-get update
+COPY packaging/rules/debian-qt/* /tmp/builddeps/debian/
+RUN cd /tmp/builddeps && \
+    apt-get update; \
+    mk-build-deps \
+        --remove --install \
+        --tool "apt-get -y --no-install-recommends -o Acquire::Retries=10" \
+        "debian/control"; \
+    cd / && rm -rf /tmp/builddeps
+
+ADD scripts/build-package-debian-qt.sh /opt/build-package-debian-qt.sh
+
+CMD /opt/build-package-debian-qt.sh
diff --git a/packaging/rules/debian/jami-all.postinst b/packaging/rules/debian/jami-all.postinst
index 6f49cce25c32cb82d73776bb7b909688b42fa655..dfdd0902c9849aaf217af8dd672a0578eb28725d 100755
--- a/packaging/rules/debian/jami-all.postinst
+++ b/packaging/rules/debian/jami-all.postinst
@@ -106,8 +106,15 @@ if [ -f /etc/os-release ]; then
         ENDTAG="ubuntu_20.10"
     elif [ "${UBUNTU_CODENAME}" = "hirsute" ] || [ "${ID}_${VERSION_ID}" = "ubuntu_21.04" ]; then
         ENDTAG="ubuntu_21.04"
-    elif [ "${ID}" = "debian" ] && [ "$(command -v lsb_release)" ] && [ "$(lsb_release -rs)" = "testing" ]; then
+    elif [ "${ID}" = "debian" ] && \
+             [ "$(command -v lsb_release)" ] && \
+             [ "$(lsb_release -rs)" = "testing" ]; then
         ENDTAG="debian_testing"
+    elif [ "${ID}" = "debian" ] && \
+             [ "$(command -v apt-cache)" ] && \
+             [ "$(command -v grep)" ] && \
+             apt-cache policy | grep -q "a=unstable" -; then
+        ENDTAG="debian_unstable"
     else
         # Distribution is not supported. Don't provide automatic updates.
         CAN_ADD_DEB_SOURCE=false
diff --git a/scripts/make-packaging-target.py b/scripts/make-packaging-target.py
index 506770ea684a6930deea887cff72e96f9d00e78e..60a3f136cb18d32b0c32805420b12b9f64473c57 100755
--- a/scripts/make-packaging-target.py
+++ b/scripts/make-packaging-target.py
@@ -154,6 +154,17 @@ def run_generate_all(parsed_args):
             "options": DPKG_BASED_SYSTEMS_DOCKER_RUN_OPTIONS_QT,
             "version": "$(DEBIAN_QT_VERSION)",
         },
+        {
+            "distribution": "debian_unstable",
+            "output_file": "$(DEBIAN_DSC_FILENAME)",
+            "options": DPKG_BASED_SYSTEMS_DOCKER_RUN_OPTIONS,
+        },
+        {
+            "distribution": "debian_unstable_qt",
+            "output_file": "$(DEBIAN_QT_DSC_FILENAME)",
+            "options": DPKG_BASED_SYSTEMS_DOCKER_RUN_OPTIONS_QT,
+            "version": "$(DEBIAN_QT_VERSION)",
+        },
         # Raspbian
         {
             "distribution": "raspbian_10_armhf",