diff --git a/bin/ansible/roles/atlassian.bitbucket/tasks/main.yml b/bin/ansible/roles/atlassian.bitbucket/tasks/main.yml
index de5be1f20..0a7b0bb3b 100644
--- a/bin/ansible/roles/atlassian.bitbucket/tasks/main.yml
+++ b/bin/ansible/roles/atlassian.bitbucket/tasks/main.yml
@@ -1,23 +1,23 @@
-- name: "Generate images for Stash (Bitbucket) 1 (jdk7)"
-  import_tasks: atlassian.bitbucket.1.jdk7.yml
-
-- name: "Generate images for  Stash (Bitbucket) 2 (jdk7)"
-  import_tasks: atlassian.bitbucket.2.jdk7.yml
-
-- name: "Generate images for  Stash (Bitbucket) 3 (jdk8)"
-  import_tasks: atlassian.bitbucket.3.jdk8.yml
-
-- name: "Generate images for  Bitbucket 4 (jdk8)"
-  import_tasks: atlassian.bitbucket.4.jdk8.yml
-
-- name: "Generate images for  Bitbucket 5 (jdk8)"
-  import_tasks: atlassian.bitbucket.5.jdk8.yml
-
-- name: "Generate images for  Bitbucket 6 (jdk8 + jdk11)"
-  import_tasks: atlassian.bitbucket.6.jdk8-11.yml
-
-- name: "Generate images for  Bitbucket 7 (jdk8 + jdk11)"
-  import_tasks: atlassian.bitbucket.7.jdk8-11.yml
+# - name: "Generate images for Stash (Bitbucket) 1 (jdk7)"
+#   import_tasks: atlassian.bitbucket.1.jdk7.yml
+# 
+# - name: "Generate images for  Stash (Bitbucket) 2 (jdk7)"
+#   import_tasks: atlassian.bitbucket.2.jdk7.yml
+# 
+# - name: "Generate images for  Stash (Bitbucket) 3 (jdk8)"
+#   import_tasks: atlassian.bitbucket.3.jdk8.yml
+# 
+# - name: "Generate images for  Bitbucket 4 (jdk8)"
+#   import_tasks: atlassian.bitbucket.4.jdk8.yml
+# 
+# - name: "Generate images for  Bitbucket 5 (jdk8)"
+#   import_tasks: atlassian.bitbucket.5.jdk8.yml
+# 
+# - name: "Generate images for  Bitbucket 6 (jdk8 + jdk11)"
+#   import_tasks: atlassian.bitbucket.6.jdk8-11.yml
+# 
+# - name: "Generate images for  Bitbucket 7 (jdk8 + jdk11)"
+#   import_tasks: atlassian.bitbucket.7.jdk8-11.yml
 
 - name: "Generate images for  Bitbucket 8 (jdk8 + jdk11)"
   import_tasks: atlassian.bitbucket.8.jdk8-11.yml
diff --git a/bin/ansible/roles/atlassian.jira/tasks/main.yml b/bin/ansible/roles/atlassian.jira/tasks/main.yml
index 26c85d802..ef50677e3 100644
--- a/bin/ansible/roles/atlassian.jira/tasks/main.yml
+++ b/bin/ansible/roles/atlassian.jira/tasks/main.yml
@@ -1,31 +1,31 @@
 # broken envs, generating without it
 #- name: "Generate images for Jira 4 (jdk6)"
 #  import_tasks: atlassian.jira.4.jdk6.yml
