diff --git a/.github/workflows/epicmorg.ecosystem.images.testrail.yml b/.github/workflows/epicmorg.ecosystem.images.testrail.yml
index 546e69bb0..a043ac025 100644
--- a/.github/workflows/epicmorg.ecosystem.images.testrail.yml
+++ b/.github/workflows/epicmorg.ecosystem.images.testrail.yml
@@ -212,8 +212,11 @@ jobs:
'8.0.1.1029',
'8.0.4.7036',
'8.0.6.1019',
+ '8.1.0.6165',
'8.1.0.6186',
- '9.0.0.1057'
+ '9.0.0.1057',
+ '9.0.0.1091',
+ '9.1.0.1025',
]
steps:
diff --git a/bin/ansible/roles/common/files/versions/testrail/testrail.php81.txt b/bin/ansible/roles/common/files/versions/testrail/testrail.php81.txt
index 63c853342..0bce717c8 100644
--- a/bin/ansible/roles/common/files/versions/testrail/testrail.php81.txt
+++ b/bin/ansible/roles/common/files/versions/testrail/testrail.php81.txt
@@ -2,5 +2,8 @@
8.0.1.1029
8.0.4.7036
8.0.6.1019
+8.1.0.6165
8.1.0.6186
-9.0.0.1057
\ No newline at end of file
+9.0.0.1057
+9.0.0.1091
+9.1.0.1025
\ No newline at end of file
diff --git a/linux/ecosystem/epicmorg/debian/12-bookworm/develop/buildah_1.39.3+ds1-1+b2_amd64.deb b/linux/ecosystem/epicmorg/debian/12-bookworm/develop/buildah_1.39.3+ds1-1+b2_amd64.deb
new file mode 100644
index 000000000..566020775
Binary files /dev/null and b/linux/ecosystem/epicmorg/debian/12-bookworm/develop/buildah_1.39.3+ds1-1+b2_amd64.deb differ
diff --git a/linux/ecosystem/nginx/latest b/linux/ecosystem/nginx/latest
new file mode 120000
index 000000000..a5cdc38e5
--- /dev/null
+++ b/linux/ecosystem/nginx/latest
@@ -0,0 +1 @@
+./1.28
\ No newline at end of file
diff --git a/linux/ecosystem/testrail/8.1.0.6165/ad/Dockerfile b/linux/ecosystem/testrail/8.1.0.6165/ad/Dockerfile
new file mode 100644
index 000000000..6d2978645
--- /dev/null
+++ b/linux/ecosystem/testrail/8.1.0.6165/ad/Dockerfile
@@ -0,0 +1,13 @@
+FROM quay.io/epicmorg/testrail:8.1.0.6165
+
+ENV TESTRAIL_PLUGIN_VERSION=1.4
+ENV TESTRAIL_PLUGIN_NAME=ad
+ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION}
+ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip
+ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE}
+ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE}
+
+RUN rm -rfv /usr/bin/docker-entrypoint.sh
+COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
+
+RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL}
diff --git a/linux/ecosystem/testrail/8.1.0.6165/ad/Makefile b/linux/ecosystem/testrail/8.1.0.6165/ad/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/testrail/8.1.0.6165/ad/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ 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
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/testrail/8.1.0.6165/ad/README.md b/linux/ecosystem/testrail/8.1.0.6165/ad/README.md
new file mode 100644
index 000000000..8cc0c561c
--- /dev/null
+++ b/linux/ecosystem/testrail/8.1.0.6165/ad/README.md
@@ -0,0 +1,35 @@
+## Testrail
+
+* Based on `websites:php8.1` of our ecosystem.
+
+# Compose example
+
+```yml
+services:
+ testrail:
+ image: epicmorg/testrail-ad-:8.1.0.6165
+# depends_on:
+# - mysql
+# - memcached
+ restart: unless-stopped
+ volumes:
+ - /etc/localtime:/etc/localtime
+ - /etc/timezone:/etc/timezone
+# - /etc/letsencrypt:/etc/letsencrypt
+ - www:/var/www
+ - apache2:/etc/apache2
+ - php:/etc/php
+ restart: unless-stopped
+# extra_hosts:
+# - "example.com:192.168.0.11"
+ tmpfs:
+ - /tmp
+ - /var/lib/php/sessions
+volumes:
+ www:
+ external: true
+ apache2:
+ external: true
+ php:
+ external: true
+```
diff --git a/linux/ecosystem/testrail/8.1.0.6165/ad/docker-compose.yml b/linux/ecosystem/testrail/8.1.0.6165/ad/docker-compose.yml
new file mode 100644
index 000000000..a16a586bc
--- /dev/null
+++ b/linux/ecosystem/testrail/8.1.0.6165/ad/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/testrail:auth-ad-8.1.0.6165"
+ build:
+ context: .
diff --git a/linux/ecosystem/testrail/8.1.0.6165/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/8.1.0.6165/ad/docker-entrypoint.sh
new file mode 100755
index 000000000..610b92ff5
--- /dev/null
+++ b/linux/ecosystem/testrail/8.1.0.6165/ad/docker-entrypoint.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+echo "[testrail] Welcome to Testrail 8.1.0.6165 with Active Directory plugin"
+
+echo "[testrail] Starting testrail service"
+
+#################################################################################
+# Function for creating directories with rights for www-data
+function createOptDirectory {
+ if [ ! -d "$1" ]; then
+ echo "[testrail] Creating $1"
+ mkdir -p "$1"
+ fi
+
+ chown -R www-data:www-data "$1"
+}
+
+#################################################################################
+# Copy Apache Configuration
+/bin/cp -rf "${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
+
+#################################################################################
+# Unpacking TestRail
+if [ -f "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" ]; then
+ echo "[testrail] Unzipping testrail service"
+ unzip -q -o "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" -d /var/www/
+ echo "[testrail] Testrail extracted"
+else
+ echo "[testrail] Error: testrail-${TESTRAIL_VERSION}-ion70.zip not found in ${TESTRAIL_RELEASE_DIR}"
+ exit 1
+fi
+
+#################################################################################
+# Creating the necessary directories
+createOptDirectory "${TR_DEFAULT_LOG_DIR}"
+createOptDirectory "${TR_DEFAULT_AUDIT_DIR}"
+createOptDirectory "${TR_DEFAULT_REPORT_DIR}"
+createOptDirectory "${TR_DEFAULT_ATTACHMENT_DIR}"
+
+chown -R www-data:www-data "${TR_CONFIG_DIR}"
+chown -R www-data:www-data "${TR_CONFIGPATH}"
+
+#################################################################################
+# Waiting for task.php file to appear
+TASK_FILE="/var/www/testrail/task.php"
+echo "[testrail] Waiting for background task file"
+while [ ! -f "$TASK_FILE" ]; do
+ sleep 2
+done
+
+echo "[testrail] Starting background task"
+# Removing the memory limit for executing a PHP task
+while /bin/true; do
+ php -d memory_limit=-1 "$TASK_FILE" || true
+ sleep "${TR_DEFAULT_TASK_EXECUTION:-60}"
+done &
+
+echo "[testrail] Background task started"
+
+#################################################################################
+# Processing the FIX_WWW_DATA environment variable
+if [[ -z "${FIX_WWW_DATA}" ]]; then
+ echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway"
+ chown www-data:www-data /var/www -R
+elif [ "${FIX_WWW_DATA}" == "false" ]; then
+ echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..."
+elif [ "${FIX_WWW_DATA}" == "true" ]; then
+ echo "[apache2] Changing permissions for /var/www path. Don't worry, please wait."
+ chown www-data:www-data /var/www -R
+ echo "[apache2] Done"
+else
+ echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..."
+fi
+
+#################################################################################
+# Starting Apache
+echo "[apache2] Starting up"
+source /etc/apache2/envvars
+tail -F /var/log/apache2/* &
+exec apache2 -D FOREGROUND
diff --git a/linux/ecosystem/testrail/8.1.0.6165/ldap/Dockerfile b/linux/ecosystem/testrail/8.1.0.6165/ldap/Dockerfile
new file mode 100644
index 000000000..7b26951e0
--- /dev/null
+++ b/linux/ecosystem/testrail/8.1.0.6165/ldap/Dockerfile
@@ -0,0 +1,13 @@
+FROM quay.io/epicmorg/testrail:8.1.0.6165
+
+ENV TESTRAIL_PLUGIN_VERSION=1.4
+ENV TESTRAIL_PLUGIN_NAME=ldap
+ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION}
+ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip
+ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE}
+ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE}
+
+RUN rm -rfv /usr/bin/docker-entrypoint.sh
+COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
+
+RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL}
diff --git a/linux/ecosystem/testrail/8.1.0.6165/ldap/Makefile b/linux/ecosystem/testrail/8.1.0.6165/ldap/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/testrail/8.1.0.6165/ldap/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ 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
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/testrail/8.1.0.6165/ldap/README.md b/linux/ecosystem/testrail/8.1.0.6165/ldap/README.md
new file mode 100644
index 000000000..8cd9421fb
--- /dev/null
+++ b/linux/ecosystem/testrail/8.1.0.6165/ldap/README.md
@@ -0,0 +1,35 @@
+## Testrail
+
+* Based on `websites:php8.1` of our ecosystem.
+
+# Compose example
+
+```yml
+services:
+ testrail:
+ image: epicmorg/testrail:auth-ldap-8.1.0.6165
+# depends_on:
+# - mysql
+# - memcached
+ restart: unless-stopped
+ volumes:
+ - /etc/localtime:/etc/localtime
+ - /etc/timezone:/etc/timezone
+# - /etc/letsencrypt:/etc/letsencrypt
+ - www:/var/www
+ - apache2:/etc/apache2
+ - php:/etc/php
+ restart: unless-stopped
+# extra_hosts:
+# - "example.com:192.168.0.11"
+ tmpfs:
+ - /tmp
+ - /var/lib/php/sessions
+volumes:
+ www:
+ external: true
+ apache2:
+ external: true
+ php:
+ external: true
+```
diff --git a/linux/ecosystem/testrail/8.1.0.6165/ldap/docker-compose.yml b/linux/ecosystem/testrail/8.1.0.6165/ldap/docker-compose.yml
new file mode 100644
index 000000000..e6876fe65
--- /dev/null
+++ b/linux/ecosystem/testrail/8.1.0.6165/ldap/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/testrail:auth-ldap-8.1.0.6165"
+ build:
+ context: .
diff --git a/linux/ecosystem/testrail/8.1.0.6165/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/8.1.0.6165/ldap/docker-entrypoint.sh
new file mode 100755
index 000000000..7c046f2b4
--- /dev/null
+++ b/linux/ecosystem/testrail/8.1.0.6165/ldap/docker-entrypoint.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+echo "[testrail] Welcome to Testrail 8.1.0.6165 with LDAP plugin"
+
+echo "[testrail] Starting testrail service"
+
+#################################################################################
+# Function for creating directories with rights for www-data
+function createOptDirectory {
+ if [ ! -d "$1" ]; then
+ echo "[testrail] Creating $1"
+ mkdir -p "$1"
+ fi
+
+ chown -R www-data:www-data "$1"
+}
+
+#################################################################################
+# Copy Apache Configuration
+/bin/cp -rf "${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
+
+#################################################################################
+# Unpacking TestRail
+if [ -f "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" ]; then
+ echo "[testrail] Unzipping testrail service"
+ unzip -q -o "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" -d /var/www/
+ echo "[testrail] Testrail extracted"
+else
+ echo "[testrail] Error: testrail-${TESTRAIL_VERSION}-ion70.zip not found in ${TESTRAIL_RELEASE_DIR}"
+ exit 1
+fi
+
+#################################################################################
+# Creating the necessary directories
+createOptDirectory "${TR_DEFAULT_LOG_DIR}"
+createOptDirectory "${TR_DEFAULT_AUDIT_DIR}"
+createOptDirectory "${TR_DEFAULT_REPORT_DIR}"
+createOptDirectory "${TR_DEFAULT_ATTACHMENT_DIR}"
+
+chown -R www-data:www-data "${TR_CONFIG_DIR}"
+chown -R www-data:www-data "${TR_CONFIGPATH}"
+
+#################################################################################
+# Waiting for task.php file to appear
+TASK_FILE="/var/www/testrail/task.php"
+echo "[testrail] Waiting for background task file"
+while [ ! -f "$TASK_FILE" ]; do
+ sleep 2
+done
+
+echo "[testrail] Starting background task"
+# Removing the memory limit for executing a PHP task
+while /bin/true; do
+ php -d memory_limit=-1 "$TASK_FILE" || true
+ sleep "${TR_DEFAULT_TASK_EXECUTION:-60}"
+done &
+
+echo "[testrail] Background task started"
+
+#################################################################################
+# Processing the FIX_WWW_DATA environment variable
+if [[ -z "${FIX_WWW_DATA}" ]]; then
+ echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway"
+ chown www-data:www-data /var/www -R
+elif [ "${FIX_WWW_DATA}" == "false" ]; then
+ echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..."
+elif [ "${FIX_WWW_DATA}" == "true" ]; then
+ echo "[apache2] Changing permissions for /var/www path. Don't worry, please wait."
+ chown www-data:www-data /var/www -R
+ echo "[apache2] Done"
+else
+ echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..."
+fi
+
+#################################################################################
+# Starting Apache
+echo "[apache2] Starting up"
+source /etc/apache2/envvars
+tail -F /var/log/apache2/* &
+exec apache2 -D FOREGROUND
diff --git a/linux/ecosystem/testrail/8.1.0.6165/main/.env b/linux/ecosystem/testrail/8.1.0.6165/main/.env
new file mode 100644
index 000000000..6b93ad471
--- /dev/null
+++ b/linux/ecosystem/testrail/8.1.0.6165/main/.env
@@ -0,0 +1,2 @@
+TESTRAIL_VERSION=8.1.0.6165
+DOWNLOAD_URL=https://secure.testrail.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion81.zip
diff --git a/linux/ecosystem/testrail/8.1.0.6165/main/Dockerfile b/linux/ecosystem/testrail/8.1.0.6165/main/Dockerfile
new file mode 100644
index 000000000..49863450a
--- /dev/null
+++ b/linux/ecosystem/testrail/8.1.0.6165/main/Dockerfile
@@ -0,0 +1,65 @@
+FROM quay.io/epicmorg/apache2:php8.1
+
+##############################################################################
+# Testrail Install
+##############################################################################
+
+
+ENV TESTRAIL_VERSION=8.1.0.6165
+ARG DOWNLOAD_URL=https://secure.testrail.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion81.zip
+
+ENV TR_DEFAULT_TASK_EXECUTION=60
+
+ENV TESTRAIL_RELEASE_DIR=/testrail-release
+
+ENV TR_WWW_PATH=/var/www/testrail
+ENV TR_CONFIGPATH=${TR_CONFIG_DIR}
+ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config
+ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom
+ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth
+
+ENV TR_OPT_PATH=/opt/testrail
+ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs
+ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit
+ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports
+ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments
+
+ENV TR_OPTPATH="/opt/testrail/"
+ENV TR_CONFIGPATH="/var/www/testrail/config/"
+
+ENV OPENSSL_CONF=/etc/ssl/
+
+RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
+
+ADD ${DOWNLOAD_URL} ${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip
+RUN echo "[testrail] Preparing folders" && \
+ mkdir -p ${TESTRAIL_RELEASE_DIR} && \
+ mkdir -p ${TR_WWW_PATH} && \
+ mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \
+ echo "[testrail] Downloading and installing" && \
+ chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \
+ unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip -d /var/www/ && \
+ chown -R www-data:www-data ${TR_WWW_PATH} && \
+ ls -las ${TR_WWW_PATH} && \
+ chown -R www-data:www-data ${TR_OPT_PATH} && \
+ ls -las ${TR_OPT_PATH}
+
+RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)"
+
+COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf
+
+#healthcheck. good practice
+HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1
+
+# Add image configuration and scripts
+COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
+RUN chmod 755 /usr/bin/docker-entrypoint.sh
+
+RUN updatedb
+
+#Final config
+WORKDIR /var/www/testrail
+EXPOSE 80 443
+
+ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"]
+CMD ["docker-entrypoint.sh"]
diff --git a/linux/ecosystem/testrail/8.1.0.6165/main/Makefile b/linux/ecosystem/testrail/8.1.0.6165/main/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/testrail/8.1.0.6165/main/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ 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
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/testrail/8.1.0.6165/main/README.md b/linux/ecosystem/testrail/8.1.0.6165/main/README.md
new file mode 100644
index 000000000..9cf7572c9
--- /dev/null
+++ b/linux/ecosystem/testrail/8.1.0.6165/main/README.md
@@ -0,0 +1,35 @@
+## Testrail
+
+* Based on `websites:php8.1` of our ecosystem.
+
+# Compose example
+
+```yml
+services:
+ testrail:
+ image: epicmorg/testrail:8.1.0.6165
+# depends_on:
+# - mysql
+# - memcached
+ restart: unless-stopped
+ volumes:
+ - /etc/localtime:/etc/localtime
+ - /etc/timezone:/etc/timezone
+# - /etc/letsencrypt:/etc/letsencrypt
+ - www:/var/www
+ - apache2:/etc/apache2
+ - php:/etc/php
+ restart: unless-stopped
+# extra_hosts:
+# - "example.com:192.168.0.11"
+ tmpfs:
+ - /tmp
+ - /var/lib/php/sessions
+volumes:
+ www:
+ external: true
+ apache2:
+ external: true
+ php:
+ external: true
+```
diff --git a/linux/ecosystem/testrail/8.1.0.6165/main/apache_testrail.conf b/linux/ecosystem/testrail/8.1.0.6165/main/apache_testrail.conf
new file mode 100644
index 000000000..750791db9
--- /dev/null
+++ b/linux/ecosystem/testrail/8.1.0.6165/main/apache_testrail.conf
@@ -0,0 +1,16 @@
+
+ ServerName localhost
+
+ ServerAdmin webmaster@localhost
+ DocumentRoot /var/www/testrail
+
+ ErrorLog ${APACHE_LOG_DIR}/error.log
+ CustomLog ${APACHE_LOG_DIR}/access.log combined
+
+
+ Options Indexes FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+
\ No newline at end of file
diff --git a/linux/ecosystem/testrail/8.1.0.6165/main/docker-compose.yml b/linux/ecosystem/testrail/8.1.0.6165/main/docker-compose.yml
new file mode 100644
index 000000000..afb73c261
--- /dev/null
+++ b/linux/ecosystem/testrail/8.1.0.6165/main/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/testrail:8.1.0.6165"
+ build:
+ context: .
diff --git a/linux/ecosystem/testrail/8.1.0.6165/main/docker-entrypoint.sh b/linux/ecosystem/testrail/8.1.0.6165/main/docker-entrypoint.sh
new file mode 100755
index 000000000..b8f6991e3
--- /dev/null
+++ b/linux/ecosystem/testrail/8.1.0.6165/main/docker-entrypoint.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+echo "[testrail] Welcome to Testrail 8.1.0.6165"
+
+echo "[testrail] Starting testrail service"
+
+#################################################################################
+# Function for creating directories with rights for www-data
+function createOptDirectory {
+ if [ ! -d "$1" ]; then
+ echo "[testrail] Creating $1"
+ mkdir -p "$1"
+ fi
+
+ chown -R www-data:www-data "$1"
+}
+
+#################################################################################
+# Copy Apache Configuration
+/bin/cp -rf "${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
+
+#################################################################################
+# Unpacking TestRail
+if [ -f "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip" ]; then
+ echo "[testrail] Unzipping testrail service"
+ unzip -q -o "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip" -d /var/www/
+ echo "[testrail] Testrail extracted"
+else
+ echo "[testrail] Error: testrail-${TESTRAIL_VERSION}-ion81.zip not found in ${TESTRAIL_RELEASE_DIR}"
+ exit 1
+fi
+
+#################################################################################
+# Creating the necessary directories
+createOptDirectory "${TR_DEFAULT_LOG_DIR}"
+createOptDirectory "${TR_DEFAULT_AUDIT_DIR}"
+createOptDirectory "${TR_DEFAULT_REPORT_DIR}"
+createOptDirectory "${TR_DEFAULT_ATTACHMENT_DIR}"
+
+chown -R www-data:www-data "${TR_CONFIG_DIR}"
+chown -R www-data:www-data "${TR_CONFIGPATH}"
+
+#################################################################################
+# Waiting for task.php file to appear
+TASK_FILE="/var/www/testrail/task.php"
+echo "[testrail] Waiting for background task file"
+while [ ! -f "$TASK_FILE" ]; do
+ sleep 2
+done
+
+echo "[testrail] Starting background task"
+# Removing the memory limit for executing a PHP task
+while /bin/true; do
+ php -d memory_limit=-1 "$TASK_FILE" || true
+ sleep "${TR_DEFAULT_TASK_EXECUTION:-60}"
+done &
+
+echo "[testrail] Background task started"
+
+#################################################################################
+# Processing the FIX_WWW_DATA environment variable
+if [[ -z "${FIX_WWW_DATA}" ]]; then
+ echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway"
+ chown www-data:www-data /var/www -R
+elif [ "${FIX_WWW_DATA}" == "false" ]; then
+ echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..."
+elif [ "${FIX_WWW_DATA}" == "true" ]; then
+ echo "[apache2] Changing permissions for /var/www path. Don't worry, please wait."
+ chown www-data:www-data /var/www -R
+ echo "[apache2] Done"
+else
+ echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..."
+fi
+
+#################################################################################
+# Starting Apache
+echo "[apache2] Starting up"
+source /etc/apache2/envvars
+tail -F /var/log/apache2/* &
+exec apache2 -D FOREGROUND
diff --git a/linux/ecosystem/testrail/9.0.0.1091/ad/Dockerfile b/linux/ecosystem/testrail/9.0.0.1091/ad/Dockerfile
new file mode 100644
index 000000000..dd218f14e
--- /dev/null
+++ b/linux/ecosystem/testrail/9.0.0.1091/ad/Dockerfile
@@ -0,0 +1,13 @@
+FROM quay.io/epicmorg/testrail:9.0.0.1091
+
+ENV TESTRAIL_PLUGIN_VERSION=1.4
+ENV TESTRAIL_PLUGIN_NAME=ad
+ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION}
+ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip
+ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE}
+ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE}
+
+RUN rm -rfv /usr/bin/docker-entrypoint.sh
+COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
+
+RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL}
diff --git a/linux/ecosystem/testrail/9.0.0.1091/ad/Makefile b/linux/ecosystem/testrail/9.0.0.1091/ad/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/testrail/9.0.0.1091/ad/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ 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
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/testrail/9.0.0.1091/ad/README.md b/linux/ecosystem/testrail/9.0.0.1091/ad/README.md
new file mode 100644
index 000000000..3f6590477
--- /dev/null
+++ b/linux/ecosystem/testrail/9.0.0.1091/ad/README.md
@@ -0,0 +1,35 @@
+## Testrail
+
+* Based on `websites:php8.1` of our ecosystem.
+
+# Compose example
+
+```yml
+services:
+ testrail:
+ image: epicmorg/testrail-ad-:9.0.0.1091
+# depends_on:
+# - mysql
+# - memcached
+ restart: unless-stopped
+ volumes:
+ - /etc/localtime:/etc/localtime
+ - /etc/timezone:/etc/timezone
+# - /etc/letsencrypt:/etc/letsencrypt
+ - www:/var/www
+ - apache2:/etc/apache2
+ - php:/etc/php
+ restart: unless-stopped
+# extra_hosts:
+# - "example.com:192.168.0.11"
+ tmpfs:
+ - /tmp
+ - /var/lib/php/sessions
+volumes:
+ www:
+ external: true
+ apache2:
+ external: true
+ php:
+ external: true
+```
diff --git a/linux/ecosystem/testrail/9.0.0.1091/ad/docker-compose.yml b/linux/ecosystem/testrail/9.0.0.1091/ad/docker-compose.yml
new file mode 100644
index 000000000..312249225
--- /dev/null
+++ b/linux/ecosystem/testrail/9.0.0.1091/ad/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/testrail:auth-ad-9.0.0.1091"
+ build:
+ context: .
diff --git a/linux/ecosystem/testrail/9.0.0.1091/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/9.0.0.1091/ad/docker-entrypoint.sh
new file mode 100755
index 000000000..27089b26e
--- /dev/null
+++ b/linux/ecosystem/testrail/9.0.0.1091/ad/docker-entrypoint.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+echo "[testrail] Welcome to Testrail 9.0.0.1091 with Active Directory plugin"
+
+echo "[testrail] Starting testrail service"
+
+#################################################################################
+# Function for creating directories with rights for www-data
+function createOptDirectory {
+ if [ ! -d "$1" ]; then
+ echo "[testrail] Creating $1"
+ mkdir -p "$1"
+ fi
+
+ chown -R www-data:www-data "$1"
+}
+
+#################################################################################
+# Copy Apache Configuration
+/bin/cp -rf "${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
+
+#################################################################################
+# Unpacking TestRail
+if [ -f "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" ]; then
+ echo "[testrail] Unzipping testrail service"
+ unzip -q -o "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" -d /var/www/
+ echo "[testrail] Testrail extracted"
+else
+ echo "[testrail] Error: testrail-${TESTRAIL_VERSION}-ion70.zip not found in ${TESTRAIL_RELEASE_DIR}"
+ exit 1
+fi
+
+#################################################################################
+# Creating the necessary directories
+createOptDirectory "${TR_DEFAULT_LOG_DIR}"
+createOptDirectory "${TR_DEFAULT_AUDIT_DIR}"
+createOptDirectory "${TR_DEFAULT_REPORT_DIR}"
+createOptDirectory "${TR_DEFAULT_ATTACHMENT_DIR}"
+
+chown -R www-data:www-data "${TR_CONFIG_DIR}"
+chown -R www-data:www-data "${TR_CONFIGPATH}"
+
+#################################################################################
+# Waiting for task.php file to appear
+TASK_FILE="/var/www/testrail/task.php"
+echo "[testrail] Waiting for background task file"
+while [ ! -f "$TASK_FILE" ]; do
+ sleep 2
+done
+
+echo "[testrail] Starting background task"
+# Removing the memory limit for executing a PHP task
+while /bin/true; do
+ php -d memory_limit=-1 "$TASK_FILE" || true
+ sleep "${TR_DEFAULT_TASK_EXECUTION:-60}"
+done &
+
+echo "[testrail] Background task started"
+
+#################################################################################
+# Processing the FIX_WWW_DATA environment variable
+if [[ -z "${FIX_WWW_DATA}" ]]; then
+ echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway"
+ chown www-data:www-data /var/www -R
+elif [ "${FIX_WWW_DATA}" == "false" ]; then
+ echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..."
+elif [ "${FIX_WWW_DATA}" == "true" ]; then
+ echo "[apache2] Changing permissions for /var/www path. Don't worry, please wait."
+ chown www-data:www-data /var/www -R
+ echo "[apache2] Done"
+else
+ echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..."
+fi
+
+#################################################################################
+# Starting Apache
+echo "[apache2] Starting up"
+source /etc/apache2/envvars
+tail -F /var/log/apache2/* &
+exec apache2 -D FOREGROUND
diff --git a/linux/ecosystem/testrail/9.0.0.1091/ldap/Dockerfile b/linux/ecosystem/testrail/9.0.0.1091/ldap/Dockerfile
new file mode 100644
index 000000000..f8dcb44d8
--- /dev/null
+++ b/linux/ecosystem/testrail/9.0.0.1091/ldap/Dockerfile
@@ -0,0 +1,13 @@
+FROM quay.io/epicmorg/testrail:9.0.0.1091
+
+ENV TESTRAIL_PLUGIN_VERSION=1.4
+ENV TESTRAIL_PLUGIN_NAME=ldap
+ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION}
+ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip
+ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE}
+ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE}
+
+RUN rm -rfv /usr/bin/docker-entrypoint.sh
+COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
+
+RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL}
diff --git a/linux/ecosystem/testrail/9.0.0.1091/ldap/Makefile b/linux/ecosystem/testrail/9.0.0.1091/ldap/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/testrail/9.0.0.1091/ldap/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ 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
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/testrail/9.0.0.1091/ldap/README.md b/linux/ecosystem/testrail/9.0.0.1091/ldap/README.md
new file mode 100644
index 000000000..530548542
--- /dev/null
+++ b/linux/ecosystem/testrail/9.0.0.1091/ldap/README.md
@@ -0,0 +1,35 @@
+## Testrail
+
+* Based on `websites:php8.1` of our ecosystem.
+
+# Compose example
+
+```yml
+services:
+ testrail:
+ image: epicmorg/testrail:auth-ldap-9.0.0.1091
+# depends_on:
+# - mysql
+# - memcached
+ restart: unless-stopped
+ volumes:
+ - /etc/localtime:/etc/localtime
+ - /etc/timezone:/etc/timezone
+# - /etc/letsencrypt:/etc/letsencrypt
+ - www:/var/www
+ - apache2:/etc/apache2
+ - php:/etc/php
+ restart: unless-stopped
+# extra_hosts:
+# - "example.com:192.168.0.11"
+ tmpfs:
+ - /tmp
+ - /var/lib/php/sessions
+volumes:
+ www:
+ external: true
+ apache2:
+ external: true
+ php:
+ external: true
+```
diff --git a/linux/ecosystem/testrail/9.0.0.1091/ldap/docker-compose.yml b/linux/ecosystem/testrail/9.0.0.1091/ldap/docker-compose.yml
new file mode 100644
index 000000000..11d46aa8a
--- /dev/null
+++ b/linux/ecosystem/testrail/9.0.0.1091/ldap/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/testrail:auth-ldap-9.0.0.1091"
+ build:
+ context: .
diff --git a/linux/ecosystem/testrail/9.0.0.1091/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/9.0.0.1091/ldap/docker-entrypoint.sh
new file mode 100755
index 000000000..5c1909ead
--- /dev/null
+++ b/linux/ecosystem/testrail/9.0.0.1091/ldap/docker-entrypoint.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+echo "[testrail] Welcome to Testrail 9.0.0.1091 with LDAP plugin"
+
+echo "[testrail] Starting testrail service"
+
+#################################################################################
+# Function for creating directories with rights for www-data
+function createOptDirectory {
+ if [ ! -d "$1" ]; then
+ echo "[testrail] Creating $1"
+ mkdir -p "$1"
+ fi
+
+ chown -R www-data:www-data "$1"
+}
+
+#################################################################################
+# Copy Apache Configuration
+/bin/cp -rf "${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
+
+#################################################################################
+# Unpacking TestRail
+if [ -f "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" ]; then
+ echo "[testrail] Unzipping testrail service"
+ unzip -q -o "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" -d /var/www/
+ echo "[testrail] Testrail extracted"
+else
+ echo "[testrail] Error: testrail-${TESTRAIL_VERSION}-ion70.zip not found in ${TESTRAIL_RELEASE_DIR}"
+ exit 1
+fi
+
+#################################################################################
+# Creating the necessary directories
+createOptDirectory "${TR_DEFAULT_LOG_DIR}"
+createOptDirectory "${TR_DEFAULT_AUDIT_DIR}"
+createOptDirectory "${TR_DEFAULT_REPORT_DIR}"
+createOptDirectory "${TR_DEFAULT_ATTACHMENT_DIR}"
+
+chown -R www-data:www-data "${TR_CONFIG_DIR}"
+chown -R www-data:www-data "${TR_CONFIGPATH}"
+
+#################################################################################
+# Waiting for task.php file to appear
+TASK_FILE="/var/www/testrail/task.php"
+echo "[testrail] Waiting for background task file"
+while [ ! -f "$TASK_FILE" ]; do
+ sleep 2
+done
+
+echo "[testrail] Starting background task"
+# Removing the memory limit for executing a PHP task
+while /bin/true; do
+ php -d memory_limit=-1 "$TASK_FILE" || true
+ sleep "${TR_DEFAULT_TASK_EXECUTION:-60}"
+done &
+
+echo "[testrail] Background task started"
+
+#################################################################################
+# Processing the FIX_WWW_DATA environment variable
+if [[ -z "${FIX_WWW_DATA}" ]]; then
+ echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway"
+ chown www-data:www-data /var/www -R
+elif [ "${FIX_WWW_DATA}" == "false" ]; then
+ echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..."
+elif [ "${FIX_WWW_DATA}" == "true" ]; then
+ echo "[apache2] Changing permissions for /var/www path. Don't worry, please wait."
+ chown www-data:www-data /var/www -R
+ echo "[apache2] Done"
+else
+ echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..."
+fi
+
+#################################################################################
+# Starting Apache
+echo "[apache2] Starting up"
+source /etc/apache2/envvars
+tail -F /var/log/apache2/* &
+exec apache2 -D FOREGROUND
diff --git a/linux/ecosystem/testrail/9.0.0.1091/main/.env b/linux/ecosystem/testrail/9.0.0.1091/main/.env
new file mode 100644
index 000000000..14f39f6d9
--- /dev/null
+++ b/linux/ecosystem/testrail/9.0.0.1091/main/.env
@@ -0,0 +1,2 @@
+TESTRAIL_VERSION=9.0.0.1091
+DOWNLOAD_URL=https://secure.testrail.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion81.zip
diff --git a/linux/ecosystem/testrail/9.0.0.1091/main/Dockerfile b/linux/ecosystem/testrail/9.0.0.1091/main/Dockerfile
new file mode 100644
index 000000000..4e0a0949b
--- /dev/null
+++ b/linux/ecosystem/testrail/9.0.0.1091/main/Dockerfile
@@ -0,0 +1,65 @@
+FROM quay.io/epicmorg/apache2:php8.1
+
+##############################################################################
+# Testrail Install
+##############################################################################
+
+
+ENV TESTRAIL_VERSION=9.0.0.1091
+ARG DOWNLOAD_URL=https://secure.testrail.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion81.zip
+
+ENV TR_DEFAULT_TASK_EXECUTION=60
+
+ENV TESTRAIL_RELEASE_DIR=/testrail-release
+
+ENV TR_WWW_PATH=/var/www/testrail
+ENV TR_CONFIGPATH=${TR_CONFIG_DIR}
+ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config
+ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom
+ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth
+
+ENV TR_OPT_PATH=/opt/testrail
+ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs
+ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit
+ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports
+ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments
+
+ENV TR_OPTPATH="/opt/testrail/"
+ENV TR_CONFIGPATH="/var/www/testrail/config/"
+
+ENV OPENSSL_CONF=/etc/ssl/
+
+RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
+
+ADD ${DOWNLOAD_URL} ${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip
+RUN echo "[testrail] Preparing folders" && \
+ mkdir -p ${TESTRAIL_RELEASE_DIR} && \
+ mkdir -p ${TR_WWW_PATH} && \
+ mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \
+ echo "[testrail] Downloading and installing" && \
+ chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \
+ unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip -d /var/www/ && \
+ chown -R www-data:www-data ${TR_WWW_PATH} && \
+ ls -las ${TR_WWW_PATH} && \
+ chown -R www-data:www-data ${TR_OPT_PATH} && \
+ ls -las ${TR_OPT_PATH}
+
+RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)"
+
+COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf
+
+#healthcheck. good practice
+HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1
+
+# Add image configuration and scripts
+COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
+RUN chmod 755 /usr/bin/docker-entrypoint.sh
+
+RUN updatedb
+
+#Final config
+WORKDIR /var/www/testrail
+EXPOSE 80 443
+
+ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"]
+CMD ["docker-entrypoint.sh"]
diff --git a/linux/ecosystem/testrail/9.0.0.1091/main/Makefile b/linux/ecosystem/testrail/9.0.0.1091/main/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/testrail/9.0.0.1091/main/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ 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
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/testrail/9.0.0.1091/main/README.md b/linux/ecosystem/testrail/9.0.0.1091/main/README.md
new file mode 100644
index 000000000..b60c243b3
--- /dev/null
+++ b/linux/ecosystem/testrail/9.0.0.1091/main/README.md
@@ -0,0 +1,35 @@
+## Testrail
+
+* Based on `websites:php8.1` of our ecosystem.
+
+# Compose example
+
+```yml
+services:
+ testrail:
+ image: epicmorg/testrail:9.0.0.1091
+# depends_on:
+# - mysql
+# - memcached
+ restart: unless-stopped
+ volumes:
+ - /etc/localtime:/etc/localtime
+ - /etc/timezone:/etc/timezone
+# - /etc/letsencrypt:/etc/letsencrypt
+ - www:/var/www
+ - apache2:/etc/apache2
+ - php:/etc/php
+ restart: unless-stopped
+# extra_hosts:
+# - "example.com:192.168.0.11"
+ tmpfs:
+ - /tmp
+ - /var/lib/php/sessions
+volumes:
+ www:
+ external: true
+ apache2:
+ external: true
+ php:
+ external: true
+```
diff --git a/linux/ecosystem/testrail/9.0.0.1091/main/apache_testrail.conf b/linux/ecosystem/testrail/9.0.0.1091/main/apache_testrail.conf
new file mode 100644
index 000000000..750791db9
--- /dev/null
+++ b/linux/ecosystem/testrail/9.0.0.1091/main/apache_testrail.conf
@@ -0,0 +1,16 @@
+
+ ServerName localhost
+
+ ServerAdmin webmaster@localhost
+ DocumentRoot /var/www/testrail
+
+ ErrorLog ${APACHE_LOG_DIR}/error.log
+ CustomLog ${APACHE_LOG_DIR}/access.log combined
+
+
+ Options Indexes FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+
\ No newline at end of file
diff --git a/linux/ecosystem/testrail/9.0.0.1091/main/docker-compose.yml b/linux/ecosystem/testrail/9.0.0.1091/main/docker-compose.yml
new file mode 100644
index 000000000..aa22610be
--- /dev/null
+++ b/linux/ecosystem/testrail/9.0.0.1091/main/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/testrail:9.0.0.1091"
+ build:
+ context: .
diff --git a/linux/ecosystem/testrail/9.0.0.1091/main/docker-entrypoint.sh b/linux/ecosystem/testrail/9.0.0.1091/main/docker-entrypoint.sh
new file mode 100755
index 000000000..c51e8ff95
--- /dev/null
+++ b/linux/ecosystem/testrail/9.0.0.1091/main/docker-entrypoint.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+echo "[testrail] Welcome to Testrail 9.0.0.1091"
+
+echo "[testrail] Starting testrail service"
+
+#################################################################################
+# Function for creating directories with rights for www-data
+function createOptDirectory {
+ if [ ! -d "$1" ]; then
+ echo "[testrail] Creating $1"
+ mkdir -p "$1"
+ fi
+
+ chown -R www-data:www-data "$1"
+}
+
+#################################################################################
+# Copy Apache Configuration
+/bin/cp -rf "${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
+
+#################################################################################
+# Unpacking TestRail
+if [ -f "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip" ]; then
+ echo "[testrail] Unzipping testrail service"
+ unzip -q -o "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip" -d /var/www/
+ echo "[testrail] Testrail extracted"
+else
+ echo "[testrail] Error: testrail-${TESTRAIL_VERSION}-ion81.zip not found in ${TESTRAIL_RELEASE_DIR}"
+ exit 1
+fi
+
+#################################################################################
+# Creating the necessary directories
+createOptDirectory "${TR_DEFAULT_LOG_DIR}"
+createOptDirectory "${TR_DEFAULT_AUDIT_DIR}"
+createOptDirectory "${TR_DEFAULT_REPORT_DIR}"
+createOptDirectory "${TR_DEFAULT_ATTACHMENT_DIR}"
+
+chown -R www-data:www-data "${TR_CONFIG_DIR}"
+chown -R www-data:www-data "${TR_CONFIGPATH}"
+
+#################################################################################
+# Waiting for task.php file to appear
+TASK_FILE="/var/www/testrail/task.php"
+echo "[testrail] Waiting for background task file"
+while [ ! -f "$TASK_FILE" ]; do
+ sleep 2
+done
+
+echo "[testrail] Starting background task"
+# Removing the memory limit for executing a PHP task
+while /bin/true; do
+ php -d memory_limit=-1 "$TASK_FILE" || true
+ sleep "${TR_DEFAULT_TASK_EXECUTION:-60}"
+done &
+
+echo "[testrail] Background task started"
+
+#################################################################################
+# Processing the FIX_WWW_DATA environment variable
+if [[ -z "${FIX_WWW_DATA}" ]]; then
+ echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway"
+ chown www-data:www-data /var/www -R
+elif [ "${FIX_WWW_DATA}" == "false" ]; then
+ echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..."
+elif [ "${FIX_WWW_DATA}" == "true" ]; then
+ echo "[apache2] Changing permissions for /var/www path. Don't worry, please wait."
+ chown www-data:www-data /var/www -R
+ echo "[apache2] Done"
+else
+ echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..."
+fi
+
+#################################################################################
+# Starting Apache
+echo "[apache2] Starting up"
+source /etc/apache2/envvars
+tail -F /var/log/apache2/* &
+exec apache2 -D FOREGROUND
diff --git a/linux/ecosystem/testrail/9.1.0.1025/ad/Dockerfile b/linux/ecosystem/testrail/9.1.0.1025/ad/Dockerfile
new file mode 100644
index 000000000..c2a2ca358
--- /dev/null
+++ b/linux/ecosystem/testrail/9.1.0.1025/ad/Dockerfile
@@ -0,0 +1,13 @@
+FROM quay.io/epicmorg/testrail:9.1.0.1025
+
+ENV TESTRAIL_PLUGIN_VERSION=1.4
+ENV TESTRAIL_PLUGIN_NAME=ad
+ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION}
+ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip
+ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE}
+ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE}
+
+RUN rm -rfv /usr/bin/docker-entrypoint.sh
+COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
+
+RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL}
diff --git a/linux/ecosystem/testrail/9.1.0.1025/ad/Makefile b/linux/ecosystem/testrail/9.1.0.1025/ad/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/testrail/9.1.0.1025/ad/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ 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
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/testrail/9.1.0.1025/ad/README.md b/linux/ecosystem/testrail/9.1.0.1025/ad/README.md
new file mode 100644
index 000000000..c96d64788
--- /dev/null
+++ b/linux/ecosystem/testrail/9.1.0.1025/ad/README.md
@@ -0,0 +1,35 @@
+## Testrail
+
+* Based on `websites:php8.1` of our ecosystem.
+
+# Compose example
+
+```yml
+services:
+ testrail:
+ image: epicmorg/testrail-ad-:9.1.0.1025
+# depends_on:
+# - mysql
+# - memcached
+ restart: unless-stopped
+ volumes:
+ - /etc/localtime:/etc/localtime
+ - /etc/timezone:/etc/timezone
+# - /etc/letsencrypt:/etc/letsencrypt
+ - www:/var/www
+ - apache2:/etc/apache2
+ - php:/etc/php
+ restart: unless-stopped
+# extra_hosts:
+# - "example.com:192.168.0.11"
+ tmpfs:
+ - /tmp
+ - /var/lib/php/sessions
+volumes:
+ www:
+ external: true
+ apache2:
+ external: true
+ php:
+ external: true
+```
diff --git a/linux/ecosystem/testrail/9.1.0.1025/ad/docker-compose.yml b/linux/ecosystem/testrail/9.1.0.1025/ad/docker-compose.yml
new file mode 100644
index 000000000..b3bb92cb8
--- /dev/null
+++ b/linux/ecosystem/testrail/9.1.0.1025/ad/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/testrail:auth-ad-9.1.0.1025"
+ build:
+ context: .
diff --git a/linux/ecosystem/testrail/9.1.0.1025/ad/docker-entrypoint.sh b/linux/ecosystem/testrail/9.1.0.1025/ad/docker-entrypoint.sh
new file mode 100755
index 000000000..cde17c88f
--- /dev/null
+++ b/linux/ecosystem/testrail/9.1.0.1025/ad/docker-entrypoint.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+echo "[testrail] Welcome to Testrail 9.1.0.1025 with Active Directory plugin"
+
+echo "[testrail] Starting testrail service"
+
+#################################################################################
+# Function for creating directories with rights for www-data
+function createOptDirectory {
+ if [ ! -d "$1" ]; then
+ echo "[testrail] Creating $1"
+ mkdir -p "$1"
+ fi
+
+ chown -R www-data:www-data "$1"
+}
+
+#################################################################################
+# Copy Apache Configuration
+/bin/cp -rf "${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
+
+#################################################################################
+# Unpacking TestRail
+if [ -f "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" ]; then
+ echo "[testrail] Unzipping testrail service"
+ unzip -q -o "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" -d /var/www/
+ echo "[testrail] Testrail extracted"
+else
+ echo "[testrail] Error: testrail-${TESTRAIL_VERSION}-ion70.zip not found in ${TESTRAIL_RELEASE_DIR}"
+ exit 1
+fi
+
+#################################################################################
+# Creating the necessary directories
+createOptDirectory "${TR_DEFAULT_LOG_DIR}"
+createOptDirectory "${TR_DEFAULT_AUDIT_DIR}"
+createOptDirectory "${TR_DEFAULT_REPORT_DIR}"
+createOptDirectory "${TR_DEFAULT_ATTACHMENT_DIR}"
+
+chown -R www-data:www-data "${TR_CONFIG_DIR}"
+chown -R www-data:www-data "${TR_CONFIGPATH}"
+
+#################################################################################
+# Waiting for task.php file to appear
+TASK_FILE="/var/www/testrail/task.php"
+echo "[testrail] Waiting for background task file"
+while [ ! -f "$TASK_FILE" ]; do
+ sleep 2
+done
+
+echo "[testrail] Starting background task"
+# Removing the memory limit for executing a PHP task
+while /bin/true; do
+ php -d memory_limit=-1 "$TASK_FILE" || true
+ sleep "${TR_DEFAULT_TASK_EXECUTION:-60}"
+done &
+
+echo "[testrail] Background task started"
+
+#################################################################################
+# Processing the FIX_WWW_DATA environment variable
+if [[ -z "${FIX_WWW_DATA}" ]]; then
+ echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway"
+ chown www-data:www-data /var/www -R
+elif [ "${FIX_WWW_DATA}" == "false" ]; then
+ echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..."
+elif [ "${FIX_WWW_DATA}" == "true" ]; then
+ echo "[apache2] Changing permissions for /var/www path. Don't worry, please wait."
+ chown www-data:www-data /var/www -R
+ echo "[apache2] Done"
+else
+ echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..."
+fi
+
+#################################################################################
+# Starting Apache
+echo "[apache2] Starting up"
+source /etc/apache2/envvars
+tail -F /var/log/apache2/* &
+exec apache2 -D FOREGROUND
diff --git a/linux/ecosystem/testrail/9.1.0.1025/ldap/Dockerfile b/linux/ecosystem/testrail/9.1.0.1025/ldap/Dockerfile
new file mode 100644
index 000000000..f06cd1ed6
--- /dev/null
+++ b/linux/ecosystem/testrail/9.1.0.1025/ldap/Dockerfile
@@ -0,0 +1,13 @@
+FROM quay.io/epicmorg/testrail:9.1.0.1025
+
+ENV TESTRAIL_PLUGIN_VERSION=1.4
+ENV TESTRAIL_PLUGIN_NAME=ldap
+ENV TESTRAIL_PLUGIN_FULLNAME=testrail-auth-${TESTRAIL_PLUGIN_NAME}-${TESTRAIL_PLUGIN_VERSION}
+ENV TESTRAIL_PLUGIN_FILE=${TESTRAIL_PLUGIN_FULLNAME}.zip
+ENV TESTRAIL_PLUGIN_DONWLOAD_URL=https://media.gurock.com/gk-media/downloads/${TESTRAIL_PLUGIN_FILE}
+ENV TESTRAIL_PLUGIN_TEMP=${TESTRAIL_RELEASE_DIR}/${TESTRAIL_PLUGIN_FILE}
+
+RUN rm -rfv /usr/bin/docker-entrypoint.sh
+COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
+
+RUN wget --no-check-certificate -O ${TESTRAIL_PLUGIN_TEMP} ${TESTRAIL_PLUGIN_DONWLOAD_URL}
diff --git a/linux/ecosystem/testrail/9.1.0.1025/ldap/Makefile b/linux/ecosystem/testrail/9.1.0.1025/ldap/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/testrail/9.1.0.1025/ldap/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ 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
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/testrail/9.1.0.1025/ldap/README.md b/linux/ecosystem/testrail/9.1.0.1025/ldap/README.md
new file mode 100644
index 000000000..69c65160a
--- /dev/null
+++ b/linux/ecosystem/testrail/9.1.0.1025/ldap/README.md
@@ -0,0 +1,35 @@
+## Testrail
+
+* Based on `websites:php8.1` of our ecosystem.
+
+# Compose example
+
+```yml
+services:
+ testrail:
+ image: epicmorg/testrail:auth-ldap-9.1.0.1025
+# depends_on:
+# - mysql
+# - memcached
+ restart: unless-stopped
+ volumes:
+ - /etc/localtime:/etc/localtime
+ - /etc/timezone:/etc/timezone
+# - /etc/letsencrypt:/etc/letsencrypt
+ - www:/var/www
+ - apache2:/etc/apache2
+ - php:/etc/php
+ restart: unless-stopped
+# extra_hosts:
+# - "example.com:192.168.0.11"
+ tmpfs:
+ - /tmp
+ - /var/lib/php/sessions
+volumes:
+ www:
+ external: true
+ apache2:
+ external: true
+ php:
+ external: true
+```
diff --git a/linux/ecosystem/testrail/9.1.0.1025/ldap/docker-compose.yml b/linux/ecosystem/testrail/9.1.0.1025/ldap/docker-compose.yml
new file mode 100644
index 000000000..153760fb7
--- /dev/null
+++ b/linux/ecosystem/testrail/9.1.0.1025/ldap/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/testrail:auth-ldap-9.1.0.1025"
+ build:
+ context: .
diff --git a/linux/ecosystem/testrail/9.1.0.1025/ldap/docker-entrypoint.sh b/linux/ecosystem/testrail/9.1.0.1025/ldap/docker-entrypoint.sh
new file mode 100755
index 000000000..b37a36582
--- /dev/null
+++ b/linux/ecosystem/testrail/9.1.0.1025/ldap/docker-entrypoint.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+echo "[testrail] Welcome to Testrail 9.1.0.1025 with LDAP plugin"
+
+echo "[testrail] Starting testrail service"
+
+#################################################################################
+# Function for creating directories with rights for www-data
+function createOptDirectory {
+ if [ ! -d "$1" ]; then
+ echo "[testrail] Creating $1"
+ mkdir -p "$1"
+ fi
+
+ chown -R www-data:www-data "$1"
+}
+
+#################################################################################
+# Copy Apache Configuration
+/bin/cp -rf "${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
+
+#################################################################################
+# Unpacking TestRail
+if [ -f "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" ]; then
+ echo "[testrail] Unzipping testrail service"
+ unzip -q -o "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion70.zip" -d /var/www/
+ echo "[testrail] Testrail extracted"
+else
+ echo "[testrail] Error: testrail-${TESTRAIL_VERSION}-ion70.zip not found in ${TESTRAIL_RELEASE_DIR}"
+ exit 1
+fi
+
+#################################################################################
+# Creating the necessary directories
+createOptDirectory "${TR_DEFAULT_LOG_DIR}"
+createOptDirectory "${TR_DEFAULT_AUDIT_DIR}"
+createOptDirectory "${TR_DEFAULT_REPORT_DIR}"
+createOptDirectory "${TR_DEFAULT_ATTACHMENT_DIR}"
+
+chown -R www-data:www-data "${TR_CONFIG_DIR}"
+chown -R www-data:www-data "${TR_CONFIGPATH}"
+
+#################################################################################
+# Waiting for task.php file to appear
+TASK_FILE="/var/www/testrail/task.php"
+echo "[testrail] Waiting for background task file"
+while [ ! -f "$TASK_FILE" ]; do
+ sleep 2
+done
+
+echo "[testrail] Starting background task"
+# Removing the memory limit for executing a PHP task
+while /bin/true; do
+ php -d memory_limit=-1 "$TASK_FILE" || true
+ sleep "${TR_DEFAULT_TASK_EXECUTION:-60}"
+done &
+
+echo "[testrail] Background task started"
+
+#################################################################################
+# Processing the FIX_WWW_DATA environment variable
+if [[ -z "${FIX_WWW_DATA}" ]]; then
+ echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway"
+ chown www-data:www-data /var/www -R
+elif [ "${FIX_WWW_DATA}" == "false" ]; then
+ echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..."
+elif [ "${FIX_WWW_DATA}" == "true" ]; then
+ echo "[apache2] Changing permissions for /var/www path. Don't worry, please wait."
+ chown www-data:www-data /var/www -R
+ echo "[apache2] Done"
+else
+ echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..."
+fi
+
+#################################################################################
+# Starting Apache
+echo "[apache2] Starting up"
+source /etc/apache2/envvars
+tail -F /var/log/apache2/* &
+exec apache2 -D FOREGROUND
diff --git a/linux/ecosystem/testrail/9.1.0.1025/main/.env b/linux/ecosystem/testrail/9.1.0.1025/main/.env
new file mode 100644
index 000000000..55ff42543
--- /dev/null
+++ b/linux/ecosystem/testrail/9.1.0.1025/main/.env
@@ -0,0 +1,2 @@
+TESTRAIL_VERSION=9.1.0.1025
+DOWNLOAD_URL=https://secure.testrail.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion81.zip
diff --git a/linux/ecosystem/testrail/9.1.0.1025/main/Dockerfile b/linux/ecosystem/testrail/9.1.0.1025/main/Dockerfile
new file mode 100644
index 000000000..cf51a27f1
--- /dev/null
+++ b/linux/ecosystem/testrail/9.1.0.1025/main/Dockerfile
@@ -0,0 +1,65 @@
+FROM quay.io/epicmorg/apache2:php8.1
+
+##############################################################################
+# Testrail Install
+##############################################################################
+
+
+ENV TESTRAIL_VERSION=9.1.0.1025
+ARG DOWNLOAD_URL=https://secure.testrail.com/downloads/testrail/testrail-${TESTRAIL_VERSION}-ion81.zip
+
+ENV TR_DEFAULT_TASK_EXECUTION=60
+
+ENV TESTRAIL_RELEASE_DIR=/testrail-release
+
+ENV TR_WWW_PATH=/var/www/testrail
+ENV TR_CONFIGPATH=${TR_CONFIG_DIR}
+ENV TR_CONFIG_DIR=${TR_WWW_PATH}/config
+ENV TR_CUSTOM_DIR=${TR_WWW_PATH}/custom
+ENV TR_CUSTOM_AUTH_DIR=${TR_CUSTOM_DIR}/auth
+
+ENV TR_OPT_PATH=/opt/testrail
+ENV TR_DEFAULT_LOG_DIR=${TR_OPT_PATH}/logs
+ENV TR_DEFAULT_AUDIT_DIR=${TR_OPT_PATH}/audit
+ENV TR_DEFAULT_REPORT_DIR=${TR_OPT_PATH}/reports
+ENV TR_DEFAULT_ATTACHMENT_DIR=${TR_OPT_PATH}/attachments
+
+ENV TR_OPTPATH="/opt/testrail/"
+ENV TR_CONFIGPATH="/var/www/testrail/config/"
+
+ENV OPENSSL_CONF=/etc/ssl/
+
+RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
+
+ADD ${DOWNLOAD_URL} ${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip
+RUN echo "[testrail] Preparing folders" && \
+ mkdir -p ${TESTRAIL_RELEASE_DIR} && \
+ mkdir -p ${TR_WWW_PATH} && \
+ mkdir -p ${TR_DEFAULT_ATTACHMENT_DIR} ${TR_DEFAULT_REPORT_DIR} ${TR_DEFAULT_AUDIT_DIR} ${TR_DEFAULT_LOG_DIR} && \
+ echo "[testrail] Downloading and installing" && \
+ chown -R www-data:www-data ${TESTRAIL_RELEASE_DIR} && \
+ unzip -q -o ${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip -d /var/www/ && \
+ chown -R www-data:www-data ${TR_WWW_PATH} && \
+ ls -las ${TR_WWW_PATH} && \
+ chown -R www-data:www-data ${TR_OPT_PATH} && \
+ ls -las ${TR_OPT_PATH}
+
+RUN echo "[testrail] Testrail version is: $(cat ${TR_WWW_PATH}/version.txt)"
+
+COPY apache_testrail.conf ${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf
+
+#healthcheck. good practice
+HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:80/ || exit 1
+
+# Add image configuration and scripts
+COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
+RUN chmod 755 /usr/bin/docker-entrypoint.sh
+
+RUN updatedb
+
+#Final config
+WORKDIR /var/www/testrail
+EXPOSE 80 443
+
+ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"]
+CMD ["docker-entrypoint.sh"]
diff --git a/linux/ecosystem/testrail/9.1.0.1025/main/Makefile b/linux/ecosystem/testrail/9.1.0.1025/main/Makefile
new file mode 100644
index 000000000..1e4371492
--- /dev/null
+++ b/linux/ecosystem/testrail/9.1.0.1025/main/Makefile
@@ -0,0 +1,44 @@
+all: app
+
+app:
+ make pip
+ make build
+ make deploy
+ make clean
+
+build:
+ make build-buildah
+
+deploy:
+ make deploy-buildah
+
+build-buildah:
+ buildah-wrapper --build
+
+deploy-buildah:
+ 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
+
+pip:
+ pip3 install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
+ pip install --break-system-packages --no-cache-dir kaniko-wrapper buildah-wrapper
\ No newline at end of file
diff --git a/linux/ecosystem/testrail/9.1.0.1025/main/README.md b/linux/ecosystem/testrail/9.1.0.1025/main/README.md
new file mode 100644
index 000000000..7eac23b46
--- /dev/null
+++ b/linux/ecosystem/testrail/9.1.0.1025/main/README.md
@@ -0,0 +1,35 @@
+## Testrail
+
+* Based on `websites:php8.1` of our ecosystem.
+
+# Compose example
+
+```yml
+services:
+ testrail:
+ image: epicmorg/testrail:9.1.0.1025
+# depends_on:
+# - mysql
+# - memcached
+ restart: unless-stopped
+ volumes:
+ - /etc/localtime:/etc/localtime
+ - /etc/timezone:/etc/timezone
+# - /etc/letsencrypt:/etc/letsencrypt
+ - www:/var/www
+ - apache2:/etc/apache2
+ - php:/etc/php
+ restart: unless-stopped
+# extra_hosts:
+# - "example.com:192.168.0.11"
+ tmpfs:
+ - /tmp
+ - /var/lib/php/sessions
+volumes:
+ www:
+ external: true
+ apache2:
+ external: true
+ php:
+ external: true
+```
diff --git a/linux/ecosystem/testrail/9.1.0.1025/main/apache_testrail.conf b/linux/ecosystem/testrail/9.1.0.1025/main/apache_testrail.conf
new file mode 100644
index 000000000..750791db9
--- /dev/null
+++ b/linux/ecosystem/testrail/9.1.0.1025/main/apache_testrail.conf
@@ -0,0 +1,16 @@
+
+ ServerName localhost
+
+ ServerAdmin webmaster@localhost
+ DocumentRoot /var/www/testrail
+
+ ErrorLog ${APACHE_LOG_DIR}/error.log
+ CustomLog ${APACHE_LOG_DIR}/access.log combined
+
+
+ Options Indexes FollowSymLinks
+ AllowOverride All
+ Require all granted
+
+
+
\ No newline at end of file
diff --git a/linux/ecosystem/testrail/9.1.0.1025/main/docker-compose.yml b/linux/ecosystem/testrail/9.1.0.1025/main/docker-compose.yml
new file mode 100644
index 000000000..bd4c29f04
--- /dev/null
+++ b/linux/ecosystem/testrail/9.1.0.1025/main/docker-compose.yml
@@ -0,0 +1,5 @@
+services:
+ app:
+ image: "quay.io/epicmorg/testrail:9.1.0.1025"
+ build:
+ context: .
diff --git a/linux/ecosystem/testrail/9.1.0.1025/main/docker-entrypoint.sh b/linux/ecosystem/testrail/9.1.0.1025/main/docker-entrypoint.sh
new file mode 100755
index 000000000..1feacbd3d
--- /dev/null
+++ b/linux/ecosystem/testrail/9.1.0.1025/main/docker-entrypoint.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+
+echo "[testrail] Welcome to Testrail 9.1.0.1025"
+
+echo "[testrail] Starting testrail service"
+
+#################################################################################
+# Function for creating directories with rights for www-data
+function createOptDirectory {
+ if [ ! -d "$1" ]; then
+ echo "[testrail] Creating $1"
+ mkdir -p "$1"
+ fi
+
+ chown -R www-data:www-data "$1"
+}
+
+#################################################################################
+# Copy Apache Configuration
+/bin/cp -rf "${TESTRAIL_RELEASE_DIR}/apache-conf/000-default.conf" "/etc/apache2/sites-enabled/000-default.conf"
+
+#################################################################################
+# Unpacking TestRail
+if [ -f "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip" ]; then
+ echo "[testrail] Unzipping testrail service"
+ unzip -q -o "${TESTRAIL_RELEASE_DIR}/testrail-${TESTRAIL_VERSION}-ion81.zip" -d /var/www/
+ echo "[testrail] Testrail extracted"
+else
+ echo "[testrail] Error: testrail-${TESTRAIL_VERSION}-ion81.zip not found in ${TESTRAIL_RELEASE_DIR}"
+ exit 1
+fi
+
+#################################################################################
+# Creating the necessary directories
+createOptDirectory "${TR_DEFAULT_LOG_DIR}"
+createOptDirectory "${TR_DEFAULT_AUDIT_DIR}"
+createOptDirectory "${TR_DEFAULT_REPORT_DIR}"
+createOptDirectory "${TR_DEFAULT_ATTACHMENT_DIR}"
+
+chown -R www-data:www-data "${TR_CONFIG_DIR}"
+chown -R www-data:www-data "${TR_CONFIGPATH}"
+
+#################################################################################
+# Waiting for task.php file to appear
+TASK_FILE="/var/www/testrail/task.php"
+echo "[testrail] Waiting for background task file"
+while [ ! -f "$TASK_FILE" ]; do
+ sleep 2
+done
+
+echo "[testrail] Starting background task"
+# Removing the memory limit for executing a PHP task
+while /bin/true; do
+ php -d memory_limit=-1 "$TASK_FILE" || true
+ sleep "${TR_DEFAULT_TASK_EXECUTION:-60}"
+done &
+
+echo "[testrail] Background task started"
+
+#################################################################################
+# Processing the FIX_WWW_DATA environment variable
+if [[ -z "${FIX_WWW_DATA}" ]]; then
+ echo "[apache2] env FIX_WWW_DATA is not set. Fixing permissions anyway"
+ chown www-data:www-data /var/www -R
+elif [ "${FIX_WWW_DATA}" == "false" ]; then
+ echo "[apache2] env FIX_WWW_DATA is set to false. Skipping..."
+elif [ "${FIX_WWW_DATA}" == "true" ]; then
+ echo "[apache2] Changing permissions for /var/www path. Don't worry, please wait."
+ chown www-data:www-data /var/www -R
+ echo "[apache2] Done"
+else
+ echo "[apache2] env FIX_WWW_DATA is set to strange value. Skipping..."
+fi
+
+#################################################################################
+# Starting Apache
+echo "[apache2] Starting up"
+source /etc/apache2/envvars
+tail -F /var/log/apache2/* &
+exec apache2 -D FOREGROUND