diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ecc7cb66b4981721e2cdc2408880d848feec7a46..dfefbf525071cba82dbb87e36d1a52ac2e5d7f27 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -18,6 +18,9 @@ before_script:
     - make -C ${CI_JOB_NAME}
     - '[ "$CI_COMMIT_REF_NAME" != master ] || make -C ${CI_JOB_NAME} push'
 
+bullseye:
+  <<: *build_job
+
 buster:
   <<: *build_job
 
diff --git a/Makefile b/Makefile
index 6199bc29fda679818b62d468daed32f80c1d951e..95c016de5599366d196a70d5165bc470ca771221 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-TARGETS := buster stretch
+TARGETS := bullseye buster stretch
 TARGETS_PUSH := $(TARGETS:=-push)
 TARGETS_CLEAN := $(TARGETS:=-clean)
 
diff --git a/bullseye/Makefile b/bullseye/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..5575b7277a605ae7414bb26db324fb38dbb2f465
--- /dev/null
+++ b/bullseye/Makefile
@@ -0,0 +1 @@
+include ../dist.mk
diff --git a/bullseye/x86/Dockerfile b/bullseye/x86/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..fdd2dd20d2d8bd9500cdb90a52467cde3f2e03ca
--- /dev/null
+++ b/bullseye/x86/Dockerfile
@@ -0,0 +1,28 @@
+FROM i386/debian:bullseye
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get update \
+ && apt-get upgrade -y
+
+RUN apt-get install -y \
+  sudo wget curl tar expect git \
+  devscripts build-essential lintian ccache pbuilder aptitude apt-utils
+
+RUN echo "deb http://deb.debian.org/debian bullseye-backports main" >/etc/apt/sources.list.d/backports.list
+
+RUN curl https://packages.icinga.com/icinga.key | apt-key add - \
+ && DIST=$(awk -F"[)(]+" '/VERSION=/ {print $2}' /etc/os-release) \
+ && DIST=bullseye \
+ && echo "deb http://packages.icinga.com/debian icinga-${DIST} main" > /etc/apt/sources.list.d/${DIST}-icinga.list
+
+RUN groupadd -g 1000 build \
+ && useradd -u 1000 -g 1000 -m build \
+ && echo 'Defaults:build !requiretty' | tee -a /etc/sudoers \
+ && echo 'build ALL=(ALL:ALL) NOPASSWD: ALL' | tee -a /etc/sudoers \
+ && chown build.build /usr/local/bin
+
+USER build
+RUN git clone https://git.icinga.com/build-docker/scripts.git /usr/local/bin
+ENTRYPOINT ["/usr/local/bin/icinga-build-entrypoint"]
+CMD ["icinga-build-package"]
diff --git a/bullseye/x86/Makefile b/bullseye/x86/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..15497f28d78567a8e18e399400d9e251ae31c60b
--- /dev/null
+++ b/bullseye/x86/Makefile
@@ -0,0 +1 @@
+include ../../image.mk
diff --git a/bullseye/x86_64/Dockerfile b/bullseye/x86_64/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..82bd868397d97c7b980395a1a0ea3106dd116da8
--- /dev/null
+++ b/bullseye/x86_64/Dockerfile
@@ -0,0 +1,28 @@
+FROM debian:bullseye
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get update \
+ && apt-get upgrade -y
+
+RUN apt-get install -y \
+  sudo wget curl tar expect git \
+  devscripts build-essential lintian ccache pbuilder aptitude apt-utils
+
+RUN echo "deb http://deb.debian.org/debian bullseye-backports main" >/etc/apt/sources.list.d/backports.list
+
+RUN curl https://packages.icinga.com/icinga.key | apt-key add - \
+ && DIST=$(awk -F"[)(]+" '/VERSION=/ {print $2}' /etc/os-release) \
+ && DIST=bullseye \
+ && echo "deb http://packages.icinga.com/debian icinga-${DIST} main" > /etc/apt/sources.list.d/${DIST}-icinga.list
+
+RUN groupadd -g 1000 build \
+ && useradd -u 1000 -g 1000 -m build \
+ && echo 'Defaults:build !requiretty' | tee -a /etc/sudoers \
+ && echo 'build ALL=(ALL:ALL) NOPASSWD: ALL' | tee -a /etc/sudoers \
+ && chown build.build /usr/local/bin
+
+USER build
+RUN git clone https://git.icinga.com/build-docker/scripts.git /usr/local/bin
+ENTRYPOINT ["/usr/local/bin/icinga-build-entrypoint"]
+CMD ["icinga-build-package"]
diff --git a/bullseye/x86_64/Makefile b/bullseye/x86_64/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..15497f28d78567a8e18e399400d9e251ae31c60b
--- /dev/null
+++ b/bullseye/x86_64/Makefile
@@ -0,0 +1 @@
+include ../../image.mk