-
-- name: "Generate images for Jira 5.0-5.1 (jdk6)"
-  import_tasks: atlassian.jira.5.jdk6.yml
-
-- name: "Generate images for Jira 5.2 (jdk6, jdk7)"
-  import_tasks: atlassian.jira.5.jdk6-7.yml
-
-- name: "Generate images for Jira 6.0-6.2 (jdk7)"
-  import_tasks: atlassian.jira.6.jdk7.yml
-
-- name: "Generate images for Jira 6.3-6.4 (jdk7, jdk8)"
-  import_tasks: atlassian.jira.6.jdk7-8.yml
-
-- name: "Generate images for Jira 7 (jdk8) - old links"
-  import_tasks: atlassian.jira.7.jdk8p1.yml
-
-- name: "Generate images for Jira 7 (jdk8)"
-  import_tasks: atlassian.jira.7.jdk8p2.yml
-
-- name: "Generate images for Jira 8.0-8.1 (jdk8)"
-  import_tasks: atlassian.jira.8.jdk8.yml
-
-- name: "Generate images for Jira 8.2-8.20 (jdk8, jdk11)"
-  import_tasks: atlassian.jira.8.jdk8-11.yml
-
+# 
+# - name: "Generate images for Jira 5.0-5.1 (jdk6)"
+#   import_tasks: atlassian.jira.5.jdk6.yml
+# 
+# - name: "Generate images for Jira 5.2 (jdk6, jdk7)"
+#   import_tasks: atlassian.jira.5.jdk6-7.yml
+# 
+# - name: "Generate images for Jira 6.0-6.2 (jdk7)"
+#   import_tasks: atlassian.jira.6.jdk7.yml
+# 
+# - name: "Generate images for Jira 6.3-6.4 (jdk7, jdk8)"
+#   import_tasks: atlassian.jira.6.jdk7-8.yml
+# 
+# - name: "Generate images for Jira 7 (jdk8) - old links"
+#   import_tasks: atlassian.jira.7.jdk8p1.yml
+# 
+# - name: "Generate images for Jira 7 (jdk8)"
+#   import_tasks: atlassian.jira.7.jdk8p2.yml
+# 
+# - name: "Generate images for Jira 8.0-8.1 (jdk8)"
+#   import_tasks: atlassian.jira.8.jdk8.yml
+# 
+# - name: "Generate images for Jira 8.2-8.20 (jdk8, jdk11)"
+#   import_tasks: atlassian.jira.8.jdk8-11.yml
+# 
 - name: "Generate images for Jira 9.0-9.5 (jdk8, jdk11)"
   import_tasks: atlassian.jira.9.jdk8-11.yml
 
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.13/.env b/linux/ecosystem/atlassian/bitbucket/8/8.19.13/.env
new file mode 100644
index 000000000..cbec98f6f
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.13/.env
@@ -0,0 +1,2 @@
+RELEASE=8.19.13
+DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.13/Dockerfile b/linux/ecosystem/atlassian/bitbucket/8/8.19.13/Dockerfile
new file mode 100644
index 000000000..beb691b2c
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.13/Dockerfile
@@ -0,0 +1,94 @@
+FROM epicmorg/debian:bookworm-jdk17
+LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=8.19.13
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
+ENV BITBUCKET_HOME          /var/atlassian/application-data/bitbucket
+ENV BITBUCKET_INSTALL_DIR   /opt/atlassian/bitbucket
+
+VOLUME ["${BITBUCKET_HOME}"]
+WORKDIR $BITBUCKET_HOME
+
+# Expose HTTP and SSH ports
+EXPOSE 7990
+EXPOSE 7999
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p                                 ${BITBUCKET_INSTALL_DIR} &&  \
+    tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP}        ${BITBUCKET_INSTALL_DIR}
+
+##################################################################
+#                   Post-Installing Setup
+##################################################################
+RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+    rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
+    rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
+    apt-get update &&  \
+    apt-get remove -y \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp && \
+    apt-get autoremove -y && \
+    apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp
+
+##################################################################
+#                  Git Check
+##################################################################
+RUN git-lfs install --skip-repo --system --force && \
+    echo "=============================================" && \
+    echo git $(git --version) && \
+    echo git-lfs $(git-lfs --version) && \
+    echo "============================================="
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.13/Makefile b/linux/ecosystem/atlassian/bitbucket/8/8.19.13/Makefile
new file mode 100644
index 000000000..b5e50619b
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.13/Makefile
@@ -0,0 +1,38 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+	make build
+	make deploy
+	make clean
+
+
+build:
+	buildah-wrapper --build
+
+deploy:
+	buildah-wrapper --deploy
+
+
+build-kaniko:
+	kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+	kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+	docker-compose build --compress --parallel --progress plain
+
+
+deploy-compose:
+	docker-compose push
+
+clean:
+	docker container prune -f
+	docker image prune -f
+	docker network prune -f
+	docker volume prune -f
+	docker system prune -af
+	buildah rm -a
+	buildah rmi -a
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.13/docker-compose.yml b/linux/ecosystem/atlassian/bitbucket/8/8.19.13/docker-compose.yml
new file mode 100644
index 000000000..5611ffc14
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.13/docker-compose.yml
@@ -0,0 +1,10 @@
+#version: '3'
+services:
+  app:
+    image: "epicmorg/bitbucket:8.19.13"
+    build:
+      context: .
+  app-jdk17:
+    image: "epicmorg/bitbucket:8.19.13-jdk17"
+    build:
+      context: .
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.13/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/8/8.19.13/entrypoint.sh
new file mode 100755
index 000000000..842224a8c
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.13/entrypoint.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+set -euo pipefail
+
+# Set recommended umask of "u=,g=w,o=rwx" (0027)
+umask 0027
+
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
+export JRE_HOME="$JAVA_HOME/jre"
+export JAVA_BINARY="$JRE_HOME/bin/java"
+export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+#export PATH=$JAVA_HOME/bin:$PATH
+
+
+# Setup Catalina Opts
+: ${CATALINA_CONNECTOR_PROXYNAME:=}
+: ${CATALINA_CONNECTOR_PROXYPORT:=}
+: ${CATALINA_CONNECTOR_SCHEME:=http}
+: ${CATALINA_CONNECTOR_SECURE:=false}
+
+: ${CATALINA_OPTS:=}
+
+: ${JAVA_OPTS:=}
+
+: ${ELASTICSEARCH_ENABLED:=true}
+: ${APPLICATION_MODE:=}
+
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
+
+JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
+
+ARGS="$@"
+
+# Start Bitbucket without Elasticsearch
+if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
+    ARGS="--no-search ${ARGS}"
+fi
+
+# Start Bitbucket as the correct user.
+if [ "${UID}" -eq 0 ]; then
+    echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
+    PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
+    EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
+    if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
+        echo "Updating permissions for BITBUCKET_HOME"
+        mkdir -p "${BITBUCKET_HOME}/lib" &&
+            chmod -R 700 "${BITBUCKET_HOME}" &&
+            chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
+    fi
+    # Now drop privileges
+    exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
+else
+    exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
+fi
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.14/.env b/linux/ecosystem/atlassian/bitbucket/8/8.19.14/.env
new file mode 100644
index 000000000..a43991983
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.14/.env
@@ -0,0 +1,2 @@
+RELEASE=8.19.14
+DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.14/Dockerfile b/linux/ecosystem/atlassian/bitbucket/8/8.19.14/Dockerfile
new file mode 100644
index 000000000..840e90dff
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.14/Dockerfile
@@ -0,0 +1,94 @@
+FROM epicmorg/debian:bookworm-jdk17
+LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=8.19.14
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
+ENV BITBUCKET_HOME          /var/atlassian/application-data/bitbucket
+ENV BITBUCKET_INSTALL_DIR   /opt/atlassian/bitbucket
+
+VOLUME ["${BITBUCKET_HOME}"]
+WORKDIR $BITBUCKET_HOME
+
+# Expose HTTP and SSH ports
+EXPOSE 7990
+EXPOSE 7999
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p                                 ${BITBUCKET_INSTALL_DIR} &&  \
+    tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP}        ${BITBUCKET_INSTALL_DIR}
+
+##################################################################
+#                   Post-Installing Setup
+##################################################################
+RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+    rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
+    rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
+    apt-get update &&  \
+    apt-get remove -y \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp && \
+    apt-get autoremove -y && \
+    apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp
+
+##################################################################
+#                  Git Check
+##################################################################
+RUN git-lfs install --skip-repo --system --force && \
+    echo "=============================================" && \
+    echo git $(git --version) && \
+    echo git-lfs $(git-lfs --version) && \
+    echo "============================================="
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.14/Makefile b/linux/ecosystem/atlassian/bitbucket/8/8.19.14/Makefile
new file mode 100644
index 000000000..b5e50619b
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.14/Makefile
@@ -0,0 +1,38 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+	make build
+	make deploy
+	make clean
+
+
+build:
+	buildah-wrapper --build
+
+deploy:
+	buildah-wrapper --deploy
+
+
+build-kaniko:
+	kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+	kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+	docker-compose build --compress --parallel --progress plain
+
+
+deploy-compose:
+	docker-compose push
+
+clean:
+	docker container prune -f
+	docker image prune -f
+	docker network prune -f
+	docker volume prune -f
+	docker system prune -af
+	buildah rm -a
+	buildah rmi -a
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.14/docker-compose.yml b/linux/ecosystem/atlassian/bitbucket/8/8.19.14/docker-compose.yml
new file mode 100644
index 000000000..ea185f147
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.14/docker-compose.yml
@@ -0,0 +1,10 @@
+#version: '3'
+services:
+  app:
+    image: "epicmorg/bitbucket:8.19.14"
+    build:
+      context: .
+  app-jdk17:
+    image: "epicmorg/bitbucket:8.19.14-jdk17"
+    build:
+      context: .
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.14/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/8/8.19.14/entrypoint.sh
new file mode 100755
index 000000000..842224a8c
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.14/entrypoint.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+set -euo pipefail
+
+# Set recommended umask of "u=,g=w,o=rwx" (0027)
+umask 0027
+
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
+export JRE_HOME="$JAVA_HOME/jre"
+export JAVA_BINARY="$JRE_HOME/bin/java"
+export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+#export PATH=$JAVA_HOME/bin:$PATH
+
+
+# Setup Catalina Opts
+: ${CATALINA_CONNECTOR_PROXYNAME:=}
+: ${CATALINA_CONNECTOR_PROXYPORT:=}
+: ${CATALINA_CONNECTOR_SCHEME:=http}
+: ${CATALINA_CONNECTOR_SECURE:=false}
+
+: ${CATALINA_OPTS:=}
+
+: ${JAVA_OPTS:=}
+
+: ${ELASTICSEARCH_ENABLED:=true}
+: ${APPLICATION_MODE:=}
+
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
+
+JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
+
+ARGS="$@"
+
+# Start Bitbucket without Elasticsearch
+if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
+    ARGS="--no-search ${ARGS}"
+fi
+
+# Start Bitbucket as the correct user.
+if [ "${UID}" -eq 0 ]; then
+    echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
+    PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
+    EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
+    if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
+        echo "Updating permissions for BITBUCKET_HOME"
+        mkdir -p "${BITBUCKET_HOME}/lib" &&
+            chmod -R 700 "${BITBUCKET_HOME}" &&
+            chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
+    fi
+    # Now drop privileges
+    exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
+else
+    exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
+fi
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.15/.env b/linux/ecosystem/atlassian/bitbucket/8/8.19.15/.env
new file mode 100644
index 000000000..73278a964
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.15/.env
@@ -0,0 +1,2 @@
+RELEASE=8.19.15
+DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.15/Dockerfile b/linux/ecosystem/atlassian/bitbucket/8/8.19.15/Dockerfile
new file mode 100644
index 000000000..001d6b265
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.15/Dockerfile
@@ -0,0 +1,94 @@
+FROM epicmorg/debian:bookworm-jdk17
+LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=8.19.15
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
+ENV BITBUCKET_HOME          /var/atlassian/application-data/bitbucket
+ENV BITBUCKET_INSTALL_DIR   /opt/atlassian/bitbucket
+
+VOLUME ["${BITBUCKET_HOME}"]
+WORKDIR $BITBUCKET_HOME
+
+# Expose HTTP and SSH ports
+EXPOSE 7990
+EXPOSE 7999
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p                                 ${BITBUCKET_INSTALL_DIR} &&  \
+    tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP}        ${BITBUCKET_INSTALL_DIR}
+
+##################################################################
+#                   Post-Installing Setup
+##################################################################
+RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+    rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
+    rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
+    apt-get update &&  \
+    apt-get remove -y \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp && \
+    apt-get autoremove -y && \
+    apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp
+
+##################################################################
+#                  Git Check
+##################################################################
+RUN git-lfs install --skip-repo --system --force && \
+    echo "=============================================" && \
+    echo git $(git --version) && \
+    echo git-lfs $(git-lfs --version) && \
+    echo "============================================="
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.15/Makefile b/linux/ecosystem/atlassian/bitbucket/8/8.19.15/Makefile
new file mode 100644
index 000000000..b5e50619b
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.15/Makefile
@@ -0,0 +1,38 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+	make build
+	make deploy
+	make clean
+
+
+build:
+	buildah-wrapper --build
+
+deploy:
+	buildah-wrapper --deploy
+
+
+build-kaniko:
+	kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+	kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+	docker-compose build --compress --parallel --progress plain
+
+
+deploy-compose:
+	docker-compose push
+
+clean:
+	docker container prune -f
+	docker image prune -f
+	docker network prune -f
+	docker volume prune -f
+	docker system prune -af
+	buildah rm -a
+	buildah rmi -a
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.15/docker-compose.yml b/linux/ecosystem/atlassian/bitbucket/8/8.19.15/docker-compose.yml
new file mode 100644
index 000000000..b22f79d49
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.15/docker-compose.yml
@@ -0,0 +1,10 @@
+#version: '3'
+services:
+  app:
+    image: "epicmorg/bitbucket:8.19.15"
+    build:
+      context: .
+  app-jdk17:
+    image: "epicmorg/bitbucket:8.19.15-jdk17"
+    build:
+      context: .
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.15/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/8/8.19.15/entrypoint.sh
new file mode 100755
index 000000000..842224a8c
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.15/entrypoint.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+set -euo pipefail
+
+# Set recommended umask of "u=,g=w,o=rwx" (0027)
+umask 0027
+
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
+export JRE_HOME="$JAVA_HOME/jre"
+export JAVA_BINARY="$JRE_HOME/bin/java"
+export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+#export PATH=$JAVA_HOME/bin:$PATH
+
+
+# Setup Catalina Opts
+: ${CATALINA_CONNECTOR_PROXYNAME:=}
+: ${CATALINA_CONNECTOR_PROXYPORT:=}
+: ${CATALINA_CONNECTOR_SCHEME:=http}
+: ${CATALINA_CONNECTOR_SECURE:=false}
+
+: ${CATALINA_OPTS:=}
+
+: ${JAVA_OPTS:=}
+
+: ${ELASTICSEARCH_ENABLED:=true}
+: ${APPLICATION_MODE:=}
+
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
+
+JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
+
+ARGS="$@"
+
+# Start Bitbucket without Elasticsearch
+if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
+    ARGS="--no-search ${ARGS}"
+fi
+
+# Start Bitbucket as the correct user.
+if [ "${UID}" -eq 0 ]; then
+    echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
+    PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
+    EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
+    if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
+        echo "Updating permissions for BITBUCKET_HOME"
+        mkdir -p "${BITBUCKET_HOME}/lib" &&
+            chmod -R 700 "${BITBUCKET_HOME}" &&
+            chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
+    fi
+    # Now drop privileges
+    exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
+else
+    exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
+fi
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.16/.env b/linux/ecosystem/atlassian/bitbucket/8/8.19.16/.env
new file mode 100644
index 000000000..66d83f665
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.16/.env
@@ -0,0 +1,2 @@
+RELEASE=8.19.16
+DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.16/Dockerfile b/linux/ecosystem/atlassian/bitbucket/8/8.19.16/Dockerfile
new file mode 100644
index 000000000..28f07fdce
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.16/Dockerfile
@@ -0,0 +1,94 @@
+FROM epicmorg/debian:bookworm-jdk17
+LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=8.19.16
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
+ENV BITBUCKET_HOME          /var/atlassian/application-data/bitbucket
+ENV BITBUCKET_INSTALL_DIR   /opt/atlassian/bitbucket
+
+VOLUME ["${BITBUCKET_HOME}"]
+WORKDIR $BITBUCKET_HOME
+
+# Expose HTTP and SSH ports
+EXPOSE 7990
+EXPOSE 7999
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p                                 ${BITBUCKET_INSTALL_DIR} &&  \
+    tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP}        ${BITBUCKET_INSTALL_DIR}
+
+##################################################################
+#                   Post-Installing Setup
+##################################################################
+RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+    rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
+    rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
+    apt-get update &&  \
+    apt-get remove -y \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp && \
+    apt-get autoremove -y && \
+    apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp
+
+##################################################################
+#                  Git Check
+##################################################################
+RUN git-lfs install --skip-repo --system --force && \
+    echo "=============================================" && \
+    echo git $(git --version) && \
+    echo git-lfs $(git-lfs --version) && \
+    echo "============================================="
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.16/Makefile b/linux/ecosystem/atlassian/bitbucket/8/8.19.16/Makefile
new file mode 100644
index 000000000..b5e50619b
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.16/Makefile
@@ -0,0 +1,38 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+	make build
+	make deploy
+	make clean
+
+
+build:
+	buildah-wrapper --build
+
+deploy:
+	buildah-wrapper --deploy
+
+
+build-kaniko:
+	kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+	kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+	docker-compose build --compress --parallel --progress plain
+
+
+deploy-compose:
+	docker-compose push
+
+clean:
+	docker container prune -f
+	docker image prune -f
+	docker network prune -f
+	docker volume prune -f
+	docker system prune -af
+	buildah rm -a
+	buildah rmi -a
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.16/docker-compose.yml b/linux/ecosystem/atlassian/bitbucket/8/8.19.16/docker-compose.yml
new file mode 100644
index 000000000..6b3c404eb
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.16/docker-compose.yml
@@ -0,0 +1,10 @@
+#version: '3'
+services:
+  app:
+    image: "epicmorg/bitbucket:8.19.16"
+    build:
+      context: .
+  app-jdk17:
+    image: "epicmorg/bitbucket:8.19.16-jdk17"
+    build:
+      context: .
diff --git a/linux/ecosystem/atlassian/bitbucket/8/8.19.16/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/8/8.19.16/entrypoint.sh
new file mode 100755
index 000000000..842224a8c
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/8/8.19.16/entrypoint.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+set -euo pipefail
+
+# Set recommended umask of "u=,g=w,o=rwx" (0027)
+umask 0027
+
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
+export JRE_HOME="$JAVA_HOME/jre"
+export JAVA_BINARY="$JRE_HOME/bin/java"
+export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+#export PATH=$JAVA_HOME/bin:$PATH
+
+
+# Setup Catalina Opts
+: ${CATALINA_CONNECTOR_PROXYNAME:=}
+: ${CATALINA_CONNECTOR_PROXYPORT:=}
+: ${CATALINA_CONNECTOR_SCHEME:=http}
+: ${CATALINA_CONNECTOR_SECURE:=false}
+
+: ${CATALINA_OPTS:=}
+
+: ${JAVA_OPTS:=}
+
+: ${ELASTICSEARCH_ENABLED:=true}
+: ${APPLICATION_MODE:=}
+
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
+
+JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
+
+ARGS="$@"
+
+# Start Bitbucket without Elasticsearch
+if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
+    ARGS="--no-search ${ARGS}"
+fi
+
+# Start Bitbucket as the correct user.
+if [ "${UID}" -eq 0 ]; then
+    echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
+    PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
+    EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
+    if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
+        echo "Updating permissions for BITBUCKET_HOME"
+        mkdir -p "${BITBUCKET_HOME}/lib" &&
+            chmod -R 700 "${BITBUCKET_HOME}" &&
+            chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
+    fi
+    # Now drop privileges
+    exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
+else
+    exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
+fi
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.1/.env b/linux/ecosystem/atlassian/bitbucket/9/9.4.1/.env
new file mode 100644
index 000000000..7913235c4
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.1/.env
@@ -0,0 +1,2 @@
+RELEASE=9.4.1
+DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.1/Dockerfile b/linux/ecosystem/atlassian/bitbucket/9/9.4.1/Dockerfile
new file mode 100644
index 000000000..ebb455a98
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.1/Dockerfile
@@ -0,0 +1,94 @@
+FROM epicmorg/debian:bookworm-jdk17
+LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.4.1
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
+ENV BITBUCKET_HOME          /var/atlassian/application-data/bitbucket
+ENV BITBUCKET_INSTALL_DIR   /opt/atlassian/bitbucket
+
+VOLUME ["${BITBUCKET_HOME}"]
+WORKDIR $BITBUCKET_HOME
+
+# Expose HTTP and SSH ports
+EXPOSE 7990
+EXPOSE 7999
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p                                 ${BITBUCKET_INSTALL_DIR} &&  \
+    tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP}        ${BITBUCKET_INSTALL_DIR}
+
+##################################################################
+#                   Post-Installing Setup
+##################################################################
+RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+    rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
+    rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
+    apt-get update &&  \
+    apt-get remove -y \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp && \
+    apt-get autoremove -y && \
+    apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp
+
+##################################################################
+#                  Git Check
+##################################################################
+RUN git-lfs install --skip-repo --system --force && \
+    echo "=============================================" && \
+    echo git $(git --version) && \
+    echo git-lfs $(git-lfs --version) && \
+    echo "============================================="
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.1/Dockerfile.jdk21 b/linux/ecosystem/atlassian/bitbucket/9/9.4.1/Dockerfile.jdk21
new file mode 100644
index 000000000..41503f6bd
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.1/Dockerfile.jdk21
@@ -0,0 +1,94 @@
+FROM epicmorg/debian:bookworm-jdk21
+LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.4.1
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
+ENV BITBUCKET_HOME          /var/atlassian/application-data/bitbucket
+ENV BITBUCKET_INSTALL_DIR   /opt/atlassian/bitbucket
+
+VOLUME ["${BITBUCKET_HOME}"]
+WORKDIR $BITBUCKET_HOME
+
+# Expose HTTP and SSH ports
+EXPOSE 7990
+EXPOSE 7999
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p                                 ${BITBUCKET_INSTALL_DIR} &&  \
+    tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP}        ${BITBUCKET_INSTALL_DIR}
+
+##################################################################
+#                   Post-Installing Setup
+##################################################################
+RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+    rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
+    rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
+    apt-get update &&  \
+    apt-get remove -y \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp && \
+    apt-get autoremove -y && \
+    apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp
+
+##################################################################
+#                  Git Check
+##################################################################
+RUN git-lfs install --skip-repo --system --force && \
+    echo "=============================================" && \
+    echo git $(git --version) && \
+    echo git-lfs $(git-lfs --version) && \
+    echo "============================================="
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.1/Makefile b/linux/ecosystem/atlassian/bitbucket/9/9.4.1/Makefile
new file mode 100644
index 000000000..b5e50619b
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.1/Makefile
@@ -0,0 +1,38 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+	make build
+	make deploy
+	make clean
+
+
+build:
+	buildah-wrapper --build
+
+deploy:
+	buildah-wrapper --deploy
+
+
+build-kaniko:
+	kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+	kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+	docker-compose build --compress --parallel --progress plain
+
+
+deploy-compose:
+	docker-compose push
+
+clean:
+	docker container prune -f
+	docker image prune -f
+	docker network prune -f
+	docker volume prune -f
+	docker system prune -af
+	buildah rm -a
+	buildah rmi -a
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.1/docker-compose.yml b/linux/ecosystem/atlassian/bitbucket/9/9.4.1/docker-compose.yml
new file mode 100644
index 000000000..bd54d23c9
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.1/docker-compose.yml
@@ -0,0 +1,15 @@
+#version: '3'
+services:
+  app:
+    image: "epicmorg/bitbucket:9.4.1"
+    build:
+      context: .
+  app-jdk17:
+    image: "epicmorg/bitbucket:9.4.1-jdk17"
+    build:
+      context: .
+  app-jdk21:
+    image: "epicmorg/bitbucket:9.4.1-jdk21"
+    build:
+      context: .
+      dockerfile: Dockerfile.jdk21
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.1/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/9/9.4.1/entrypoint.sh
new file mode 100755
index 000000000..842224a8c
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.1/entrypoint.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+set -euo pipefail
+
+# Set recommended umask of "u=,g=w,o=rwx" (0027)
+umask 0027
+
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
+export JRE_HOME="$JAVA_HOME/jre"
+export JAVA_BINARY="$JRE_HOME/bin/java"
+export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+#export PATH=$JAVA_HOME/bin:$PATH
+
+
+# Setup Catalina Opts
+: ${CATALINA_CONNECTOR_PROXYNAME:=}
+: ${CATALINA_CONNECTOR_PROXYPORT:=}
+: ${CATALINA_CONNECTOR_SCHEME:=http}
+: ${CATALINA_CONNECTOR_SECURE:=false}
+
+: ${CATALINA_OPTS:=}
+
+: ${JAVA_OPTS:=}
+
+: ${ELASTICSEARCH_ENABLED:=true}
+: ${APPLICATION_MODE:=}
+
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
+
+JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
+
+ARGS="$@"
+
+# Start Bitbucket without Elasticsearch
+if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
+    ARGS="--no-search ${ARGS}"
+fi
+
+# Start Bitbucket as the correct user.
+if [ "${UID}" -eq 0 ]; then
+    echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
+    PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
+    EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
+    if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
+        echo "Updating permissions for BITBUCKET_HOME"
+        mkdir -p "${BITBUCKET_HOME}/lib" &&
+            chmod -R 700 "${BITBUCKET_HOME}" &&
+            chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
+    fi
+    # Now drop privileges
+    exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
+else
+    exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
+fi
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.2/.env b/linux/ecosystem/atlassian/bitbucket/9/9.4.2/.env
new file mode 100644
index 000000000..45419a72c
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.2/.env
@@ -0,0 +1,2 @@
+RELEASE=9.4.2
+DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.2/Dockerfile b/linux/ecosystem/atlassian/bitbucket/9/9.4.2/Dockerfile
new file mode 100644
index 000000000..3b98440ba
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.2/Dockerfile
@@ -0,0 +1,94 @@
+FROM epicmorg/debian:bookworm-jdk17
+LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.4.2
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
+ENV BITBUCKET_HOME          /var/atlassian/application-data/bitbucket
+ENV BITBUCKET_INSTALL_DIR   /opt/atlassian/bitbucket
+
+VOLUME ["${BITBUCKET_HOME}"]
+WORKDIR $BITBUCKET_HOME
+
+# Expose HTTP and SSH ports
+EXPOSE 7990
+EXPOSE 7999
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p                                 ${BITBUCKET_INSTALL_DIR} &&  \
+    tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP}        ${BITBUCKET_INSTALL_DIR}
+
+##################################################################
+#                   Post-Installing Setup
+##################################################################
+RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+    rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
+    rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
+    apt-get update &&  \
+    apt-get remove -y \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp && \
+    apt-get autoremove -y && \
+    apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp
+
+##################################################################
+#                  Git Check
+##################################################################
+RUN git-lfs install --skip-repo --system --force && \
+    echo "=============================================" && \
+    echo git $(git --version) && \
+    echo git-lfs $(git-lfs --version) && \
+    echo "============================================="
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.2/Dockerfile.jdk21 b/linux/ecosystem/atlassian/bitbucket/9/9.4.2/Dockerfile.jdk21
new file mode 100644
index 000000000..b2ea74c99
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.2/Dockerfile.jdk21
@@ -0,0 +1,94 @@
+FROM epicmorg/debian:bookworm-jdk21
+LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.4.2
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
+ENV BITBUCKET_HOME          /var/atlassian/application-data/bitbucket
+ENV BITBUCKET_INSTALL_DIR   /opt/atlassian/bitbucket
+
+VOLUME ["${BITBUCKET_HOME}"]
+WORKDIR $BITBUCKET_HOME
+
+# Expose HTTP and SSH ports
+EXPOSE 7990
+EXPOSE 7999
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p                                 ${BITBUCKET_INSTALL_DIR} &&  \
+    tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP}        ${BITBUCKET_INSTALL_DIR}
+
+##################################################################
+#                   Post-Installing Setup
+##################################################################
+RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+    rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
+    rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
+    apt-get update &&  \
+    apt-get remove -y \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp && \
+    apt-get autoremove -y && \
+    apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp
+
+##################################################################
+#                  Git Check
+##################################################################
+RUN git-lfs install --skip-repo --system --force && \
+    echo "=============================================" && \
+    echo git $(git --version) && \
+    echo git-lfs $(git-lfs --version) && \
+    echo "============================================="
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.2/Makefile b/linux/ecosystem/atlassian/bitbucket/9/9.4.2/Makefile
new file mode 100644
index 000000000..b5e50619b
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.2/Makefile
@@ -0,0 +1,38 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+	make build
+	make deploy
+	make clean
+
+
+build:
+	buildah-wrapper --build
+
+deploy:
+	buildah-wrapper --deploy
+
+
+build-kaniko:
+	kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+	kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+	docker-compose build --compress --parallel --progress plain
+
+
+deploy-compose:
+	docker-compose push
+
+clean:
+	docker container prune -f
+	docker image prune -f
+	docker network prune -f
+	docker volume prune -f
+	docker system prune -af
+	buildah rm -a
+	buildah rmi -a
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.2/docker-compose.yml b/linux/ecosystem/atlassian/bitbucket/9/9.4.2/docker-compose.yml
new file mode 100644
index 000000000..fcab7017c
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.2/docker-compose.yml
@@ -0,0 +1,15 @@
+#version: '3'
+services:
+  app:
+    image: "epicmorg/bitbucket:9.4.2"
+    build:
+      context: .
+  app-jdk17:
+    image: "epicmorg/bitbucket:9.4.2-jdk17"
+    build:
+      context: .
+  app-jdk21:
+    image: "epicmorg/bitbucket:9.4.2-jdk21"
+    build:
+      context: .
+      dockerfile: Dockerfile.jdk21
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.2/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/9/9.4.2/entrypoint.sh
new file mode 100755
index 000000000..842224a8c
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.2/entrypoint.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+set -euo pipefail
+
+# Set recommended umask of "u=,g=w,o=rwx" (0027)
+umask 0027
+
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
+export JRE_HOME="$JAVA_HOME/jre"
+export JAVA_BINARY="$JRE_HOME/bin/java"
+export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+#export PATH=$JAVA_HOME/bin:$PATH
+
+
+# Setup Catalina Opts
+: ${CATALINA_CONNECTOR_PROXYNAME:=}
+: ${CATALINA_CONNECTOR_PROXYPORT:=}
+: ${CATALINA_CONNECTOR_SCHEME:=http}
+: ${CATALINA_CONNECTOR_SECURE:=false}
+
+: ${CATALINA_OPTS:=}
+
+: ${JAVA_OPTS:=}
+
+: ${ELASTICSEARCH_ENABLED:=true}
+: ${APPLICATION_MODE:=}
+
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
+
+JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
+
+ARGS="$@"
+
+# Start Bitbucket without Elasticsearch
+if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
+    ARGS="--no-search ${ARGS}"
+fi
+
+# Start Bitbucket as the correct user.
+if [ "${UID}" -eq 0 ]; then
+    echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
+    PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
+    EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
+    if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
+        echo "Updating permissions for BITBUCKET_HOME"
+        mkdir -p "${BITBUCKET_HOME}/lib" &&
+            chmod -R 700 "${BITBUCKET_HOME}" &&
+            chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
+    fi
+    # Now drop privileges
+    exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
+else
+    exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
+fi
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.3/.env b/linux/ecosystem/atlassian/bitbucket/9/9.4.3/.env
new file mode 100644
index 000000000..fea203ae3
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.3/.env
@@ -0,0 +1,2 @@
+RELEASE=9.4.3
+DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.3/Dockerfile b/linux/ecosystem/atlassian/bitbucket/9/9.4.3/Dockerfile
new file mode 100644
index 000000000..e2fd90d1a
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.3/Dockerfile
@@ -0,0 +1,94 @@
+FROM epicmorg/debian:bookworm-jdk17
+LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.4.3
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
+ENV BITBUCKET_HOME          /var/atlassian/application-data/bitbucket
+ENV BITBUCKET_INSTALL_DIR   /opt/atlassian/bitbucket
+
+VOLUME ["${BITBUCKET_HOME}"]
+WORKDIR $BITBUCKET_HOME
+
+# Expose HTTP and SSH ports
+EXPOSE 7990
+EXPOSE 7999
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p                                 ${BITBUCKET_INSTALL_DIR} &&  \
+    tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP}        ${BITBUCKET_INSTALL_DIR}
+
+##################################################################
+#                   Post-Installing Setup
+##################################################################
+RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+    rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
+    rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
+    apt-get update &&  \
+    apt-get remove -y \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp && \
+    apt-get autoremove -y && \
+    apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp
+
+##################################################################
+#                  Git Check
+##################################################################
+RUN git-lfs install --skip-repo --system --force && \
+    echo "=============================================" && \
+    echo git $(git --version) && \
+    echo git-lfs $(git-lfs --version) && \
+    echo "============================================="
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.3/Dockerfile.jdk21 b/linux/ecosystem/atlassian/bitbucket/9/9.4.3/Dockerfile.jdk21
new file mode 100644
index 000000000..68fe3846c
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.3/Dockerfile.jdk21
@@ -0,0 +1,94 @@
+FROM epicmorg/debian:bookworm-jdk21
+LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.4.3
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
+ENV BITBUCKET_HOME          /var/atlassian/application-data/bitbucket
+ENV BITBUCKET_INSTALL_DIR   /opt/atlassian/bitbucket
+
+VOLUME ["${BITBUCKET_HOME}"]
+WORKDIR $BITBUCKET_HOME
+
+# Expose HTTP and SSH ports
+EXPOSE 7990
+EXPOSE 7999
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p                                 ${BITBUCKET_INSTALL_DIR} &&  \
+    tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP}        ${BITBUCKET_INSTALL_DIR}
+
+##################################################################
+#                   Post-Installing Setup
+##################################################################
+RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+    rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
+    rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
+    apt-get update &&  \
+    apt-get remove -y \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp && \
+    apt-get autoremove -y && \
+    apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp
+
+##################################################################
+#                  Git Check
+##################################################################
+RUN git-lfs install --skip-repo --system --force && \
+    echo "=============================================" && \
+    echo git $(git --version) && \
+    echo git-lfs $(git-lfs --version) && \
+    echo "============================================="
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.3/Makefile b/linux/ecosystem/atlassian/bitbucket/9/9.4.3/Makefile
new file mode 100644
index 000000000..b5e50619b
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.3/Makefile
@@ -0,0 +1,38 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+	make build
+	make deploy
+	make clean
+
+
+build:
+	buildah-wrapper --build
+
+deploy:
+	buildah-wrapper --deploy
+
+
+build-kaniko:
+	kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+	kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+	docker-compose build --compress --parallel --progress plain
+
+
+deploy-compose:
+	docker-compose push
+
+clean:
+	docker container prune -f
+	docker image prune -f
+	docker network prune -f
+	docker volume prune -f
+	docker system prune -af
+	buildah rm -a
+	buildah rmi -a
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.3/docker-compose.yml b/linux/ecosystem/atlassian/bitbucket/9/9.4.3/docker-compose.yml
new file mode 100644
index 000000000..36fdb1862
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.3/docker-compose.yml
@@ -0,0 +1,15 @@
+#version: '3'
+services:
+  app:
+    image: "epicmorg/bitbucket:9.4.3"
+    build:
+      context: .
+  app-jdk17:
+    image: "epicmorg/bitbucket:9.4.3-jdk17"
+    build:
+      context: .
+  app-jdk21:
+    image: "epicmorg/bitbucket:9.4.3-jdk21"
+    build:
+      context: .
+      dockerfile: Dockerfile.jdk21
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.3/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/9/9.4.3/entrypoint.sh
new file mode 100755
index 000000000..842224a8c
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.3/entrypoint.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+set -euo pipefail
+
+# Set recommended umask of "u=,g=w,o=rwx" (0027)
+umask 0027
+
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
+export JRE_HOME="$JAVA_HOME/jre"
+export JAVA_BINARY="$JRE_HOME/bin/java"
+export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+#export PATH=$JAVA_HOME/bin:$PATH
+
+
+# Setup Catalina Opts
+: ${CATALINA_CONNECTOR_PROXYNAME:=}
+: ${CATALINA_CONNECTOR_PROXYPORT:=}
+: ${CATALINA_CONNECTOR_SCHEME:=http}
+: ${CATALINA_CONNECTOR_SECURE:=false}
+
+: ${CATALINA_OPTS:=}
+
+: ${JAVA_OPTS:=}
+
+: ${ELASTICSEARCH_ENABLED:=true}
+: ${APPLICATION_MODE:=}
+
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
+
+JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
+
+ARGS="$@"
+
+# Start Bitbucket without Elasticsearch
+if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
+    ARGS="--no-search ${ARGS}"
+fi
+
+# Start Bitbucket as the correct user.
+if [ "${UID}" -eq 0 ]; then
+    echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
+    PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
+    EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
+    if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
+        echo "Updating permissions for BITBUCKET_HOME"
+        mkdir -p "${BITBUCKET_HOME}/lib" &&
+            chmod -R 700 "${BITBUCKET_HOME}" &&
+            chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
+    fi
+    # Now drop privileges
+    exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
+else
+    exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
+fi
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.4/.env b/linux/ecosystem/atlassian/bitbucket/9/9.4.4/.env
new file mode 100644
index 000000000..78360cf0c
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.4/.env
@@ -0,0 +1,2 @@
+RELEASE=9.4.4
+DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.4/Dockerfile b/linux/ecosystem/atlassian/bitbucket/9/9.4.4/Dockerfile
new file mode 100644
index 000000000..e9b1768fa
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.4/Dockerfile
@@ -0,0 +1,94 @@
+FROM epicmorg/debian:bookworm-jdk17
+LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.4.4
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
+ENV BITBUCKET_HOME          /var/atlassian/application-data/bitbucket
+ENV BITBUCKET_INSTALL_DIR   /opt/atlassian/bitbucket
+
+VOLUME ["${BITBUCKET_HOME}"]
+WORKDIR $BITBUCKET_HOME
+
+# Expose HTTP and SSH ports
+EXPOSE 7990
+EXPOSE 7999
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p                                 ${BITBUCKET_INSTALL_DIR} &&  \
+    tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP}        ${BITBUCKET_INSTALL_DIR}
+
+##################################################################
+#                   Post-Installing Setup
+##################################################################
+RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+    rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
+    rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
+    apt-get update &&  \
+    apt-get remove -y \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp && \
+    apt-get autoremove -y && \
+    apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp
+
+##################################################################
+#                  Git Check
+##################################################################
+RUN git-lfs install --skip-repo --system --force && \
+    echo "=============================================" && \
+    echo git $(git --version) && \
+    echo git-lfs $(git-lfs --version) && \
+    echo "============================================="
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.4/Dockerfile.jdk21 b/linux/ecosystem/atlassian/bitbucket/9/9.4.4/Dockerfile.jdk21
new file mode 100644
index 000000000..f696c3425
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.4/Dockerfile.jdk21
@@ -0,0 +1,94 @@
+FROM epicmorg/debian:bookworm-jdk21
+LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.4.4
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
+ENV BITBUCKET_HOME          /var/atlassian/application-data/bitbucket
+ENV BITBUCKET_INSTALL_DIR   /opt/atlassian/bitbucket
+
+VOLUME ["${BITBUCKET_HOME}"]
+WORKDIR $BITBUCKET_HOME
+
+# Expose HTTP and SSH ports
+EXPOSE 7990
+EXPOSE 7999
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p                                 ${BITBUCKET_INSTALL_DIR} &&  \
+    tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP}        ${BITBUCKET_INSTALL_DIR}
+
+##################################################################
+#                   Post-Installing Setup
+##################################################################
+RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+    rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
+    rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
+    apt-get update &&  \
+    apt-get remove -y \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp && \
+    apt-get autoremove -y && \
+    apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp
+
+##################################################################
+#                  Git Check
+##################################################################
+RUN git-lfs install --skip-repo --system --force && \
+    echo "=============================================" && \
+    echo git $(git --version) && \
+    echo git-lfs $(git-lfs --version) && \
+    echo "============================================="
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.4/Makefile b/linux/ecosystem/atlassian/bitbucket/9/9.4.4/Makefile
new file mode 100644
index 000000000..b5e50619b
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.4/Makefile
@@ -0,0 +1,38 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+	make build
+	make deploy
+	make clean
+
+
+build:
+	buildah-wrapper --build
+
+deploy:
+	buildah-wrapper --deploy
+
+
+build-kaniko:
+	kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+	kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+	docker-compose build --compress --parallel --progress plain
+
+
+deploy-compose:
+	docker-compose push
+
+clean:
+	docker container prune -f
+	docker image prune -f
+	docker network prune -f
+	docker volume prune -f
+	docker system prune -af
+	buildah rm -a
+	buildah rmi -a
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.4/docker-compose.yml b/linux/ecosystem/atlassian/bitbucket/9/9.4.4/docker-compose.yml
new file mode 100644
index 000000000..9f732db52
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.4/docker-compose.yml
@@ -0,0 +1,15 @@
+#version: '3'
+services:
+  app:
+    image: "epicmorg/bitbucket:9.4.4"
+    build:
+      context: .
+  app-jdk17:
+    image: "epicmorg/bitbucket:9.4.4-jdk17"
+    build:
+      context: .
+  app-jdk21:
+    image: "epicmorg/bitbucket:9.4.4-jdk21"
+    build:
+      context: .
+      dockerfile: Dockerfile.jdk21
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.4.4/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/9/9.4.4/entrypoint.sh
new file mode 100755
index 000000000..842224a8c
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.4.4/entrypoint.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+set -euo pipefail
+
+# Set recommended umask of "u=,g=w,o=rwx" (0027)
+umask 0027
+
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
+export JRE_HOME="$JAVA_HOME/jre"
+export JAVA_BINARY="$JRE_HOME/bin/java"
+export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+#export PATH=$JAVA_HOME/bin:$PATH
+
+
+# Setup Catalina Opts
+: ${CATALINA_CONNECTOR_PROXYNAME:=}
+: ${CATALINA_CONNECTOR_PROXYPORT:=}
+: ${CATALINA_CONNECTOR_SCHEME:=http}
+: ${CATALINA_CONNECTOR_SECURE:=false}
+
+: ${CATALINA_OPTS:=}
+
+: ${JAVA_OPTS:=}
+
+: ${ELASTICSEARCH_ENABLED:=true}
+: ${APPLICATION_MODE:=}
+
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
+
+JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
+
+ARGS="$@"
+
+# Start Bitbucket without Elasticsearch
+if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
+    ARGS="--no-search ${ARGS}"
+fi
+
+# Start Bitbucket as the correct user.
+if [ "${UID}" -eq 0 ]; then
+    echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
+    PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
+    EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
+    if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
+        echo "Updating permissions for BITBUCKET_HOME"
+        mkdir -p "${BITBUCKET_HOME}/lib" &&
+            chmod -R 700 "${BITBUCKET_HOME}" &&
+            chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
+    fi
+    # Now drop privileges
+    exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
+else
+    exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
+fi
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.5.1/.env b/linux/ecosystem/atlassian/bitbucket/9/9.5.1/.env
new file mode 100644
index 000000000..9f6e340e4
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.5.1/.env
@@ -0,0 +1,2 @@
+RELEASE=9.5.1
+DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.5.1/Dockerfile b/linux/ecosystem/atlassian/bitbucket/9/9.5.1/Dockerfile
new file mode 100644
index 000000000..8538afa87
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.5.1/Dockerfile
@@ -0,0 +1,94 @@
+FROM epicmorg/debian:bookworm-jdk17
+LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.5.1
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
+ENV BITBUCKET_HOME          /var/atlassian/application-data/bitbucket
+ENV BITBUCKET_INSTALL_DIR   /opt/atlassian/bitbucket
+
+VOLUME ["${BITBUCKET_HOME}"]
+WORKDIR $BITBUCKET_HOME
+
+# Expose HTTP and SSH ports
+EXPOSE 7990
+EXPOSE 7999
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p                                 ${BITBUCKET_INSTALL_DIR} &&  \
+    tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP}        ${BITBUCKET_INSTALL_DIR}
+
+##################################################################
+#                   Post-Installing Setup
+##################################################################
+RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+    rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
+    rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
+    apt-get update &&  \
+    apt-get remove -y \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp && \
+    apt-get autoremove -y && \
+    apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp
+
+##################################################################
+#                  Git Check
+##################################################################
+RUN git-lfs install --skip-repo --system --force && \
+    echo "=============================================" && \
+    echo git $(git --version) && \
+    echo git-lfs $(git-lfs --version) && \
+    echo "============================================="
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.5.1/Dockerfile.jdk21 b/linux/ecosystem/atlassian/bitbucket/9/9.5.1/Dockerfile.jdk21
new file mode 100644
index 000000000..e6ef95ea0
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.5.1/Dockerfile.jdk21
@@ -0,0 +1,94 @@
+FROM epicmorg/debian:bookworm-jdk21
+LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.5.1
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
+ENV BITBUCKET_HOME          /var/atlassian/application-data/bitbucket
+ENV BITBUCKET_INSTALL_DIR   /opt/atlassian/bitbucket
+
+VOLUME ["${BITBUCKET_HOME}"]
+WORKDIR $BITBUCKET_HOME
+
+# Expose HTTP and SSH ports
+EXPOSE 7990
+EXPOSE 7999
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p                                 ${BITBUCKET_INSTALL_DIR} &&  \
+    tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP}        ${BITBUCKET_INSTALL_DIR}
+
+##################################################################
+#                   Post-Installing Setup
+##################################################################
+RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+    rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
+    rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
+    apt-get update &&  \
+    apt-get remove -y \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp && \
+    apt-get autoremove -y && \
+    apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp
+
+##################################################################
+#                  Git Check
+##################################################################
+RUN git-lfs install --skip-repo --system --force && \
+    echo "=============================================" && \
+    echo git $(git --version) && \
+    echo git-lfs $(git-lfs --version) && \
+    echo "============================================="
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.5.1/Makefile b/linux/ecosystem/atlassian/bitbucket/9/9.5.1/Makefile
new file mode 100644
index 000000000..b5e50619b
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.5.1/Makefile
@@ -0,0 +1,38 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+	make build
+	make deploy
+	make clean
+
+
+build:
+	buildah-wrapper --build
+
+deploy:
+	buildah-wrapper --deploy
+
+
+build-kaniko:
+	kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+	kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+	docker-compose build --compress --parallel --progress plain
+
+
+deploy-compose:
+	docker-compose push
+
+clean:
+	docker container prune -f
+	docker image prune -f
+	docker network prune -f
+	docker volume prune -f
+	docker system prune -af
+	buildah rm -a
+	buildah rmi -a
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.5.1/docker-compose.yml b/linux/ecosystem/atlassian/bitbucket/9/9.5.1/docker-compose.yml
new file mode 100644
index 000000000..80f484cb6
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.5.1/docker-compose.yml
@@ -0,0 +1,15 @@
+#version: '3'
+services:
+  app:
+    image: "epicmorg/bitbucket:9.5.1"
+    build:
+      context: .
+  app-jdk17:
+    image: "epicmorg/bitbucket:9.5.1-jdk17"
+    build:
+      context: .
+  app-jdk21:
+    image: "epicmorg/bitbucket:9.5.1-jdk21"
+    build:
+      context: .
+      dockerfile: Dockerfile.jdk21
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.5.1/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/9/9.5.1/entrypoint.sh
new file mode 100755
index 000000000..842224a8c
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.5.1/entrypoint.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+set -euo pipefail
+
+# Set recommended umask of "u=,g=w,o=rwx" (0027)
+umask 0027
+
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
+export JRE_HOME="$JAVA_HOME/jre"
+export JAVA_BINARY="$JRE_HOME/bin/java"
+export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+#export PATH=$JAVA_HOME/bin:$PATH
+
+
+# Setup Catalina Opts
+: ${CATALINA_CONNECTOR_PROXYNAME:=}
+: ${CATALINA_CONNECTOR_PROXYPORT:=}
+: ${CATALINA_CONNECTOR_SCHEME:=http}
+: ${CATALINA_CONNECTOR_SECURE:=false}
+
+: ${CATALINA_OPTS:=}
+
+: ${JAVA_OPTS:=}
+
+: ${ELASTICSEARCH_ENABLED:=true}
+: ${APPLICATION_MODE:=}
+
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
+
+JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
+
+ARGS="$@"
+
+# Start Bitbucket without Elasticsearch
+if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
+    ARGS="--no-search ${ARGS}"
+fi
+
+# Start Bitbucket as the correct user.
+if [ "${UID}" -eq 0 ]; then
+    echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
+    PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
+    EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
+    if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
+        echo "Updating permissions for BITBUCKET_HOME"
+        mkdir -p "${BITBUCKET_HOME}/lib" &&
+            chmod -R 700 "${BITBUCKET_HOME}" &&
+            chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
+    fi
+    # Now drop privileges
+    exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
+else
+    exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
+fi
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.5.2/.env b/linux/ecosystem/atlassian/bitbucket/9/9.5.2/.env
new file mode 100644
index 000000000..8ee0eba38
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.5.2/.env
@@ -0,0 +1,2 @@
+RELEASE=9.5.2
+DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.5.2/Dockerfile b/linux/ecosystem/atlassian/bitbucket/9/9.5.2/Dockerfile
new file mode 100644
index 000000000..a46058ea1
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.5.2/Dockerfile
@@ -0,0 +1,94 @@
+FROM epicmorg/debian:bookworm-jdk17
+LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.5.2
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
+ENV BITBUCKET_HOME          /var/atlassian/application-data/bitbucket
+ENV BITBUCKET_INSTALL_DIR   /opt/atlassian/bitbucket
+
+VOLUME ["${BITBUCKET_HOME}"]
+WORKDIR $BITBUCKET_HOME
+
+# Expose HTTP and SSH ports
+EXPOSE 7990
+EXPOSE 7999
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p                                 ${BITBUCKET_INSTALL_DIR} &&  \
+    tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP}        ${BITBUCKET_INSTALL_DIR}
+
+##################################################################
+#                   Post-Installing Setup
+##################################################################
+RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+    rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
+    rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
+    apt-get update &&  \
+    apt-get remove -y \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp && \
+    apt-get autoremove -y && \
+    apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp
+
+##################################################################
+#                  Git Check
+##################################################################
+RUN git-lfs install --skip-repo --system --force && \
+    echo "=============================================" && \
+    echo git $(git --version) && \
+    echo git-lfs $(git-lfs --version) && \
+    echo "============================================="
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.5.2/Dockerfile.jdk21 b/linux/ecosystem/atlassian/bitbucket/9/9.5.2/Dockerfile.jdk21
new file mode 100644
index 000000000..1cfdeba08
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.5.2/Dockerfile.jdk21
@@ -0,0 +1,94 @@
+FROM epicmorg/debian:bookworm-jdk21
+LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.5.2
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
+ENV BITBUCKET_HOME          /var/atlassian/application-data/bitbucket
+ENV BITBUCKET_INSTALL_DIR   /opt/atlassian/bitbucket
+
+VOLUME ["${BITBUCKET_HOME}"]
+WORKDIR $BITBUCKET_HOME
+
+# Expose HTTP and SSH ports
+EXPOSE 7990
+EXPOSE 7999
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p                                 ${BITBUCKET_INSTALL_DIR} &&  \
+    tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP}        ${BITBUCKET_INSTALL_DIR}
+
+##################################################################
+#                   Post-Installing Setup
+##################################################################
+RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+    rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
+    rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
+    apt-get update &&  \
+    apt-get remove -y \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp && \
+    apt-get autoremove -y && \
+    apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp
+
+##################################################################
+#                  Git Check
+##################################################################
+RUN git-lfs install --skip-repo --system --force && \
+    echo "=============================================" && \
+    echo git $(git --version) && \
+    echo git-lfs $(git-lfs --version) && \
+    echo "============================================="
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.5.2/Makefile b/linux/ecosystem/atlassian/bitbucket/9/9.5.2/Makefile
new file mode 100644
index 000000000..b5e50619b
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.5.2/Makefile
@@ -0,0 +1,38 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+	make build
+	make deploy
+	make clean
+
+
+build:
+	buildah-wrapper --build
+
+deploy:
+	buildah-wrapper --deploy
+
+
+build-kaniko:
+	kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+	kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+	docker-compose build --compress --parallel --progress plain
+
+
+deploy-compose:
+	docker-compose push
+
+clean:
+	docker container prune -f
+	docker image prune -f
+	docker network prune -f
+	docker volume prune -f
+	docker system prune -af
+	buildah rm -a
+	buildah rmi -a
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.5.2/docker-compose.yml b/linux/ecosystem/atlassian/bitbucket/9/9.5.2/docker-compose.yml
new file mode 100644
index 000000000..64088b9d2
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.5.2/docker-compose.yml
@@ -0,0 +1,15 @@
+#version: '3'
+services:
+  app:
+    image: "epicmorg/bitbucket:9.5.2"
+    build:
+      context: .
+  app-jdk17:
+    image: "epicmorg/bitbucket:9.5.2-jdk17"
+    build:
+      context: .
+  app-jdk21:
+    image: "epicmorg/bitbucket:9.5.2-jdk21"
+    build:
+      context: .
+      dockerfile: Dockerfile.jdk21
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.5.2/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/9/9.5.2/entrypoint.sh
new file mode 100755
index 000000000..842224a8c
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.5.2/entrypoint.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+set -euo pipefail
+
+# Set recommended umask of "u=,g=w,o=rwx" (0027)
+umask 0027
+
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
+export JRE_HOME="$JAVA_HOME/jre"
+export JAVA_BINARY="$JRE_HOME/bin/java"
+export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+#export PATH=$JAVA_HOME/bin:$PATH
+
+
+# Setup Catalina Opts
+: ${CATALINA_CONNECTOR_PROXYNAME:=}
+: ${CATALINA_CONNECTOR_PROXYPORT:=}
+: ${CATALINA_CONNECTOR_SCHEME:=http}
+: ${CATALINA_CONNECTOR_SECURE:=false}
+
+: ${CATALINA_OPTS:=}
+
+: ${JAVA_OPTS:=}
+
+: ${ELASTICSEARCH_ENABLED:=true}
+: ${APPLICATION_MODE:=}
+
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
+
+JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
+
+ARGS="$@"
+
+# Start Bitbucket without Elasticsearch
+if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
+    ARGS="--no-search ${ARGS}"
+fi
+
+# Start Bitbucket as the correct user.
+if [ "${UID}" -eq 0 ]; then
+    echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
+    PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
+    EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
+    if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
+        echo "Updating permissions for BITBUCKET_HOME"
+        mkdir -p "${BITBUCKET_HOME}/lib" &&
+            chmod -R 700 "${BITBUCKET_HOME}" &&
+            chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
+    fi
+    # Now drop privileges
+    exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
+else
+    exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
+fi
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.6.0/.env b/linux/ecosystem/atlassian/bitbucket/9/9.6.0/.env
new file mode 100644
index 000000000..6d88ea8b3
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.6.0/.env
@@ -0,0 +1,2 @@
+RELEASE=9.6.0
+DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.6.0/Dockerfile b/linux/ecosystem/atlassian/bitbucket/9/9.6.0/Dockerfile
new file mode 100644
index 000000000..5a1228b2f
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.6.0/Dockerfile
@@ -0,0 +1,94 @@
+FROM epicmorg/debian:bookworm-jdk17
+LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.6.0
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
+ENV BITBUCKET_HOME          /var/atlassian/application-data/bitbucket
+ENV BITBUCKET_INSTALL_DIR   /opt/atlassian/bitbucket
+
+VOLUME ["${BITBUCKET_HOME}"]
+WORKDIR $BITBUCKET_HOME
+
+# Expose HTTP and SSH ports
+EXPOSE 7990
+EXPOSE 7999
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p                                 ${BITBUCKET_INSTALL_DIR} &&  \
+    tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP}        ${BITBUCKET_INSTALL_DIR}
+
+##################################################################
+#                   Post-Installing Setup
+##################################################################
+RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+    rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
+    rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
+    apt-get update &&  \
+    apt-get remove -y \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp && \
+    apt-get autoremove -y && \
+    apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp
+
+##################################################################
+#                  Git Check
+##################################################################
+RUN git-lfs install --skip-repo --system --force && \
+    echo "=============================================" && \
+    echo git $(git --version) && \
+    echo git-lfs $(git-lfs --version) && \
+    echo "============================================="
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.6.0/Dockerfile.jdk21 b/linux/ecosystem/atlassian/bitbucket/9/9.6.0/Dockerfile.jdk21
new file mode 100644
index 000000000..62b48bf89
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.6.0/Dockerfile.jdk21
@@ -0,0 +1,94 @@
+FROM epicmorg/debian:bookworm-jdk21
+LABEL maintainer="Atlassian Bitbucket Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.6.0
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/stash/downloads/binary/atlassian-bitbucket-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/BitbucketServer/Bitbucket+Server+home+directory
+ENV BITBUCKET_HOME          /var/atlassian/application-data/bitbucket
+ENV BITBUCKET_INSTALL_DIR   /opt/atlassian/bitbucket
+
+VOLUME ["${BITBUCKET_HOME}"]
+WORKDIR $BITBUCKET_HOME
+
+# Expose HTTP and SSH ports
+EXPOSE 7990
+EXPOSE 7999
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p                                 ${BITBUCKET_INSTALL_DIR} &&  \
+    tar -xvzf /tmp/atlassian-bitbucket-${RELEASE}.tar.gz --strip-components=1 --directory "${BITBUCKET_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP}        ${BITBUCKET_INSTALL_DIR}
+
+##################################################################
+#                   Post-Installing Setup
+##################################################################
+RUN rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+    rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list && \
+    rm -rfv /etc/apt/sources.list.d/github_git-lfs.list && \
+    apt-get update &&  \
+    apt-get remove -y \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp && \
+    apt-get autoremove -y && \
+    apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+      git \
+      git-extras \
+      git-flow \
+      git-cvs \
+      git-doc \
+      git-email \
+      git-mediawiki \
+      git-crypt \
+      git-lfs \
+      git-ftp
+
+##################################################################
+#                  Git Check
+##################################################################
+RUN git-lfs install --skip-repo --system --force && \
+    echo "=============================================" && \
+    echo git $(git --version) && \
+    echo git-lfs $(git-lfs --version) && \
+    echo "============================================="
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.6.0/Makefile b/linux/ecosystem/atlassian/bitbucket/9/9.6.0/Makefile
new file mode 100644
index 000000000..b5e50619b
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.6.0/Makefile
@@ -0,0 +1,38 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+	make build
+	make deploy
+	make clean
+
+
+build:
+	buildah-wrapper --build
+
+deploy:
+	buildah-wrapper --deploy
+
+
+build-kaniko:
+	kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+	kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+	docker-compose build --compress --parallel --progress plain
+
+
+deploy-compose:
+	docker-compose push
+
+clean:
+	docker container prune -f
+	docker image prune -f
+	docker network prune -f
+	docker volume prune -f
+	docker system prune -af
+	buildah rm -a
+	buildah rmi -a
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.6.0/docker-compose.yml b/linux/ecosystem/atlassian/bitbucket/9/9.6.0/docker-compose.yml
new file mode 100644
index 000000000..5501d26bf
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.6.0/docker-compose.yml
@@ -0,0 +1,15 @@
+#version: '3'
+services:
+  app:
+    image: "epicmorg/bitbucket:9.6.0"
+    build:
+      context: .
+  app-jdk17:
+    image: "epicmorg/bitbucket:9.6.0-jdk17"
+    build:
+      context: .
+  app-jdk21:
+    image: "epicmorg/bitbucket:9.6.0-jdk21"
+    build:
+      context: .
+      dockerfile: Dockerfile.jdk21
diff --git a/linux/ecosystem/atlassian/bitbucket/9/9.6.0/entrypoint.sh b/linux/ecosystem/atlassian/bitbucket/9/9.6.0/entrypoint.sh
new file mode 100755
index 000000000..842224a8c
--- /dev/null
+++ b/linux/ecosystem/atlassian/bitbucket/9/9.6.0/entrypoint.sh
@@ -0,0 +1,57 @@
+#!/bin/bash
+set -euo pipefail
+
+# Set recommended umask of "u=,g=w,o=rwx" (0027)
+umask 0027
+
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
+export JRE_HOME="$JAVA_HOME/jre"
+export JAVA_BINARY="$JRE_HOME/bin/java"
+export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+#export PATH=$JAVA_HOME/bin:$PATH
+
+
+# Setup Catalina Opts
+: ${CATALINA_CONNECTOR_PROXYNAME:=}
+: ${CATALINA_CONNECTOR_PROXYPORT:=}
+: ${CATALINA_CONNECTOR_SCHEME:=http}
+: ${CATALINA_CONNECTOR_SECURE:=false}
+
+: ${CATALINA_OPTS:=}
+
+: ${JAVA_OPTS:=}
+
+: ${ELASTICSEARCH_ENABLED:=true}
+: ${APPLICATION_MODE:=}
+
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
+
+JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
+
+ARGS="$@"
+
+# Start Bitbucket without Elasticsearch
+if [ "${ELASTICSEARCH_ENABLED}" == "false" ] || [ "${APPLICATION_MODE}" == "mirror" ]; then
+    ARGS="--no-search ${ARGS}"
+fi
+
+# Start Bitbucket as the correct user.
+if [ "${UID}" -eq 0 ]; then
+    echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
+    PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${BITBUCKET_HOME}")
+    EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
+    if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
+        echo "Updating permissions for BITBUCKET_HOME"
+        mkdir -p "${BITBUCKET_HOME}/lib" &&
+            chmod -R 700 "${BITBUCKET_HOME}" &&
+            chown -R "${RUN_USER}:${RUN_GROUP}" "${BITBUCKET_HOME}"
+    fi
+    # Now drop privileges
+    exec su -s /bin/bash "${RUN_USER}" -c "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh ${ARGS}"
+else
+    exec "${BITBUCKET_INSTALL_DIR}/bin/start-bitbucket.sh" ${ARGS}
+fi
diff --git a/linux/ecosystem/atlassian/jira/10/10.3.3/.env b/linux/ecosystem/atlassian/jira/10/10.3.3/.env
new file mode 100644
index 000000000..13157a7eb
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.3.3/.env
@@ -0,0 +1,2 @@
+RELEASE=10.3.3
+DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
\ No newline at end of file
diff --git a/linux/ecosystem/atlassian/jira/10/10.3.3/Dockerfile b/linux/ecosystem/atlassian/jira/10/10.3.3/Dockerfile
new file mode 100644
index 000000000..a67847ed7
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.3.3/Dockerfile
@@ -0,0 +1,56 @@
+FROM epicmorg/debian:bookworm-jdk17
+LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=10.3.3
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
+ENV JIRA_HOME          /var/atlassian/application-data/jira
+ENV JIRA_INSTALL_DIR   /opt/atlassian/jira
+
+VOLUME ["${JIRA_HOME}"]
+WORKDIR $JIRA_HOME
+
+# Expose HTTP port
+EXPOSE 8080
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p ${JIRA_INSTALL_DIR} && \
+    tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
+    sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/jira/10/10.3.3/Makefile b/linux/ecosystem/atlassian/jira/10/10.3.3/Makefile
new file mode 100644
index 000000000..b5e50619b
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.3.3/Makefile
@@ -0,0 +1,38 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+	make build
+	make deploy
+	make clean
+
+
+build:
+	buildah-wrapper --build
+
+deploy:
+	buildah-wrapper --deploy
+
+
+build-kaniko:
+	kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+	kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+	docker-compose build --compress --parallel --progress plain
+
+
+deploy-compose:
+	docker-compose push
+
+clean:
+	docker container prune -f
+	docker image prune -f
+	docker network prune -f
+	docker volume prune -f
+	docker system prune -af
+	buildah rm -a
+	buildah rmi -a
diff --git a/linux/ecosystem/atlassian/jira/10/10.3.3/docker-compose.yml b/linux/ecosystem/atlassian/jira/10/10.3.3/docker-compose.yml
new file mode 100644
index 000000000..5f89e046f
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.3.3/docker-compose.yml
@@ -0,0 +1,10 @@
+#version: '3.9'
+services:
+  app:
+    image: "epicmorg/jira:10.3.3"
+    build:
+      context: .
+  app-jdk17:
+    image: "epicmorg/jira:10.3.3-jdk17"
+    build:
+      context: .
\ No newline at end of file
diff --git a/linux/ecosystem/atlassian/jira/10/10.3.3/entrypoint.sh b/linux/ecosystem/atlassian/jira/10/10.3.3/entrypoint.sh
new file mode 100755
index 000000000..d87fa3063
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.3.3/entrypoint.sh
@@ -0,0 +1,113 @@
+#!/bin/bash
+set -euo pipefail
+
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
+export JRE_HOME="$JAVA_HOME/jre"
+export JAVA_BINARY="$JRE_HOME/bin/java"
+export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+# Setup Catalina Opts
+: ${CATALINA_CONNECTOR_PROXYNAME:=}
+: ${CATALINA_CONNECTOR_PROXYPORT:=}
+: ${CATALINA_CONNECTOR_SCHEME:=http}
+: ${CATALINA_CONNECTOR_SECURE:=false}
+
+: ${CATALINA_OPTS:=}
+
+: ${JAVA_OPTS:=}
+
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
+
+export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
+
+# Setup Data Center configuration
+if [ ! -f "/etc/container_id" ]; then
+  uuidgen > /etc/container_id
+fi
+CONTAINER_ID=$(cat /etc/container_id)
+CONTAINER_SHORT_ID=${CONTAINER_ID::8}
+
+: ${CLUSTERED:=false}
+: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}}
+: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared}
+: ${EHCACHE_PEER_DISCOVERY:=}
+: ${EHCACHE_LISTENER_HOSTNAME:=}
+: ${EHCACHE_LISTENER_PORT:=}
+: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=}
+: ${EHCACHE_MULTICAST_ADDRESS:=}
+: ${EHCACHE_MULTICAST_PORT:=}
+: ${EHCACHE_MULTICAST_TIMETOLIVE:=}
+: ${EHCACHE_MULTICAST_HOSTNAME:=}
+
+# Cleanly set/unset values in cluster.properties
+function set_cluster_property {
+    if [ -z $2 ]; then
+        if [ -f "${JIRA_HOME}/cluster.properties" ]; then
+            sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties"
+        fi
+        return
+    fi
+    if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then
+        echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
+    elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then
+        sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties"
+    else
+        echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
+    fi
+}
+
+if [ "${CLUSTERED}" == "true" ]; then
+    set_cluster_property "jira.node.id" "${JIRA_NODE_ID}"
+    set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}"
+    set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}"
+    set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}"
+    set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}"
+    set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}"
+    set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}"
+    set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}"
+    set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}"
+    set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}"
+fi
+
+function set_home {
+    echo "Setting up JIRA_HOME.."
+
+    if [ -z "$JIRA_HOME" ]; then
+        echo "Variable JIRA_HOME is empty. Aborting"
+        exit 1
+    fi
+
+    echo "JIRA_HOME is: ${JIRA_HOME}"
+
+    echo "Patchig jira-application.properties"
+    sed -i "s|^jira\.home *=.*|jira.home = ${JIRA_HOME}|" ${JIRA_INSTALL_DIR}/atlassian-jira/WEB-INF/classes/jira-application.properties
+
+}
+
+# Start Jira as the correct user
+if [ "${UID}" -eq 0 ]; then
+    echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
+    PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}")
+    EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
+    if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
+        chmod -R 700 "${JIRA_HOME}" &&
+            chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}"
+    fi
+    set_home
+    # Now drop privileges
+    if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
+        exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@"
+    else
+        exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/startup.sh $@"
+    fi
+else
+    set_home
+    if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
+        exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@"
+    else
+        exec "$JIRA_INSTALL_DIR/bin/startup.sh" "$@"
+    fi
+fi
diff --git a/linux/ecosystem/atlassian/jira/10/10.3.4/.env b/linux/ecosystem/atlassian/jira/10/10.3.4/.env
new file mode 100644
index 000000000..44c824016
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.3.4/.env
@@ -0,0 +1,2 @@
+RELEASE=10.3.4
+DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
\ No newline at end of file
diff --git a/linux/ecosystem/atlassian/jira/10/10.3.4/Dockerfile b/linux/ecosystem/atlassian/jira/10/10.3.4/Dockerfile
new file mode 100644
index 000000000..ca1250521
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.3.4/Dockerfile
@@ -0,0 +1,56 @@
+FROM epicmorg/debian:bookworm-jdk17
+LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=10.3.4
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
+ENV JIRA_HOME          /var/atlassian/application-data/jira
+ENV JIRA_INSTALL_DIR   /opt/atlassian/jira
+
+VOLUME ["${JIRA_HOME}"]
+WORKDIR $JIRA_HOME
+
+# Expose HTTP port
+EXPOSE 8080
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p ${JIRA_INSTALL_DIR} && \
+    tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
+    sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/jira/10/10.3.4/Makefile b/linux/ecosystem/atlassian/jira/10/10.3.4/Makefile
new file mode 100644
index 000000000..b5e50619b
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.3.4/Makefile
@@ -0,0 +1,38 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+	make build
+	make deploy
+	make clean
+
+
+build:
+	buildah-wrapper --build
+
+deploy:
+	buildah-wrapper --deploy
+
+
+build-kaniko:
+	kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+	kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+	docker-compose build --compress --parallel --progress plain
+
+
+deploy-compose:
+	docker-compose push
+
+clean:
+	docker container prune -f
+	docker image prune -f
+	docker network prune -f
+	docker volume prune -f
+	docker system prune -af
+	buildah rm -a
+	buildah rmi -a
diff --git a/linux/ecosystem/atlassian/jira/10/10.3.4/docker-compose.yml b/linux/ecosystem/atlassian/jira/10/10.3.4/docker-compose.yml
new file mode 100644
index 000000000..30856fd6d
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.3.4/docker-compose.yml
@@ -0,0 +1,10 @@
+#version: '3.9'
+services:
+  app:
+    image: "epicmorg/jira:10.3.4"
+    build:
+      context: .
+  app-jdk17:
+    image: "epicmorg/jira:10.3.4-jdk17"
+    build:
+      context: .
\ No newline at end of file
diff --git a/linux/ecosystem/atlassian/jira/10/10.3.4/entrypoint.sh b/linux/ecosystem/atlassian/jira/10/10.3.4/entrypoint.sh
new file mode 100755
index 000000000..d87fa3063
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.3.4/entrypoint.sh
@@ -0,0 +1,113 @@
+#!/bin/bash
+set -euo pipefail
+
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
+export JRE_HOME="$JAVA_HOME/jre"
+export JAVA_BINARY="$JRE_HOME/bin/java"
+export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+# Setup Catalina Opts
+: ${CATALINA_CONNECTOR_PROXYNAME:=}
+: ${CATALINA_CONNECTOR_PROXYPORT:=}
+: ${CATALINA_CONNECTOR_SCHEME:=http}
+: ${CATALINA_CONNECTOR_SECURE:=false}
+
+: ${CATALINA_OPTS:=}
+
+: ${JAVA_OPTS:=}
+
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
+
+export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
+
+# Setup Data Center configuration
+if [ ! -f "/etc/container_id" ]; then
+  uuidgen > /etc/container_id
+fi
+CONTAINER_ID=$(cat /etc/container_id)
+CONTAINER_SHORT_ID=${CONTAINER_ID::8}
+
+: ${CLUSTERED:=false}
+: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}}
+: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared}
+: ${EHCACHE_PEER_DISCOVERY:=}
+: ${EHCACHE_LISTENER_HOSTNAME:=}
+: ${EHCACHE_LISTENER_PORT:=}
+: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=}
+: ${EHCACHE_MULTICAST_ADDRESS:=}
+: ${EHCACHE_MULTICAST_PORT:=}
+: ${EHCACHE_MULTICAST_TIMETOLIVE:=}
+: ${EHCACHE_MULTICAST_HOSTNAME:=}
+
+# Cleanly set/unset values in cluster.properties
+function set_cluster_property {
+    if [ -z $2 ]; then
+        if [ -f "${JIRA_HOME}/cluster.properties" ]; then
+            sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties"
+        fi
+        return
+    fi
+    if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then
+        echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
+    elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then
+        sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties"
+    else
+        echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
+    fi
+}
+
+if [ "${CLUSTERED}" == "true" ]; then
+    set_cluster_property "jira.node.id" "${JIRA_NODE_ID}"
+    set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}"
+    set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}"
+    set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}"
+    set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}"
+    set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}"
+    set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}"
+    set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}"
+    set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}"
+    set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}"
+fi
+
+function set_home {
+    echo "Setting up JIRA_HOME.."
+
+    if [ -z "$JIRA_HOME" ]; then
+        echo "Variable JIRA_HOME is empty. Aborting"
+        exit 1
+    fi
+
+    echo "JIRA_HOME is: ${JIRA_HOME}"
+
+    echo "Patchig jira-application.properties"
+    sed -i "s|^jira\.home *=.*|jira.home = ${JIRA_HOME}|" ${JIRA_INSTALL_DIR}/atlassian-jira/WEB-INF/classes/jira-application.properties
+
+}
+
+# Start Jira as the correct user
+if [ "${UID}" -eq 0 ]; then
+    echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
+    PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}")
+    EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
+    if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
+        chmod -R 700 "${JIRA_HOME}" &&
+            chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}"
+    fi
+    set_home
+    # Now drop privileges
+    if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
+        exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@"
+    else
+        exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/startup.sh $@"
+    fi
+else
+    set_home
+    if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
+        exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@"
+    else
+        exec "$JIRA_INSTALL_DIR/bin/startup.sh" "$@"
+    fi
+fi
diff --git a/linux/ecosystem/atlassian/jira/10/10.4.0/.env b/linux/ecosystem/atlassian/jira/10/10.4.0/.env
new file mode 100644
index 000000000..93844f15b
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.4.0/.env
@@ -0,0 +1,2 @@
+RELEASE=10.4.0
+DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
\ No newline at end of file
diff --git a/linux/ecosystem/atlassian/jira/10/10.4.0/Dockerfile b/linux/ecosystem/atlassian/jira/10/10.4.0/Dockerfile
new file mode 100644
index 000000000..20e523440
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.4.0/Dockerfile
@@ -0,0 +1,56 @@
+FROM epicmorg/debian:bookworm-jdk17
+LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=10.4.0
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
+ENV JIRA_HOME          /var/atlassian/application-data/jira
+ENV JIRA_INSTALL_DIR   /opt/atlassian/jira
+
+VOLUME ["${JIRA_HOME}"]
+WORKDIR $JIRA_HOME
+
+# Expose HTTP port
+EXPOSE 8080
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p ${JIRA_INSTALL_DIR} && \
+    tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
+    sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/jira/10/10.4.0/Makefile b/linux/ecosystem/atlassian/jira/10/10.4.0/Makefile
new file mode 100644
index 000000000..b5e50619b
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.4.0/Makefile
@@ -0,0 +1,38 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+	make build
+	make deploy
+	make clean
+
+
+build:
+	buildah-wrapper --build
+
+deploy:
+	buildah-wrapper --deploy
+
+
+build-kaniko:
+	kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+	kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+	docker-compose build --compress --parallel --progress plain
+
+
+deploy-compose:
+	docker-compose push
+
+clean:
+	docker container prune -f
+	docker image prune -f
+	docker network prune -f
+	docker volume prune -f
+	docker system prune -af
+	buildah rm -a
+	buildah rmi -a
diff --git a/linux/ecosystem/atlassian/jira/10/10.4.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/10/10.4.0/docker-compose.yml
new file mode 100644
index 000000000..f5b07eca7
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.4.0/docker-compose.yml
@@ -0,0 +1,10 @@
+#version: '3.9'
+services:
+  app:
+    image: "epicmorg/jira:10.4.0"
+    build:
+      context: .
+  app-jdk17:
+    image: "epicmorg/jira:10.4.0-jdk17"
+    build:
+      context: .
\ No newline at end of file
diff --git a/linux/ecosystem/atlassian/jira/10/10.4.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/10/10.4.0/entrypoint.sh
new file mode 100755
index 000000000..d87fa3063
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.4.0/entrypoint.sh
@@ -0,0 +1,113 @@
+#!/bin/bash
+set -euo pipefail
+
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
+export JRE_HOME="$JAVA_HOME/jre"
+export JAVA_BINARY="$JRE_HOME/bin/java"
+export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+# Setup Catalina Opts
+: ${CATALINA_CONNECTOR_PROXYNAME:=}
+: ${CATALINA_CONNECTOR_PROXYPORT:=}
+: ${CATALINA_CONNECTOR_SCHEME:=http}
+: ${CATALINA_CONNECTOR_SECURE:=false}
+
+: ${CATALINA_OPTS:=}
+
+: ${JAVA_OPTS:=}
+
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
+
+export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
+
+# Setup Data Center configuration
+if [ ! -f "/etc/container_id" ]; then
+  uuidgen > /etc/container_id
+fi
+CONTAINER_ID=$(cat /etc/container_id)
+CONTAINER_SHORT_ID=${CONTAINER_ID::8}
+
+: ${CLUSTERED:=false}
+: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}}
+: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared}
+: ${EHCACHE_PEER_DISCOVERY:=}
+: ${EHCACHE_LISTENER_HOSTNAME:=}
+: ${EHCACHE_LISTENER_PORT:=}
+: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=}
+: ${EHCACHE_MULTICAST_ADDRESS:=}
+: ${EHCACHE_MULTICAST_PORT:=}
+: ${EHCACHE_MULTICAST_TIMETOLIVE:=}
+: ${EHCACHE_MULTICAST_HOSTNAME:=}
+
+# Cleanly set/unset values in cluster.properties
+function set_cluster_property {
+    if [ -z $2 ]; then
+        if [ -f "${JIRA_HOME}/cluster.properties" ]; then
+            sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties"
+        fi
+        return
+    fi
+    if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then
+        echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
+    elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then
+        sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties"
+    else
+        echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
+    fi
+}
+
+if [ "${CLUSTERED}" == "true" ]; then
+    set_cluster_property "jira.node.id" "${JIRA_NODE_ID}"
+    set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}"
+    set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}"
+    set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}"
+    set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}"
+    set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}"
+    set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}"
+    set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}"
+    set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}"
+    set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}"
+fi
+
+function set_home {
+    echo "Setting up JIRA_HOME.."
+
+    if [ -z "$JIRA_HOME" ]; then
+        echo "Variable JIRA_HOME is empty. Aborting"
+        exit 1
+    fi
+
+    echo "JIRA_HOME is: ${JIRA_HOME}"
+
+    echo "Patchig jira-application.properties"
+    sed -i "s|^jira\.home *=.*|jira.home = ${JIRA_HOME}|" ${JIRA_INSTALL_DIR}/atlassian-jira/WEB-INF/classes/jira-application.properties
+
+}
+
+# Start Jira as the correct user
+if [ "${UID}" -eq 0 ]; then
+    echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
+    PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}")
+    EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
+    if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
+        chmod -R 700 "${JIRA_HOME}" &&
+            chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}"
+    fi
+    set_home
+    # Now drop privileges
+    if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
+        exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@"
+    else
+        exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/startup.sh $@"
+    fi
+else
+    set_home
+    if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
+        exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@"
+    else
+        exec "$JIRA_INSTALL_DIR/bin/startup.sh" "$@"
+    fi
+fi
diff --git a/linux/ecosystem/atlassian/jira/10/10.4.1/.env b/linux/ecosystem/atlassian/jira/10/10.4.1/.env
new file mode 100644
index 000000000..08d606b91
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.4.1/.env
@@ -0,0 +1,2 @@
+RELEASE=10.4.1
+DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
\ No newline at end of file
diff --git a/linux/ecosystem/atlassian/jira/10/10.4.1/Dockerfile b/linux/ecosystem/atlassian/jira/10/10.4.1/Dockerfile
new file mode 100644
index 000000000..c2667cab7
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.4.1/Dockerfile
@@ -0,0 +1,56 @@
+FROM epicmorg/debian:bookworm-jdk17
+LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=10.4.1
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
+ENV JIRA_HOME          /var/atlassian/application-data/jira
+ENV JIRA_INSTALL_DIR   /opt/atlassian/jira
+
+VOLUME ["${JIRA_HOME}"]
+WORKDIR $JIRA_HOME
+
+# Expose HTTP port
+EXPOSE 8080
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p ${JIRA_INSTALL_DIR} && \
+    tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
+    sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/jira/10/10.4.1/Makefile b/linux/ecosystem/atlassian/jira/10/10.4.1/Makefile
new file mode 100644
index 000000000..b5e50619b
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.4.1/Makefile
@@ -0,0 +1,38 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+	make build
+	make deploy
+	make clean
+
+
+build:
+	buildah-wrapper --build
+
+deploy:
+	buildah-wrapper --deploy
+
+
+build-kaniko:
+	kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+	kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+	docker-compose build --compress --parallel --progress plain
+
+
+deploy-compose:
+	docker-compose push
+
+clean:
+	docker container prune -f
+	docker image prune -f
+	docker network prune -f
+	docker volume prune -f
+	docker system prune -af
+	buildah rm -a
+	buildah rmi -a
diff --git a/linux/ecosystem/atlassian/jira/10/10.4.1/docker-compose.yml b/linux/ecosystem/atlassian/jira/10/10.4.1/docker-compose.yml
new file mode 100644
index 000000000..47ce6ec6f
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.4.1/docker-compose.yml
@@ -0,0 +1,10 @@
+#version: '3.9'
+services:
+  app:
+    image: "epicmorg/jira:10.4.1"
+    build:
+      context: .
+  app-jdk17:
+    image: "epicmorg/jira:10.4.1-jdk17"
+    build:
+      context: .
\ No newline at end of file
diff --git a/linux/ecosystem/atlassian/jira/10/10.4.1/entrypoint.sh b/linux/ecosystem/atlassian/jira/10/10.4.1/entrypoint.sh
new file mode 100755
index 000000000..d87fa3063
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.4.1/entrypoint.sh
@@ -0,0 +1,113 @@
+#!/bin/bash
+set -euo pipefail
+
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
+export JRE_HOME="$JAVA_HOME/jre"
+export JAVA_BINARY="$JRE_HOME/bin/java"
+export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+# Setup Catalina Opts
+: ${CATALINA_CONNECTOR_PROXYNAME:=}
+: ${CATALINA_CONNECTOR_PROXYPORT:=}
+: ${CATALINA_CONNECTOR_SCHEME:=http}
+: ${CATALINA_CONNECTOR_SECURE:=false}
+
+: ${CATALINA_OPTS:=}
+
+: ${JAVA_OPTS:=}
+
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
+
+export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
+
+# Setup Data Center configuration
+if [ ! -f "/etc/container_id" ]; then
+  uuidgen > /etc/container_id
+fi
+CONTAINER_ID=$(cat /etc/container_id)
+CONTAINER_SHORT_ID=${CONTAINER_ID::8}
+
+: ${CLUSTERED:=false}
+: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}}
+: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared}
+: ${EHCACHE_PEER_DISCOVERY:=}
+: ${EHCACHE_LISTENER_HOSTNAME:=}
+: ${EHCACHE_LISTENER_PORT:=}
+: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=}
+: ${EHCACHE_MULTICAST_ADDRESS:=}
+: ${EHCACHE_MULTICAST_PORT:=}
+: ${EHCACHE_MULTICAST_TIMETOLIVE:=}
+: ${EHCACHE_MULTICAST_HOSTNAME:=}
+
+# Cleanly set/unset values in cluster.properties
+function set_cluster_property {
+    if [ -z $2 ]; then
+        if [ -f "${JIRA_HOME}/cluster.properties" ]; then
+            sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties"
+        fi
+        return
+    fi
+    if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then
+        echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
+    elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then
+        sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties"
+    else
+        echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
+    fi
+}
+
+if [ "${CLUSTERED}" == "true" ]; then
+    set_cluster_property "jira.node.id" "${JIRA_NODE_ID}"
+    set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}"
+    set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}"
+    set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}"
+    set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}"
+    set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}"
+    set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}"
+    set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}"
+    set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}"
+    set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}"
+fi
+
+function set_home {
+    echo "Setting up JIRA_HOME.."
+
+    if [ -z "$JIRA_HOME" ]; then
+        echo "Variable JIRA_HOME is empty. Aborting"
+        exit 1
+    fi
+
+    echo "JIRA_HOME is: ${JIRA_HOME}"
+
+    echo "Patchig jira-application.properties"
+    sed -i "s|^jira\.home *=.*|jira.home = ${JIRA_HOME}|" ${JIRA_INSTALL_DIR}/atlassian-jira/WEB-INF/classes/jira-application.properties
+
+}
+
+# Start Jira as the correct user
+if [ "${UID}" -eq 0 ]; then
+    echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
+    PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}")
+    EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
+    if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
+        chmod -R 700 "${JIRA_HOME}" &&
+            chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}"
+    fi
+    set_home
+    # Now drop privileges
+    if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
+        exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@"
+    else
+        exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/startup.sh $@"
+    fi
+else
+    set_home
+    if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
+        exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@"
+    else
+        exec "$JIRA_INSTALL_DIR/bin/startup.sh" "$@"
+    fi
+fi
diff --git a/linux/ecosystem/atlassian/jira/10/10.5.0/.env b/linux/ecosystem/atlassian/jira/10/10.5.0/.env
new file mode 100644
index 000000000..f9fe03772
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.5.0/.env
@@ -0,0 +1,2 @@
+RELEASE=10.5.0
+DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
\ No newline at end of file
diff --git a/linux/ecosystem/atlassian/jira/10/10.5.0/Dockerfile b/linux/ecosystem/atlassian/jira/10/10.5.0/Dockerfile
new file mode 100644
index 000000000..15be6d0d0
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.5.0/Dockerfile
@@ -0,0 +1,56 @@
+FROM epicmorg/debian:bookworm-jdk17
+LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=10.5.0
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
+ENV JIRA_HOME          /var/atlassian/application-data/jira
+ENV JIRA_INSTALL_DIR   /opt/atlassian/jira
+
+VOLUME ["${JIRA_HOME}"]
+WORKDIR $JIRA_HOME
+
+# Expose HTTP port
+EXPOSE 8080
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p ${JIRA_INSTALL_DIR} && \
+    tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
+    sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/jira/10/10.5.0/Makefile b/linux/ecosystem/atlassian/jira/10/10.5.0/Makefile
new file mode 100644
index 000000000..b5e50619b
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.5.0/Makefile
@@ -0,0 +1,38 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+	make build
+	make deploy
+	make clean
+
+
+build:
+	buildah-wrapper --build
+
+deploy:
+	buildah-wrapper --deploy
+
+
+build-kaniko:
+	kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+	kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+	docker-compose build --compress --parallel --progress plain
+
+
+deploy-compose:
+	docker-compose push
+
+clean:
+	docker container prune -f
+	docker image prune -f
+	docker network prune -f
+	docker volume prune -f
+	docker system prune -af
+	buildah rm -a
+	buildah rmi -a
diff --git a/linux/ecosystem/atlassian/jira/10/10.5.0/docker-compose.yml b/linux/ecosystem/atlassian/jira/10/10.5.0/docker-compose.yml
new file mode 100644
index 000000000..5186c6622
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.5.0/docker-compose.yml
@@ -0,0 +1,10 @@
+#version: '3.9'
+services:
+  app:
+    image: "epicmorg/jira:10.5.0"
+    build:
+      context: .
+  app-jdk17:
+    image: "epicmorg/jira:10.5.0-jdk17"
+    build:
+      context: .
\ No newline at end of file
diff --git a/linux/ecosystem/atlassian/jira/10/10.5.0/entrypoint.sh b/linux/ecosystem/atlassian/jira/10/10.5.0/entrypoint.sh
new file mode 100755
index 000000000..d87fa3063
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/10/10.5.0/entrypoint.sh
@@ -0,0 +1,113 @@
+#!/bin/bash
+set -euo pipefail
+
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
+export JRE_HOME="$JAVA_HOME/jre"
+export JAVA_BINARY="$JRE_HOME/bin/java"
+export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+# Setup Catalina Opts
+: ${CATALINA_CONNECTOR_PROXYNAME:=}
+: ${CATALINA_CONNECTOR_PROXYPORT:=}
+: ${CATALINA_CONNECTOR_SCHEME:=http}
+: ${CATALINA_CONNECTOR_SECURE:=false}
+
+: ${CATALINA_OPTS:=}
+
+: ${JAVA_OPTS:=}
+
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
+
+export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
+
+# Setup Data Center configuration
+if [ ! -f "/etc/container_id" ]; then
+  uuidgen > /etc/container_id
+fi
+CONTAINER_ID=$(cat /etc/container_id)
+CONTAINER_SHORT_ID=${CONTAINER_ID::8}
+
+: ${CLUSTERED:=false}
+: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}}
+: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared}
+: ${EHCACHE_PEER_DISCOVERY:=}
+: ${EHCACHE_LISTENER_HOSTNAME:=}
+: ${EHCACHE_LISTENER_PORT:=}
+: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=}
+: ${EHCACHE_MULTICAST_ADDRESS:=}
+: ${EHCACHE_MULTICAST_PORT:=}
+: ${EHCACHE_MULTICAST_TIMETOLIVE:=}
+: ${EHCACHE_MULTICAST_HOSTNAME:=}
+
+# Cleanly set/unset values in cluster.properties
+function set_cluster_property {
+    if [ -z $2 ]; then
+        if [ -f "${JIRA_HOME}/cluster.properties" ]; then
+            sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties"
+        fi
+        return
+    fi
+    if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then
+        echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
+    elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then
+        sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties"
+    else
+        echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
+    fi
+}
+
+if [ "${CLUSTERED}" == "true" ]; then
+    set_cluster_property "jira.node.id" "${JIRA_NODE_ID}"
+    set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}"
+    set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}"
+    set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}"
+    set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}"
+    set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}"
+    set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}"
+    set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}"
+    set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}"
+    set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}"
+fi
+
+function set_home {
+    echo "Setting up JIRA_HOME.."
+
+    if [ -z "$JIRA_HOME" ]; then
+        echo "Variable JIRA_HOME is empty. Aborting"
+        exit 1
+    fi
+
+    echo "JIRA_HOME is: ${JIRA_HOME}"
+
+    echo "Patchig jira-application.properties"
+    sed -i "s|^jira\.home *=.*|jira.home = ${JIRA_HOME}|" ${JIRA_INSTALL_DIR}/atlassian-jira/WEB-INF/classes/jira-application.properties
+
+}
+
+# Start Jira as the correct user
+if [ "${UID}" -eq 0 ]; then
+    echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
+    PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}")
+    EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
+    if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
+        chmod -R 700 "${JIRA_HOME}" &&
+            chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}"
+    fi
+    set_home
+    # Now drop privileges
+    if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
+        exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@"
+    else
+        exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/startup.sh $@"
+    fi
+else
+    set_home
+    if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
+        exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@"
+    else
+        exec "$JIRA_INSTALL_DIR/bin/startup.sh" "$@"
+    fi
+fi
diff --git a/linux/ecosystem/atlassian/jira/9/9.12.18/.env b/linux/ecosystem/atlassian/jira/9/9.12.18/.env
new file mode 100644
index 000000000..bbe6d2637
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/9/9.12.18/.env
@@ -0,0 +1,2 @@
+RELEASE=9.12.18
+DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
\ No newline at end of file
diff --git a/linux/ecosystem/atlassian/jira/9/9.12.18/Dockerfile b/linux/ecosystem/atlassian/jira/9/9.12.18/Dockerfile
new file mode 100644
index 000000000..eb461469b
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/9/9.12.18/Dockerfile
@@ -0,0 +1,56 @@
+FROM epicmorg/debian:bookworm-jdk8
+LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.12.18
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
+ENV JIRA_HOME          /var/atlassian/application-data/jira
+ENV JIRA_INSTALL_DIR   /opt/atlassian/jira
+
+VOLUME ["${JIRA_HOME}"]
+WORKDIR $JIRA_HOME
+
+# Expose HTTP port
+EXPOSE 8080
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p ${JIRA_INSTALL_DIR} && \
+    tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
+    sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/jira/9/9.12.18/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/9/9.12.18/Dockerfile.jdk11
new file mode 100644
index 000000000..ad8400637
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/9/9.12.18/Dockerfile.jdk11
@@ -0,0 +1,56 @@
+FROM epicmorg/debian:bookworm-jdk11
+LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.12.18
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
+ENV JIRA_HOME          /var/atlassian/application-data/jira
+ENV JIRA_INSTALL_DIR   /opt/atlassian/jira
+
+VOLUME ["${JIRA_HOME}"]
+WORKDIR $JIRA_HOME
+
+# Expose HTTP port
+EXPOSE 8080
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p ${JIRA_INSTALL_DIR} && \
+    tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
+    sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/jira/9/9.12.18/Dockerfile.jdk17 b/linux/ecosystem/atlassian/jira/9/9.12.18/Dockerfile.jdk17
new file mode 100644
index 000000000..a8e408c10
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/9/9.12.18/Dockerfile.jdk17
@@ -0,0 +1,56 @@
+FROM epicmorg/debian:bookworm-jdk17
+LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.12.18
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
+ENV JIRA_HOME          /var/atlassian/application-data/jira
+ENV JIRA_INSTALL_DIR   /opt/atlassian/jira
+
+VOLUME ["${JIRA_HOME}"]
+WORKDIR $JIRA_HOME
+
+# Expose HTTP port
+EXPOSE 8080
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p ${JIRA_INSTALL_DIR} && \
+    tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
+    sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/jira/9/9.12.18/Makefile b/linux/ecosystem/atlassian/jira/9/9.12.18/Makefile
new file mode 100644
index 000000000..b5e50619b
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/9/9.12.18/Makefile
@@ -0,0 +1,38 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+	make build
+	make deploy
+	make clean
+
+
+build:
+	buildah-wrapper --build
+
+deploy:
+	buildah-wrapper --deploy
+
+
+build-kaniko:
+	kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+	kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+	docker-compose build --compress --parallel --progress plain
+
+
+deploy-compose:
+	docker-compose push
+
+clean:
+	docker container prune -f
+	docker image prune -f
+	docker network prune -f
+	docker volume prune -f
+	docker system prune -af
+	buildah rm -a
+	buildah rmi -a
diff --git a/linux/ecosystem/atlassian/jira/9/9.12.18/docker-compose.yml b/linux/ecosystem/atlassian/jira/9/9.12.18/docker-compose.yml
new file mode 100644
index 000000000..fb8b0f9f4
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/9/9.12.18/docker-compose.yml
@@ -0,0 +1,20 @@
+#version: '3.9'
+services:
+  app:
+    image: "epicmorg/jira:9.12.18"
+    build:
+      context: .
+  app-jdk8:
+    image: "epicmorg/jira:9.12.18-jdk8"
+    build:
+      context: .
+  app-jdk11:
+    image: "epicmorg/jira:9.12.18-jdk11"
+    build:
+      context: .
+      dockerfile: Dockerfile.jdk11
+  app-jdk17:
+    image: "epicmorg/jira:9.12.18-jdk17"
+    build:
+      context: .
+      dockerfile: Dockerfile.jdk17
\ No newline at end of file
diff --git a/linux/ecosystem/atlassian/jira/9/9.12.18/entrypoint.sh b/linux/ecosystem/atlassian/jira/9/9.12.18/entrypoint.sh
new file mode 100755
index 000000000..d87fa3063
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/9/9.12.18/entrypoint.sh
@@ -0,0 +1,113 @@
+#!/bin/bash
+set -euo pipefail
+
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
+export JRE_HOME="$JAVA_HOME/jre"
+export JAVA_BINARY="$JRE_HOME/bin/java"
+export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+# Setup Catalina Opts
+: ${CATALINA_CONNECTOR_PROXYNAME:=}
+: ${CATALINA_CONNECTOR_PROXYPORT:=}
+: ${CATALINA_CONNECTOR_SCHEME:=http}
+: ${CATALINA_CONNECTOR_SECURE:=false}
+
+: ${CATALINA_OPTS:=}
+
+: ${JAVA_OPTS:=}
+
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
+
+export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
+
+# Setup Data Center configuration
+if [ ! -f "/etc/container_id" ]; then
+  uuidgen > /etc/container_id
+fi
+CONTAINER_ID=$(cat /etc/container_id)
+CONTAINER_SHORT_ID=${CONTAINER_ID::8}
+
+: ${CLUSTERED:=false}
+: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}}
+: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared}
+: ${EHCACHE_PEER_DISCOVERY:=}
+: ${EHCACHE_LISTENER_HOSTNAME:=}
+: ${EHCACHE_LISTENER_PORT:=}
+: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=}
+: ${EHCACHE_MULTICAST_ADDRESS:=}
+: ${EHCACHE_MULTICAST_PORT:=}
+: ${EHCACHE_MULTICAST_TIMETOLIVE:=}
+: ${EHCACHE_MULTICAST_HOSTNAME:=}
+
+# Cleanly set/unset values in cluster.properties
+function set_cluster_property {
+    if [ -z $2 ]; then
+        if [ -f "${JIRA_HOME}/cluster.properties" ]; then
+            sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties"
+        fi
+        return
+    fi
+    if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then
+        echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
+    elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then
+        sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties"
+    else
+        echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
+    fi
+}
+
+if [ "${CLUSTERED}" == "true" ]; then
+    set_cluster_property "jira.node.id" "${JIRA_NODE_ID}"
+    set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}"
+    set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}"
+    set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}"
+    set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}"
+    set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}"
+    set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}"
+    set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}"
+    set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}"
+    set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}"
+fi
+
+function set_home {
+    echo "Setting up JIRA_HOME.."
+
+    if [ -z "$JIRA_HOME" ]; then
+        echo "Variable JIRA_HOME is empty. Aborting"
+        exit 1
+    fi
+
+    echo "JIRA_HOME is: ${JIRA_HOME}"
+
+    echo "Patchig jira-application.properties"
+    sed -i "s|^jira\.home *=.*|jira.home = ${JIRA_HOME}|" ${JIRA_INSTALL_DIR}/atlassian-jira/WEB-INF/classes/jira-application.properties
+
+}
+
+# Start Jira as the correct user
+if [ "${UID}" -eq 0 ]; then
+    echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
+    PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}")
+    EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
+    if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
+        chmod -R 700 "${JIRA_HOME}" &&
+            chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}"
+    fi
+    set_home
+    # Now drop privileges
+    if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
+        exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@"
+    else
+        exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/startup.sh $@"
+    fi
+else
+    set_home
+    if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
+        exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@"
+    else
+        exec "$JIRA_INSTALL_DIR/bin/startup.sh" "$@"
+    fi
+fi
diff --git a/linux/ecosystem/atlassian/jira/9/9.12.19/.env b/linux/ecosystem/atlassian/jira/9/9.12.19/.env
new file mode 100644
index 000000000..5229dc302
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/9/9.12.19/.env
@@ -0,0 +1,2 @@
+RELEASE=9.12.19
+DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
\ No newline at end of file
diff --git a/linux/ecosystem/atlassian/jira/9/9.12.19/Dockerfile b/linux/ecosystem/atlassian/jira/9/9.12.19/Dockerfile
new file mode 100644
index 000000000..00f2cf0b8
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/9/9.12.19/Dockerfile
@@ -0,0 +1,56 @@
+FROM epicmorg/debian:bookworm-jdk8
+LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.12.19
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
+ENV JIRA_HOME          /var/atlassian/application-data/jira
+ENV JIRA_INSTALL_DIR   /opt/atlassian/jira
+
+VOLUME ["${JIRA_HOME}"]
+WORKDIR $JIRA_HOME
+
+# Expose HTTP port
+EXPOSE 8080
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p ${JIRA_INSTALL_DIR} && \
+    tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
+    sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/jira/9/9.12.19/Dockerfile.jdk11 b/linux/ecosystem/atlassian/jira/9/9.12.19/Dockerfile.jdk11
new file mode 100644
index 000000000..b08235a81
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/9/9.12.19/Dockerfile.jdk11
@@ -0,0 +1,56 @@
+FROM epicmorg/debian:bookworm-jdk11
+LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.12.19
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
+ENV JIRA_HOME          /var/atlassian/application-data/jira
+ENV JIRA_INSTALL_DIR   /opt/atlassian/jira
+
+VOLUME ["${JIRA_HOME}"]
+WORKDIR $JIRA_HOME
+
+# Expose HTTP port
+EXPOSE 8080
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p ${JIRA_INSTALL_DIR} && \
+    tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
+    sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/jira/9/9.12.19/Dockerfile.jdk17 b/linux/ecosystem/atlassian/jira/9/9.12.19/Dockerfile.jdk17
new file mode 100644
index 000000000..9df9a03ba
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/9/9.12.19/Dockerfile.jdk17
@@ -0,0 +1,56 @@
+FROM epicmorg/debian:bookworm-jdk17
+LABEL maintainer="Atlassian Jira Server Team; EpicMorg DevTeam, developer@epicm.org"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+#                   ARGuments
+##################################################################
+ARG RELEASE=9.12.19
+ARG DOWNLOAD_URL=https://www.atlassian.com/software/jira/downloads/binary/atlassian-jira-software-${RELEASE}.tar.gz
+
+##################################################################
+#                   Setup
+##################################################################
+ENV RUN_USER            daemon
+ENV RUN_GROUP           daemon
+
+# https://confluence.atlassian.com/display/JSERVERM/Important+directories+and+files
+ENV JIRA_HOME          /var/atlassian/application-data/jira
+ENV JIRA_INSTALL_DIR   /opt/atlassian/jira
+
+VOLUME ["${JIRA_HOME}"]
+WORKDIR $JIRA_HOME
+
+# Expose HTTP port
+EXPOSE 8080
+
+##################################################################
+#                   Installing
+##################################################################
+ADD ${DOWNLOAD_URL} /tmp
+RUN mkdir -p ${JIRA_INSTALL_DIR} && \
+    tar -xvzf /tmp/atlassian-jira-software-${RELEASE}.tar.gz --strip-components=1 --directory "${JIRA_INSTALL_DIR}" && \
+    chown -R ${RUN_USER}:${RUN_GROUP} ${JIRA_INSTALL_DIR}/ && \
+    sed -i -e 's/^JVM_SUPPORT_RECOMMENDED_ARGS=""$/: \${JVM_SUPPORT_RECOMMENDED_ARGS:=""}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/^JVM_\(.*\)_MEMORY="\(.*\)"$/: \${JVM_\1_MEMORY:=\2}/g' ${JIRA_INSTALL_DIR}/bin/setenv.sh && \
+    sed -i -e 's/port="8080"/port="8080" secure="${catalinaConnectorSecure}" scheme="${catalinaConnectorScheme}" proxyName="${catalinaConnectorProxyName}" proxyPort="${catalinaConnectorProxyPort}"/' ${JIRA_INSTALL_DIR}/conf/server.xml
+
+##################################################################
+#                  cleanup
+##################################################################
+RUN echo "clean up" && \
+    apt-get clean -y && \
+    apt-get autoremove -y && \
+    apt-get autoclean -y && \
+    rm -rfv /var/lib/apt/lists/* && \
+    rm -rfv /var/cache/apt/archives/*.deb && \
+    rm -rfv /root/tmp/* && \
+    rm -rfv /tmp/*
+
+COPY entrypoint.sh /entrypoint.sh
+RUN chmod +x /entrypoint.sh
+
+CMD ["/entrypoint.sh", "-fg"]
+ENTRYPOINT ["/usr/bin/tini", "--"]
+
+RUN updatedb
diff --git a/linux/ecosystem/atlassian/jira/9/9.12.19/Makefile b/linux/ecosystem/atlassian/jira/9/9.12.19/Makefile
new file mode 100644
index 000000000..b5e50619b
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/9/9.12.19/Makefile
@@ -0,0 +1,38 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+	make build
+	make deploy
+	make clean
+
+
+build:
+	buildah-wrapper --build
+
+deploy:
+	buildah-wrapper --deploy
+
+
+build-kaniko:
+	kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:debug --dry-run
+
+deploy-kaniko:
+	kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:debug
+
+build-compose:
+	docker-compose build --compress --parallel --progress plain
+
+
+deploy-compose:
+	docker-compose push
+
+clean:
+	docker container prune -f
+	docker image prune -f
+	docker network prune -f
+	docker volume prune -f
+	docker system prune -af
+	buildah rm -a
+	buildah rmi -a
diff --git a/linux/ecosystem/atlassian/jira/9/9.12.19/docker-compose.yml b/linux/ecosystem/atlassian/jira/9/9.12.19/docker-compose.yml
new file mode 100644
index 000000000..9bffbac99
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/9/9.12.19/docker-compose.yml
@@ -0,0 +1,20 @@
+#version: '3.9'
+services:
+  app:
+    image: "epicmorg/jira:9.12.19"
+    build:
+      context: .
+  app-jdk8:
+    image: "epicmorg/jira:9.12.19-jdk8"
+    build:
+      context: .
+  app-jdk11:
+    image: "epicmorg/jira:9.12.19-jdk11"
+    build:
+      context: .
+      dockerfile: Dockerfile.jdk11
+  app-jdk17:
+    image: "epicmorg/jira:9.12.19-jdk17"
+    build:
+      context: .
+      dockerfile: Dockerfile.jdk17
\ No newline at end of file
diff --git a/linux/ecosystem/atlassian/jira/9/9.12.19/entrypoint.sh b/linux/ecosystem/atlassian/jira/9/9.12.19/entrypoint.sh
new file mode 100755
index 000000000..d87fa3063
--- /dev/null
+++ b/linux/ecosystem/atlassian/jira/9/9.12.19/entrypoint.sh
@@ -0,0 +1,113 @@
+#!/bin/bash
+set -euo pipefail
+
+export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
+export JRE_HOME="$JAVA_HOME/jre"
+export JAVA_BINARY="$JRE_HOME/bin/java"
+export JAVA_VERSION=$("$JAVA_BINARY" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+
+# Setup Catalina Opts
+: ${CATALINA_CONNECTOR_PROXYNAME:=}
+: ${CATALINA_CONNECTOR_PROXYPORT:=}
+: ${CATALINA_CONNECTOR_SCHEME:=http}
+: ${CATALINA_CONNECTOR_SECURE:=false}
+
+: ${CATALINA_OPTS:=}
+
+: ${JAVA_OPTS:=}
+
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyName=${CATALINA_CONNECTOR_PROXYNAME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorProxyPort=${CATALINA_CONNECTOR_PROXYPORT}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorScheme=${CATALINA_CONNECTOR_SCHEME}"
+CATALINA_OPTS="${CATALINA_OPTS} -DcatalinaConnectorSecure=${CATALINA_CONNECTOR_SECURE}"
+
+export JAVA_OPTS="${JAVA_OPTS} ${CATALINA_OPTS}"
+
+# Setup Data Center configuration
+if [ ! -f "/etc/container_id" ]; then
+  uuidgen > /etc/container_id
+fi
+CONTAINER_ID=$(cat /etc/container_id)
+CONTAINER_SHORT_ID=${CONTAINER_ID::8}
+
+: ${CLUSTERED:=false}
+: ${JIRA_NODE_ID:=jira_node_${CONTAINER_SHORT_ID}}
+: ${JIRA_SHARED_HOME:=${JIRA_HOME}/shared}
+: ${EHCACHE_PEER_DISCOVERY:=}
+: ${EHCACHE_LISTENER_HOSTNAME:=}
+: ${EHCACHE_LISTENER_PORT:=}
+: ${EHCACHE_LISTENER_SOCKETTIMEOUTMILLIS:=}
+: ${EHCACHE_MULTICAST_ADDRESS:=}
+: ${EHCACHE_MULTICAST_PORT:=}
+: ${EHCACHE_MULTICAST_TIMETOLIVE:=}
+: ${EHCACHE_MULTICAST_HOSTNAME:=}
+
+# Cleanly set/unset values in cluster.properties
+function set_cluster_property {
+    if [ -z $2 ]; then
+        if [ -f "${JIRA_HOME}/cluster.properties" ]; then
+            sed -i -e "/^${1}/d" "${JIRA_HOME}/cluster.properties"
+        fi
+        return
+    fi
+    if [ ! -f "${JIRA_HOME}/cluster.properties" ]; then
+        echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
+    elif grep "^${1}" "${JIRA_HOME}/cluster.properties"; then
+        sed -i -e "s#^${1}=.*#${1}=${2}#g" "${JIRA_HOME}/cluster.properties"
+    else
+        echo "${1}=${2}" >> "${JIRA_HOME}/cluster.properties"
+    fi
+}
+
+if [ "${CLUSTERED}" == "true" ]; then
+    set_cluster_property "jira.node.id" "${JIRA_NODE_ID}"
+    set_cluster_property "jira.shared.home" "${JIRA_SHARED_HOME}"
+    set_cluster_property "ehcache.peer.discovery" "${EHCACHE_PEER_DISCOVERY}"
+    set_cluster_property "ehcache.listener.hostName" "${EHCACHE_LISTENER_HOSTNAME}"
+    set_cluster_property "ehcache.listener.port" "${EHCACHE_LISTENER_PORT}"
+    set_cluster_property "ehcache.listener.socketTimeoutMillis" "${EHCACHE_LISTENER_PORT}"
+    set_cluster_property "ehcache.multicast.address" "${EHCACHE_MULTICAST_ADDRESS}"
+    set_cluster_property "ehcache.multicast.port" "${EHCACHE_MULTICAST_PORT}"
+    set_cluster_property "ehcache.multicast.timeToLive" "${EHCACHE_MULTICAST_TIMETOLIVE}"
+    set_cluster_property "ehcache.multicast.hostName" "${EHCACHE_MULTICAST_HOSTNAME}"
+fi
+
+function set_home {
+    echo "Setting up JIRA_HOME.."
+
+    if [ -z "$JIRA_HOME" ]; then
+        echo "Variable JIRA_HOME is empty. Aborting"
+        exit 1
+    fi
+
+    echo "JIRA_HOME is: ${JIRA_HOME}"
+
+    echo "Patchig jira-application.properties"
+    sed -i "s|^jira\.home *=.*|jira.home = ${JIRA_HOME}|" ${JIRA_INSTALL_DIR}/atlassian-jira/WEB-INF/classes/jira-application.properties
+
+}
+
+# Start Jira as the correct user
+if [ "${UID}" -eq 0 ]; then
+    echo "User is currently root. Will change directory ownership to ${RUN_USER}:${RUN_GROUP}, then downgrade permission to ${RUN_USER}"
+    PERMISSIONS_SIGNATURE=$(stat -c "%u:%U:%a" "${JIRA_HOME}")
+    EXPECTED_PERMISSIONS=$(id -u ${RUN_USER}):${RUN_USER}:700
+    if [ "${PERMISSIONS_SIGNATURE}" != "${EXPECTED_PERMISSIONS}" ]; then
+        chmod -R 700 "${JIRA_HOME}" &&
+            chown -R "${RUN_USER}:${RUN_GROUP}" "${JIRA_HOME}"
+    fi
+    set_home
+    # Now drop privileges
+    if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
+        exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/start-jira.sh $@"
+    else
+        exec su -s /bin/bash "${RUN_USER}" -c "$JIRA_INSTALL_DIR/bin/startup.sh $@"
+    fi
+else
+    set_home
+    if [ -f "$JIRA_INSTALL_DIR/bin/start-jira.sh" ]; then
+        exec "$JIRA_INSTALL_DIR/bin/start-jira.sh" "$@"
+    else
+        exec "$JIRA_INSTALL_DIR/bin/startup.sh" "$@"
+    fi
+fi