diff --git a/.github/workflows/epicmorg.advanced.images.yml b/.github/workflows/epicmorg.advanced.images.yml
index 6740cbac9..6fbfe7961 100644
--- a/.github/workflows/epicmorg.advanced.images.yml
+++ b/.github/workflows/epicmorg.advanced.images.yml
@@ -26,7 +26,7 @@ jobs:
run: cd linux/advanced/mattermost && pwd && make build && make deploy
- name: "Build and Deploy Advanced Teamcity Server Image:"
- run: cd linux/advanced/teamcity/server && pwd && make build && make deploy
+ run: cd linux/advanced/teamcity/server/latest && pwd && make build && make deploy
##################################################################################
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9075642bb..451e31d72 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,10 @@
* updated `Atlassian Images`:
* fixed old and added new versions of `Jira`
* fixed old and added new versions of `Bitbucket`
+ * updated `TeamCity Server` images
+ * Added **DONATION** and **WELCOME** messages to EpicMorg base images:
+ * To disable Welcome message switch `EMG_WELCOME_MESSAGE` to `false`
+ * To disable Donation message switch `EMG_DONATION_MESSAGE` to `false`
* `sep`, `oct`, `nov`
* fixed some bugs in `Makefile`
diff --git a/Makefile b/Makefile
index 248999e7e..615e86e60 100644
--- a/Makefile
+++ b/Makefile
@@ -113,7 +113,13 @@ advanced-nextcloud-patched-latest-images:
cd `pwd`/linux/advanced/nextcloud/patched/latest && pwd && make build && make deploy
advanced-teamcity-server-images:
- cd `pwd`/linux/advanced/teamcity/server && pwd && make build && make deploy
+ cd `pwd`/linux/advanced/teamcity/server/latest && pwd && make build && make deploy
+ cd `pwd`/linux/advanced/teamcity/server/2024.12 && pwd && make build && make deploy
+ cd `pwd`/linux/advanced/teamcity/server/2024.07.3 && pwd && make build && make deploy
+ cd `pwd`/linux/advanced/teamcity/server/2024.03.3 && pwd && make build && make deploy
+ cd `pwd`/linux/advanced/teamcity/server/2023.05.6 && pwd && make build && make deploy
+ cd `pwd`/linux/advanced/teamcity/server/2022.10.6 && pwd && make build && make deploy
+ cd `pwd`/linux/advanced/teamcity/server/2022.04.7 && pwd && make build && make deploy
####################################################################################################################
@@ -2313,12 +2319,12 @@ bundle-bitbucket:
@echo "======================================="
@echo "===== Building All Bitbucket images ====="
@echo "======================================="
- make ecosystem-bitbucket-1-images
- make ecosystem-bitbucket-2-images
- make ecosystem-bitbucket-3-images
- make ecosystem-bitbucket-4-images
- make ecosystem-bitbucket-5-images
- make ecosystem-bitbucket-6-images
+# make ecosystem-bitbucket-1-images
+# make ecosystem-bitbucket-2-images
+# make ecosystem-bitbucket-3-images
+# make ecosystem-bitbucket-4-images
+# make ecosystem-bitbucket-5-images
+# make ecosystem-bitbucket-6-images
make ecosystem-bitbucket-7-images
make ecosystem-bitbucket-8-images
make ecosystem-bitbucket-9-images
diff --git a/linux/advanced/teamcity/server/2022.04.7/Dockerfile b/linux/advanced/teamcity/server/2022.04.7/Dockerfile
new file mode 100644
index 000000000..94c3c3f63
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.04.7/Dockerfile
@@ -0,0 +1,429 @@
+FROM jetbrains/teamcity-server:2022.04.7
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+LABEL org.opencontainers.image.vendor="EpicMorg DevTeam, developer@epicm.org"
+LABEL org.opencontainers.image.authors="STAM, kasthack, Aleks-Z"
+LABEL org.opencontainers.image.source="https://github.com/EpicMorg/docker"
+LABEL org.opencontainers.image.url="https://github.com/EpicMorg/docker"
+LABEL donate.crypto.TON="EQDvHXRK-K1ZieJhgTD9JZQk7xCnWzRbctYnUkWq1lZq1bUg"
+LABEL donate.crypto.ETH="0x26a8443a694f08cdfec966aa6fd72c45068753ec"
+LABEL donate.crypto.BTC="bc1querz8ug9asjmsuy6yn4a94a2athgprnu7e5zq2"
+LABEL donate.crypto.LTC="ltc1qtwwacq8f0n76fer2y83wxu540hddnmf8cdrlvg"
+LABEL donate.crypto.NVC="4SbMynYETyhmKdggu8f38ULU6yQKiJPuo6"
+LABEL donate.crypto.DOGE="DHyfE1CZzWtyaQiaMmv6g4KvXVQRUgrYE6"
+LABEL donate.crypto.PPC="pQWArPzYoLppNe7ew3QPfto1k1eq66BYUB"
+LABEL donate.crypto.RVN="R9t2LKeLhDSZBKNgUzSDZAossA3UqNvbV3"
+LABEL donate.crypto.ZEC="t1KRMMmwMSZth8vJcd2ZHtPEFKTQ74yVixE"
+LABEL donate.crypto.XMR="884PqZ1gDjWW7fKxtbaeRoBeSh9EGZbkqUyLriWmuKbwLZrAJdYUs4wQxoVfEJoW7LBhdQMP9cFhZQpJr6xvg7esHLdCbb1"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+# Set temp user for advanced setup
+#################################################################
+USER root
+
+##################################################################
+# Create Base directory for various soft
+##################################################################
+ENV EMG_LOCAL_BASE_DIR=/usr/local/share/epicmorg
+RUN mkdir -p ${EMG_LOCAL_BASE_DIR}
+COPY usr/local/epicmorg ${EMG_LOCAL_BASE_DIR}
+
+##################################################################
+# prepare system
+##################################################################
+RUN for i in $(seq 1 8); do mkdir -p "/usr/share/man/man${i}"; done
+RUN mkdir -p /etc/apt/keyrings
+
+##################################################################
+# ARGuments
+##################################################################
+ARG P4_VERSION=r24.1
+ARG P4_BIN_DIR=${EMG_LOCAL_BASE_DIR}/p4/${P4_VERSION}/bin
+ARG P4_DOWNLOAD_URL=https://filehost.perforce.com/perforce/${P4_VERSION}/bin.linux26x86_64/p4
+
+ARG SZ_VERSION=7z2407
+ARG SZ_BIN_DIR=${EMG_LOCAL_BASE_DIR}/7z/${SZ_VERSION}/bin
+ARG SZ_DOWNLOAD_URL=https://www.7-zip.org/a/${SZ_VERSION}-linux-x64.tar.xz
+ARG SZ_TEMP=/tmp/${SZ_VERSION}-linux-x64.tar.xz
+
+ARG LAZYGIT_VERSION=0.42.0
+ARG LAZYGIT_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazygit/${LAZYGIT_VERSION}/bin
+ARG LAZYGIT_DOWNLOAD_URL=https://github.com/jesseduffield/lazygit/releases/download/v${LAZYGIT_VERSION}/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz
+ARG LAZYGIT_TEMP=/tmp/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz
+
+ARG LAZYCLI_VERSION=0.1.15
+ARG LAZYCLI_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazycli/${LAZYCLI_VERSION}/bin
+ARG LAZYCLI_DOWNLOAD_URL=https://github.com/jesseduffield/lazycli/releases/download/v${LAZYCLI_VERSION}/lazycli-linux-x64.tar.gz
+ARG LAZYCLI_TEMP=/tmp/lazycli-linux-x64.tar.gz
+
+ARG LAZYNPM_VERSION=0.1.4
+ARG LAZYNPM_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazynpm/${LAZYNPM_VERSION}/bin
+ARG LAZYNPM_DOWNLOAD_URL=https://github.com/jesseduffield/lazynpm/releases/download/v${LAZYNPM_VERSION}/lazynpm_${LAZYNPM_VERSION}_Linux_x86_64.tar.gz
+ARG LAZYNPM_TEMP=/tmp/lazynpm_${LAZYNPM_VERSION}_Linux_x86_64.tar.gz
+
+ARG LAZYDOCKER_VERSION=0.23.3
+ARG LAZYDOCKER_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazydocker/${LAZYDOCKER_VERSION}/bin
+ARG LAZYDOCKER_DOWNLOAD_URL=https://github.com/jesseduffield/lazydocker/releases/download/v${LAZYDOCKER_VERSION}/lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz
+ARG LAZYDOCKER_TEMP=/tmp/lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz
+
+ARG DUMB_INIT_VERSION=1.2.5
+ARG DUMB_INIT_BIN_DIR=${EMG_LOCAL_BASE_DIR}/dumb-init/${DUMB_INIT_VERSION}/bin
+ARG DUMB_INIT_DOWNLOAD_URL=https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_x86_64
+
+ARG GOSU_VERSION=1.17
+ARG GOSU_BIN_DIR=${EMG_LOCAL_BASE_DIR}/gosu/${GOSU_VERSION}/bin
+ARG GOSU_DOWNLOAD_URL=https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64
+
+##################################################################
+# Additional settings
+##################################################################
+ENV MAVEN_VERSION=3.9.8
+ENV MAVEN_LINK=https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.zip
+ENV MAVEN_ROOT=${EMG_LOCAL_BASE_DIR}/maven/${MAVEN_VERSION}
+ENV MAVEN_PATH=${MAVEN_ROOT}/apache-maven-${MAVEN_VERSION}
+ENV MAVEN_BIN=${MAVEN_PATH}/bin
+ARG MAVEN_TEMP=/tmp/apache-maven-${MAVEN_VERSION}-bin.zip
+
+ENV GRADLE_VERSION=8.8
+ENV GRADLE_LINK=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip
+ENV GRADLE_ROOT=${EMG_LOCAL_BASE_DIR}/gradle/${GRADLE_VERSION}
+ENV GRADLE_PATH=${GRADLE_ROOT}/gradle-${GRADLE_VERSION}
+ENV GRADLE_BIN=${GRADLE_PATH}/bin
+ARG GRADLE_TEMP=/tmp/gradle-${GRADLE_VERSION}-all.zip
+
+ENV KTC_VERSION=2.0.0
+ENV KTC_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KTC_VERSION}/kotlin-compiler-${KTC_VERSION}.zip
+ARG KTC_TEMP=/tmp/kotlin-compiler-${KTC_VERSION}.zip
+ENV KTC_ROOT=${EMG_LOCAL_BASE_DIR}/kotlin/${KTC_VERSION}
+ENV KTC_PATH=${KTC_ROOT}/kotlinc
+ENV KTC_BIN=${KTC_PATH}/bin
+
+ENV KNPL_VERSION=${KTC_VERSION}
+ENV KNPL_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KNPL_VERSION}/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}.tar.gz
+ARG KNPL_TEMP=/tmp/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}.tar.gz
+ENV KNPL_ROOT=${EMG_LOCAL_BASE_DIR}/kotlin/${KNPL_VERSION}
+ENV KNPL_PATH=${KNPL_ROOT}/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}
+ENV KNPL_BIN=${KNPL_PATH}/bin
+
+RUN mkdir -p ${MAVEN_PATH} ${KTC_PATH} ${KNPL_PATH} ${GRADLE_PATH}
+ENV PATH=${PATH}:${MAVEN_BIN}:${GRADLE_BIN}:${KTC_BIN}:${KNPL_BIN}
+
+##################################################################
+# update lists
+##################################################################
+RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
+ apt-get update
+
+##################################################################
+# sources list
+##################################################################
+RUN rm -rfv /etc/apt/sources.list
+RUN rm -rfv /etc/apt/sources.list.d/*.sources
+RUN rm -rfv /etc/locale.gen
+
+COPY etc/apt/apt.conf.d/99-no-check-valid-until /etc/apt/apt.conf.d/99-no-check-valid-until
+COPY etc/apt/apt.conf.d/98-allow-unauthenticated /etc/apt/apt.conf.d/98-allow-unauthenticated
+COPY etc/apt/apt.conf.d/97-allow-cert-exp /etc/apt/apt.conf.d/97-allow-cert-exp
+COPY etc/apt/apt.conf.d/96-apt-retries /etc/apt/apt.conf.d/96-apt-retries
+COPY etc/apt/sources.list /etc/apt/sources.list
+COPY etc/locale.gen /etc/locale.gen
+COPY usr/local/share/ca-certificates /usr/local/share/ca-certificates
+
+RUN apt-get update && \
+ apt-get upgrade -y && \
+ apt-get dist-upgrade -y
+
+##################################################################
+# installing utils
+##################################################################
+RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ apt-transport-https \
+ apt-utils \
+ aptitude \
+ bash \
+ binutils \
+ ca-certificates \
+ cmatrix \
+ cmatrix-xfont \
+ console-cyrillic \
+ cron \
+ curl \
+ git \
+ gnupg \
+ gnupg1 \
+ gnupg2 \
+ htop \
+ iftop \
+ iputils-ping \
+ jq \
+ kmod \
+ locales \
+ locate \
+ lsb-release \
+ lsof \
+ lynx \
+ mc \
+ mercurial \
+ nano \
+ nload \
+ nmap \
+ openssl \
+ perl \
+ procps \
+ rar \
+ rsync \
+ screenfetch \
+ smbclient \
+ software-properties-common \
+ subversion \
+ sudo \
+ telnet \
+ tini \
+ tmux \
+ tree \
+ unrar \
+ unrar-free \
+ unzip \
+ util-linux \
+ uuid-runtime \
+ wget \
+ zip
+
+RUN apt-key adv --keyserver keyserver.ubuntu.com --refresh-keys
+RUN apt-key list | grep "expired: " | sed -ne 's|pub .*/\([^ ]*\) .*|\1|gp' | xargs -n1 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys
+
+RUN update-ca-certificates --fresh
+
+##################################################################
+# update locales
+##################################################################
+RUN locale-gen
+
+##################################################################
+# Install p4client
+##################################################################
+RUN mkdir -p ${P4_BIN_DIR}
+ADD ${P4_DOWNLOAD_URL} ${P4_BIN_DIR}
+RUN chmod +x ${P4_BIN_DIR}/p4
+ENV PATH="${P4_BIN_DIR}:${PATH}"
+
+# Update internal p4 binary to new
+RUN rm -rfv /opt/perforce/bin/p4 && \
+ ln -sfv ${P4_BIN_DIR}/p4 /opt/perforce/bin/p4 && \
+ ln -sfv ${P4_BIN_DIR}/p4 /opt/perforce/usr/bin/p4
+
+##################################################################
+# Install 7z official binary
+##################################################################
+RUN mkdir -p ${SZ_BIN_DIR}
+ADD ${SZ_DOWNLOAD_URL} /tmp
+
+RUN tar -xf ${SZ_TEMP} --directory ${SZ_BIN_DIR} && \
+ chmod +x ${SZ_BIN_DIR}/7zz && \
+ chmod +x ${SZ_BIN_DIR}/7zzs && \
+ find ${SZ_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name '7zz' ! -name '7zzs' -exec mv {} ${SZ_BIN_DIR}/.. \;
+
+ENV PATH="${SZ_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo 7zz $(7zz | head -4) && \
+ echo 7z $(7z | head -4) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyGit official binary
+##################################################################
+RUN mkdir -p ${LAZYGIT_BIN_DIR}
+ADD ${LAZYGIT_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYGIT_TEMP} --directory ${LAZYGIT_BIN_DIR} && \
+ chmod +x ${LAZYGIT_BIN_DIR}/lazygit && \
+ find ${LAZYGIT_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazygit' -exec mv {} ${LAZYGIT_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYGIT_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazygit $(lazygit --version) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyCLI official binary
+##################################################################
+RUN mkdir -p ${LAZYCLI_BIN_DIR}
+ADD ${LAZYCLI_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYCLI_TEMP} --directory ${LAZYCLI_BIN_DIR} && \
+ chmod +x ${LAZYCLI_BIN_DIR}/lazycli && \
+ find ${LAZYCLI_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazycli' -exec mv {} ${LAZYCLI_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYCLI_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazycli $(lazycli --version) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyNPM official binary
+##################################################################
+RUN mkdir -p ${LAZYNPM_BIN_DIR}
+ADD ${LAZYNPM_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYNPM_TEMP} --directory ${LAZYNPM_BIN_DIR} && \
+ chmod +x ${LAZYNPM_BIN_DIR}/lazynpm && \
+ find ${LAZYNPM_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazynpm' -exec mv {} ${LAZYNPM_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYNPM_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazynpm $(lazynpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyDocker official binary
+##################################################################
+RUN mkdir -p ${LAZYDOCKER_BIN_DIR}
+ADD ${LAZYDOCKER_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYDOCKER_TEMP} --directory ${LAZYDOCKER_BIN_DIR} && \
+ chmod +x -R ${LAZYDOCKER_BIN_DIR}/lazydocker && \
+ find ${LAZYDOCKER_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazydocker' -exec mv {} ${LAZYDOCKER_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYDOCKER_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazydocker $(lazydocker --version) && \
+ echo "============================================="
+
+##################################################################
+# dumb init
+##################################################################
+RUN mkdir -p ${DUMB_INIT_BIN_DIR}
+ADD ${DUMB_INIT_DOWNLOAD_URL} ${DUMB_INIT_BIN_DIR}
+
+RUN mv -fv ${DUMB_INIT_BIN_DIR}/dumb-init_${DUMB_INIT_VERSION}_x86_64 ${DUMB_INIT_BIN_DIR}/dumb-init && \
+ chmod +x ${DUMB_INIT_BIN_DIR}/dumb-init
+
+ENV PATH="${DUMB_INIT_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo dumb-init $(dumb-init --version) && \
+ echo "============================================="
+
+##################################################################
+# gosu for easy step-down from root
+##################################################################
+RUN mkdir -p ${GOSU_BIN_DIR}
+ADD ${GOSU_DOWNLOAD_URL} ${GOSU_BIN_DIR}
+
+RUN mv -fv ${GOSU_BIN_DIR}/gosu-amd64 ${GOSU_BIN_DIR}/gosu && \
+ chmod +x -R ${GOSU_BIN_DIR}/gosu
+
+ENV PATH="${GOSU_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo gosu $(gosu --version) && \
+ echo "============================================="
+
+##################################################################
+# Maven
+##################################################################
+ENV MAVEN_HOME=${MAVEN_ROOT}
+ENV M2_HOME=${MAVEN_ROOT}
+
+ADD ${MAVEN_LINK} /tmp
+RUN 7zz x ${MAVEN_TEMP} -o${MAVEN_ROOT}
+RUN chmod +x -R ${MAVEN_BIN}
+RUN mvn -v
+
+##################################################################
+# GRADLE
+##################################################################
+ADD ${GRADLE_LINK} /tmp
+RUN 7zz x ${GRADLE_TEMP} -o${GRADLE_ROOT}
+RUN chmod +x -R ${GRADLE_BIN}
+RUN gradle -v
+
+##################################################################
+# kotlin-compiler
+##################################################################
+ADD ${KTC_LINK} /tmp
+RUN 7zz x ${KTC_TEMP} -o${KTC_ROOT}
+RUN chmod +x -R ${KTC_BIN}
+RUN kotlin -version
+
+##################################################################
+# kotlin-native-prebuilt-linux
+##################################################################
+ADD ${KNPL_LINK} /tmp
+RUN tar -xvzf ${KNPL_TEMP} --directory ${KTC_ROOT}
+RUN chmod +x -R ${KNPL_BIN}
+
+##################################################################
+# git fresh binary
+##################################################################
+RUN gpg --keyserver keyserver.ubuntu.com --recv-keys A1715D88E1DF1F24 && \
+ gpg --export --output /etc/apt/keyrings/launchpad-git.gpg A1715D88E1DF1F24 && \
+ rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+ rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list
+COPY etc/apt/sources.list.d/launchpad_git-mainline.list /etc/apt/sources.list.d/launchpad_git-mainline.list
+COPY etc/apt/sources.list.d/launchpad_git-stable.list /etc/apt/sources.list.d/launchpad_git-stable.list
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ git
+
+RUN echo "=============================================" && \
+ echo git $(git --version) && \
+ echo "============================================="
+
+##################################################################
+# git-lfs official binary
+##################################################################
+RUN curl -fsSL https://packagecloud.io/github/git-lfs/gpgkey | gpg --dearmor > /etc/apt/keyrings/github_git-lfs-archive-keyring.gpg && \
+ rm -rfv /etc/apt/sources.list.d/github_git-lfs.list
+COPY etc/apt/sources.list.d/github_git-lfs.list /etc/apt/sources.list.d/github_git-lfs.list
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ git \
+ git-lfs && \
+ git-lfs install --skip-repo
+
+RUN echo "=============================================" && \
+ echo git $(git --version) && \
+ echo git-lfs $(git-lfs --version) && \
+ echo "============================================="
+
+##################################################################
+# gh official binary
+##################################################################
+RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/githubcli-archive-keyring.gpg && \
+ chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg && \
+ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list && \
+ apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ gh
+
+RUN echo "=============================================" && \
+ echo gh $(gh --version) && \
+ echo "============================================="
+
+##################################################################
+# cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /tmp/* && \
+ rm -rfv /var/cache/apt/archives/*.deb
+
+##################################################################
+# update file db
+##################################################################
+RUN updatedb
+
+##################################################################
+# Set original user back
+#################################################################
+# tcuser 1000
+#USER 1000
diff --git a/linux/advanced/teamcity/server/Makefile b/linux/advanced/teamcity/server/2022.04.7/Makefile
similarity index 100%
rename from linux/advanced/teamcity/server/Makefile
rename to linux/advanced/teamcity/server/2022.04.7/Makefile
diff --git a/linux/advanced/teamcity/server/README.md b/linux/advanced/teamcity/server/2022.04.7/README.md
similarity index 100%
rename from linux/advanced/teamcity/server/README.md
rename to linux/advanced/teamcity/server/2022.04.7/README.md
diff --git a/linux/advanced/teamcity/server/2022.04.7/docker-compose.yml b/linux/advanced/teamcity/server/2022.04.7/docker-compose.yml
new file mode 100644
index 000000000..e6ceca134
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.04.7/docker-compose.yml
@@ -0,0 +1,6 @@
+#version: '3'
+services:
+ app:
+ image: "epicmorg/teamcity-server:2022.04.7"
+ build:
+ context: .
diff --git a/linux/advanced/teamcity/server/etc/apt/apt.conf.d/96-apt-retries b/linux/advanced/teamcity/server/2022.04.7/etc/apt/apt.conf.d/96-apt-retries
similarity index 100%
rename from linux/advanced/teamcity/server/etc/apt/apt.conf.d/96-apt-retries
rename to linux/advanced/teamcity/server/2022.04.7/etc/apt/apt.conf.d/96-apt-retries
diff --git a/linux/advanced/teamcity/server/etc/apt/apt.conf.d/97-allow-cert-exp b/linux/advanced/teamcity/server/2022.04.7/etc/apt/apt.conf.d/97-allow-cert-exp
similarity index 100%
rename from linux/advanced/teamcity/server/etc/apt/apt.conf.d/97-allow-cert-exp
rename to linux/advanced/teamcity/server/2022.04.7/etc/apt/apt.conf.d/97-allow-cert-exp
diff --git a/linux/advanced/teamcity/server/etc/apt/apt.conf.d/98-allow-unauthenticated b/linux/advanced/teamcity/server/2022.04.7/etc/apt/apt.conf.d/98-allow-unauthenticated
similarity index 100%
rename from linux/advanced/teamcity/server/etc/apt/apt.conf.d/98-allow-unauthenticated
rename to linux/advanced/teamcity/server/2022.04.7/etc/apt/apt.conf.d/98-allow-unauthenticated
diff --git a/linux/advanced/teamcity/server/etc/apt/apt.conf.d/99-no-check-valid-until b/linux/advanced/teamcity/server/2022.04.7/etc/apt/apt.conf.d/99-no-check-valid-until
similarity index 100%
rename from linux/advanced/teamcity/server/etc/apt/apt.conf.d/99-no-check-valid-until
rename to linux/advanced/teamcity/server/2022.04.7/etc/apt/apt.conf.d/99-no-check-valid-until
diff --git a/linux/advanced/teamcity/server/etc/apt/sources.list b/linux/advanced/teamcity/server/2022.04.7/etc/apt/sources.list
similarity index 100%
rename from linux/advanced/teamcity/server/etc/apt/sources.list
rename to linux/advanced/teamcity/server/2022.04.7/etc/apt/sources.list
diff --git a/linux/advanced/teamcity/server/etc/apt/sources.list.d/github_git-lfs.list b/linux/advanced/teamcity/server/2022.04.7/etc/apt/sources.list.d/github_git-lfs.list
similarity index 100%
rename from linux/advanced/teamcity/server/etc/apt/sources.list.d/github_git-lfs.list
rename to linux/advanced/teamcity/server/2022.04.7/etc/apt/sources.list.d/github_git-lfs.list
diff --git a/linux/advanced/teamcity/server/etc/apt/sources.list.d/launchpad_git-mainline.list b/linux/advanced/teamcity/server/2022.04.7/etc/apt/sources.list.d/launchpad_git-mainline.list
similarity index 100%
rename from linux/advanced/teamcity/server/etc/apt/sources.list.d/launchpad_git-mainline.list
rename to linux/advanced/teamcity/server/2022.04.7/etc/apt/sources.list.d/launchpad_git-mainline.list
diff --git a/linux/advanced/teamcity/server/etc/apt/sources.list.d/launchpad_git-stable.list b/linux/advanced/teamcity/server/2022.04.7/etc/apt/sources.list.d/launchpad_git-stable.list
similarity index 100%
rename from linux/advanced/teamcity/server/etc/apt/sources.list.d/launchpad_git-stable.list
rename to linux/advanced/teamcity/server/2022.04.7/etc/apt/sources.list.d/launchpad_git-stable.list
diff --git a/linux/advanced/teamcity/server/etc/locale.gen b/linux/advanced/teamcity/server/2022.04.7/etc/locale.gen
similarity index 100%
rename from linux/advanced/teamcity/server/etc/locale.gen
rename to linux/advanced/teamcity/server/2022.04.7/etc/locale.gen
diff --git a/linux/advanced/teamcity/server/etc/locale.gen.full b/linux/advanced/teamcity/server/2022.04.7/etc/locale.gen.full
similarity index 100%
rename from linux/advanced/teamcity/server/etc/locale.gen.full
rename to linux/advanced/teamcity/server/2022.04.7/etc/locale.gen.full
diff --git a/linux/advanced/teamcity/server/usr/local/epicmorg/README.md b/linux/advanced/teamcity/server/2022.04.7/usr/local/epicmorg/README.md
similarity index 100%
rename from linux/advanced/teamcity/server/usr/local/epicmorg/README.md
rename to linux/advanced/teamcity/server/2022.04.7/usr/local/epicmorg/README.md
diff --git a/linux/advanced/teamcity/server/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt b/linux/advanced/teamcity/server/2022.04.7/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
similarity index 100%
rename from linux/advanced/teamcity/server/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
rename to linux/advanced/teamcity/server/2022.04.7/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
diff --git a/linux/advanced/teamcity/server/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt b/linux/advanced/teamcity/server/2022.04.7/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
similarity index 100%
rename from linux/advanced/teamcity/server/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
rename to linux/advanced/teamcity/server/2022.04.7/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
diff --git a/linux/advanced/teamcity/server/2022.10.6/Dockerfile b/linux/advanced/teamcity/server/2022.10.6/Dockerfile
new file mode 100644
index 000000000..753ed7fed
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.10.6/Dockerfile
@@ -0,0 +1,429 @@
+FROM jetbrains/teamcity-server:2022.10.6
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+LABEL org.opencontainers.image.vendor="EpicMorg DevTeam, developer@epicm.org"
+LABEL org.opencontainers.image.authors="STAM, kasthack, Aleks-Z"
+LABEL org.opencontainers.image.source="https://github.com/EpicMorg/docker"
+LABEL org.opencontainers.image.url="https://github.com/EpicMorg/docker"
+LABEL donate.crypto.TON="EQDvHXRK-K1ZieJhgTD9JZQk7xCnWzRbctYnUkWq1lZq1bUg"
+LABEL donate.crypto.ETH="0x26a8443a694f08cdfec966aa6fd72c45068753ec"
+LABEL donate.crypto.BTC="bc1querz8ug9asjmsuy6yn4a94a2athgprnu7e5zq2"
+LABEL donate.crypto.LTC="ltc1qtwwacq8f0n76fer2y83wxu540hddnmf8cdrlvg"
+LABEL donate.crypto.NVC="4SbMynYETyhmKdggu8f38ULU6yQKiJPuo6"
+LABEL donate.crypto.DOGE="DHyfE1CZzWtyaQiaMmv6g4KvXVQRUgrYE6"
+LABEL donate.crypto.PPC="pQWArPzYoLppNe7ew3QPfto1k1eq66BYUB"
+LABEL donate.crypto.RVN="R9t2LKeLhDSZBKNgUzSDZAossA3UqNvbV3"
+LABEL donate.crypto.ZEC="t1KRMMmwMSZth8vJcd2ZHtPEFKTQ74yVixE"
+LABEL donate.crypto.XMR="884PqZ1gDjWW7fKxtbaeRoBeSh9EGZbkqUyLriWmuKbwLZrAJdYUs4wQxoVfEJoW7LBhdQMP9cFhZQpJr6xvg7esHLdCbb1"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+# Set temp user for advanced setup
+#################################################################
+USER root
+
+##################################################################
+# Create Base directory for various soft
+##################################################################
+ENV EMG_LOCAL_BASE_DIR=/usr/local/share/epicmorg
+RUN mkdir -p ${EMG_LOCAL_BASE_DIR}
+COPY usr/local/epicmorg ${EMG_LOCAL_BASE_DIR}
+
+##################################################################
+# prepare system
+##################################################################
+RUN for i in $(seq 1 8); do mkdir -p "/usr/share/man/man${i}"; done
+RUN mkdir -p /etc/apt/keyrings
+
+##################################################################
+# ARGuments
+##################################################################
+ARG P4_VERSION=r24.1
+ARG P4_BIN_DIR=${EMG_LOCAL_BASE_DIR}/p4/${P4_VERSION}/bin
+ARG P4_DOWNLOAD_URL=https://filehost.perforce.com/perforce/${P4_VERSION}/bin.linux26x86_64/p4
+
+ARG SZ_VERSION=7z2407
+ARG SZ_BIN_DIR=${EMG_LOCAL_BASE_DIR}/7z/${SZ_VERSION}/bin
+ARG SZ_DOWNLOAD_URL=https://www.7-zip.org/a/${SZ_VERSION}-linux-x64.tar.xz
+ARG SZ_TEMP=/tmp/${SZ_VERSION}-linux-x64.tar.xz
+
+ARG LAZYGIT_VERSION=0.42.0
+ARG LAZYGIT_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazygit/${LAZYGIT_VERSION}/bin
+ARG LAZYGIT_DOWNLOAD_URL=https://github.com/jesseduffield/lazygit/releases/download/v${LAZYGIT_VERSION}/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz
+ARG LAZYGIT_TEMP=/tmp/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz
+
+ARG LAZYCLI_VERSION=0.1.15
+ARG LAZYCLI_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazycli/${LAZYCLI_VERSION}/bin
+ARG LAZYCLI_DOWNLOAD_URL=https://github.com/jesseduffield/lazycli/releases/download/v${LAZYCLI_VERSION}/lazycli-linux-x64.tar.gz
+ARG LAZYCLI_TEMP=/tmp/lazycli-linux-x64.tar.gz
+
+ARG LAZYNPM_VERSION=0.1.4
+ARG LAZYNPM_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazynpm/${LAZYNPM_VERSION}/bin
+ARG LAZYNPM_DOWNLOAD_URL=https://github.com/jesseduffield/lazynpm/releases/download/v${LAZYNPM_VERSION}/lazynpm_${LAZYNPM_VERSION}_Linux_x86_64.tar.gz
+ARG LAZYNPM_TEMP=/tmp/lazynpm_${LAZYNPM_VERSION}_Linux_x86_64.tar.gz
+
+ARG LAZYDOCKER_VERSION=0.23.3
+ARG LAZYDOCKER_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazydocker/${LAZYDOCKER_VERSION}/bin
+ARG LAZYDOCKER_DOWNLOAD_URL=https://github.com/jesseduffield/lazydocker/releases/download/v${LAZYDOCKER_VERSION}/lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz
+ARG LAZYDOCKER_TEMP=/tmp/lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz
+
+ARG DUMB_INIT_VERSION=1.2.5
+ARG DUMB_INIT_BIN_DIR=${EMG_LOCAL_BASE_DIR}/dumb-init/${DUMB_INIT_VERSION}/bin
+ARG DUMB_INIT_DOWNLOAD_URL=https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_x86_64
+
+ARG GOSU_VERSION=1.17
+ARG GOSU_BIN_DIR=${EMG_LOCAL_BASE_DIR}/gosu/${GOSU_VERSION}/bin
+ARG GOSU_DOWNLOAD_URL=https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64
+
+##################################################################
+# Additional settings
+##################################################################
+ENV MAVEN_VERSION=3.9.8
+ENV MAVEN_LINK=https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.zip
+ENV MAVEN_ROOT=${EMG_LOCAL_BASE_DIR}/maven/${MAVEN_VERSION}
+ENV MAVEN_PATH=${MAVEN_ROOT}/apache-maven-${MAVEN_VERSION}
+ENV MAVEN_BIN=${MAVEN_PATH}/bin
+ARG MAVEN_TEMP=/tmp/apache-maven-${MAVEN_VERSION}-bin.zip
+
+ENV GRADLE_VERSION=8.8
+ENV GRADLE_LINK=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip
+ENV GRADLE_ROOT=${EMG_LOCAL_BASE_DIR}/gradle/${GRADLE_VERSION}
+ENV GRADLE_PATH=${GRADLE_ROOT}/gradle-${GRADLE_VERSION}
+ENV GRADLE_BIN=${GRADLE_PATH}/bin
+ARG GRADLE_TEMP=/tmp/gradle-${GRADLE_VERSION}-all.zip
+
+ENV KTC_VERSION=2.0.0
+ENV KTC_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KTC_VERSION}/kotlin-compiler-${KTC_VERSION}.zip
+ARG KTC_TEMP=/tmp/kotlin-compiler-${KTC_VERSION}.zip
+ENV KTC_ROOT=${EMG_LOCAL_BASE_DIR}/kotlin/${KTC_VERSION}
+ENV KTC_PATH=${KTC_ROOT}/kotlinc
+ENV KTC_BIN=${KTC_PATH}/bin
+
+ENV KNPL_VERSION=${KTC_VERSION}
+ENV KNPL_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KNPL_VERSION}/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}.tar.gz
+ARG KNPL_TEMP=/tmp/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}.tar.gz
+ENV KNPL_ROOT=${EMG_LOCAL_BASE_DIR}/kotlin/${KNPL_VERSION}
+ENV KNPL_PATH=${KNPL_ROOT}/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}
+ENV KNPL_BIN=${KNPL_PATH}/bin
+
+RUN mkdir -p ${MAVEN_PATH} ${KTC_PATH} ${KNPL_PATH} ${GRADLE_PATH}
+ENV PATH=${PATH}:${MAVEN_BIN}:${GRADLE_BIN}:${KTC_BIN}:${KNPL_BIN}
+
+##################################################################
+# update lists
+##################################################################
+RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
+ apt-get update
+
+##################################################################
+# sources list
+##################################################################
+RUN rm -rfv /etc/apt/sources.list
+RUN rm -rfv /etc/apt/sources.list.d/*.sources
+RUN rm -rfv /etc/locale.gen
+
+COPY etc/apt/apt.conf.d/99-no-check-valid-until /etc/apt/apt.conf.d/99-no-check-valid-until
+COPY etc/apt/apt.conf.d/98-allow-unauthenticated /etc/apt/apt.conf.d/98-allow-unauthenticated
+COPY etc/apt/apt.conf.d/97-allow-cert-exp /etc/apt/apt.conf.d/97-allow-cert-exp
+COPY etc/apt/apt.conf.d/96-apt-retries /etc/apt/apt.conf.d/96-apt-retries
+COPY etc/apt/sources.list /etc/apt/sources.list
+COPY etc/locale.gen /etc/locale.gen
+COPY usr/local/share/ca-certificates /usr/local/share/ca-certificates
+
+RUN apt-get update && \
+ apt-get upgrade -y && \
+ apt-get dist-upgrade -y
+
+##################################################################
+# installing utils
+##################################################################
+RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ apt-transport-https \
+ apt-utils \
+ aptitude \
+ bash \
+ binutils \
+ ca-certificates \
+ cmatrix \
+ cmatrix-xfont \
+ console-cyrillic \
+ cron \
+ curl \
+ git \
+ gnupg \
+ gnupg1 \
+ gnupg2 \
+ htop \
+ iftop \
+ iputils-ping \
+ jq \
+ kmod \
+ locales \
+ locate \
+ lsb-release \
+ lsof \
+ lynx \
+ mc \
+ mercurial \
+ nano \
+ nload \
+ nmap \
+ openssl \
+ perl \
+ procps \
+ rar \
+ rsync \
+ screenfetch \
+ smbclient \
+ software-properties-common \
+ subversion \
+ sudo \
+ telnet \
+ tini \
+ tmux \
+ tree \
+ unrar \
+ unrar-free \
+ unzip \
+ util-linux \
+ uuid-runtime \
+ wget \
+ zip
+
+RUN apt-key adv --keyserver keyserver.ubuntu.com --refresh-keys
+RUN apt-key list | grep "expired: " | sed -ne 's|pub .*/\([^ ]*\) .*|\1|gp' | xargs -n1 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys
+
+RUN update-ca-certificates --fresh
+
+##################################################################
+# update locales
+##################################################################
+RUN locale-gen
+
+##################################################################
+# Install p4client
+##################################################################
+RUN mkdir -p ${P4_BIN_DIR}
+ADD ${P4_DOWNLOAD_URL} ${P4_BIN_DIR}
+RUN chmod +x ${P4_BIN_DIR}/p4
+ENV PATH="${P4_BIN_DIR}:${PATH}"
+
+# Update internal p4 binary to new
+RUN rm -rfv /opt/perforce/bin/p4 && \
+ ln -sfv ${P4_BIN_DIR}/p4 /opt/perforce/bin/p4 && \
+ ln -sfv ${P4_BIN_DIR}/p4 /opt/perforce/usr/bin/p4
+
+##################################################################
+# Install 7z official binary
+##################################################################
+RUN mkdir -p ${SZ_BIN_DIR}
+ADD ${SZ_DOWNLOAD_URL} /tmp
+
+RUN tar -xf ${SZ_TEMP} --directory ${SZ_BIN_DIR} && \
+ chmod +x ${SZ_BIN_DIR}/7zz && \
+ chmod +x ${SZ_BIN_DIR}/7zzs && \
+ find ${SZ_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name '7zz' ! -name '7zzs' -exec mv {} ${SZ_BIN_DIR}/.. \;
+
+ENV PATH="${SZ_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo 7zz $(7zz | head -4) && \
+ echo 7z $(7z | head -4) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyGit official binary
+##################################################################
+RUN mkdir -p ${LAZYGIT_BIN_DIR}
+ADD ${LAZYGIT_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYGIT_TEMP} --directory ${LAZYGIT_BIN_DIR} && \
+ chmod +x ${LAZYGIT_BIN_DIR}/lazygit && \
+ find ${LAZYGIT_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazygit' -exec mv {} ${LAZYGIT_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYGIT_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazygit $(lazygit --version) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyCLI official binary
+##################################################################
+RUN mkdir -p ${LAZYCLI_BIN_DIR}
+ADD ${LAZYCLI_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYCLI_TEMP} --directory ${LAZYCLI_BIN_DIR} && \
+ chmod +x ${LAZYCLI_BIN_DIR}/lazycli && \
+ find ${LAZYCLI_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazycli' -exec mv {} ${LAZYCLI_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYCLI_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazycli $(lazycli --version) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyNPM official binary
+##################################################################
+RUN mkdir -p ${LAZYNPM_BIN_DIR}
+ADD ${LAZYNPM_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYNPM_TEMP} --directory ${LAZYNPM_BIN_DIR} && \
+ chmod +x ${LAZYNPM_BIN_DIR}/lazynpm && \
+ find ${LAZYNPM_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazynpm' -exec mv {} ${LAZYNPM_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYNPM_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazynpm $(lazynpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyDocker official binary
+##################################################################
+RUN mkdir -p ${LAZYDOCKER_BIN_DIR}
+ADD ${LAZYDOCKER_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYDOCKER_TEMP} --directory ${LAZYDOCKER_BIN_DIR} && \
+ chmod +x -R ${LAZYDOCKER_BIN_DIR}/lazydocker && \
+ find ${LAZYDOCKER_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazydocker' -exec mv {} ${LAZYDOCKER_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYDOCKER_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazydocker $(lazydocker --version) && \
+ echo "============================================="
+
+##################################################################
+# dumb init
+##################################################################
+RUN mkdir -p ${DUMB_INIT_BIN_DIR}
+ADD ${DUMB_INIT_DOWNLOAD_URL} ${DUMB_INIT_BIN_DIR}
+
+RUN mv -fv ${DUMB_INIT_BIN_DIR}/dumb-init_${DUMB_INIT_VERSION}_x86_64 ${DUMB_INIT_BIN_DIR}/dumb-init && \
+ chmod +x ${DUMB_INIT_BIN_DIR}/dumb-init
+
+ENV PATH="${DUMB_INIT_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo dumb-init $(dumb-init --version) && \
+ echo "============================================="
+
+##################################################################
+# gosu for easy step-down from root
+##################################################################
+RUN mkdir -p ${GOSU_BIN_DIR}
+ADD ${GOSU_DOWNLOAD_URL} ${GOSU_BIN_DIR}
+
+RUN mv -fv ${GOSU_BIN_DIR}/gosu-amd64 ${GOSU_BIN_DIR}/gosu && \
+ chmod +x -R ${GOSU_BIN_DIR}/gosu
+
+ENV PATH="${GOSU_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo gosu $(gosu --version) && \
+ echo "============================================="
+
+##################################################################
+# Maven
+##################################################################
+ENV MAVEN_HOME=${MAVEN_ROOT}
+ENV M2_HOME=${MAVEN_ROOT}
+
+ADD ${MAVEN_LINK} /tmp
+RUN 7zz x ${MAVEN_TEMP} -o${MAVEN_ROOT}
+RUN chmod +x -R ${MAVEN_BIN}
+RUN mvn -v
+
+##################################################################
+# GRADLE
+##################################################################
+ADD ${GRADLE_LINK} /tmp
+RUN 7zz x ${GRADLE_TEMP} -o${GRADLE_ROOT}
+RUN chmod +x -R ${GRADLE_BIN}
+RUN gradle -v
+
+##################################################################
+# kotlin-compiler
+##################################################################
+ADD ${KTC_LINK} /tmp
+RUN 7zz x ${KTC_TEMP} -o${KTC_ROOT}
+RUN chmod +x -R ${KTC_BIN}
+RUN kotlin -version
+
+##################################################################
+# kotlin-native-prebuilt-linux
+##################################################################
+ADD ${KNPL_LINK} /tmp
+RUN tar -xvzf ${KNPL_TEMP} --directory ${KTC_ROOT}
+RUN chmod +x -R ${KNPL_BIN}
+
+##################################################################
+# git fresh binary
+##################################################################
+RUN gpg --keyserver keyserver.ubuntu.com --recv-keys A1715D88E1DF1F24 && \
+ gpg --export --output /etc/apt/keyrings/launchpad-git.gpg A1715D88E1DF1F24 && \
+ rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+ rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list
+COPY etc/apt/sources.list.d/launchpad_git-mainline.list /etc/apt/sources.list.d/launchpad_git-mainline.list
+COPY etc/apt/sources.list.d/launchpad_git-stable.list /etc/apt/sources.list.d/launchpad_git-stable.list
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ git
+
+RUN echo "=============================================" && \
+ echo git $(git --version) && \
+ echo "============================================="
+
+##################################################################
+# git-lfs official binary
+##################################################################
+RUN curl -fsSL https://packagecloud.io/github/git-lfs/gpgkey | gpg --dearmor > /etc/apt/keyrings/github_git-lfs-archive-keyring.gpg && \
+ rm -rfv /etc/apt/sources.list.d/github_git-lfs.list
+COPY etc/apt/sources.list.d/github_git-lfs.list /etc/apt/sources.list.d/github_git-lfs.list
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ git \
+ git-lfs && \
+ git-lfs install --skip-repo
+
+RUN echo "=============================================" && \
+ echo git $(git --version) && \
+ echo git-lfs $(git-lfs --version) && \
+ echo "============================================="
+
+##################################################################
+# gh official binary
+##################################################################
+RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/githubcli-archive-keyring.gpg && \
+ chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg && \
+ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list && \
+ apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ gh
+
+RUN echo "=============================================" && \
+ echo gh $(gh --version) && \
+ echo "============================================="
+
+##################################################################
+# cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /tmp/* && \
+ rm -rfv /var/cache/apt/archives/*.deb
+
+##################################################################
+# update file db
+##################################################################
+RUN updatedb
+
+##################################################################
+# Set original user back
+#################################################################
+# tcuser 1000
+#USER 1000
diff --git a/linux/advanced/teamcity/server/2022.10.6/Makefile b/linux/advanced/teamcity/server/2022.10.6/Makefile
new file mode 100644
index 000000000..06e855b50
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.10.6/Makefile
@@ -0,0 +1,36 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+ make build
+ make deploy
+ make clean
+
+build:
+ kaniko-wrapper --version
+
+dry:
+ make dry-run
+
+test:
+ make dry-run
+
+dry-run:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:v1.23.2-debug --dry-run
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:v1.23.2-debug
+
+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
diff --git a/linux/advanced/teamcity/server/2022.10.6/README.md b/linux/advanced/teamcity/server/2022.10.6/README.md
new file mode 100644
index 000000000..76aff7f7a
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.10.6/README.md
@@ -0,0 +1,115 @@
+## TeamCity Server - Powerful Continuous Integration and Continuous Delivery out of the box
+
+[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) server image. The image is suitable for production use and evaluation purposes.
+
+ More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-server.md).
+
+## How to Use This Image
+
+First, pull the image from the Docker Hub Repository
+
+```docker pull jetbrains/teamcity-server```
+
+
+### Linux container
+
+Use the following command to start a container with TeamCity server
+
+
+
+```
+docker run -it --name teamcity-server-instance \
+ -v :/data/teamcity_server/datadir \
+ -v :/opt/teamcity/logs \
+ -p :8111 \
+ jetbrains/teamcity-server
+```
+where
+
+ - **\** is the host machine directory to serve as the [TeamCity Data Directory](https://www.jetbrains.com/help/teamcity/teamcity-data-directory.html) where TeamCity stores project settings and build results. Pass an empty directory for the brand new start. If the mapping is not set, you will lose all the TeamCity settings on the container shutdown.
+ - **\** is the host machine directory to store the TeamCity server logs. The mapping can be omitted, but then the logs will be lost on container shutdown which will make issues investigation impossible.
+
+
+If you need to run a Linux-based container with non-root permissions (for example, when using some open source container application platforms), set the server's internal user identifier explicitly by passing an additional `-u 1000:1000` parameter. Note that after switching to a non-root user you might not be able to perform writing operations on files created under the root user. In this case, run `chown -R 1000:1000 ` to change the ownership of the directory containing these files.
+
+#### Alternative Tomcat configuration
+
+TeamCity has Tomcat J2EE server under the hood, and if you need to provide an alternative configuration for the TomCat, you can use extra parameter
+```
+-v /alternative/path/to/conf:/opt/teamcity/conf
+```
+
+To get a sample of the current contents of the Tomcat's `conf` directory, use the [`docker cp`](https://docs.docker.com/engine/reference/commandline/cp/) command.
+
+### Windows container
+```
+docker run -it --name teamcity-server-instance
+ -v :C:/ProgramData/JetBrains/TeamCity
+ -v :C:/TeamCity/logs
+ -p :8111
+ jetbrains/teamcity-server
+```
+
+See above for **\** and **\** description.
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+### Database
+
+TeamCity stores set of users and build results in an SQL database in addition to the Data Directory.
+By default, the TeamCity server uses an internal database stored on the file system under the data directory. However, production use requires an [external database](https://www.jetbrains.com/help/teamcity/setting-up-an-external-database.html#SettingupanExternalDatabase-DefaultInternalDatabase).
+
+To use the server for production, make sure to review and apply the [recommendations](https://www.jetbrains.com/help/teamcity/installing-and-configuring-the-teamcity-server.html#InstallingandConfiguringtheTeamCityServer-ConfiguringServerforProductionUse).
+
+### Build agents
+
+You will need at least one TeamCity agent to run builds. Check the [`jetbrains/teamcity-agent`](https://hub.docker.com/r/jetbrains/teamcity-agent/) and [`jetbrains/teamcity-minimal-agent`](https://hub.docker.com/r/jetbrains/teamcity-minimal-agent/) images.
+
+## Additional Commands
+
+When you need to pass additional environment variables to the server process, use the regular `-e` option. For example, to pass TEAMCITY_SERVER_MEM_OPTS environment variable, use:
+
+```
+docker run -it --name teamcity-server-instance \
+ -e TEAMCITY_SERVER_MEM_OPTS="-Xmx2g -XX:MaxPermSize=270m -XX:ReservedCodeCacheSize=350m" \
+ -v :/data/teamcity_server/datadir \
+ -v :/opt/teamcity/logs \
+ -p :8111 \
+ jetbrains/teamcity-server
+```
+
+To run the `maintainDB` script (e.g. for the server backup), stop your running container and execute the following command from your host:
+```
+docker run -it --name teamcity-server-instance \
+ -v :/data/teamcity_server/datadir \
+ -v :/opt/teamcity/logs \
+ -p :8111 \
+ jetbrains/teamcity-server \
+ "/opt/teamcity/bin/maintainDB.sh" "backup"
+```
+
+
+Be sure to keep all the local system paths the same with the main server start command.
+
+To change the context of the TeamCity app inside a Tomcat container, pass `-e TEAMCITY_CONTEXT=/context` to the `docker run` command. The default one is `ROOT`, meaning that the server would be available at `http://host/`.
+
+## Upgrading TeamCity
+
+Make sure to check the generic TeamCity [upgrade instructions](https://www.jetbrains.com/help/teamcity/upgrade.html).
+If you made no changes to the container, you can just stop the running container, pull a newer version of the image and the server in it via the usual command.
+If you changed the image, you will need to replicate the changes to the new TeamCity server image. In general, use Docker common sense to perform the upgrade.
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [Minimal Build Agent](https://hub.docker.com/r/jetbrains/teamcity-minimal-agent/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/)
diff --git a/linux/advanced/teamcity/server/2022.10.6/docker-compose.yml b/linux/advanced/teamcity/server/2022.10.6/docker-compose.yml
new file mode 100644
index 000000000..ec9d8e5c1
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.10.6/docker-compose.yml
@@ -0,0 +1,6 @@
+#version: '3'
+services:
+ app:
+ image: "epicmorg/teamcity-server:2022.10.6"
+ build:
+ context: .
diff --git a/linux/advanced/teamcity/server/2022.10.6/etc/apt/apt.conf.d/96-apt-retries b/linux/advanced/teamcity/server/2022.10.6/etc/apt/apt.conf.d/96-apt-retries
new file mode 100644
index 000000000..73262ccc3
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.10.6/etc/apt/apt.conf.d/96-apt-retries
@@ -0,0 +1 @@
+Acquire::Retries "9";
diff --git a/linux/advanced/teamcity/server/2022.10.6/etc/apt/apt.conf.d/97-allow-cert-exp b/linux/advanced/teamcity/server/2022.10.6/etc/apt/apt.conf.d/97-allow-cert-exp
new file mode 100644
index 000000000..e7ec46810
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.10.6/etc/apt/apt.conf.d/97-allow-cert-exp
@@ -0,0 +1,2 @@
+Acquire::https::Verify-Peer "false";
+Acquire::https::Verify-Host "false";
diff --git a/linux/advanced/teamcity/server/2022.10.6/etc/apt/apt.conf.d/98-allow-unauthenticated b/linux/advanced/teamcity/server/2022.10.6/etc/apt/apt.conf.d/98-allow-unauthenticated
new file mode 100644
index 000000000..b36cd01c8
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.10.6/etc/apt/apt.conf.d/98-allow-unauthenticated
@@ -0,0 +1 @@
+APT::Get::AllowUnauthenticated "true";
diff --git a/linux/advanced/teamcity/server/2022.10.6/etc/apt/apt.conf.d/99-no-check-valid-until b/linux/advanced/teamcity/server/2022.10.6/etc/apt/apt.conf.d/99-no-check-valid-until
new file mode 100644
index 000000000..4e6d9209d
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.10.6/etc/apt/apt.conf.d/99-no-check-valid-until
@@ -0,0 +1 @@
+Acquire::Check-Valid-Until no;
diff --git a/linux/advanced/teamcity/server/2022.10.6/etc/apt/sources.list b/linux/advanced/teamcity/server/2022.10.6/etc/apt/sources.list
new file mode 100644
index 000000000..60d392e99
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.10.6/etc/apt/sources.list
@@ -0,0 +1,19 @@
+#------------------------------------------------------------------------------#
+# OFFICIAL UBUNTU REPOS #
+#------------------------------------------------------------------------------#
+
+###### Ubuntu Main Repos
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal main multiverse restricted universe
+
+###### Ubuntu Update Repos
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-backports main multiverse restricted universe
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-proposed main multiverse restricted universe
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-security main multiverse restricted universe
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-updates main multiverse restricted universe
+
+###### Ubuntu Sorurce Repos
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-backports main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-proposed main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-security main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-updates main multiverse restricted universe
diff --git a/linux/advanced/teamcity/server/2022.10.6/etc/apt/sources.list.d/github_git-lfs.list b/linux/advanced/teamcity/server/2022.10.6/etc/apt/sources.list.d/github_git-lfs.list
new file mode 100644
index 000000000..c8a9a13b2
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.10.6/etc/apt/sources.list.d/github_git-lfs.list
@@ -0,0 +1,2 @@
+deb [signed-by=/etc/apt/keyrings/github_git-lfs-archive-keyring.gpg] https://packagecloud.io/github/git-lfs/ubuntu/ focal main
+deb-src [signed-by=/etc/apt/keyrings/github_git-lfs-archive-keyring.gpg] https://packagecloud.io/github/git-lfs/ubuntu/ focal main
diff --git a/linux/advanced/teamcity/server/2022.10.6/etc/apt/sources.list.d/launchpad_git-mainline.list b/linux/advanced/teamcity/server/2022.10.6/etc/apt/sources.list.d/launchpad_git-mainline.list
new file mode 100644
index 000000000..4acedfe8d
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.10.6/etc/apt/sources.list.d/launchpad_git-mainline.list
@@ -0,0 +1,5 @@
+# mainline
+deb [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/candidate/ubuntu focal main
+deb-src [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/candidate/ubuntu focal main
+
+
diff --git a/linux/advanced/teamcity/server/2022.10.6/etc/apt/sources.list.d/launchpad_git-stable.list b/linux/advanced/teamcity/server/2022.10.6/etc/apt/sources.list.d/launchpad_git-stable.list
new file mode 100644
index 000000000..d2ef6c06d
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.10.6/etc/apt/sources.list.d/launchpad_git-stable.list
@@ -0,0 +1,3 @@
+# stable
+deb [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/ppa/ubuntu focal main
+deb-src [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/ppa/ubuntu focal main
diff --git a/linux/advanced/teamcity/server/2022.10.6/etc/locale.gen b/linux/advanced/teamcity/server/2022.10.6/etc/locale.gen
new file mode 100644
index 000000000..02f100afa
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.10.6/etc/locale.gen
@@ -0,0 +1,12 @@
+en_GB.UTF-8 UTF-8
+en_GB ISO-8859-1
+en_GB.ISO-8859-15 ISO-8859-15
+en_US.UTF-8 UTF-8
+en_US ISO-8859-1
+en_US.ISO-8859-15 ISO-8859-15
+ru_RU.UTF-8 UTF-8
+ru_RU.KOI8-R KOI8-R
+ru_RU ISO-8859-5
+ru_RU.CP1251 CP1251
+ru_UA.UTF-8 UTF-8
+ru_UA KOI8-U
diff --git a/linux/advanced/teamcity/server/2022.10.6/etc/locale.gen.full b/linux/advanced/teamcity/server/2022.10.6/etc/locale.gen.full
new file mode 100644
index 000000000..1e7b446a5
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.10.6/etc/locale.gen.full
@@ -0,0 +1,495 @@
+aa_DJ.UTF-8 UTF-8
+aa_DJ ISO-8859-1
+aa_ER UTF-8
+aa_ER@saaho UTF-8
+aa_ET UTF-8
+af_ZA.UTF-8 UTF-8
+af_ZA ISO-8859-1
+agr_PE UTF-8
+ak_GH UTF-8
+am_ET UTF-8
+an_ES.UTF-8 UTF-8
+an_ES ISO-8859-15
+anp_IN UTF-8
+ar_AE.UTF-8 UTF-8
+ar_AE ISO-8859-6
+ar_BH.UTF-8 UTF-8
+ar_BH ISO-8859-6
+ar_DZ.UTF-8 UTF-8
+ar_DZ ISO-8859-6
+ar_EG.UTF-8 UTF-8
+ar_EG ISO-8859-6
+ar_IN UTF-8
+ar_IQ.UTF-8 UTF-8
+ar_IQ ISO-8859-6
+ar_JO.UTF-8 UTF-8
+ar_JO ISO-8859-6
+ar_KW.UTF-8 UTF-8
+ar_KW ISO-8859-6
+ar_LB.UTF-8 UTF-8
+ar_LB ISO-8859-6
+ar_LY.UTF-8 UTF-8
+ar_LY ISO-8859-6
+ar_MA.UTF-8 UTF-8
+ar_MA ISO-8859-6
+ar_OM.UTF-8 UTF-8
+ar_OM ISO-8859-6
+ar_QA.UTF-8 UTF-8
+ar_QA ISO-8859-6
+ar_SA.UTF-8 UTF-8
+ar_SA ISO-8859-6
+ar_SD.UTF-8 UTF-8
+ar_SD ISO-8859-6
+ar_SS UTF-8
+ar_SY.UTF-8 UTF-8
+ar_SY ISO-8859-6
+ar_TN.UTF-8 UTF-8
+ar_TN ISO-8859-6
+ar_YE.UTF-8 UTF-8
+ar_YE ISO-8859-6
+ayc_PE UTF-8
+az_AZ UTF-8
+az_IR UTF-8
+as_IN UTF-8
+ast_ES.UTF-8 UTF-8
+ast_ES ISO-8859-15
+be_BY.UTF-8 UTF-8
+be_BY CP1251
+be_BY@latin UTF-8
+bem_ZM UTF-8
+ber_DZ UTF-8
+ber_MA UTF-8
+bg_BG.UTF-8 UTF-8
+bg_BG CP1251
+bhb_IN.UTF-8 UTF-8
+bho_IN UTF-8
+bho_NP UTF-8
+bi_VU UTF-8
+bn_BD UTF-8
+bn_IN UTF-8
+bo_CN UTF-8
+bo_IN UTF-8
+br_FR.UTF-8 UTF-8
+br_FR ISO-8859-1
+br_FR@euro ISO-8859-15
+brx_IN UTF-8
+bs_BA.UTF-8 UTF-8
+bs_BA ISO-8859-2
+byn_ER UTF-8
+ca_AD.UTF-8 UTF-8
+ca_AD ISO-8859-15
+ca_ES.UTF-8 UTF-8
+ca_ES ISO-8859-1
+ca_ES@euro ISO-8859-15
+ca_ES@valencia UTF-8
+ca_FR.UTF-8 UTF-8
+ca_FR ISO-8859-15
+ca_IT.UTF-8 UTF-8
+ca_IT ISO-8859-15
+ce_RU UTF-8
+chr_US UTF-8
+cmn_TW UTF-8
+crh_UA UTF-8
+cs_CZ.UTF-8 UTF-8
+cs_CZ ISO-8859-2
+csb_PL UTF-8
+cv_RU UTF-8
+cy_GB.UTF-8 UTF-8
+cy_GB ISO-8859-14
+da_DK.UTF-8 UTF-8
+da_DK ISO-8859-1
+de_AT.UTF-8 UTF-8
+de_AT ISO-8859-1
+de_AT@euro ISO-8859-15
+de_BE.UTF-8 UTF-8
+de_BE ISO-8859-1
+de_BE@euro ISO-8859-15
+de_CH.UTF-8 UTF-8
+de_CH ISO-8859-1
+de_DE.UTF-8 UTF-8
+de_DE ISO-8859-1
+de_DE@euro ISO-8859-15
+de_IT.UTF-8 UTF-8
+de_IT ISO-8859-1
+de_LI.UTF-8 UTF-8
+de_LU.UTF-8 UTF-8
+de_LU ISO-8859-1
+de_LU@euro ISO-8859-15
+doi_IN UTF-8
+dsb_DE UTF-8
+dv_MV UTF-8
+dz_BT UTF-8
+el_GR.UTF-8 UTF-8
+el_GR ISO-8859-7
+el_GR@euro ISO-8859-7
+el_CY.UTF-8 UTF-8
+el_CY ISO-8859-7
+en_AG UTF-8
+en_AU.UTF-8 UTF-8
+en_AU ISO-8859-1
+en_BW.UTF-8 UTF-8
+en_BW ISO-8859-1
+en_CA.UTF-8 UTF-8
+en_CA ISO-8859-1
+en_DK.UTF-8 UTF-8
+en_DK.ISO-8859-15 ISO-8859-15
+en_DK ISO-8859-1
+en_GB.UTF-8 UTF-8
+en_GB ISO-8859-1
+en_GB.ISO-8859-15 ISO-8859-15
+en_HK.UTF-8 UTF-8
+en_HK ISO-8859-1
+en_IE.UTF-8 UTF-8
+en_IE ISO-8859-1
+en_IE@euro ISO-8859-15
+en_IL UTF-8
+en_IN UTF-8
+en_NG UTF-8
+en_NZ.UTF-8 UTF-8
+en_NZ ISO-8859-1
+en_PH.UTF-8 UTF-8
+en_PH ISO-8859-1
+en_SC.UTF-8 UTF-8
+en_SG.UTF-8 UTF-8
+en_SG ISO-8859-1
+en_US.UTF-8 UTF-8
+en_US ISO-8859-1
+en_US.ISO-8859-15 ISO-8859-15
+en_ZA.UTF-8 UTF-8
+en_ZA ISO-8859-1
+en_ZM UTF-8
+en_ZW.UTF-8 UTF-8
+en_ZW ISO-8859-1
+eo UTF-8
+es_AR.UTF-8 UTF-8
+es_AR ISO-8859-1
+es_BO.UTF-8 UTF-8
+es_BO ISO-8859-1
+es_CL.UTF-8 UTF-8
+es_CL ISO-8859-1
+es_CO.UTF-8 UTF-8
+es_CO ISO-8859-1
+es_CR.UTF-8 UTF-8
+es_CR ISO-8859-1
+es_CU UTF-8
+es_DO.UTF-8 UTF-8
+es_DO ISO-8859-1
+es_EC.UTF-8 UTF-8
+es_EC ISO-8859-1
+es_ES.UTF-8 UTF-8
+es_ES ISO-8859-1
+es_ES@euro ISO-8859-15
+es_GT.UTF-8 UTF-8
+es_GT ISO-8859-1
+es_HN.UTF-8 UTF-8
+es_HN ISO-8859-1
+es_MX.UTF-8 UTF-8
+es_MX ISO-8859-1
+es_NI.UTF-8 UTF-8
+es_NI ISO-8859-1
+es_PA.UTF-8 UTF-8
+es_PA ISO-8859-1
+es_PE.UTF-8 UTF-8
+es_PE ISO-8859-1
+es_PR.UTF-8 UTF-8
+es_PR ISO-8859-1
+es_PY.UTF-8 UTF-8
+es_PY ISO-8859-1
+es_SV.UTF-8 UTF-8
+es_SV ISO-8859-1
+es_US.UTF-8 UTF-8
+es_US ISO-8859-1
+es_UY.UTF-8 UTF-8
+es_UY ISO-8859-1
+es_VE.UTF-8 UTF-8
+es_VE ISO-8859-1
+et_EE.UTF-8 UTF-8
+et_EE ISO-8859-1
+et_EE.ISO-8859-15 ISO-8859-15
+eu_ES.UTF-8 UTF-8
+eu_ES ISO-8859-1
+eu_ES@euro ISO-8859-15
+eu_FR.UTF-8 UTF-8
+eu_FR ISO-8859-1
+eu_FR@euro ISO-8859-15
+fa_IR UTF-8
+ff_SN UTF-8
+fi_FI.UTF-8 UTF-8
+fi_FI ISO-8859-1
+fi_FI@euro ISO-8859-15
+fil_PH UTF-8
+fo_FO.UTF-8 UTF-8
+fo_FO ISO-8859-1
+fr_BE.UTF-8 UTF-8
+fr_BE ISO-8859-1
+fr_BE@euro ISO-8859-15
+fr_CA.UTF-8 UTF-8
+fr_CA ISO-8859-1
+fr_CH.UTF-8 UTF-8
+fr_CH ISO-8859-1
+fr_FR.UTF-8 UTF-8
+fr_FR ISO-8859-1
+fr_FR@euro ISO-8859-15
+fr_LU.UTF-8 UTF-8
+fr_LU ISO-8859-1
+fr_LU@euro ISO-8859-15
+fur_IT UTF-8
+fy_NL UTF-8
+fy_DE UTF-8
+ga_IE.UTF-8 UTF-8
+ga_IE ISO-8859-1
+ga_IE@euro ISO-8859-15
+gd_GB.UTF-8 UTF-8
+gd_GB ISO-8859-15
+gez_ER UTF-8
+gez_ER@abegede UTF-8
+gez_ET UTF-8
+gez_ET@abegede UTF-8
+gl_ES.UTF-8 UTF-8
+gl_ES ISO-8859-1
+gl_ES@euro ISO-8859-15
+gu_IN UTF-8
+gv_GB.UTF-8 UTF-8
+gv_GB ISO-8859-1
+ha_NG UTF-8
+hak_TW UTF-8
+he_IL.UTF-8 UTF-8
+he_IL ISO-8859-8
+hi_IN UTF-8
+hif_FJ UTF-8
+hne_IN UTF-8
+hr_HR.UTF-8 UTF-8
+hr_HR ISO-8859-2
+hsb_DE.UTF-8 UTF-8
+hsb_DE ISO-8859-2
+ht_HT UTF-8
+hu_HU.UTF-8 UTF-8
+hu_HU ISO-8859-2
+hy_AM UTF-8
+hy_AM.ARMSCII-8 ARMSCII-8
+ia_FR UTF-8
+id_ID.UTF-8 UTF-8
+id_ID ISO-8859-1
+ig_NG UTF-8
+ik_CA UTF-8
+is_IS.UTF-8 UTF-8
+is_IS ISO-8859-1
+it_CH.UTF-8 UTF-8
+it_CH ISO-8859-1
+it_IT.UTF-8 UTF-8
+it_IT ISO-8859-1
+it_IT@euro ISO-8859-15
+iu_CA UTF-8
+ja_JP.UTF-8 UTF-8
+ja_JP.EUC-JP EUC-JP
+ka_GE.UTF-8 UTF-8
+ka_GE GEORGIAN-PS
+kab_DZ UTF-8
+kk_KZ.UTF-8 UTF-8
+kk_KZ PT154
+kk_KZ.RK1048 RK1048
+kl_GL.UTF-8 UTF-8
+kl_GL ISO-8859-1
+km_KH UTF-8
+kn_IN UTF-8
+ko_KR.UTF-8 UTF-8
+ko_KR.EUC-KR EUC-KR
+kok_IN UTF-8
+ks_IN UTF-8
+ks_IN@devanagari UTF-8
+ku_TR.UTF-8 UTF-8
+ku_TR ISO-8859-9
+kw_GB.UTF-8 UTF-8
+kw_GB ISO-8859-1
+ky_KG UTF-8
+lb_LU UTF-8
+lg_UG.UTF-8 UTF-8
+lg_UG ISO-8859-10
+li_BE UTF-8
+li_NL UTF-8
+lij_IT UTF-8
+ln_CD UTF-8
+lo_LA UTF-8
+lt_LT.UTF-8 UTF-8
+lt_LT ISO-8859-13
+lv_LV.UTF-8 UTF-8
+lv_LV ISO-8859-13
+lzh_TW UTF-8
+mag_IN UTF-8
+mai_IN UTF-8
+mai_NP UTF-8
+mfe_MU UTF-8
+mg_MG.UTF-8 UTF-8
+mg_MG ISO-8859-15
+mhr_RU UTF-8
+mi_NZ.UTF-8 UTF-8
+mi_NZ ISO-8859-13
+miq_NI UTF-8
+mjw_IN UTF-8
+mk_MK.UTF-8 UTF-8
+mk_MK ISO-8859-5
+ml_IN UTF-8
+mn_MN UTF-8
+mni_IN UTF-8
+mr_IN UTF-8
+ms_MY.UTF-8 UTF-8
+ms_MY ISO-8859-1
+mt_MT.UTF-8 UTF-8
+mt_MT ISO-8859-3
+my_MM UTF-8
+nan_TW UTF-8
+nan_TW@latin UTF-8
+nb_NO.UTF-8 UTF-8
+nb_NO ISO-8859-1
+nds_DE UTF-8
+nds_NL UTF-8
+ne_NP UTF-8
+nhn_MX UTF-8
+niu_NU UTF-8
+niu_NZ UTF-8
+nl_AW UTF-8
+nl_BE.UTF-8 UTF-8
+nl_BE ISO-8859-1
+nl_BE@euro ISO-8859-15
+nl_NL.UTF-8 UTF-8
+nl_NL ISO-8859-1
+nl_NL@euro ISO-8859-15
+nn_NO.UTF-8 UTF-8
+nn_NO ISO-8859-1
+nr_ZA UTF-8
+nso_ZA UTF-8
+oc_FR.UTF-8 UTF-8
+oc_FR ISO-8859-1
+om_ET UTF-8
+om_KE.UTF-8 UTF-8
+om_KE ISO-8859-1
+or_IN UTF-8
+os_RU UTF-8
+pa_IN UTF-8
+pa_PK UTF-8
+pap_AW UTF-8
+pap_CW UTF-8
+pl_PL.UTF-8 UTF-8
+pl_PL ISO-8859-2
+ps_AF UTF-8
+pt_BR.UTF-8 UTF-8
+pt_BR ISO-8859-1
+pt_PT.UTF-8 UTF-8
+pt_PT ISO-8859-1
+pt_PT@euro ISO-8859-15
+quz_PE UTF-8
+raj_IN UTF-8
+ro_RO.UTF-8 UTF-8
+ro_RO ISO-8859-2
+ru_RU.UTF-8 UTF-8
+ru_RU.KOI8-R KOI8-R
+ru_RU ISO-8859-5
+ru_RU.CP1251 CP1251
+ru_UA.UTF-8 UTF-8
+ru_UA KOI8-U
+rw_RW UTF-8
+sa_IN UTF-8
+sah_RU UTF-8
+sat_IN UTF-8
+sc_IT UTF-8
+sd_IN UTF-8
+sd_IN@devanagari UTF-8
+se_NO UTF-8
+sgs_LT UTF-8
+shn_MM UTF-8
+shs_CA UTF-8
+si_LK UTF-8
+trixie_ET UTF-8
+sk_SK.UTF-8 UTF-8
+sk_SK ISO-8859-2
+sl_SI.UTF-8 UTF-8
+sl_SI ISO-8859-2
+sm_WS UTF-8
+so_DJ.UTF-8 UTF-8
+so_DJ ISO-8859-1
+so_ET UTF-8
+so_KE.UTF-8 UTF-8
+so_KE ISO-8859-1
+so_SO.UTF-8 UTF-8
+so_SO ISO-8859-1
+sq_AL.UTF-8 UTF-8
+sq_AL ISO-8859-1
+sq_MK UTF-8
+sr_ME UTF-8
+sr_RS UTF-8
+sr_RS@latin UTF-8
+ss_ZA UTF-8
+st_ZA.UTF-8 UTF-8
+st_ZA ISO-8859-1
+sv_FI.UTF-8 UTF-8
+sv_FI ISO-8859-1
+sv_FI@euro ISO-8859-15
+sv_SE.UTF-8 UTF-8
+sv_SE ISO-8859-1
+sv_SE.ISO-8859-15 ISO-8859-15
+sw_KE UTF-8
+sw_TZ UTF-8
+szl_PL UTF-8
+ta_IN UTF-8
+ta_LK UTF-8
+tcy_IN.UTF-8 UTF-8
+te_IN UTF-8
+tg_TJ.UTF-8 UTF-8
+tg_TJ KOI8-T
+th_TH.UTF-8 UTF-8
+th_TH TIS-620
+the_NP UTF-8
+ti_ER UTF-8
+ti_ET UTF-8
+tig_ER UTF-8
+tk_TM UTF-8
+tl_PH.UTF-8 UTF-8
+tl_PH ISO-8859-1
+tn_ZA UTF-8
+to_TO UTF-8
+tpi_PG UTF-8
+tr_CY.UTF-8 UTF-8
+tr_CY ISO-8859-9
+tr_TR.UTF-8 UTF-8
+tr_TR ISO-8859-9
+ts_ZA UTF-8
+tt_RU UTF-8
+tt_RU@iqtelif UTF-8
+ug_CN UTF-8
+uk_UA.UTF-8 UTF-8
+uk_UA KOI8-U
+unm_US UTF-8
+ur_IN UTF-8
+ur_PK UTF-8
+uz_UZ.UTF-8 UTF-8
+uz_UZ ISO-8859-1
+uz_UZ@cyrillic UTF-8
+ve_ZA UTF-8
+vi_VN UTF-8
+wa_BE.UTF-8 UTF-8
+wa_BE ISO-8859-1
+wa_BE@euro ISO-8859-15
+wae_CH UTF-8
+wal_ET UTF-8
+wo_SN UTF-8
+xh_ZA.UTF-8 UTF-8
+xh_ZA ISO-8859-1
+yi_US.UTF-8 UTF-8
+yi_US CP1255
+yo_NG UTF-8
+yue_HK UTF-8
+yuw_PG UTF-8
+zh_CN.UTF-8 UTF-8
+zh_CN.GB18030 GB18030
+zh_CN.GBK GBK
+zh_CN GB2312
+zh_HK.UTF-8 UTF-8
+zh_HK BIG5-HKSCS
+zh_SG.UTF-8 UTF-8
+zh_SG.GBK GBK
+zh_SG GB2312
+zh_TW.UTF-8 UTF-8
+zh_TW.EUC-TW EUC-TW
+zh_TW BIG5
+zu_ZA.UTF-8 UTF-8
+zu_ZA ISO-8859-1
diff --git a/linux/advanced/teamcity/server/2022.10.6/usr/local/epicmorg/README.md b/linux/advanced/teamcity/server/2022.10.6/usr/local/epicmorg/README.md
new file mode 100644
index 000000000..83071e9ca
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.10.6/usr/local/epicmorg/README.md
@@ -0,0 +1,48 @@
+# About
+Hello. This folder contains sub-folders with custom tools such as `gosu`, `dumb-init` and etc.
+
+Some child images could install to this folder custom compilled products. Example: `nginx`, `php`, etc.
+
+All directories that contains binaryes (``) will be added to `$PATH`.
+
+# Structure
+pattern: `/usr/local/epicmorg///<..some data and files..>`
+
+example:
+```
+/usr/local/epicmorg/
+|-- 7z
+| `-- 7z2407
+| |-- History.txt
+| |-- License.txt
+| |-- MANUAL
+| |-- bin
+| `-- readme.txt
+|-- dumb-init
+| `-- 1.2.5
+| `-- bin
+|-- gosu
+| `-- 1.17
+| `-- bin
+|-- lazycli
+| `-- 0.1.15
+| `-- bin
+|-- lazydocker
+| `-- 0.23.3
+| |-- LICENSE
+| |-- README.md
+| `-- bin
+|-- lazygit
+| `-- 0.42.0
+| |-- LICENSE
+| |-- README.md
+| `-- bin
+|-- lazynpm
+| `-- 0.1.4
+| |-- LICENSE
+| |-- README.md
+| `-- bin
+`-- p4
+ `-- r23.2
+ `-- bin
+```
diff --git a/linux/advanced/teamcity/server/2022.10.6/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt b/linux/advanced/teamcity/server/2022.10.6/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
new file mode 100644
index 000000000..4c143a21f
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.10.6/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFwjCCA6qgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAxMjEwNDE1WhcNMzIwMjI3MjEwNDE1WjBwMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMSAwHgYDVQQDDBdSdXNzaWFuIFRydXN0ZWQgUm9v
+dCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMfFOZ8pUAL3+r2n
+qqE0Zp52selXsKGFYoG0GM5bwz1bSFtCt+AZQMhkWQheI3poZAToYJu69pHLKS6Q
+XBiwBC1cvzYmUYKMYZC7jE5YhEU2bSL0mX7NaMxMDmH2/NwuOVRj8OImVa5s1F4U
+zn4Kv3PFlDBjjSjXKVY9kmjUBsXQrIHeaqmUIsPIlNWUnimXS0I0abExqkbdrXbX
+YwCOXhOO2pDUx3ckmJlCMUGacUTnylyQW2VsJIyIGA8V0xzdaeUXg0VZ6ZmNUr5Y
+Ber/EAOLPb8NYpsAhJe2mXjMB/J9HNsoFMBFJ0lLOT/+dQvjbdRZoOT8eqJpWnVD
+U+QL/qEZnz57N88OWM3rabJkRNdU/Z7x5SFIM9FrqtN8xewsiBWBI0K6XFuOBOTD
+4V08o4TzJ8+Ccq5XlCUW2L48pZNCYuBDfBh7FxkB7qDgGDiaftEkZZfApRg2E+M9
+G8wkNKTPLDc4wH0FDTijhgxR3Y4PiS1HL2Zhw7bD3CbslmEGgfnnZojNkJtcLeBH
+BLa52/dSwNU4WWLubaYSiAmA9IUMX1/RpfpxOxd4Ykmhz97oFbUaDJFipIggx5sX
+ePAlkTdWnv+RWBxlJwMQ25oEHmRguNYf4Zr/Rxr9cS93Y+mdXIZaBEE0KS2iLRqa
+OiWBki9IMQU4phqPOBAaG7A+eP8PAgMBAAGjZjBkMB0GA1UdDgQWBBTh0YHlzlpf
+BKrS6badZrHF+qwshzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzAS
+BgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
+AAOCAgEAALIY1wkilt/urfEVM5vKzr6utOeDWCUczmWX/RX4ljpRdgF+5fAIS4vH
+tmXkqpSCOVeWUrJV9QvZn6L227ZwuE15cWi8DCDal3Ue90WgAJJZMfTshN4OI8cq
+W9E4EG9wglbEtMnObHlms8F3CHmrw3k6KmUkWGoa+/ENmcVl68u/cMRl1JbW2bM+
+/3A+SAg2c6iPDlehczKx2oa95QW0SkPPWGuNA/CE8CpyANIhu9XFrj3RQ3EqeRcS
+AQQod1RNuHpfETLU/A2gMmvn/w/sx7TB3W5BPs6rprOA37tutPq9u6FTZOcG1Oqj
+C/B7yTqgI7rbyvox7DEXoX7rIiEqyNNUguTk/u3SZ4VXE2kmxdmSh3TQvybfbnXV
+4JbCZVaqiZraqc7oZMnRoWrXRG3ztbnbes/9qhRGI7PqXqeKJBztxRTEVj8ONs1d
+WN5szTwaPIvhkhO3CO5ErU2rVdUr89wKpNXbBODFKRtgxUT70YpmJ46VVaqdAhOZ
+D9EUUn4YaeLaS8AjSF/h7UkjOibNc4qVDiPP+rkehFWM66PVnP1Msh93tc+taIfC
+EYVMxjh8zNbFuoc7fzvvrFILLe7ifvEIUqSVIC/AzplM/Jxw7buXFeGP1qVCBEHq
+391d/9RAfaZ12zkwFsl+IKwE/OZxW8AHa9i1p4GO0YSNuczzEm4=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/linux/advanced/teamcity/server/2022.10.6/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt b/linux/advanced/teamcity/server/2022.10.6/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
new file mode 100644
index 000000000..2e3f8285d
--- /dev/null
+++ b/linux/advanced/teamcity/server/2022.10.6/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
@@ -0,0 +1,41 @@
+-----BEGIN CERTIFICATE-----
+MIIHQjCCBSqgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAyMTEyNTE5WhcNMjcwMzA2MTEyNTE5WjBvMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMR8wHQYDVQQDDBZSdXNzaWFuIFRydXN0ZWQgU3Vi
+IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9YPqBKOk19NFymrE
+wehzrhBEgT2atLezpduB24mQ7CiOa/HVpFCDRZzdxqlh8drku408/tTmWzlNH/br
+HuQhZ/miWKOf35lpKzjyBd6TPM23uAfJvEOQ2/dnKGGJbsUo1/udKSvxQwVHpVv3
+S80OlluKfhWPDEXQpgyFqIzPoxIQTLZ0deirZwMVHarZ5u8HqHetRuAtmO2ZDGQn
+vVOJYAjls+Hiueq7Lj7Oce7CQsTwVZeP+XQx28PAaEZ3y6sQEt6rL06ddpSdoTMp
+BnCqTbxW+eWMyjkIn6t9GBtUV45yB1EkHNnj2Ex4GwCiN9T84QQjKSr+8f0psGrZ
+vPbCbQAwNFJjisLixnjlGPLKa5vOmNwIh/LAyUW5DjpkCx004LPDuqPpFsKXNKpa
+L2Dm6uc0x4Jo5m+gUTVORB6hOSzWnWDj2GWfomLzzyjG81DRGFBpco/O93zecsIN
+3SL2Ysjpq1zdoS01CMYxie//9zWvYwzI25/OZigtnpCIrcd2j1Y6dMUFQAzAtHE+
+qsXflSL8HIS+IJEFIQobLlYhHkoE3avgNx5jlu+OLYe0dF0Ykx1PGNjbwqvTX37R
+Cn32NMjlotW2QcGEZhDKj+3urZizp5xdTPZitA+aEjZM/Ni71VOdiOP0igbw6asZ
+2fxdozZ1TnSSYNYvNATwthNmZysCAwEAAaOCAeUwggHhMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTR4XENCy2BTm6KSo9MI7NM
+XqtpCzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzCBxwYIKwYBBQUH
+AQEEgbowgbcwOwYIKwYBBQUHMAKGL2h0dHA6Ly9yb3N0ZWxlY29tLnJ1L2NkcC9y
+b290Y2Ffc3NsX3JzYTIwMjIuY3J0MDsGCCsGAQUFBzAChi9odHRwOi8vY29tcGFu
+eS5ydC5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNydDA7BggrBgEFBQcwAoYv
+aHR0cDovL3JlZXN0ci1wa2kucnUvY2RwL3Jvb3RjYV9zc2xfcnNhMjAyMi5jcnQw
+gbAGA1UdHwSBqDCBpTA1oDOgMYYvaHR0cDovL3Jvc3RlbGVjb20ucnUvY2RwL3Jv
+b3RjYV9zc2xfcnNhMjAyMi5jcmwwNaAzoDGGL2h0dHA6Ly9jb21wYW55LnJ0LnJ1
+L2NkcC9yb290Y2Ffc3NsX3JzYTIwMjIuY3JsMDWgM6Axhi9odHRwOi8vcmVlc3Ry
+LXBraS5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNybDANBgkqhkiG9w0BAQsF
+AAOCAgEARBVzZls79AdiSCpar15dA5Hr/rrT4WbrOfzlpI+xrLeRPrUG6eUWIW4v
+Sui1yx3iqGLCjPcKb+HOTwoRMbI6ytP/ndp3TlYua2advYBEhSvjs+4vDZNwXr/D
+anbwIWdurZmViQRBDFebpkvnIvru/RpWud/5r624Wp8voZMRtj/cm6aI9LtvBfT9
+cfzhOaexI/99c14dyiuk1+6QhdwKaCRTc1mdfNQmnfWNRbfWhWBlK3h4GGE9JK33
+Gk8ZS8DMrkdAh0xby4xAQ/mSWAfWrBmfzlOqGyoB1U47WTOeqNbWkkoAP2ys94+s
+Jg4NTkiDVtXRF6nr6fYi0bSOvOFg0IQrMXO2Y8gyg9ARdPJwKtvWX8VPADCYMiWH
+h4n8bZokIrImVKLDQKHY4jCsND2HHdJfnrdL2YJw1qFskNO4cSNmZydw0Wkgjv9k
+F+KxqrDKlB8MZu2Hclph6v/CZ0fQ9YuE8/lsHZ0Qc2HyiSMnvjgK5fDc3TD4fa8F
+E8gMNurM+kV8PT8LNIM+4Zs+LKEV8nqRWBaxkIVJGekkVKO8xDBOG/aN62AZKHOe
+GcyIdu7yNMMRihGVZCYr8rYiJoKiOzDqOkPkLOPdhtVlgnhowzHDxMHND/E2WA5p
+ZHuNM/m0TXt2wTTPL7JH2YC0gPz/BvvSzjksgzU5rLbRyUKQkgU=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/linux/advanced/teamcity/server/2023.05.6/Dockerfile b/linux/advanced/teamcity/server/2023.05.6/Dockerfile
new file mode 100644
index 000000000..e2565c038
--- /dev/null
+++ b/linux/advanced/teamcity/server/2023.05.6/Dockerfile
@@ -0,0 +1,429 @@
+FROM jetbrains/teamcity-server:2023.05.6
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+LABEL org.opencontainers.image.vendor="EpicMorg DevTeam, developer@epicm.org"
+LABEL org.opencontainers.image.authors="STAM, kasthack, Aleks-Z"
+LABEL org.opencontainers.image.source="https://github.com/EpicMorg/docker"
+LABEL org.opencontainers.image.url="https://github.com/EpicMorg/docker"
+LABEL donate.crypto.TON="EQDvHXRK-K1ZieJhgTD9JZQk7xCnWzRbctYnUkWq1lZq1bUg"
+LABEL donate.crypto.ETH="0x26a8443a694f08cdfec966aa6fd72c45068753ec"
+LABEL donate.crypto.BTC="bc1querz8ug9asjmsuy6yn4a94a2athgprnu7e5zq2"
+LABEL donate.crypto.LTC="ltc1qtwwacq8f0n76fer2y83wxu540hddnmf8cdrlvg"
+LABEL donate.crypto.NVC="4SbMynYETyhmKdggu8f38ULU6yQKiJPuo6"
+LABEL donate.crypto.DOGE="DHyfE1CZzWtyaQiaMmv6g4KvXVQRUgrYE6"
+LABEL donate.crypto.PPC="pQWArPzYoLppNe7ew3QPfto1k1eq66BYUB"
+LABEL donate.crypto.RVN="R9t2LKeLhDSZBKNgUzSDZAossA3UqNvbV3"
+LABEL donate.crypto.ZEC="t1KRMMmwMSZth8vJcd2ZHtPEFKTQ74yVixE"
+LABEL donate.crypto.XMR="884PqZ1gDjWW7fKxtbaeRoBeSh9EGZbkqUyLriWmuKbwLZrAJdYUs4wQxoVfEJoW7LBhdQMP9cFhZQpJr6xvg7esHLdCbb1"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+# Set temp user for advanced setup
+#################################################################
+USER root
+
+##################################################################
+# Create Base directory for various soft
+##################################################################
+ENV EMG_LOCAL_BASE_DIR=/usr/local/share/epicmorg
+RUN mkdir -p ${EMG_LOCAL_BASE_DIR}
+COPY usr/local/epicmorg ${EMG_LOCAL_BASE_DIR}
+
+##################################################################
+# prepare system
+##################################################################
+RUN for i in $(seq 1 8); do mkdir -p "/usr/share/man/man${i}"; done
+RUN mkdir -p /etc/apt/keyrings
+
+##################################################################
+# ARGuments
+##################################################################
+ARG P4_VERSION=r24.1
+ARG P4_BIN_DIR=${EMG_LOCAL_BASE_DIR}/p4/${P4_VERSION}/bin
+ARG P4_DOWNLOAD_URL=https://filehost.perforce.com/perforce/${P4_VERSION}/bin.linux26x86_64/p4
+
+ARG SZ_VERSION=7z2407
+ARG SZ_BIN_DIR=${EMG_LOCAL_BASE_DIR}/7z/${SZ_VERSION}/bin
+ARG SZ_DOWNLOAD_URL=https://www.7-zip.org/a/${SZ_VERSION}-linux-x64.tar.xz
+ARG SZ_TEMP=/tmp/${SZ_VERSION}-linux-x64.tar.xz
+
+ARG LAZYGIT_VERSION=0.42.0
+ARG LAZYGIT_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazygit/${LAZYGIT_VERSION}/bin
+ARG LAZYGIT_DOWNLOAD_URL=https://github.com/jesseduffield/lazygit/releases/download/v${LAZYGIT_VERSION}/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz
+ARG LAZYGIT_TEMP=/tmp/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz
+
+ARG LAZYCLI_VERSION=0.1.15
+ARG LAZYCLI_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazycli/${LAZYCLI_VERSION}/bin
+ARG LAZYCLI_DOWNLOAD_URL=https://github.com/jesseduffield/lazycli/releases/download/v${LAZYCLI_VERSION}/lazycli-linux-x64.tar.gz
+ARG LAZYCLI_TEMP=/tmp/lazycli-linux-x64.tar.gz
+
+ARG LAZYNPM_VERSION=0.1.4
+ARG LAZYNPM_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazynpm/${LAZYNPM_VERSION}/bin
+ARG LAZYNPM_DOWNLOAD_URL=https://github.com/jesseduffield/lazynpm/releases/download/v${LAZYNPM_VERSION}/lazynpm_${LAZYNPM_VERSION}_Linux_x86_64.tar.gz
+ARG LAZYNPM_TEMP=/tmp/lazynpm_${LAZYNPM_VERSION}_Linux_x86_64.tar.gz
+
+ARG LAZYDOCKER_VERSION=0.23.3
+ARG LAZYDOCKER_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazydocker/${LAZYDOCKER_VERSION}/bin
+ARG LAZYDOCKER_DOWNLOAD_URL=https://github.com/jesseduffield/lazydocker/releases/download/v${LAZYDOCKER_VERSION}/lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz
+ARG LAZYDOCKER_TEMP=/tmp/lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz
+
+ARG DUMB_INIT_VERSION=1.2.5
+ARG DUMB_INIT_BIN_DIR=${EMG_LOCAL_BASE_DIR}/dumb-init/${DUMB_INIT_VERSION}/bin
+ARG DUMB_INIT_DOWNLOAD_URL=https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_x86_64
+
+ARG GOSU_VERSION=1.17
+ARG GOSU_BIN_DIR=${EMG_LOCAL_BASE_DIR}/gosu/${GOSU_VERSION}/bin
+ARG GOSU_DOWNLOAD_URL=https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64
+
+##################################################################
+# Additional settings
+##################################################################
+ENV MAVEN_VERSION=3.9.8
+ENV MAVEN_LINK=https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.zip
+ENV MAVEN_ROOT=${EMG_LOCAL_BASE_DIR}/maven/${MAVEN_VERSION}
+ENV MAVEN_PATH=${MAVEN_ROOT}/apache-maven-${MAVEN_VERSION}
+ENV MAVEN_BIN=${MAVEN_PATH}/bin
+ARG MAVEN_TEMP=/tmp/apache-maven-${MAVEN_VERSION}-bin.zip
+
+ENV GRADLE_VERSION=8.8
+ENV GRADLE_LINK=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip
+ENV GRADLE_ROOT=${EMG_LOCAL_BASE_DIR}/gradle/${GRADLE_VERSION}
+ENV GRADLE_PATH=${GRADLE_ROOT}/gradle-${GRADLE_VERSION}
+ENV GRADLE_BIN=${GRADLE_PATH}/bin
+ARG GRADLE_TEMP=/tmp/gradle-${GRADLE_VERSION}-all.zip
+
+ENV KTC_VERSION=2.0.0
+ENV KTC_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KTC_VERSION}/kotlin-compiler-${KTC_VERSION}.zip
+ARG KTC_TEMP=/tmp/kotlin-compiler-${KTC_VERSION}.zip
+ENV KTC_ROOT=${EMG_LOCAL_BASE_DIR}/kotlin/${KTC_VERSION}
+ENV KTC_PATH=${KTC_ROOT}/kotlinc
+ENV KTC_BIN=${KTC_PATH}/bin
+
+ENV KNPL_VERSION=${KTC_VERSION}
+ENV KNPL_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KNPL_VERSION}/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}.tar.gz
+ARG KNPL_TEMP=/tmp/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}.tar.gz
+ENV KNPL_ROOT=${EMG_LOCAL_BASE_DIR}/kotlin/${KNPL_VERSION}
+ENV KNPL_PATH=${KNPL_ROOT}/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}
+ENV KNPL_BIN=${KNPL_PATH}/bin
+
+RUN mkdir -p ${MAVEN_PATH} ${KTC_PATH} ${KNPL_PATH} ${GRADLE_PATH}
+ENV PATH=${PATH}:${MAVEN_BIN}:${GRADLE_BIN}:${KTC_BIN}:${KNPL_BIN}
+
+##################################################################
+# update lists
+##################################################################
+RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
+ apt-get update
+
+##################################################################
+# sources list
+##################################################################
+RUN rm -rfv /etc/apt/sources.list
+RUN rm -rfv /etc/apt/sources.list.d/*.sources
+RUN rm -rfv /etc/locale.gen
+
+COPY etc/apt/apt.conf.d/99-no-check-valid-until /etc/apt/apt.conf.d/99-no-check-valid-until
+COPY etc/apt/apt.conf.d/98-allow-unauthenticated /etc/apt/apt.conf.d/98-allow-unauthenticated
+COPY etc/apt/apt.conf.d/97-allow-cert-exp /etc/apt/apt.conf.d/97-allow-cert-exp
+COPY etc/apt/apt.conf.d/96-apt-retries /etc/apt/apt.conf.d/96-apt-retries
+COPY etc/apt/sources.list /etc/apt/sources.list
+COPY etc/locale.gen /etc/locale.gen
+COPY usr/local/share/ca-certificates /usr/local/share/ca-certificates
+
+RUN apt-get update && \
+ apt-get upgrade -y && \
+ apt-get dist-upgrade -y
+
+##################################################################
+# installing utils
+##################################################################
+RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ apt-transport-https \
+ apt-utils \
+ aptitude \
+ bash \
+ binutils \
+ ca-certificates \
+ cmatrix \
+ cmatrix-xfont \
+ console-cyrillic \
+ cron \
+ curl \
+ git \
+ gnupg \
+ gnupg1 \
+ gnupg2 \
+ htop \
+ iftop \
+ iputils-ping \
+ jq \
+ kmod \
+ locales \
+ locate \
+ lsb-release \
+ lsof \
+ lynx \
+ mc \
+ mercurial \
+ nano \
+ nload \
+ nmap \
+ openssl \
+ perl \
+ procps \
+ rar \
+ rsync \
+ screenfetch \
+ smbclient \
+ software-properties-common \
+ subversion \
+ sudo \
+ telnet \
+ tini \
+ tmux \
+ tree \
+ unrar \
+ unrar-free \
+ unzip \
+ util-linux \
+ uuid-runtime \
+ wget \
+ zip
+
+RUN apt-key adv --keyserver keyserver.ubuntu.com --refresh-keys
+RUN apt-key list | grep "expired: " | sed -ne 's|pub .*/\([^ ]*\) .*|\1|gp' | xargs -n1 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys
+
+RUN update-ca-certificates --fresh
+
+##################################################################
+# update locales
+##################################################################
+RUN locale-gen
+
+##################################################################
+# Install p4client
+##################################################################
+RUN mkdir -p ${P4_BIN_DIR}
+ADD ${P4_DOWNLOAD_URL} ${P4_BIN_DIR}
+RUN chmod +x ${P4_BIN_DIR}/p4
+ENV PATH="${P4_BIN_DIR}:${PATH}"
+
+# Update internal p4 binary to new
+RUN rm -rfv /opt/perforce/bin/p4 && \
+ ln -sfv ${P4_BIN_DIR}/p4 /opt/perforce/bin/p4 && \
+ ln -sfv ${P4_BIN_DIR}/p4 /opt/perforce/usr/bin/p4
+
+##################################################################
+# Install 7z official binary
+##################################################################
+RUN mkdir -p ${SZ_BIN_DIR}
+ADD ${SZ_DOWNLOAD_URL} /tmp
+
+RUN tar -xf ${SZ_TEMP} --directory ${SZ_BIN_DIR} && \
+ chmod +x ${SZ_BIN_DIR}/7zz && \
+ chmod +x ${SZ_BIN_DIR}/7zzs && \
+ find ${SZ_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name '7zz' ! -name '7zzs' -exec mv {} ${SZ_BIN_DIR}/.. \;
+
+ENV PATH="${SZ_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo 7zz $(7zz | head -4) && \
+ echo 7z $(7z | head -4) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyGit official binary
+##################################################################
+RUN mkdir -p ${LAZYGIT_BIN_DIR}
+ADD ${LAZYGIT_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYGIT_TEMP} --directory ${LAZYGIT_BIN_DIR} && \
+ chmod +x ${LAZYGIT_BIN_DIR}/lazygit && \
+ find ${LAZYGIT_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazygit' -exec mv {} ${LAZYGIT_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYGIT_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazygit $(lazygit --version) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyCLI official binary
+##################################################################
+RUN mkdir -p ${LAZYCLI_BIN_DIR}
+ADD ${LAZYCLI_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYCLI_TEMP} --directory ${LAZYCLI_BIN_DIR} && \
+ chmod +x ${LAZYCLI_BIN_DIR}/lazycli && \
+ find ${LAZYCLI_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazycli' -exec mv {} ${LAZYCLI_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYCLI_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazycli $(lazycli --version) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyNPM official binary
+##################################################################
+RUN mkdir -p ${LAZYNPM_BIN_DIR}
+ADD ${LAZYNPM_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYNPM_TEMP} --directory ${LAZYNPM_BIN_DIR} && \
+ chmod +x ${LAZYNPM_BIN_DIR}/lazynpm && \
+ find ${LAZYNPM_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazynpm' -exec mv {} ${LAZYNPM_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYNPM_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazynpm $(lazynpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyDocker official binary
+##################################################################
+RUN mkdir -p ${LAZYDOCKER_BIN_DIR}
+ADD ${LAZYDOCKER_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYDOCKER_TEMP} --directory ${LAZYDOCKER_BIN_DIR} && \
+ chmod +x -R ${LAZYDOCKER_BIN_DIR}/lazydocker && \
+ find ${LAZYDOCKER_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazydocker' -exec mv {} ${LAZYDOCKER_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYDOCKER_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazydocker $(lazydocker --version) && \
+ echo "============================================="
+
+##################################################################
+# dumb init
+##################################################################
+RUN mkdir -p ${DUMB_INIT_BIN_DIR}
+ADD ${DUMB_INIT_DOWNLOAD_URL} ${DUMB_INIT_BIN_DIR}
+
+RUN mv -fv ${DUMB_INIT_BIN_DIR}/dumb-init_${DUMB_INIT_VERSION}_x86_64 ${DUMB_INIT_BIN_DIR}/dumb-init && \
+ chmod +x ${DUMB_INIT_BIN_DIR}/dumb-init
+
+ENV PATH="${DUMB_INIT_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo dumb-init $(dumb-init --version) && \
+ echo "============================================="
+
+##################################################################
+# gosu for easy step-down from root
+##################################################################
+RUN mkdir -p ${GOSU_BIN_DIR}
+ADD ${GOSU_DOWNLOAD_URL} ${GOSU_BIN_DIR}
+
+RUN mv -fv ${GOSU_BIN_DIR}/gosu-amd64 ${GOSU_BIN_DIR}/gosu && \
+ chmod +x -R ${GOSU_BIN_DIR}/gosu
+
+ENV PATH="${GOSU_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo gosu $(gosu --version) && \
+ echo "============================================="
+
+##################################################################
+# Maven
+##################################################################
+ENV MAVEN_HOME=${MAVEN_ROOT}
+ENV M2_HOME=${MAVEN_ROOT}
+
+ADD ${MAVEN_LINK} /tmp
+RUN 7zz x ${MAVEN_TEMP} -o${MAVEN_ROOT}
+RUN chmod +x -R ${MAVEN_BIN}
+RUN mvn -v
+
+##################################################################
+# GRADLE
+##################################################################
+ADD ${GRADLE_LINK} /tmp
+RUN 7zz x ${GRADLE_TEMP} -o${GRADLE_ROOT}
+RUN chmod +x -R ${GRADLE_BIN}
+RUN gradle -v
+
+##################################################################
+# kotlin-compiler
+##################################################################
+ADD ${KTC_LINK} /tmp
+RUN 7zz x ${KTC_TEMP} -o${KTC_ROOT}
+RUN chmod +x -R ${KTC_BIN}
+RUN kotlin -version
+
+##################################################################
+# kotlin-native-prebuilt-linux
+##################################################################
+ADD ${KNPL_LINK} /tmp
+RUN tar -xvzf ${KNPL_TEMP} --directory ${KTC_ROOT}
+RUN chmod +x -R ${KNPL_BIN}
+
+##################################################################
+# git fresh binary
+##################################################################
+RUN gpg --keyserver keyserver.ubuntu.com --recv-keys A1715D88E1DF1F24 && \
+ gpg --export --output /etc/apt/keyrings/launchpad-git.gpg A1715D88E1DF1F24 && \
+ rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+ rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list
+COPY etc/apt/sources.list.d/launchpad_git-mainline.list /etc/apt/sources.list.d/launchpad_git-mainline.list
+COPY etc/apt/sources.list.d/launchpad_git-stable.list /etc/apt/sources.list.d/launchpad_git-stable.list
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ git
+
+RUN echo "=============================================" && \
+ echo git $(git --version) && \
+ echo "============================================="
+
+##################################################################
+# git-lfs official binary
+##################################################################
+RUN curl -fsSL https://packagecloud.io/github/git-lfs/gpgkey | gpg --dearmor > /etc/apt/keyrings/github_git-lfs-archive-keyring.gpg && \
+ rm -rfv /etc/apt/sources.list.d/github_git-lfs.list
+COPY etc/apt/sources.list.d/github_git-lfs.list /etc/apt/sources.list.d/github_git-lfs.list
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ git \
+ git-lfs && \
+ git-lfs install --skip-repo
+
+RUN echo "=============================================" && \
+ echo git $(git --version) && \
+ echo git-lfs $(git-lfs --version) && \
+ echo "============================================="
+
+##################################################################
+# gh official binary
+##################################################################
+RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/githubcli-archive-keyring.gpg && \
+ chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg && \
+ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list && \
+ apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ gh
+
+RUN echo "=============================================" && \
+ echo gh $(gh --version) && \
+ echo "============================================="
+
+##################################################################
+# cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /tmp/* && \
+ rm -rfv /var/cache/apt/archives/*.deb
+
+##################################################################
+# update file db
+##################################################################
+RUN updatedb
+
+##################################################################
+# Set original user back
+#################################################################
+# tcuser 1000
+#USER 1000
diff --git a/linux/advanced/teamcity/server/2023.05.6/Makefile b/linux/advanced/teamcity/server/2023.05.6/Makefile
new file mode 100644
index 000000000..06e855b50
--- /dev/null
+++ b/linux/advanced/teamcity/server/2023.05.6/Makefile
@@ -0,0 +1,36 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+ make build
+ make deploy
+ make clean
+
+build:
+ kaniko-wrapper --version
+
+dry:
+ make dry-run
+
+test:
+ make dry-run
+
+dry-run:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:v1.23.2-debug --dry-run
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:v1.23.2-debug
+
+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
diff --git a/linux/advanced/teamcity/server/2023.05.6/README.md b/linux/advanced/teamcity/server/2023.05.6/README.md
new file mode 100644
index 000000000..76aff7f7a
--- /dev/null
+++ b/linux/advanced/teamcity/server/2023.05.6/README.md
@@ -0,0 +1,115 @@
+## TeamCity Server - Powerful Continuous Integration and Continuous Delivery out of the box
+
+[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) server image. The image is suitable for production use and evaluation purposes.
+
+ More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-server.md).
+
+## How to Use This Image
+
+First, pull the image from the Docker Hub Repository
+
+```docker pull jetbrains/teamcity-server```
+
+
+### Linux container
+
+Use the following command to start a container with TeamCity server
+
+
+
+```
+docker run -it --name teamcity-server-instance \
+ -v :/data/teamcity_server/datadir \
+ -v :/opt/teamcity/logs \
+ -p :8111 \
+ jetbrains/teamcity-server
+```
+where
+
+ - **\** is the host machine directory to serve as the [TeamCity Data Directory](https://www.jetbrains.com/help/teamcity/teamcity-data-directory.html) where TeamCity stores project settings and build results. Pass an empty directory for the brand new start. If the mapping is not set, you will lose all the TeamCity settings on the container shutdown.
+ - **\** is the host machine directory to store the TeamCity server logs. The mapping can be omitted, but then the logs will be lost on container shutdown which will make issues investigation impossible.
+
+
+If you need to run a Linux-based container with non-root permissions (for example, when using some open source container application platforms), set the server's internal user identifier explicitly by passing an additional `-u 1000:1000` parameter. Note that after switching to a non-root user you might not be able to perform writing operations on files created under the root user. In this case, run `chown -R 1000:1000 ` to change the ownership of the directory containing these files.
+
+#### Alternative Tomcat configuration
+
+TeamCity has Tomcat J2EE server under the hood, and if you need to provide an alternative configuration for the TomCat, you can use extra parameter
+```
+-v /alternative/path/to/conf:/opt/teamcity/conf
+```
+
+To get a sample of the current contents of the Tomcat's `conf` directory, use the [`docker cp`](https://docs.docker.com/engine/reference/commandline/cp/) command.
+
+### Windows container
+```
+docker run -it --name teamcity-server-instance
+ -v :C:/ProgramData/JetBrains/TeamCity
+ -v :C:/TeamCity/logs
+ -p :8111
+ jetbrains/teamcity-server
+```
+
+See above for **\** and **\** description.
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+### Database
+
+TeamCity stores set of users and build results in an SQL database in addition to the Data Directory.
+By default, the TeamCity server uses an internal database stored on the file system under the data directory. However, production use requires an [external database](https://www.jetbrains.com/help/teamcity/setting-up-an-external-database.html#SettingupanExternalDatabase-DefaultInternalDatabase).
+
+To use the server for production, make sure to review and apply the [recommendations](https://www.jetbrains.com/help/teamcity/installing-and-configuring-the-teamcity-server.html#InstallingandConfiguringtheTeamCityServer-ConfiguringServerforProductionUse).
+
+### Build agents
+
+You will need at least one TeamCity agent to run builds. Check the [`jetbrains/teamcity-agent`](https://hub.docker.com/r/jetbrains/teamcity-agent/) and [`jetbrains/teamcity-minimal-agent`](https://hub.docker.com/r/jetbrains/teamcity-minimal-agent/) images.
+
+## Additional Commands
+
+When you need to pass additional environment variables to the server process, use the regular `-e` option. For example, to pass TEAMCITY_SERVER_MEM_OPTS environment variable, use:
+
+```
+docker run -it --name teamcity-server-instance \
+ -e TEAMCITY_SERVER_MEM_OPTS="-Xmx2g -XX:MaxPermSize=270m -XX:ReservedCodeCacheSize=350m" \
+ -v :/data/teamcity_server/datadir \
+ -v :/opt/teamcity/logs \
+ -p :8111 \
+ jetbrains/teamcity-server
+```
+
+To run the `maintainDB` script (e.g. for the server backup), stop your running container and execute the following command from your host:
+```
+docker run -it --name teamcity-server-instance \
+ -v :/data/teamcity_server/datadir \
+ -v :/opt/teamcity/logs \
+ -p :8111 \
+ jetbrains/teamcity-server \
+ "/opt/teamcity/bin/maintainDB.sh" "backup"
+```
+
+
+Be sure to keep all the local system paths the same with the main server start command.
+
+To change the context of the TeamCity app inside a Tomcat container, pass `-e TEAMCITY_CONTEXT=/context` to the `docker run` command. The default one is `ROOT`, meaning that the server would be available at `http://host/`.
+
+## Upgrading TeamCity
+
+Make sure to check the generic TeamCity [upgrade instructions](https://www.jetbrains.com/help/teamcity/upgrade.html).
+If you made no changes to the container, you can just stop the running container, pull a newer version of the image and the server in it via the usual command.
+If you changed the image, you will need to replicate the changes to the new TeamCity server image. In general, use Docker common sense to perform the upgrade.
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [Minimal Build Agent](https://hub.docker.com/r/jetbrains/teamcity-minimal-agent/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/)
diff --git a/linux/advanced/teamcity/server/2023.05.6/docker-compose.yml b/linux/advanced/teamcity/server/2023.05.6/docker-compose.yml
new file mode 100644
index 000000000..e2fd76f0a
--- /dev/null
+++ b/linux/advanced/teamcity/server/2023.05.6/docker-compose.yml
@@ -0,0 +1,6 @@
+#version: '3'
+services:
+ app:
+ image: "epicmorg/teamcity-server:2023.05.6"
+ build:
+ context: .
diff --git a/linux/advanced/teamcity/server/2023.05.6/etc/apt/apt.conf.d/96-apt-retries b/linux/advanced/teamcity/server/2023.05.6/etc/apt/apt.conf.d/96-apt-retries
new file mode 100644
index 000000000..73262ccc3
--- /dev/null
+++ b/linux/advanced/teamcity/server/2023.05.6/etc/apt/apt.conf.d/96-apt-retries
@@ -0,0 +1 @@
+Acquire::Retries "9";
diff --git a/linux/advanced/teamcity/server/2023.05.6/etc/apt/apt.conf.d/97-allow-cert-exp b/linux/advanced/teamcity/server/2023.05.6/etc/apt/apt.conf.d/97-allow-cert-exp
new file mode 100644
index 000000000..e7ec46810
--- /dev/null
+++ b/linux/advanced/teamcity/server/2023.05.6/etc/apt/apt.conf.d/97-allow-cert-exp
@@ -0,0 +1,2 @@
+Acquire::https::Verify-Peer "false";
+Acquire::https::Verify-Host "false";
diff --git a/linux/advanced/teamcity/server/2023.05.6/etc/apt/apt.conf.d/98-allow-unauthenticated b/linux/advanced/teamcity/server/2023.05.6/etc/apt/apt.conf.d/98-allow-unauthenticated
new file mode 100644
index 000000000..b36cd01c8
--- /dev/null
+++ b/linux/advanced/teamcity/server/2023.05.6/etc/apt/apt.conf.d/98-allow-unauthenticated
@@ -0,0 +1 @@
+APT::Get::AllowUnauthenticated "true";
diff --git a/linux/advanced/teamcity/server/2023.05.6/etc/apt/apt.conf.d/99-no-check-valid-until b/linux/advanced/teamcity/server/2023.05.6/etc/apt/apt.conf.d/99-no-check-valid-until
new file mode 100644
index 000000000..4e6d9209d
--- /dev/null
+++ b/linux/advanced/teamcity/server/2023.05.6/etc/apt/apt.conf.d/99-no-check-valid-until
@@ -0,0 +1 @@
+Acquire::Check-Valid-Until no;
diff --git a/linux/advanced/teamcity/server/2023.05.6/etc/apt/sources.list b/linux/advanced/teamcity/server/2023.05.6/etc/apt/sources.list
new file mode 100644
index 000000000..60d392e99
--- /dev/null
+++ b/linux/advanced/teamcity/server/2023.05.6/etc/apt/sources.list
@@ -0,0 +1,19 @@
+#------------------------------------------------------------------------------#
+# OFFICIAL UBUNTU REPOS #
+#------------------------------------------------------------------------------#
+
+###### Ubuntu Main Repos
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal main multiverse restricted universe
+
+###### Ubuntu Update Repos
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-backports main multiverse restricted universe
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-proposed main multiverse restricted universe
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-security main multiverse restricted universe
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-updates main multiverse restricted universe
+
+###### Ubuntu Sorurce Repos
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-backports main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-proposed main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-security main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-updates main multiverse restricted universe
diff --git a/linux/advanced/teamcity/server/2023.05.6/etc/apt/sources.list.d/github_git-lfs.list b/linux/advanced/teamcity/server/2023.05.6/etc/apt/sources.list.d/github_git-lfs.list
new file mode 100644
index 000000000..c8a9a13b2
--- /dev/null
+++ b/linux/advanced/teamcity/server/2023.05.6/etc/apt/sources.list.d/github_git-lfs.list
@@ -0,0 +1,2 @@
+deb [signed-by=/etc/apt/keyrings/github_git-lfs-archive-keyring.gpg] https://packagecloud.io/github/git-lfs/ubuntu/ focal main
+deb-src [signed-by=/etc/apt/keyrings/github_git-lfs-archive-keyring.gpg] https://packagecloud.io/github/git-lfs/ubuntu/ focal main
diff --git a/linux/advanced/teamcity/server/2023.05.6/etc/apt/sources.list.d/launchpad_git-mainline.list b/linux/advanced/teamcity/server/2023.05.6/etc/apt/sources.list.d/launchpad_git-mainline.list
new file mode 100644
index 000000000..4acedfe8d
--- /dev/null
+++ b/linux/advanced/teamcity/server/2023.05.6/etc/apt/sources.list.d/launchpad_git-mainline.list
@@ -0,0 +1,5 @@
+# mainline
+deb [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/candidate/ubuntu focal main
+deb-src [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/candidate/ubuntu focal main
+
+
diff --git a/linux/advanced/teamcity/server/2023.05.6/etc/apt/sources.list.d/launchpad_git-stable.list b/linux/advanced/teamcity/server/2023.05.6/etc/apt/sources.list.d/launchpad_git-stable.list
new file mode 100644
index 000000000..d2ef6c06d
--- /dev/null
+++ b/linux/advanced/teamcity/server/2023.05.6/etc/apt/sources.list.d/launchpad_git-stable.list
@@ -0,0 +1,3 @@
+# stable
+deb [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/ppa/ubuntu focal main
+deb-src [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/ppa/ubuntu focal main
diff --git a/linux/advanced/teamcity/server/2023.05.6/etc/locale.gen b/linux/advanced/teamcity/server/2023.05.6/etc/locale.gen
new file mode 100644
index 000000000..02f100afa
--- /dev/null
+++ b/linux/advanced/teamcity/server/2023.05.6/etc/locale.gen
@@ -0,0 +1,12 @@
+en_GB.UTF-8 UTF-8
+en_GB ISO-8859-1
+en_GB.ISO-8859-15 ISO-8859-15
+en_US.UTF-8 UTF-8
+en_US ISO-8859-1
+en_US.ISO-8859-15 ISO-8859-15
+ru_RU.UTF-8 UTF-8
+ru_RU.KOI8-R KOI8-R
+ru_RU ISO-8859-5
+ru_RU.CP1251 CP1251
+ru_UA.UTF-8 UTF-8
+ru_UA KOI8-U
diff --git a/linux/advanced/teamcity/server/2023.05.6/etc/locale.gen.full b/linux/advanced/teamcity/server/2023.05.6/etc/locale.gen.full
new file mode 100644
index 000000000..1e7b446a5
--- /dev/null
+++ b/linux/advanced/teamcity/server/2023.05.6/etc/locale.gen.full
@@ -0,0 +1,495 @@
+aa_DJ.UTF-8 UTF-8
+aa_DJ ISO-8859-1
+aa_ER UTF-8
+aa_ER@saaho UTF-8
+aa_ET UTF-8
+af_ZA.UTF-8 UTF-8
+af_ZA ISO-8859-1
+agr_PE UTF-8
+ak_GH UTF-8
+am_ET UTF-8
+an_ES.UTF-8 UTF-8
+an_ES ISO-8859-15
+anp_IN UTF-8
+ar_AE.UTF-8 UTF-8
+ar_AE ISO-8859-6
+ar_BH.UTF-8 UTF-8
+ar_BH ISO-8859-6
+ar_DZ.UTF-8 UTF-8
+ar_DZ ISO-8859-6
+ar_EG.UTF-8 UTF-8
+ar_EG ISO-8859-6
+ar_IN UTF-8
+ar_IQ.UTF-8 UTF-8
+ar_IQ ISO-8859-6
+ar_JO.UTF-8 UTF-8
+ar_JO ISO-8859-6
+ar_KW.UTF-8 UTF-8
+ar_KW ISO-8859-6
+ar_LB.UTF-8 UTF-8
+ar_LB ISO-8859-6
+ar_LY.UTF-8 UTF-8
+ar_LY ISO-8859-6
+ar_MA.UTF-8 UTF-8
+ar_MA ISO-8859-6
+ar_OM.UTF-8 UTF-8
+ar_OM ISO-8859-6
+ar_QA.UTF-8 UTF-8
+ar_QA ISO-8859-6
+ar_SA.UTF-8 UTF-8
+ar_SA ISO-8859-6
+ar_SD.UTF-8 UTF-8
+ar_SD ISO-8859-6
+ar_SS UTF-8
+ar_SY.UTF-8 UTF-8
+ar_SY ISO-8859-6
+ar_TN.UTF-8 UTF-8
+ar_TN ISO-8859-6
+ar_YE.UTF-8 UTF-8
+ar_YE ISO-8859-6
+ayc_PE UTF-8
+az_AZ UTF-8
+az_IR UTF-8
+as_IN UTF-8
+ast_ES.UTF-8 UTF-8
+ast_ES ISO-8859-15
+be_BY.UTF-8 UTF-8
+be_BY CP1251
+be_BY@latin UTF-8
+bem_ZM UTF-8
+ber_DZ UTF-8
+ber_MA UTF-8
+bg_BG.UTF-8 UTF-8
+bg_BG CP1251
+bhb_IN.UTF-8 UTF-8
+bho_IN UTF-8
+bho_NP UTF-8
+bi_VU UTF-8
+bn_BD UTF-8
+bn_IN UTF-8
+bo_CN UTF-8
+bo_IN UTF-8
+br_FR.UTF-8 UTF-8
+br_FR ISO-8859-1
+br_FR@euro ISO-8859-15
+brx_IN UTF-8
+bs_BA.UTF-8 UTF-8
+bs_BA ISO-8859-2
+byn_ER UTF-8
+ca_AD.UTF-8 UTF-8
+ca_AD ISO-8859-15
+ca_ES.UTF-8 UTF-8
+ca_ES ISO-8859-1
+ca_ES@euro ISO-8859-15
+ca_ES@valencia UTF-8
+ca_FR.UTF-8 UTF-8
+ca_FR ISO-8859-15
+ca_IT.UTF-8 UTF-8
+ca_IT ISO-8859-15
+ce_RU UTF-8
+chr_US UTF-8
+cmn_TW UTF-8
+crh_UA UTF-8
+cs_CZ.UTF-8 UTF-8
+cs_CZ ISO-8859-2
+csb_PL UTF-8
+cv_RU UTF-8
+cy_GB.UTF-8 UTF-8
+cy_GB ISO-8859-14
+da_DK.UTF-8 UTF-8
+da_DK ISO-8859-1
+de_AT.UTF-8 UTF-8
+de_AT ISO-8859-1
+de_AT@euro ISO-8859-15
+de_BE.UTF-8 UTF-8
+de_BE ISO-8859-1
+de_BE@euro ISO-8859-15
+de_CH.UTF-8 UTF-8
+de_CH ISO-8859-1
+de_DE.UTF-8 UTF-8
+de_DE ISO-8859-1
+de_DE@euro ISO-8859-15
+de_IT.UTF-8 UTF-8
+de_IT ISO-8859-1
+de_LI.UTF-8 UTF-8
+de_LU.UTF-8 UTF-8
+de_LU ISO-8859-1
+de_LU@euro ISO-8859-15
+doi_IN UTF-8
+dsb_DE UTF-8
+dv_MV UTF-8
+dz_BT UTF-8
+el_GR.UTF-8 UTF-8
+el_GR ISO-8859-7
+el_GR@euro ISO-8859-7
+el_CY.UTF-8 UTF-8
+el_CY ISO-8859-7
+en_AG UTF-8
+en_AU.UTF-8 UTF-8
+en_AU ISO-8859-1
+en_BW.UTF-8 UTF-8
+en_BW ISO-8859-1
+en_CA.UTF-8 UTF-8
+en_CA ISO-8859-1
+en_DK.UTF-8 UTF-8
+en_DK.ISO-8859-15 ISO-8859-15
+en_DK ISO-8859-1
+en_GB.UTF-8 UTF-8
+en_GB ISO-8859-1
+en_GB.ISO-8859-15 ISO-8859-15
+en_HK.UTF-8 UTF-8
+en_HK ISO-8859-1
+en_IE.UTF-8 UTF-8
+en_IE ISO-8859-1
+en_IE@euro ISO-8859-15
+en_IL UTF-8
+en_IN UTF-8
+en_NG UTF-8
+en_NZ.UTF-8 UTF-8
+en_NZ ISO-8859-1
+en_PH.UTF-8 UTF-8
+en_PH ISO-8859-1
+en_SC.UTF-8 UTF-8
+en_SG.UTF-8 UTF-8
+en_SG ISO-8859-1
+en_US.UTF-8 UTF-8
+en_US ISO-8859-1
+en_US.ISO-8859-15 ISO-8859-15
+en_ZA.UTF-8 UTF-8
+en_ZA ISO-8859-1
+en_ZM UTF-8
+en_ZW.UTF-8 UTF-8
+en_ZW ISO-8859-1
+eo UTF-8
+es_AR.UTF-8 UTF-8
+es_AR ISO-8859-1
+es_BO.UTF-8 UTF-8
+es_BO ISO-8859-1
+es_CL.UTF-8 UTF-8
+es_CL ISO-8859-1
+es_CO.UTF-8 UTF-8
+es_CO ISO-8859-1
+es_CR.UTF-8 UTF-8
+es_CR ISO-8859-1
+es_CU UTF-8
+es_DO.UTF-8 UTF-8
+es_DO ISO-8859-1
+es_EC.UTF-8 UTF-8
+es_EC ISO-8859-1
+es_ES.UTF-8 UTF-8
+es_ES ISO-8859-1
+es_ES@euro ISO-8859-15
+es_GT.UTF-8 UTF-8
+es_GT ISO-8859-1
+es_HN.UTF-8 UTF-8
+es_HN ISO-8859-1
+es_MX.UTF-8 UTF-8
+es_MX ISO-8859-1
+es_NI.UTF-8 UTF-8
+es_NI ISO-8859-1
+es_PA.UTF-8 UTF-8
+es_PA ISO-8859-1
+es_PE.UTF-8 UTF-8
+es_PE ISO-8859-1
+es_PR.UTF-8 UTF-8
+es_PR ISO-8859-1
+es_PY.UTF-8 UTF-8
+es_PY ISO-8859-1
+es_SV.UTF-8 UTF-8
+es_SV ISO-8859-1
+es_US.UTF-8 UTF-8
+es_US ISO-8859-1
+es_UY.UTF-8 UTF-8
+es_UY ISO-8859-1
+es_VE.UTF-8 UTF-8
+es_VE ISO-8859-1
+et_EE.UTF-8 UTF-8
+et_EE ISO-8859-1
+et_EE.ISO-8859-15 ISO-8859-15
+eu_ES.UTF-8 UTF-8
+eu_ES ISO-8859-1
+eu_ES@euro ISO-8859-15
+eu_FR.UTF-8 UTF-8
+eu_FR ISO-8859-1
+eu_FR@euro ISO-8859-15
+fa_IR UTF-8
+ff_SN UTF-8
+fi_FI.UTF-8 UTF-8
+fi_FI ISO-8859-1
+fi_FI@euro ISO-8859-15
+fil_PH UTF-8
+fo_FO.UTF-8 UTF-8
+fo_FO ISO-8859-1
+fr_BE.UTF-8 UTF-8
+fr_BE ISO-8859-1
+fr_BE@euro ISO-8859-15
+fr_CA.UTF-8 UTF-8
+fr_CA ISO-8859-1
+fr_CH.UTF-8 UTF-8
+fr_CH ISO-8859-1
+fr_FR.UTF-8 UTF-8
+fr_FR ISO-8859-1
+fr_FR@euro ISO-8859-15
+fr_LU.UTF-8 UTF-8
+fr_LU ISO-8859-1
+fr_LU@euro ISO-8859-15
+fur_IT UTF-8
+fy_NL UTF-8
+fy_DE UTF-8
+ga_IE.UTF-8 UTF-8
+ga_IE ISO-8859-1
+ga_IE@euro ISO-8859-15
+gd_GB.UTF-8 UTF-8
+gd_GB ISO-8859-15
+gez_ER UTF-8
+gez_ER@abegede UTF-8
+gez_ET UTF-8
+gez_ET@abegede UTF-8
+gl_ES.UTF-8 UTF-8
+gl_ES ISO-8859-1
+gl_ES@euro ISO-8859-15
+gu_IN UTF-8
+gv_GB.UTF-8 UTF-8
+gv_GB ISO-8859-1
+ha_NG UTF-8
+hak_TW UTF-8
+he_IL.UTF-8 UTF-8
+he_IL ISO-8859-8
+hi_IN UTF-8
+hif_FJ UTF-8
+hne_IN UTF-8
+hr_HR.UTF-8 UTF-8
+hr_HR ISO-8859-2
+hsb_DE.UTF-8 UTF-8
+hsb_DE ISO-8859-2
+ht_HT UTF-8
+hu_HU.UTF-8 UTF-8
+hu_HU ISO-8859-2
+hy_AM UTF-8
+hy_AM.ARMSCII-8 ARMSCII-8
+ia_FR UTF-8
+id_ID.UTF-8 UTF-8
+id_ID ISO-8859-1
+ig_NG UTF-8
+ik_CA UTF-8
+is_IS.UTF-8 UTF-8
+is_IS ISO-8859-1
+it_CH.UTF-8 UTF-8
+it_CH ISO-8859-1
+it_IT.UTF-8 UTF-8
+it_IT ISO-8859-1
+it_IT@euro ISO-8859-15
+iu_CA UTF-8
+ja_JP.UTF-8 UTF-8
+ja_JP.EUC-JP EUC-JP
+ka_GE.UTF-8 UTF-8
+ka_GE GEORGIAN-PS
+kab_DZ UTF-8
+kk_KZ.UTF-8 UTF-8
+kk_KZ PT154
+kk_KZ.RK1048 RK1048
+kl_GL.UTF-8 UTF-8
+kl_GL ISO-8859-1
+km_KH UTF-8
+kn_IN UTF-8
+ko_KR.UTF-8 UTF-8
+ko_KR.EUC-KR EUC-KR
+kok_IN UTF-8
+ks_IN UTF-8
+ks_IN@devanagari UTF-8
+ku_TR.UTF-8 UTF-8
+ku_TR ISO-8859-9
+kw_GB.UTF-8 UTF-8
+kw_GB ISO-8859-1
+ky_KG UTF-8
+lb_LU UTF-8
+lg_UG.UTF-8 UTF-8
+lg_UG ISO-8859-10
+li_BE UTF-8
+li_NL UTF-8
+lij_IT UTF-8
+ln_CD UTF-8
+lo_LA UTF-8
+lt_LT.UTF-8 UTF-8
+lt_LT ISO-8859-13
+lv_LV.UTF-8 UTF-8
+lv_LV ISO-8859-13
+lzh_TW UTF-8
+mag_IN UTF-8
+mai_IN UTF-8
+mai_NP UTF-8
+mfe_MU UTF-8
+mg_MG.UTF-8 UTF-8
+mg_MG ISO-8859-15
+mhr_RU UTF-8
+mi_NZ.UTF-8 UTF-8
+mi_NZ ISO-8859-13
+miq_NI UTF-8
+mjw_IN UTF-8
+mk_MK.UTF-8 UTF-8
+mk_MK ISO-8859-5
+ml_IN UTF-8
+mn_MN UTF-8
+mni_IN UTF-8
+mr_IN UTF-8
+ms_MY.UTF-8 UTF-8
+ms_MY ISO-8859-1
+mt_MT.UTF-8 UTF-8
+mt_MT ISO-8859-3
+my_MM UTF-8
+nan_TW UTF-8
+nan_TW@latin UTF-8
+nb_NO.UTF-8 UTF-8
+nb_NO ISO-8859-1
+nds_DE UTF-8
+nds_NL UTF-8
+ne_NP UTF-8
+nhn_MX UTF-8
+niu_NU UTF-8
+niu_NZ UTF-8
+nl_AW UTF-8
+nl_BE.UTF-8 UTF-8
+nl_BE ISO-8859-1
+nl_BE@euro ISO-8859-15
+nl_NL.UTF-8 UTF-8
+nl_NL ISO-8859-1
+nl_NL@euro ISO-8859-15
+nn_NO.UTF-8 UTF-8
+nn_NO ISO-8859-1
+nr_ZA UTF-8
+nso_ZA UTF-8
+oc_FR.UTF-8 UTF-8
+oc_FR ISO-8859-1
+om_ET UTF-8
+om_KE.UTF-8 UTF-8
+om_KE ISO-8859-1
+or_IN UTF-8
+os_RU UTF-8
+pa_IN UTF-8
+pa_PK UTF-8
+pap_AW UTF-8
+pap_CW UTF-8
+pl_PL.UTF-8 UTF-8
+pl_PL ISO-8859-2
+ps_AF UTF-8
+pt_BR.UTF-8 UTF-8
+pt_BR ISO-8859-1
+pt_PT.UTF-8 UTF-8
+pt_PT ISO-8859-1
+pt_PT@euro ISO-8859-15
+quz_PE UTF-8
+raj_IN UTF-8
+ro_RO.UTF-8 UTF-8
+ro_RO ISO-8859-2
+ru_RU.UTF-8 UTF-8
+ru_RU.KOI8-R KOI8-R
+ru_RU ISO-8859-5
+ru_RU.CP1251 CP1251
+ru_UA.UTF-8 UTF-8
+ru_UA KOI8-U
+rw_RW UTF-8
+sa_IN UTF-8
+sah_RU UTF-8
+sat_IN UTF-8
+sc_IT UTF-8
+sd_IN UTF-8
+sd_IN@devanagari UTF-8
+se_NO UTF-8
+sgs_LT UTF-8
+shn_MM UTF-8
+shs_CA UTF-8
+si_LK UTF-8
+trixie_ET UTF-8
+sk_SK.UTF-8 UTF-8
+sk_SK ISO-8859-2
+sl_SI.UTF-8 UTF-8
+sl_SI ISO-8859-2
+sm_WS UTF-8
+so_DJ.UTF-8 UTF-8
+so_DJ ISO-8859-1
+so_ET UTF-8
+so_KE.UTF-8 UTF-8
+so_KE ISO-8859-1
+so_SO.UTF-8 UTF-8
+so_SO ISO-8859-1
+sq_AL.UTF-8 UTF-8
+sq_AL ISO-8859-1
+sq_MK UTF-8
+sr_ME UTF-8
+sr_RS UTF-8
+sr_RS@latin UTF-8
+ss_ZA UTF-8
+st_ZA.UTF-8 UTF-8
+st_ZA ISO-8859-1
+sv_FI.UTF-8 UTF-8
+sv_FI ISO-8859-1
+sv_FI@euro ISO-8859-15
+sv_SE.UTF-8 UTF-8
+sv_SE ISO-8859-1
+sv_SE.ISO-8859-15 ISO-8859-15
+sw_KE UTF-8
+sw_TZ UTF-8
+szl_PL UTF-8
+ta_IN UTF-8
+ta_LK UTF-8
+tcy_IN.UTF-8 UTF-8
+te_IN UTF-8
+tg_TJ.UTF-8 UTF-8
+tg_TJ KOI8-T
+th_TH.UTF-8 UTF-8
+th_TH TIS-620
+the_NP UTF-8
+ti_ER UTF-8
+ti_ET UTF-8
+tig_ER UTF-8
+tk_TM UTF-8
+tl_PH.UTF-8 UTF-8
+tl_PH ISO-8859-1
+tn_ZA UTF-8
+to_TO UTF-8
+tpi_PG UTF-8
+tr_CY.UTF-8 UTF-8
+tr_CY ISO-8859-9
+tr_TR.UTF-8 UTF-8
+tr_TR ISO-8859-9
+ts_ZA UTF-8
+tt_RU UTF-8
+tt_RU@iqtelif UTF-8
+ug_CN UTF-8
+uk_UA.UTF-8 UTF-8
+uk_UA KOI8-U
+unm_US UTF-8
+ur_IN UTF-8
+ur_PK UTF-8
+uz_UZ.UTF-8 UTF-8
+uz_UZ ISO-8859-1
+uz_UZ@cyrillic UTF-8
+ve_ZA UTF-8
+vi_VN UTF-8
+wa_BE.UTF-8 UTF-8
+wa_BE ISO-8859-1
+wa_BE@euro ISO-8859-15
+wae_CH UTF-8
+wal_ET UTF-8
+wo_SN UTF-8
+xh_ZA.UTF-8 UTF-8
+xh_ZA ISO-8859-1
+yi_US.UTF-8 UTF-8
+yi_US CP1255
+yo_NG UTF-8
+yue_HK UTF-8
+yuw_PG UTF-8
+zh_CN.UTF-8 UTF-8
+zh_CN.GB18030 GB18030
+zh_CN.GBK GBK
+zh_CN GB2312
+zh_HK.UTF-8 UTF-8
+zh_HK BIG5-HKSCS
+zh_SG.UTF-8 UTF-8
+zh_SG.GBK GBK
+zh_SG GB2312
+zh_TW.UTF-8 UTF-8
+zh_TW.EUC-TW EUC-TW
+zh_TW BIG5
+zu_ZA.UTF-8 UTF-8
+zu_ZA ISO-8859-1
diff --git a/linux/advanced/teamcity/server/2023.05.6/usr/local/epicmorg/README.md b/linux/advanced/teamcity/server/2023.05.6/usr/local/epicmorg/README.md
new file mode 100644
index 000000000..83071e9ca
--- /dev/null
+++ b/linux/advanced/teamcity/server/2023.05.6/usr/local/epicmorg/README.md
@@ -0,0 +1,48 @@
+# About
+Hello. This folder contains sub-folders with custom tools such as `gosu`, `dumb-init` and etc.
+
+Some child images could install to this folder custom compilled products. Example: `nginx`, `php`, etc.
+
+All directories that contains binaryes (``) will be added to `$PATH`.
+
+# Structure
+pattern: `/usr/local/epicmorg///<..some data and files..>`
+
+example:
+```
+/usr/local/epicmorg/
+|-- 7z
+| `-- 7z2407
+| |-- History.txt
+| |-- License.txt
+| |-- MANUAL
+| |-- bin
+| `-- readme.txt
+|-- dumb-init
+| `-- 1.2.5
+| `-- bin
+|-- gosu
+| `-- 1.17
+| `-- bin
+|-- lazycli
+| `-- 0.1.15
+| `-- bin
+|-- lazydocker
+| `-- 0.23.3
+| |-- LICENSE
+| |-- README.md
+| `-- bin
+|-- lazygit
+| `-- 0.42.0
+| |-- LICENSE
+| |-- README.md
+| `-- bin
+|-- lazynpm
+| `-- 0.1.4
+| |-- LICENSE
+| |-- README.md
+| `-- bin
+`-- p4
+ `-- r23.2
+ `-- bin
+```
diff --git a/linux/advanced/teamcity/server/2023.05.6/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt b/linux/advanced/teamcity/server/2023.05.6/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
new file mode 100644
index 000000000..4c143a21f
--- /dev/null
+++ b/linux/advanced/teamcity/server/2023.05.6/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFwjCCA6qgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAxMjEwNDE1WhcNMzIwMjI3MjEwNDE1WjBwMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMSAwHgYDVQQDDBdSdXNzaWFuIFRydXN0ZWQgUm9v
+dCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMfFOZ8pUAL3+r2n
+qqE0Zp52selXsKGFYoG0GM5bwz1bSFtCt+AZQMhkWQheI3poZAToYJu69pHLKS6Q
+XBiwBC1cvzYmUYKMYZC7jE5YhEU2bSL0mX7NaMxMDmH2/NwuOVRj8OImVa5s1F4U
+zn4Kv3PFlDBjjSjXKVY9kmjUBsXQrIHeaqmUIsPIlNWUnimXS0I0abExqkbdrXbX
+YwCOXhOO2pDUx3ckmJlCMUGacUTnylyQW2VsJIyIGA8V0xzdaeUXg0VZ6ZmNUr5Y
+Ber/EAOLPb8NYpsAhJe2mXjMB/J9HNsoFMBFJ0lLOT/+dQvjbdRZoOT8eqJpWnVD
+U+QL/qEZnz57N88OWM3rabJkRNdU/Z7x5SFIM9FrqtN8xewsiBWBI0K6XFuOBOTD
+4V08o4TzJ8+Ccq5XlCUW2L48pZNCYuBDfBh7FxkB7qDgGDiaftEkZZfApRg2E+M9
+G8wkNKTPLDc4wH0FDTijhgxR3Y4PiS1HL2Zhw7bD3CbslmEGgfnnZojNkJtcLeBH
+BLa52/dSwNU4WWLubaYSiAmA9IUMX1/RpfpxOxd4Ykmhz97oFbUaDJFipIggx5sX
+ePAlkTdWnv+RWBxlJwMQ25oEHmRguNYf4Zr/Rxr9cS93Y+mdXIZaBEE0KS2iLRqa
+OiWBki9IMQU4phqPOBAaG7A+eP8PAgMBAAGjZjBkMB0GA1UdDgQWBBTh0YHlzlpf
+BKrS6badZrHF+qwshzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzAS
+BgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
+AAOCAgEAALIY1wkilt/urfEVM5vKzr6utOeDWCUczmWX/RX4ljpRdgF+5fAIS4vH
+tmXkqpSCOVeWUrJV9QvZn6L227ZwuE15cWi8DCDal3Ue90WgAJJZMfTshN4OI8cq
+W9E4EG9wglbEtMnObHlms8F3CHmrw3k6KmUkWGoa+/ENmcVl68u/cMRl1JbW2bM+
+/3A+SAg2c6iPDlehczKx2oa95QW0SkPPWGuNA/CE8CpyANIhu9XFrj3RQ3EqeRcS
+AQQod1RNuHpfETLU/A2gMmvn/w/sx7TB3W5BPs6rprOA37tutPq9u6FTZOcG1Oqj
+C/B7yTqgI7rbyvox7DEXoX7rIiEqyNNUguTk/u3SZ4VXE2kmxdmSh3TQvybfbnXV
+4JbCZVaqiZraqc7oZMnRoWrXRG3ztbnbes/9qhRGI7PqXqeKJBztxRTEVj8ONs1d
+WN5szTwaPIvhkhO3CO5ErU2rVdUr89wKpNXbBODFKRtgxUT70YpmJ46VVaqdAhOZ
+D9EUUn4YaeLaS8AjSF/h7UkjOibNc4qVDiPP+rkehFWM66PVnP1Msh93tc+taIfC
+EYVMxjh8zNbFuoc7fzvvrFILLe7ifvEIUqSVIC/AzplM/Jxw7buXFeGP1qVCBEHq
+391d/9RAfaZ12zkwFsl+IKwE/OZxW8AHa9i1p4GO0YSNuczzEm4=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/linux/advanced/teamcity/server/2023.05.6/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt b/linux/advanced/teamcity/server/2023.05.6/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
new file mode 100644
index 000000000..2e3f8285d
--- /dev/null
+++ b/linux/advanced/teamcity/server/2023.05.6/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
@@ -0,0 +1,41 @@
+-----BEGIN CERTIFICATE-----
+MIIHQjCCBSqgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAyMTEyNTE5WhcNMjcwMzA2MTEyNTE5WjBvMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMR8wHQYDVQQDDBZSdXNzaWFuIFRydXN0ZWQgU3Vi
+IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9YPqBKOk19NFymrE
+wehzrhBEgT2atLezpduB24mQ7CiOa/HVpFCDRZzdxqlh8drku408/tTmWzlNH/br
+HuQhZ/miWKOf35lpKzjyBd6TPM23uAfJvEOQ2/dnKGGJbsUo1/udKSvxQwVHpVv3
+S80OlluKfhWPDEXQpgyFqIzPoxIQTLZ0deirZwMVHarZ5u8HqHetRuAtmO2ZDGQn
+vVOJYAjls+Hiueq7Lj7Oce7CQsTwVZeP+XQx28PAaEZ3y6sQEt6rL06ddpSdoTMp
+BnCqTbxW+eWMyjkIn6t9GBtUV45yB1EkHNnj2Ex4GwCiN9T84QQjKSr+8f0psGrZ
+vPbCbQAwNFJjisLixnjlGPLKa5vOmNwIh/LAyUW5DjpkCx004LPDuqPpFsKXNKpa
+L2Dm6uc0x4Jo5m+gUTVORB6hOSzWnWDj2GWfomLzzyjG81DRGFBpco/O93zecsIN
+3SL2Ysjpq1zdoS01CMYxie//9zWvYwzI25/OZigtnpCIrcd2j1Y6dMUFQAzAtHE+
+qsXflSL8HIS+IJEFIQobLlYhHkoE3avgNx5jlu+OLYe0dF0Ykx1PGNjbwqvTX37R
+Cn32NMjlotW2QcGEZhDKj+3urZizp5xdTPZitA+aEjZM/Ni71VOdiOP0igbw6asZ
+2fxdozZ1TnSSYNYvNATwthNmZysCAwEAAaOCAeUwggHhMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTR4XENCy2BTm6KSo9MI7NM
+XqtpCzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzCBxwYIKwYBBQUH
+AQEEgbowgbcwOwYIKwYBBQUHMAKGL2h0dHA6Ly9yb3N0ZWxlY29tLnJ1L2NkcC9y
+b290Y2Ffc3NsX3JzYTIwMjIuY3J0MDsGCCsGAQUFBzAChi9odHRwOi8vY29tcGFu
+eS5ydC5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNydDA7BggrBgEFBQcwAoYv
+aHR0cDovL3JlZXN0ci1wa2kucnUvY2RwL3Jvb3RjYV9zc2xfcnNhMjAyMi5jcnQw
+gbAGA1UdHwSBqDCBpTA1oDOgMYYvaHR0cDovL3Jvc3RlbGVjb20ucnUvY2RwL3Jv
+b3RjYV9zc2xfcnNhMjAyMi5jcmwwNaAzoDGGL2h0dHA6Ly9jb21wYW55LnJ0LnJ1
+L2NkcC9yb290Y2Ffc3NsX3JzYTIwMjIuY3JsMDWgM6Axhi9odHRwOi8vcmVlc3Ry
+LXBraS5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNybDANBgkqhkiG9w0BAQsF
+AAOCAgEARBVzZls79AdiSCpar15dA5Hr/rrT4WbrOfzlpI+xrLeRPrUG6eUWIW4v
+Sui1yx3iqGLCjPcKb+HOTwoRMbI6ytP/ndp3TlYua2advYBEhSvjs+4vDZNwXr/D
+anbwIWdurZmViQRBDFebpkvnIvru/RpWud/5r624Wp8voZMRtj/cm6aI9LtvBfT9
+cfzhOaexI/99c14dyiuk1+6QhdwKaCRTc1mdfNQmnfWNRbfWhWBlK3h4GGE9JK33
+Gk8ZS8DMrkdAh0xby4xAQ/mSWAfWrBmfzlOqGyoB1U47WTOeqNbWkkoAP2ys94+s
+Jg4NTkiDVtXRF6nr6fYi0bSOvOFg0IQrMXO2Y8gyg9ARdPJwKtvWX8VPADCYMiWH
+h4n8bZokIrImVKLDQKHY4jCsND2HHdJfnrdL2YJw1qFskNO4cSNmZydw0Wkgjv9k
+F+KxqrDKlB8MZu2Hclph6v/CZ0fQ9YuE8/lsHZ0Qc2HyiSMnvjgK5fDc3TD4fa8F
+E8gMNurM+kV8PT8LNIM+4Zs+LKEV8nqRWBaxkIVJGekkVKO8xDBOG/aN62AZKHOe
+GcyIdu7yNMMRihGVZCYr8rYiJoKiOzDqOkPkLOPdhtVlgnhowzHDxMHND/E2WA5p
+ZHuNM/m0TXt2wTTPL7JH2YC0gPz/BvvSzjksgzU5rLbRyUKQkgU=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/linux/advanced/teamcity/server/2024.03.3/Dockerfile b/linux/advanced/teamcity/server/2024.03.3/Dockerfile
new file mode 100644
index 000000000..f2fb90ab2
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.03.3/Dockerfile
@@ -0,0 +1,429 @@
+FROM jetbrains/teamcity-server:2024.03.3
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+LABEL org.opencontainers.image.vendor="EpicMorg DevTeam, developer@epicm.org"
+LABEL org.opencontainers.image.authors="STAM, kasthack, Aleks-Z"
+LABEL org.opencontainers.image.source="https://github.com/EpicMorg/docker"
+LABEL org.opencontainers.image.url="https://github.com/EpicMorg/docker"
+LABEL donate.crypto.TON="EQDvHXRK-K1ZieJhgTD9JZQk7xCnWzRbctYnUkWq1lZq1bUg"
+LABEL donate.crypto.ETH="0x26a8443a694f08cdfec966aa6fd72c45068753ec"
+LABEL donate.crypto.BTC="bc1querz8ug9asjmsuy6yn4a94a2athgprnu7e5zq2"
+LABEL donate.crypto.LTC="ltc1qtwwacq8f0n76fer2y83wxu540hddnmf8cdrlvg"
+LABEL donate.crypto.NVC="4SbMynYETyhmKdggu8f38ULU6yQKiJPuo6"
+LABEL donate.crypto.DOGE="DHyfE1CZzWtyaQiaMmv6g4KvXVQRUgrYE6"
+LABEL donate.crypto.PPC="pQWArPzYoLppNe7ew3QPfto1k1eq66BYUB"
+LABEL donate.crypto.RVN="R9t2LKeLhDSZBKNgUzSDZAossA3UqNvbV3"
+LABEL donate.crypto.ZEC="t1KRMMmwMSZth8vJcd2ZHtPEFKTQ74yVixE"
+LABEL donate.crypto.XMR="884PqZ1gDjWW7fKxtbaeRoBeSh9EGZbkqUyLriWmuKbwLZrAJdYUs4wQxoVfEJoW7LBhdQMP9cFhZQpJr6xvg7esHLdCbb1"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+# Set temp user for advanced setup
+#################################################################
+USER root
+
+##################################################################
+# Create Base directory for various soft
+##################################################################
+ENV EMG_LOCAL_BASE_DIR=/usr/local/share/epicmorg
+RUN mkdir -p ${EMG_LOCAL_BASE_DIR}
+COPY usr/local/epicmorg ${EMG_LOCAL_BASE_DIR}
+
+##################################################################
+# prepare system
+##################################################################
+RUN for i in $(seq 1 8); do mkdir -p "/usr/share/man/man${i}"; done
+RUN mkdir -p /etc/apt/keyrings
+
+##################################################################
+# ARGuments
+##################################################################
+ARG P4_VERSION=r24.1
+ARG P4_BIN_DIR=${EMG_LOCAL_BASE_DIR}/p4/${P4_VERSION}/bin
+ARG P4_DOWNLOAD_URL=https://filehost.perforce.com/perforce/${P4_VERSION}/bin.linux26x86_64/p4
+
+ARG SZ_VERSION=7z2407
+ARG SZ_BIN_DIR=${EMG_LOCAL_BASE_DIR}/7z/${SZ_VERSION}/bin
+ARG SZ_DOWNLOAD_URL=https://www.7-zip.org/a/${SZ_VERSION}-linux-x64.tar.xz
+ARG SZ_TEMP=/tmp/${SZ_VERSION}-linux-x64.tar.xz
+
+ARG LAZYGIT_VERSION=0.42.0
+ARG LAZYGIT_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazygit/${LAZYGIT_VERSION}/bin
+ARG LAZYGIT_DOWNLOAD_URL=https://github.com/jesseduffield/lazygit/releases/download/v${LAZYGIT_VERSION}/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz
+ARG LAZYGIT_TEMP=/tmp/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz
+
+ARG LAZYCLI_VERSION=0.1.15
+ARG LAZYCLI_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazycli/${LAZYCLI_VERSION}/bin
+ARG LAZYCLI_DOWNLOAD_URL=https://github.com/jesseduffield/lazycli/releases/download/v${LAZYCLI_VERSION}/lazycli-linux-x64.tar.gz
+ARG LAZYCLI_TEMP=/tmp/lazycli-linux-x64.tar.gz
+
+ARG LAZYNPM_VERSION=0.1.4
+ARG LAZYNPM_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazynpm/${LAZYNPM_VERSION}/bin
+ARG LAZYNPM_DOWNLOAD_URL=https://github.com/jesseduffield/lazynpm/releases/download/v${LAZYNPM_VERSION}/lazynpm_${LAZYNPM_VERSION}_Linux_x86_64.tar.gz
+ARG LAZYNPM_TEMP=/tmp/lazynpm_${LAZYNPM_VERSION}_Linux_x86_64.tar.gz
+
+ARG LAZYDOCKER_VERSION=0.23.3
+ARG LAZYDOCKER_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazydocker/${LAZYDOCKER_VERSION}/bin
+ARG LAZYDOCKER_DOWNLOAD_URL=https://github.com/jesseduffield/lazydocker/releases/download/v${LAZYDOCKER_VERSION}/lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz
+ARG LAZYDOCKER_TEMP=/tmp/lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz
+
+ARG DUMB_INIT_VERSION=1.2.5
+ARG DUMB_INIT_BIN_DIR=${EMG_LOCAL_BASE_DIR}/dumb-init/${DUMB_INIT_VERSION}/bin
+ARG DUMB_INIT_DOWNLOAD_URL=https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_x86_64
+
+ARG GOSU_VERSION=1.17
+ARG GOSU_BIN_DIR=${EMG_LOCAL_BASE_DIR}/gosu/${GOSU_VERSION}/bin
+ARG GOSU_DOWNLOAD_URL=https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64
+
+##################################################################
+# Additional settings
+##################################################################
+ENV MAVEN_VERSION=3.9.8
+ENV MAVEN_LINK=https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.zip
+ENV MAVEN_ROOT=${EMG_LOCAL_BASE_DIR}/maven/${MAVEN_VERSION}
+ENV MAVEN_PATH=${MAVEN_ROOT}/apache-maven-${MAVEN_VERSION}
+ENV MAVEN_BIN=${MAVEN_PATH}/bin
+ARG MAVEN_TEMP=/tmp/apache-maven-${MAVEN_VERSION}-bin.zip
+
+ENV GRADLE_VERSION=8.8
+ENV GRADLE_LINK=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip
+ENV GRADLE_ROOT=${EMG_LOCAL_BASE_DIR}/gradle/${GRADLE_VERSION}
+ENV GRADLE_PATH=${GRADLE_ROOT}/gradle-${GRADLE_VERSION}
+ENV GRADLE_BIN=${GRADLE_PATH}/bin
+ARG GRADLE_TEMP=/tmp/gradle-${GRADLE_VERSION}-all.zip
+
+ENV KTC_VERSION=2.0.0
+ENV KTC_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KTC_VERSION}/kotlin-compiler-${KTC_VERSION}.zip
+ARG KTC_TEMP=/tmp/kotlin-compiler-${KTC_VERSION}.zip
+ENV KTC_ROOT=${EMG_LOCAL_BASE_DIR}/kotlin/${KTC_VERSION}
+ENV KTC_PATH=${KTC_ROOT}/kotlinc
+ENV KTC_BIN=${KTC_PATH}/bin
+
+ENV KNPL_VERSION=${KTC_VERSION}
+ENV KNPL_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KNPL_VERSION}/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}.tar.gz
+ARG KNPL_TEMP=/tmp/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}.tar.gz
+ENV KNPL_ROOT=${EMG_LOCAL_BASE_DIR}/kotlin/${KNPL_VERSION}
+ENV KNPL_PATH=${KNPL_ROOT}/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}
+ENV KNPL_BIN=${KNPL_PATH}/bin
+
+RUN mkdir -p ${MAVEN_PATH} ${KTC_PATH} ${KNPL_PATH} ${GRADLE_PATH}
+ENV PATH=${PATH}:${MAVEN_BIN}:${GRADLE_BIN}:${KTC_BIN}:${KNPL_BIN}
+
+##################################################################
+# update lists
+##################################################################
+RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
+ apt-get update
+
+##################################################################
+# sources list
+##################################################################
+RUN rm -rfv /etc/apt/sources.list
+RUN rm -rfv /etc/apt/sources.list.d/*.sources
+RUN rm -rfv /etc/locale.gen
+
+COPY etc/apt/apt.conf.d/99-no-check-valid-until /etc/apt/apt.conf.d/99-no-check-valid-until
+COPY etc/apt/apt.conf.d/98-allow-unauthenticated /etc/apt/apt.conf.d/98-allow-unauthenticated
+COPY etc/apt/apt.conf.d/97-allow-cert-exp /etc/apt/apt.conf.d/97-allow-cert-exp
+COPY etc/apt/apt.conf.d/96-apt-retries /etc/apt/apt.conf.d/96-apt-retries
+COPY etc/apt/sources.list /etc/apt/sources.list
+COPY etc/locale.gen /etc/locale.gen
+COPY usr/local/share/ca-certificates /usr/local/share/ca-certificates
+
+RUN apt-get update && \
+ apt-get upgrade -y && \
+ apt-get dist-upgrade -y
+
+##################################################################
+# installing utils
+##################################################################
+RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ apt-transport-https \
+ apt-utils \
+ aptitude \
+ bash \
+ binutils \
+ ca-certificates \
+ cmatrix \
+ cmatrix-xfont \
+ console-cyrillic \
+ cron \
+ curl \
+ git \
+ gnupg \
+ gnupg1 \
+ gnupg2 \
+ htop \
+ iftop \
+ iputils-ping \
+ jq \
+ kmod \
+ locales \
+ locate \
+ lsb-release \
+ lsof \
+ lynx \
+ mc \
+ mercurial \
+ nano \
+ nload \
+ nmap \
+ openssl \
+ perl \
+ procps \
+ rar \
+ rsync \
+ screenfetch \
+ smbclient \
+ software-properties-common \
+ subversion \
+ sudo \
+ telnet \
+ tini \
+ tmux \
+ tree \
+ unrar \
+ unrar-free \
+ unzip \
+ util-linux \
+ uuid-runtime \
+ wget \
+ zip
+
+RUN apt-key adv --keyserver keyserver.ubuntu.com --refresh-keys
+RUN apt-key list | grep "expired: " | sed -ne 's|pub .*/\([^ ]*\) .*|\1|gp' | xargs -n1 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys
+
+RUN update-ca-certificates --fresh
+
+##################################################################
+# update locales
+##################################################################
+RUN locale-gen
+
+##################################################################
+# Install p4client
+##################################################################
+RUN mkdir -p ${P4_BIN_DIR}
+ADD ${P4_DOWNLOAD_URL} ${P4_BIN_DIR}
+RUN chmod +x ${P4_BIN_DIR}/p4
+ENV PATH="${P4_BIN_DIR}:${PATH}"
+
+# Update internal p4 binary to new
+RUN rm -rfv /opt/perforce/bin/p4 && \
+ ln -sfv ${P4_BIN_DIR}/p4 /opt/perforce/bin/p4 && \
+ ln -sfv ${P4_BIN_DIR}/p4 /opt/perforce/usr/bin/p4
+
+##################################################################
+# Install 7z official binary
+##################################################################
+RUN mkdir -p ${SZ_BIN_DIR}
+ADD ${SZ_DOWNLOAD_URL} /tmp
+
+RUN tar -xf ${SZ_TEMP} --directory ${SZ_BIN_DIR} && \
+ chmod +x ${SZ_BIN_DIR}/7zz && \
+ chmod +x ${SZ_BIN_DIR}/7zzs && \
+ find ${SZ_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name '7zz' ! -name '7zzs' -exec mv {} ${SZ_BIN_DIR}/.. \;
+
+ENV PATH="${SZ_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo 7zz $(7zz | head -4) && \
+ echo 7z $(7z | head -4) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyGit official binary
+##################################################################
+RUN mkdir -p ${LAZYGIT_BIN_DIR}
+ADD ${LAZYGIT_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYGIT_TEMP} --directory ${LAZYGIT_BIN_DIR} && \
+ chmod +x ${LAZYGIT_BIN_DIR}/lazygit && \
+ find ${LAZYGIT_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazygit' -exec mv {} ${LAZYGIT_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYGIT_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazygit $(lazygit --version) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyCLI official binary
+##################################################################
+RUN mkdir -p ${LAZYCLI_BIN_DIR}
+ADD ${LAZYCLI_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYCLI_TEMP} --directory ${LAZYCLI_BIN_DIR} && \
+ chmod +x ${LAZYCLI_BIN_DIR}/lazycli && \
+ find ${LAZYCLI_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazycli' -exec mv {} ${LAZYCLI_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYCLI_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazycli $(lazycli --version) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyNPM official binary
+##################################################################
+RUN mkdir -p ${LAZYNPM_BIN_DIR}
+ADD ${LAZYNPM_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYNPM_TEMP} --directory ${LAZYNPM_BIN_DIR} && \
+ chmod +x ${LAZYNPM_BIN_DIR}/lazynpm && \
+ find ${LAZYNPM_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazynpm' -exec mv {} ${LAZYNPM_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYNPM_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazynpm $(lazynpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyDocker official binary
+##################################################################
+RUN mkdir -p ${LAZYDOCKER_BIN_DIR}
+ADD ${LAZYDOCKER_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYDOCKER_TEMP} --directory ${LAZYDOCKER_BIN_DIR} && \
+ chmod +x -R ${LAZYDOCKER_BIN_DIR}/lazydocker && \
+ find ${LAZYDOCKER_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazydocker' -exec mv {} ${LAZYDOCKER_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYDOCKER_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazydocker $(lazydocker --version) && \
+ echo "============================================="
+
+##################################################################
+# dumb init
+##################################################################
+RUN mkdir -p ${DUMB_INIT_BIN_DIR}
+ADD ${DUMB_INIT_DOWNLOAD_URL} ${DUMB_INIT_BIN_DIR}
+
+RUN mv -fv ${DUMB_INIT_BIN_DIR}/dumb-init_${DUMB_INIT_VERSION}_x86_64 ${DUMB_INIT_BIN_DIR}/dumb-init && \
+ chmod +x ${DUMB_INIT_BIN_DIR}/dumb-init
+
+ENV PATH="${DUMB_INIT_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo dumb-init $(dumb-init --version) && \
+ echo "============================================="
+
+##################################################################
+# gosu for easy step-down from root
+##################################################################
+RUN mkdir -p ${GOSU_BIN_DIR}
+ADD ${GOSU_DOWNLOAD_URL} ${GOSU_BIN_DIR}
+
+RUN mv -fv ${GOSU_BIN_DIR}/gosu-amd64 ${GOSU_BIN_DIR}/gosu && \
+ chmod +x -R ${GOSU_BIN_DIR}/gosu
+
+ENV PATH="${GOSU_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo gosu $(gosu --version) && \
+ echo "============================================="
+
+##################################################################
+# Maven
+##################################################################
+ENV MAVEN_HOME=${MAVEN_ROOT}
+ENV M2_HOME=${MAVEN_ROOT}
+
+ADD ${MAVEN_LINK} /tmp
+RUN 7zz x ${MAVEN_TEMP} -o${MAVEN_ROOT}
+RUN chmod +x -R ${MAVEN_BIN}
+RUN mvn -v
+
+##################################################################
+# GRADLE
+##################################################################
+ADD ${GRADLE_LINK} /tmp
+RUN 7zz x ${GRADLE_TEMP} -o${GRADLE_ROOT}
+RUN chmod +x -R ${GRADLE_BIN}
+RUN gradle -v
+
+##################################################################
+# kotlin-compiler
+##################################################################
+ADD ${KTC_LINK} /tmp
+RUN 7zz x ${KTC_TEMP} -o${KTC_ROOT}
+RUN chmod +x -R ${KTC_BIN}
+RUN kotlin -version
+
+##################################################################
+# kotlin-native-prebuilt-linux
+##################################################################
+ADD ${KNPL_LINK} /tmp
+RUN tar -xvzf ${KNPL_TEMP} --directory ${KTC_ROOT}
+RUN chmod +x -R ${KNPL_BIN}
+
+##################################################################
+# git fresh binary
+##################################################################
+RUN gpg --keyserver keyserver.ubuntu.com --recv-keys A1715D88E1DF1F24 && \
+ gpg --export --output /etc/apt/keyrings/launchpad-git.gpg A1715D88E1DF1F24 && \
+ rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+ rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list
+COPY etc/apt/sources.list.d/launchpad_git-mainline.list /etc/apt/sources.list.d/launchpad_git-mainline.list
+COPY etc/apt/sources.list.d/launchpad_git-stable.list /etc/apt/sources.list.d/launchpad_git-stable.list
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ git
+
+RUN echo "=============================================" && \
+ echo git $(git --version) && \
+ echo "============================================="
+
+##################################################################
+# git-lfs official binary
+##################################################################
+RUN curl -fsSL https://packagecloud.io/github/git-lfs/gpgkey | gpg --dearmor > /etc/apt/keyrings/github_git-lfs-archive-keyring.gpg && \
+ rm -rfv /etc/apt/sources.list.d/github_git-lfs.list
+COPY etc/apt/sources.list.d/github_git-lfs.list /etc/apt/sources.list.d/github_git-lfs.list
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ git \
+ git-lfs && \
+ git-lfs install --skip-repo
+
+RUN echo "=============================================" && \
+ echo git $(git --version) && \
+ echo git-lfs $(git-lfs --version) && \
+ echo "============================================="
+
+##################################################################
+# gh official binary
+##################################################################
+RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/githubcli-archive-keyring.gpg && \
+ chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg && \
+ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list && \
+ apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ gh
+
+RUN echo "=============================================" && \
+ echo gh $(gh --version) && \
+ echo "============================================="
+
+##################################################################
+# cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /tmp/* && \
+ rm -rfv /var/cache/apt/archives/*.deb
+
+##################################################################
+# update file db
+##################################################################
+RUN updatedb
+
+##################################################################
+# Set original user back
+#################################################################
+# tcuser 1000
+#USER 1000
diff --git a/linux/advanced/teamcity/server/2024.03.3/Makefile b/linux/advanced/teamcity/server/2024.03.3/Makefile
new file mode 100644
index 000000000..06e855b50
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.03.3/Makefile
@@ -0,0 +1,36 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+ make build
+ make deploy
+ make clean
+
+build:
+ kaniko-wrapper --version
+
+dry:
+ make dry-run
+
+test:
+ make dry-run
+
+dry-run:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:v1.23.2-debug --dry-run
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:v1.23.2-debug
+
+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
diff --git a/linux/advanced/teamcity/server/2024.03.3/README.md b/linux/advanced/teamcity/server/2024.03.3/README.md
new file mode 100644
index 000000000..76aff7f7a
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.03.3/README.md
@@ -0,0 +1,115 @@
+## TeamCity Server - Powerful Continuous Integration and Continuous Delivery out of the box
+
+[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) server image. The image is suitable for production use and evaluation purposes.
+
+ More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-server.md).
+
+## How to Use This Image
+
+First, pull the image from the Docker Hub Repository
+
+```docker pull jetbrains/teamcity-server```
+
+
+### Linux container
+
+Use the following command to start a container with TeamCity server
+
+
+
+```
+docker run -it --name teamcity-server-instance \
+ -v :/data/teamcity_server/datadir \
+ -v :/opt/teamcity/logs \
+ -p :8111 \
+ jetbrains/teamcity-server
+```
+where
+
+ - **\** is the host machine directory to serve as the [TeamCity Data Directory](https://www.jetbrains.com/help/teamcity/teamcity-data-directory.html) where TeamCity stores project settings and build results. Pass an empty directory for the brand new start. If the mapping is not set, you will lose all the TeamCity settings on the container shutdown.
+ - **\** is the host machine directory to store the TeamCity server logs. The mapping can be omitted, but then the logs will be lost on container shutdown which will make issues investigation impossible.
+
+
+If you need to run a Linux-based container with non-root permissions (for example, when using some open source container application platforms), set the server's internal user identifier explicitly by passing an additional `-u 1000:1000` parameter. Note that after switching to a non-root user you might not be able to perform writing operations on files created under the root user. In this case, run `chown -R 1000:1000 ` to change the ownership of the directory containing these files.
+
+#### Alternative Tomcat configuration
+
+TeamCity has Tomcat J2EE server under the hood, and if you need to provide an alternative configuration for the TomCat, you can use extra parameter
+```
+-v /alternative/path/to/conf:/opt/teamcity/conf
+```
+
+To get a sample of the current contents of the Tomcat's `conf` directory, use the [`docker cp`](https://docs.docker.com/engine/reference/commandline/cp/) command.
+
+### Windows container
+```
+docker run -it --name teamcity-server-instance
+ -v :C:/ProgramData/JetBrains/TeamCity
+ -v :C:/TeamCity/logs
+ -p :8111
+ jetbrains/teamcity-server
+```
+
+See above for **\** and **\** description.
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+### Database
+
+TeamCity stores set of users and build results in an SQL database in addition to the Data Directory.
+By default, the TeamCity server uses an internal database stored on the file system under the data directory. However, production use requires an [external database](https://www.jetbrains.com/help/teamcity/setting-up-an-external-database.html#SettingupanExternalDatabase-DefaultInternalDatabase).
+
+To use the server for production, make sure to review and apply the [recommendations](https://www.jetbrains.com/help/teamcity/installing-and-configuring-the-teamcity-server.html#InstallingandConfiguringtheTeamCityServer-ConfiguringServerforProductionUse).
+
+### Build agents
+
+You will need at least one TeamCity agent to run builds. Check the [`jetbrains/teamcity-agent`](https://hub.docker.com/r/jetbrains/teamcity-agent/) and [`jetbrains/teamcity-minimal-agent`](https://hub.docker.com/r/jetbrains/teamcity-minimal-agent/) images.
+
+## Additional Commands
+
+When you need to pass additional environment variables to the server process, use the regular `-e` option. For example, to pass TEAMCITY_SERVER_MEM_OPTS environment variable, use:
+
+```
+docker run -it --name teamcity-server-instance \
+ -e TEAMCITY_SERVER_MEM_OPTS="-Xmx2g -XX:MaxPermSize=270m -XX:ReservedCodeCacheSize=350m" \
+ -v :/data/teamcity_server/datadir \
+ -v :/opt/teamcity/logs \
+ -p :8111 \
+ jetbrains/teamcity-server
+```
+
+To run the `maintainDB` script (e.g. for the server backup), stop your running container and execute the following command from your host:
+```
+docker run -it --name teamcity-server-instance \
+ -v :/data/teamcity_server/datadir \
+ -v :/opt/teamcity/logs \
+ -p :8111 \
+ jetbrains/teamcity-server \
+ "/opt/teamcity/bin/maintainDB.sh" "backup"
+```
+
+
+Be sure to keep all the local system paths the same with the main server start command.
+
+To change the context of the TeamCity app inside a Tomcat container, pass `-e TEAMCITY_CONTEXT=/context` to the `docker run` command. The default one is `ROOT`, meaning that the server would be available at `http://host/`.
+
+## Upgrading TeamCity
+
+Make sure to check the generic TeamCity [upgrade instructions](https://www.jetbrains.com/help/teamcity/upgrade.html).
+If you made no changes to the container, you can just stop the running container, pull a newer version of the image and the server in it via the usual command.
+If you changed the image, you will need to replicate the changes to the new TeamCity server image. In general, use Docker common sense to perform the upgrade.
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [Minimal Build Agent](https://hub.docker.com/r/jetbrains/teamcity-minimal-agent/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/)
diff --git a/linux/advanced/teamcity/server/2024.03.3/docker-compose.yml b/linux/advanced/teamcity/server/2024.03.3/docker-compose.yml
new file mode 100644
index 000000000..e48e4b5af
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.03.3/docker-compose.yml
@@ -0,0 +1,6 @@
+#version: '3'
+services:
+ app:
+ image: "epicmorg/teamcity-server:2024.03.3"
+ build:
+ context: .
diff --git a/linux/advanced/teamcity/server/2024.03.3/etc/apt/apt.conf.d/96-apt-retries b/linux/advanced/teamcity/server/2024.03.3/etc/apt/apt.conf.d/96-apt-retries
new file mode 100644
index 000000000..73262ccc3
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.03.3/etc/apt/apt.conf.d/96-apt-retries
@@ -0,0 +1 @@
+Acquire::Retries "9";
diff --git a/linux/advanced/teamcity/server/2024.03.3/etc/apt/apt.conf.d/97-allow-cert-exp b/linux/advanced/teamcity/server/2024.03.3/etc/apt/apt.conf.d/97-allow-cert-exp
new file mode 100644
index 000000000..e7ec46810
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.03.3/etc/apt/apt.conf.d/97-allow-cert-exp
@@ -0,0 +1,2 @@
+Acquire::https::Verify-Peer "false";
+Acquire::https::Verify-Host "false";
diff --git a/linux/advanced/teamcity/server/2024.03.3/etc/apt/apt.conf.d/98-allow-unauthenticated b/linux/advanced/teamcity/server/2024.03.3/etc/apt/apt.conf.d/98-allow-unauthenticated
new file mode 100644
index 000000000..b36cd01c8
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.03.3/etc/apt/apt.conf.d/98-allow-unauthenticated
@@ -0,0 +1 @@
+APT::Get::AllowUnauthenticated "true";
diff --git a/linux/advanced/teamcity/server/2024.03.3/etc/apt/apt.conf.d/99-no-check-valid-until b/linux/advanced/teamcity/server/2024.03.3/etc/apt/apt.conf.d/99-no-check-valid-until
new file mode 100644
index 000000000..4e6d9209d
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.03.3/etc/apt/apt.conf.d/99-no-check-valid-until
@@ -0,0 +1 @@
+Acquire::Check-Valid-Until no;
diff --git a/linux/advanced/teamcity/server/2024.03.3/etc/apt/sources.list b/linux/advanced/teamcity/server/2024.03.3/etc/apt/sources.list
new file mode 100644
index 000000000..60d392e99
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.03.3/etc/apt/sources.list
@@ -0,0 +1,19 @@
+#------------------------------------------------------------------------------#
+# OFFICIAL UBUNTU REPOS #
+#------------------------------------------------------------------------------#
+
+###### Ubuntu Main Repos
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal main multiverse restricted universe
+
+###### Ubuntu Update Repos
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-backports main multiverse restricted universe
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-proposed main multiverse restricted universe
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-security main multiverse restricted universe
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-updates main multiverse restricted universe
+
+###### Ubuntu Sorurce Repos
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-backports main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-proposed main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-security main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-updates main multiverse restricted universe
diff --git a/linux/advanced/teamcity/server/2024.03.3/etc/apt/sources.list.d/github_git-lfs.list b/linux/advanced/teamcity/server/2024.03.3/etc/apt/sources.list.d/github_git-lfs.list
new file mode 100644
index 000000000..c8a9a13b2
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.03.3/etc/apt/sources.list.d/github_git-lfs.list
@@ -0,0 +1,2 @@
+deb [signed-by=/etc/apt/keyrings/github_git-lfs-archive-keyring.gpg] https://packagecloud.io/github/git-lfs/ubuntu/ focal main
+deb-src [signed-by=/etc/apt/keyrings/github_git-lfs-archive-keyring.gpg] https://packagecloud.io/github/git-lfs/ubuntu/ focal main
diff --git a/linux/advanced/teamcity/server/2024.03.3/etc/apt/sources.list.d/launchpad_git-mainline.list b/linux/advanced/teamcity/server/2024.03.3/etc/apt/sources.list.d/launchpad_git-mainline.list
new file mode 100644
index 000000000..4acedfe8d
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.03.3/etc/apt/sources.list.d/launchpad_git-mainline.list
@@ -0,0 +1,5 @@
+# mainline
+deb [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/candidate/ubuntu focal main
+deb-src [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/candidate/ubuntu focal main
+
+
diff --git a/linux/advanced/teamcity/server/2024.03.3/etc/apt/sources.list.d/launchpad_git-stable.list b/linux/advanced/teamcity/server/2024.03.3/etc/apt/sources.list.d/launchpad_git-stable.list
new file mode 100644
index 000000000..d2ef6c06d
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.03.3/etc/apt/sources.list.d/launchpad_git-stable.list
@@ -0,0 +1,3 @@
+# stable
+deb [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/ppa/ubuntu focal main
+deb-src [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/ppa/ubuntu focal main
diff --git a/linux/advanced/teamcity/server/2024.03.3/etc/locale.gen b/linux/advanced/teamcity/server/2024.03.3/etc/locale.gen
new file mode 100644
index 000000000..02f100afa
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.03.3/etc/locale.gen
@@ -0,0 +1,12 @@
+en_GB.UTF-8 UTF-8
+en_GB ISO-8859-1
+en_GB.ISO-8859-15 ISO-8859-15
+en_US.UTF-8 UTF-8
+en_US ISO-8859-1
+en_US.ISO-8859-15 ISO-8859-15
+ru_RU.UTF-8 UTF-8
+ru_RU.KOI8-R KOI8-R
+ru_RU ISO-8859-5
+ru_RU.CP1251 CP1251
+ru_UA.UTF-8 UTF-8
+ru_UA KOI8-U
diff --git a/linux/advanced/teamcity/server/2024.03.3/etc/locale.gen.full b/linux/advanced/teamcity/server/2024.03.3/etc/locale.gen.full
new file mode 100644
index 000000000..1e7b446a5
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.03.3/etc/locale.gen.full
@@ -0,0 +1,495 @@
+aa_DJ.UTF-8 UTF-8
+aa_DJ ISO-8859-1
+aa_ER UTF-8
+aa_ER@saaho UTF-8
+aa_ET UTF-8
+af_ZA.UTF-8 UTF-8
+af_ZA ISO-8859-1
+agr_PE UTF-8
+ak_GH UTF-8
+am_ET UTF-8
+an_ES.UTF-8 UTF-8
+an_ES ISO-8859-15
+anp_IN UTF-8
+ar_AE.UTF-8 UTF-8
+ar_AE ISO-8859-6
+ar_BH.UTF-8 UTF-8
+ar_BH ISO-8859-6
+ar_DZ.UTF-8 UTF-8
+ar_DZ ISO-8859-6
+ar_EG.UTF-8 UTF-8
+ar_EG ISO-8859-6
+ar_IN UTF-8
+ar_IQ.UTF-8 UTF-8
+ar_IQ ISO-8859-6
+ar_JO.UTF-8 UTF-8
+ar_JO ISO-8859-6
+ar_KW.UTF-8 UTF-8
+ar_KW ISO-8859-6
+ar_LB.UTF-8 UTF-8
+ar_LB ISO-8859-6
+ar_LY.UTF-8 UTF-8
+ar_LY ISO-8859-6
+ar_MA.UTF-8 UTF-8
+ar_MA ISO-8859-6
+ar_OM.UTF-8 UTF-8
+ar_OM ISO-8859-6
+ar_QA.UTF-8 UTF-8
+ar_QA ISO-8859-6
+ar_SA.UTF-8 UTF-8
+ar_SA ISO-8859-6
+ar_SD.UTF-8 UTF-8
+ar_SD ISO-8859-6
+ar_SS UTF-8
+ar_SY.UTF-8 UTF-8
+ar_SY ISO-8859-6
+ar_TN.UTF-8 UTF-8
+ar_TN ISO-8859-6
+ar_YE.UTF-8 UTF-8
+ar_YE ISO-8859-6
+ayc_PE UTF-8
+az_AZ UTF-8
+az_IR UTF-8
+as_IN UTF-8
+ast_ES.UTF-8 UTF-8
+ast_ES ISO-8859-15
+be_BY.UTF-8 UTF-8
+be_BY CP1251
+be_BY@latin UTF-8
+bem_ZM UTF-8
+ber_DZ UTF-8
+ber_MA UTF-8
+bg_BG.UTF-8 UTF-8
+bg_BG CP1251
+bhb_IN.UTF-8 UTF-8
+bho_IN UTF-8
+bho_NP UTF-8
+bi_VU UTF-8
+bn_BD UTF-8
+bn_IN UTF-8
+bo_CN UTF-8
+bo_IN UTF-8
+br_FR.UTF-8 UTF-8
+br_FR ISO-8859-1
+br_FR@euro ISO-8859-15
+brx_IN UTF-8
+bs_BA.UTF-8 UTF-8
+bs_BA ISO-8859-2
+byn_ER UTF-8
+ca_AD.UTF-8 UTF-8
+ca_AD ISO-8859-15
+ca_ES.UTF-8 UTF-8
+ca_ES ISO-8859-1
+ca_ES@euro ISO-8859-15
+ca_ES@valencia UTF-8
+ca_FR.UTF-8 UTF-8
+ca_FR ISO-8859-15
+ca_IT.UTF-8 UTF-8
+ca_IT ISO-8859-15
+ce_RU UTF-8
+chr_US UTF-8
+cmn_TW UTF-8
+crh_UA UTF-8
+cs_CZ.UTF-8 UTF-8
+cs_CZ ISO-8859-2
+csb_PL UTF-8
+cv_RU UTF-8
+cy_GB.UTF-8 UTF-8
+cy_GB ISO-8859-14
+da_DK.UTF-8 UTF-8
+da_DK ISO-8859-1
+de_AT.UTF-8 UTF-8
+de_AT ISO-8859-1
+de_AT@euro ISO-8859-15
+de_BE.UTF-8 UTF-8
+de_BE ISO-8859-1
+de_BE@euro ISO-8859-15
+de_CH.UTF-8 UTF-8
+de_CH ISO-8859-1
+de_DE.UTF-8 UTF-8
+de_DE ISO-8859-1
+de_DE@euro ISO-8859-15
+de_IT.UTF-8 UTF-8
+de_IT ISO-8859-1
+de_LI.UTF-8 UTF-8
+de_LU.UTF-8 UTF-8
+de_LU ISO-8859-1
+de_LU@euro ISO-8859-15
+doi_IN UTF-8
+dsb_DE UTF-8
+dv_MV UTF-8
+dz_BT UTF-8
+el_GR.UTF-8 UTF-8
+el_GR ISO-8859-7
+el_GR@euro ISO-8859-7
+el_CY.UTF-8 UTF-8
+el_CY ISO-8859-7
+en_AG UTF-8
+en_AU.UTF-8 UTF-8
+en_AU ISO-8859-1
+en_BW.UTF-8 UTF-8
+en_BW ISO-8859-1
+en_CA.UTF-8 UTF-8
+en_CA ISO-8859-1
+en_DK.UTF-8 UTF-8
+en_DK.ISO-8859-15 ISO-8859-15
+en_DK ISO-8859-1
+en_GB.UTF-8 UTF-8
+en_GB ISO-8859-1
+en_GB.ISO-8859-15 ISO-8859-15
+en_HK.UTF-8 UTF-8
+en_HK ISO-8859-1
+en_IE.UTF-8 UTF-8
+en_IE ISO-8859-1
+en_IE@euro ISO-8859-15
+en_IL UTF-8
+en_IN UTF-8
+en_NG UTF-8
+en_NZ.UTF-8 UTF-8
+en_NZ ISO-8859-1
+en_PH.UTF-8 UTF-8
+en_PH ISO-8859-1
+en_SC.UTF-8 UTF-8
+en_SG.UTF-8 UTF-8
+en_SG ISO-8859-1
+en_US.UTF-8 UTF-8
+en_US ISO-8859-1
+en_US.ISO-8859-15 ISO-8859-15
+en_ZA.UTF-8 UTF-8
+en_ZA ISO-8859-1
+en_ZM UTF-8
+en_ZW.UTF-8 UTF-8
+en_ZW ISO-8859-1
+eo UTF-8
+es_AR.UTF-8 UTF-8
+es_AR ISO-8859-1
+es_BO.UTF-8 UTF-8
+es_BO ISO-8859-1
+es_CL.UTF-8 UTF-8
+es_CL ISO-8859-1
+es_CO.UTF-8 UTF-8
+es_CO ISO-8859-1
+es_CR.UTF-8 UTF-8
+es_CR ISO-8859-1
+es_CU UTF-8
+es_DO.UTF-8 UTF-8
+es_DO ISO-8859-1
+es_EC.UTF-8 UTF-8
+es_EC ISO-8859-1
+es_ES.UTF-8 UTF-8
+es_ES ISO-8859-1
+es_ES@euro ISO-8859-15
+es_GT.UTF-8 UTF-8
+es_GT ISO-8859-1
+es_HN.UTF-8 UTF-8
+es_HN ISO-8859-1
+es_MX.UTF-8 UTF-8
+es_MX ISO-8859-1
+es_NI.UTF-8 UTF-8
+es_NI ISO-8859-1
+es_PA.UTF-8 UTF-8
+es_PA ISO-8859-1
+es_PE.UTF-8 UTF-8
+es_PE ISO-8859-1
+es_PR.UTF-8 UTF-8
+es_PR ISO-8859-1
+es_PY.UTF-8 UTF-8
+es_PY ISO-8859-1
+es_SV.UTF-8 UTF-8
+es_SV ISO-8859-1
+es_US.UTF-8 UTF-8
+es_US ISO-8859-1
+es_UY.UTF-8 UTF-8
+es_UY ISO-8859-1
+es_VE.UTF-8 UTF-8
+es_VE ISO-8859-1
+et_EE.UTF-8 UTF-8
+et_EE ISO-8859-1
+et_EE.ISO-8859-15 ISO-8859-15
+eu_ES.UTF-8 UTF-8
+eu_ES ISO-8859-1
+eu_ES@euro ISO-8859-15
+eu_FR.UTF-8 UTF-8
+eu_FR ISO-8859-1
+eu_FR@euro ISO-8859-15
+fa_IR UTF-8
+ff_SN UTF-8
+fi_FI.UTF-8 UTF-8
+fi_FI ISO-8859-1
+fi_FI@euro ISO-8859-15
+fil_PH UTF-8
+fo_FO.UTF-8 UTF-8
+fo_FO ISO-8859-1
+fr_BE.UTF-8 UTF-8
+fr_BE ISO-8859-1
+fr_BE@euro ISO-8859-15
+fr_CA.UTF-8 UTF-8
+fr_CA ISO-8859-1
+fr_CH.UTF-8 UTF-8
+fr_CH ISO-8859-1
+fr_FR.UTF-8 UTF-8
+fr_FR ISO-8859-1
+fr_FR@euro ISO-8859-15
+fr_LU.UTF-8 UTF-8
+fr_LU ISO-8859-1
+fr_LU@euro ISO-8859-15
+fur_IT UTF-8
+fy_NL UTF-8
+fy_DE UTF-8
+ga_IE.UTF-8 UTF-8
+ga_IE ISO-8859-1
+ga_IE@euro ISO-8859-15
+gd_GB.UTF-8 UTF-8
+gd_GB ISO-8859-15
+gez_ER UTF-8
+gez_ER@abegede UTF-8
+gez_ET UTF-8
+gez_ET@abegede UTF-8
+gl_ES.UTF-8 UTF-8
+gl_ES ISO-8859-1
+gl_ES@euro ISO-8859-15
+gu_IN UTF-8
+gv_GB.UTF-8 UTF-8
+gv_GB ISO-8859-1
+ha_NG UTF-8
+hak_TW UTF-8
+he_IL.UTF-8 UTF-8
+he_IL ISO-8859-8
+hi_IN UTF-8
+hif_FJ UTF-8
+hne_IN UTF-8
+hr_HR.UTF-8 UTF-8
+hr_HR ISO-8859-2
+hsb_DE.UTF-8 UTF-8
+hsb_DE ISO-8859-2
+ht_HT UTF-8
+hu_HU.UTF-8 UTF-8
+hu_HU ISO-8859-2
+hy_AM UTF-8
+hy_AM.ARMSCII-8 ARMSCII-8
+ia_FR UTF-8
+id_ID.UTF-8 UTF-8
+id_ID ISO-8859-1
+ig_NG UTF-8
+ik_CA UTF-8
+is_IS.UTF-8 UTF-8
+is_IS ISO-8859-1
+it_CH.UTF-8 UTF-8
+it_CH ISO-8859-1
+it_IT.UTF-8 UTF-8
+it_IT ISO-8859-1
+it_IT@euro ISO-8859-15
+iu_CA UTF-8
+ja_JP.UTF-8 UTF-8
+ja_JP.EUC-JP EUC-JP
+ka_GE.UTF-8 UTF-8
+ka_GE GEORGIAN-PS
+kab_DZ UTF-8
+kk_KZ.UTF-8 UTF-8
+kk_KZ PT154
+kk_KZ.RK1048 RK1048
+kl_GL.UTF-8 UTF-8
+kl_GL ISO-8859-1
+km_KH UTF-8
+kn_IN UTF-8
+ko_KR.UTF-8 UTF-8
+ko_KR.EUC-KR EUC-KR
+kok_IN UTF-8
+ks_IN UTF-8
+ks_IN@devanagari UTF-8
+ku_TR.UTF-8 UTF-8
+ku_TR ISO-8859-9
+kw_GB.UTF-8 UTF-8
+kw_GB ISO-8859-1
+ky_KG UTF-8
+lb_LU UTF-8
+lg_UG.UTF-8 UTF-8
+lg_UG ISO-8859-10
+li_BE UTF-8
+li_NL UTF-8
+lij_IT UTF-8
+ln_CD UTF-8
+lo_LA UTF-8
+lt_LT.UTF-8 UTF-8
+lt_LT ISO-8859-13
+lv_LV.UTF-8 UTF-8
+lv_LV ISO-8859-13
+lzh_TW UTF-8
+mag_IN UTF-8
+mai_IN UTF-8
+mai_NP UTF-8
+mfe_MU UTF-8
+mg_MG.UTF-8 UTF-8
+mg_MG ISO-8859-15
+mhr_RU UTF-8
+mi_NZ.UTF-8 UTF-8
+mi_NZ ISO-8859-13
+miq_NI UTF-8
+mjw_IN UTF-8
+mk_MK.UTF-8 UTF-8
+mk_MK ISO-8859-5
+ml_IN UTF-8
+mn_MN UTF-8
+mni_IN UTF-8
+mr_IN UTF-8
+ms_MY.UTF-8 UTF-8
+ms_MY ISO-8859-1
+mt_MT.UTF-8 UTF-8
+mt_MT ISO-8859-3
+my_MM UTF-8
+nan_TW UTF-8
+nan_TW@latin UTF-8
+nb_NO.UTF-8 UTF-8
+nb_NO ISO-8859-1
+nds_DE UTF-8
+nds_NL UTF-8
+ne_NP UTF-8
+nhn_MX UTF-8
+niu_NU UTF-8
+niu_NZ UTF-8
+nl_AW UTF-8
+nl_BE.UTF-8 UTF-8
+nl_BE ISO-8859-1
+nl_BE@euro ISO-8859-15
+nl_NL.UTF-8 UTF-8
+nl_NL ISO-8859-1
+nl_NL@euro ISO-8859-15
+nn_NO.UTF-8 UTF-8
+nn_NO ISO-8859-1
+nr_ZA UTF-8
+nso_ZA UTF-8
+oc_FR.UTF-8 UTF-8
+oc_FR ISO-8859-1
+om_ET UTF-8
+om_KE.UTF-8 UTF-8
+om_KE ISO-8859-1
+or_IN UTF-8
+os_RU UTF-8
+pa_IN UTF-8
+pa_PK UTF-8
+pap_AW UTF-8
+pap_CW UTF-8
+pl_PL.UTF-8 UTF-8
+pl_PL ISO-8859-2
+ps_AF UTF-8
+pt_BR.UTF-8 UTF-8
+pt_BR ISO-8859-1
+pt_PT.UTF-8 UTF-8
+pt_PT ISO-8859-1
+pt_PT@euro ISO-8859-15
+quz_PE UTF-8
+raj_IN UTF-8
+ro_RO.UTF-8 UTF-8
+ro_RO ISO-8859-2
+ru_RU.UTF-8 UTF-8
+ru_RU.KOI8-R KOI8-R
+ru_RU ISO-8859-5
+ru_RU.CP1251 CP1251
+ru_UA.UTF-8 UTF-8
+ru_UA KOI8-U
+rw_RW UTF-8
+sa_IN UTF-8
+sah_RU UTF-8
+sat_IN UTF-8
+sc_IT UTF-8
+sd_IN UTF-8
+sd_IN@devanagari UTF-8
+se_NO UTF-8
+sgs_LT UTF-8
+shn_MM UTF-8
+shs_CA UTF-8
+si_LK UTF-8
+trixie_ET UTF-8
+sk_SK.UTF-8 UTF-8
+sk_SK ISO-8859-2
+sl_SI.UTF-8 UTF-8
+sl_SI ISO-8859-2
+sm_WS UTF-8
+so_DJ.UTF-8 UTF-8
+so_DJ ISO-8859-1
+so_ET UTF-8
+so_KE.UTF-8 UTF-8
+so_KE ISO-8859-1
+so_SO.UTF-8 UTF-8
+so_SO ISO-8859-1
+sq_AL.UTF-8 UTF-8
+sq_AL ISO-8859-1
+sq_MK UTF-8
+sr_ME UTF-8
+sr_RS UTF-8
+sr_RS@latin UTF-8
+ss_ZA UTF-8
+st_ZA.UTF-8 UTF-8
+st_ZA ISO-8859-1
+sv_FI.UTF-8 UTF-8
+sv_FI ISO-8859-1
+sv_FI@euro ISO-8859-15
+sv_SE.UTF-8 UTF-8
+sv_SE ISO-8859-1
+sv_SE.ISO-8859-15 ISO-8859-15
+sw_KE UTF-8
+sw_TZ UTF-8
+szl_PL UTF-8
+ta_IN UTF-8
+ta_LK UTF-8
+tcy_IN.UTF-8 UTF-8
+te_IN UTF-8
+tg_TJ.UTF-8 UTF-8
+tg_TJ KOI8-T
+th_TH.UTF-8 UTF-8
+th_TH TIS-620
+the_NP UTF-8
+ti_ER UTF-8
+ti_ET UTF-8
+tig_ER UTF-8
+tk_TM UTF-8
+tl_PH.UTF-8 UTF-8
+tl_PH ISO-8859-1
+tn_ZA UTF-8
+to_TO UTF-8
+tpi_PG UTF-8
+tr_CY.UTF-8 UTF-8
+tr_CY ISO-8859-9
+tr_TR.UTF-8 UTF-8
+tr_TR ISO-8859-9
+ts_ZA UTF-8
+tt_RU UTF-8
+tt_RU@iqtelif UTF-8
+ug_CN UTF-8
+uk_UA.UTF-8 UTF-8
+uk_UA KOI8-U
+unm_US UTF-8
+ur_IN UTF-8
+ur_PK UTF-8
+uz_UZ.UTF-8 UTF-8
+uz_UZ ISO-8859-1
+uz_UZ@cyrillic UTF-8
+ve_ZA UTF-8
+vi_VN UTF-8
+wa_BE.UTF-8 UTF-8
+wa_BE ISO-8859-1
+wa_BE@euro ISO-8859-15
+wae_CH UTF-8
+wal_ET UTF-8
+wo_SN UTF-8
+xh_ZA.UTF-8 UTF-8
+xh_ZA ISO-8859-1
+yi_US.UTF-8 UTF-8
+yi_US CP1255
+yo_NG UTF-8
+yue_HK UTF-8
+yuw_PG UTF-8
+zh_CN.UTF-8 UTF-8
+zh_CN.GB18030 GB18030
+zh_CN.GBK GBK
+zh_CN GB2312
+zh_HK.UTF-8 UTF-8
+zh_HK BIG5-HKSCS
+zh_SG.UTF-8 UTF-8
+zh_SG.GBK GBK
+zh_SG GB2312
+zh_TW.UTF-8 UTF-8
+zh_TW.EUC-TW EUC-TW
+zh_TW BIG5
+zu_ZA.UTF-8 UTF-8
+zu_ZA ISO-8859-1
diff --git a/linux/advanced/teamcity/server/2024.03.3/usr/local/epicmorg/README.md b/linux/advanced/teamcity/server/2024.03.3/usr/local/epicmorg/README.md
new file mode 100644
index 000000000..83071e9ca
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.03.3/usr/local/epicmorg/README.md
@@ -0,0 +1,48 @@
+# About
+Hello. This folder contains sub-folders with custom tools such as `gosu`, `dumb-init` and etc.
+
+Some child images could install to this folder custom compilled products. Example: `nginx`, `php`, etc.
+
+All directories that contains binaryes (``) will be added to `$PATH`.
+
+# Structure
+pattern: `/usr/local/epicmorg///<..some data and files..>`
+
+example:
+```
+/usr/local/epicmorg/
+|-- 7z
+| `-- 7z2407
+| |-- History.txt
+| |-- License.txt
+| |-- MANUAL
+| |-- bin
+| `-- readme.txt
+|-- dumb-init
+| `-- 1.2.5
+| `-- bin
+|-- gosu
+| `-- 1.17
+| `-- bin
+|-- lazycli
+| `-- 0.1.15
+| `-- bin
+|-- lazydocker
+| `-- 0.23.3
+| |-- LICENSE
+| |-- README.md
+| `-- bin
+|-- lazygit
+| `-- 0.42.0
+| |-- LICENSE
+| |-- README.md
+| `-- bin
+|-- lazynpm
+| `-- 0.1.4
+| |-- LICENSE
+| |-- README.md
+| `-- bin
+`-- p4
+ `-- r23.2
+ `-- bin
+```
diff --git a/linux/advanced/teamcity/server/2024.03.3/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt b/linux/advanced/teamcity/server/2024.03.3/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
new file mode 100644
index 000000000..4c143a21f
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.03.3/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFwjCCA6qgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAxMjEwNDE1WhcNMzIwMjI3MjEwNDE1WjBwMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMSAwHgYDVQQDDBdSdXNzaWFuIFRydXN0ZWQgUm9v
+dCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMfFOZ8pUAL3+r2n
+qqE0Zp52selXsKGFYoG0GM5bwz1bSFtCt+AZQMhkWQheI3poZAToYJu69pHLKS6Q
+XBiwBC1cvzYmUYKMYZC7jE5YhEU2bSL0mX7NaMxMDmH2/NwuOVRj8OImVa5s1F4U
+zn4Kv3PFlDBjjSjXKVY9kmjUBsXQrIHeaqmUIsPIlNWUnimXS0I0abExqkbdrXbX
+YwCOXhOO2pDUx3ckmJlCMUGacUTnylyQW2VsJIyIGA8V0xzdaeUXg0VZ6ZmNUr5Y
+Ber/EAOLPb8NYpsAhJe2mXjMB/J9HNsoFMBFJ0lLOT/+dQvjbdRZoOT8eqJpWnVD
+U+QL/qEZnz57N88OWM3rabJkRNdU/Z7x5SFIM9FrqtN8xewsiBWBI0K6XFuOBOTD
+4V08o4TzJ8+Ccq5XlCUW2L48pZNCYuBDfBh7FxkB7qDgGDiaftEkZZfApRg2E+M9
+G8wkNKTPLDc4wH0FDTijhgxR3Y4PiS1HL2Zhw7bD3CbslmEGgfnnZojNkJtcLeBH
+BLa52/dSwNU4WWLubaYSiAmA9IUMX1/RpfpxOxd4Ykmhz97oFbUaDJFipIggx5sX
+ePAlkTdWnv+RWBxlJwMQ25oEHmRguNYf4Zr/Rxr9cS93Y+mdXIZaBEE0KS2iLRqa
+OiWBki9IMQU4phqPOBAaG7A+eP8PAgMBAAGjZjBkMB0GA1UdDgQWBBTh0YHlzlpf
+BKrS6badZrHF+qwshzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzAS
+BgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
+AAOCAgEAALIY1wkilt/urfEVM5vKzr6utOeDWCUczmWX/RX4ljpRdgF+5fAIS4vH
+tmXkqpSCOVeWUrJV9QvZn6L227ZwuE15cWi8DCDal3Ue90WgAJJZMfTshN4OI8cq
+W9E4EG9wglbEtMnObHlms8F3CHmrw3k6KmUkWGoa+/ENmcVl68u/cMRl1JbW2bM+
+/3A+SAg2c6iPDlehczKx2oa95QW0SkPPWGuNA/CE8CpyANIhu9XFrj3RQ3EqeRcS
+AQQod1RNuHpfETLU/A2gMmvn/w/sx7TB3W5BPs6rprOA37tutPq9u6FTZOcG1Oqj
+C/B7yTqgI7rbyvox7DEXoX7rIiEqyNNUguTk/u3SZ4VXE2kmxdmSh3TQvybfbnXV
+4JbCZVaqiZraqc7oZMnRoWrXRG3ztbnbes/9qhRGI7PqXqeKJBztxRTEVj8ONs1d
+WN5szTwaPIvhkhO3CO5ErU2rVdUr89wKpNXbBODFKRtgxUT70YpmJ46VVaqdAhOZ
+D9EUUn4YaeLaS8AjSF/h7UkjOibNc4qVDiPP+rkehFWM66PVnP1Msh93tc+taIfC
+EYVMxjh8zNbFuoc7fzvvrFILLe7ifvEIUqSVIC/AzplM/Jxw7buXFeGP1qVCBEHq
+391d/9RAfaZ12zkwFsl+IKwE/OZxW8AHa9i1p4GO0YSNuczzEm4=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/linux/advanced/teamcity/server/2024.03.3/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt b/linux/advanced/teamcity/server/2024.03.3/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
new file mode 100644
index 000000000..2e3f8285d
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.03.3/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
@@ -0,0 +1,41 @@
+-----BEGIN CERTIFICATE-----
+MIIHQjCCBSqgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAyMTEyNTE5WhcNMjcwMzA2MTEyNTE5WjBvMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMR8wHQYDVQQDDBZSdXNzaWFuIFRydXN0ZWQgU3Vi
+IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9YPqBKOk19NFymrE
+wehzrhBEgT2atLezpduB24mQ7CiOa/HVpFCDRZzdxqlh8drku408/tTmWzlNH/br
+HuQhZ/miWKOf35lpKzjyBd6TPM23uAfJvEOQ2/dnKGGJbsUo1/udKSvxQwVHpVv3
+S80OlluKfhWPDEXQpgyFqIzPoxIQTLZ0deirZwMVHarZ5u8HqHetRuAtmO2ZDGQn
+vVOJYAjls+Hiueq7Lj7Oce7CQsTwVZeP+XQx28PAaEZ3y6sQEt6rL06ddpSdoTMp
+BnCqTbxW+eWMyjkIn6t9GBtUV45yB1EkHNnj2Ex4GwCiN9T84QQjKSr+8f0psGrZ
+vPbCbQAwNFJjisLixnjlGPLKa5vOmNwIh/LAyUW5DjpkCx004LPDuqPpFsKXNKpa
+L2Dm6uc0x4Jo5m+gUTVORB6hOSzWnWDj2GWfomLzzyjG81DRGFBpco/O93zecsIN
+3SL2Ysjpq1zdoS01CMYxie//9zWvYwzI25/OZigtnpCIrcd2j1Y6dMUFQAzAtHE+
+qsXflSL8HIS+IJEFIQobLlYhHkoE3avgNx5jlu+OLYe0dF0Ykx1PGNjbwqvTX37R
+Cn32NMjlotW2QcGEZhDKj+3urZizp5xdTPZitA+aEjZM/Ni71VOdiOP0igbw6asZ
+2fxdozZ1TnSSYNYvNATwthNmZysCAwEAAaOCAeUwggHhMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTR4XENCy2BTm6KSo9MI7NM
+XqtpCzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzCBxwYIKwYBBQUH
+AQEEgbowgbcwOwYIKwYBBQUHMAKGL2h0dHA6Ly9yb3N0ZWxlY29tLnJ1L2NkcC9y
+b290Y2Ffc3NsX3JzYTIwMjIuY3J0MDsGCCsGAQUFBzAChi9odHRwOi8vY29tcGFu
+eS5ydC5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNydDA7BggrBgEFBQcwAoYv
+aHR0cDovL3JlZXN0ci1wa2kucnUvY2RwL3Jvb3RjYV9zc2xfcnNhMjAyMi5jcnQw
+gbAGA1UdHwSBqDCBpTA1oDOgMYYvaHR0cDovL3Jvc3RlbGVjb20ucnUvY2RwL3Jv
+b3RjYV9zc2xfcnNhMjAyMi5jcmwwNaAzoDGGL2h0dHA6Ly9jb21wYW55LnJ0LnJ1
+L2NkcC9yb290Y2Ffc3NsX3JzYTIwMjIuY3JsMDWgM6Axhi9odHRwOi8vcmVlc3Ry
+LXBraS5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNybDANBgkqhkiG9w0BAQsF
+AAOCAgEARBVzZls79AdiSCpar15dA5Hr/rrT4WbrOfzlpI+xrLeRPrUG6eUWIW4v
+Sui1yx3iqGLCjPcKb+HOTwoRMbI6ytP/ndp3TlYua2advYBEhSvjs+4vDZNwXr/D
+anbwIWdurZmViQRBDFebpkvnIvru/RpWud/5r624Wp8voZMRtj/cm6aI9LtvBfT9
+cfzhOaexI/99c14dyiuk1+6QhdwKaCRTc1mdfNQmnfWNRbfWhWBlK3h4GGE9JK33
+Gk8ZS8DMrkdAh0xby4xAQ/mSWAfWrBmfzlOqGyoB1U47WTOeqNbWkkoAP2ys94+s
+Jg4NTkiDVtXRF6nr6fYi0bSOvOFg0IQrMXO2Y8gyg9ARdPJwKtvWX8VPADCYMiWH
+h4n8bZokIrImVKLDQKHY4jCsND2HHdJfnrdL2YJw1qFskNO4cSNmZydw0Wkgjv9k
+F+KxqrDKlB8MZu2Hclph6v/CZ0fQ9YuE8/lsHZ0Qc2HyiSMnvjgK5fDc3TD4fa8F
+E8gMNurM+kV8PT8LNIM+4Zs+LKEV8nqRWBaxkIVJGekkVKO8xDBOG/aN62AZKHOe
+GcyIdu7yNMMRihGVZCYr8rYiJoKiOzDqOkPkLOPdhtVlgnhowzHDxMHND/E2WA5p
+ZHuNM/m0TXt2wTTPL7JH2YC0gPz/BvvSzjksgzU5rLbRyUKQkgU=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/linux/advanced/teamcity/server/2024.07.3/Dockerfile b/linux/advanced/teamcity/server/2024.07.3/Dockerfile
new file mode 100644
index 000000000..07541baf6
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.07.3/Dockerfile
@@ -0,0 +1,429 @@
+FROM jetbrains/teamcity-server:2024.07.3
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+LABEL org.opencontainers.image.vendor="EpicMorg DevTeam, developer@epicm.org"
+LABEL org.opencontainers.image.authors="STAM, kasthack, Aleks-Z"
+LABEL org.opencontainers.image.source="https://github.com/EpicMorg/docker"
+LABEL org.opencontainers.image.url="https://github.com/EpicMorg/docker"
+LABEL donate.crypto.TON="EQDvHXRK-K1ZieJhgTD9JZQk7xCnWzRbctYnUkWq1lZq1bUg"
+LABEL donate.crypto.ETH="0x26a8443a694f08cdfec966aa6fd72c45068753ec"
+LABEL donate.crypto.BTC="bc1querz8ug9asjmsuy6yn4a94a2athgprnu7e5zq2"
+LABEL donate.crypto.LTC="ltc1qtwwacq8f0n76fer2y83wxu540hddnmf8cdrlvg"
+LABEL donate.crypto.NVC="4SbMynYETyhmKdggu8f38ULU6yQKiJPuo6"
+LABEL donate.crypto.DOGE="DHyfE1CZzWtyaQiaMmv6g4KvXVQRUgrYE6"
+LABEL donate.crypto.PPC="pQWArPzYoLppNe7ew3QPfto1k1eq66BYUB"
+LABEL donate.crypto.RVN="R9t2LKeLhDSZBKNgUzSDZAossA3UqNvbV3"
+LABEL donate.crypto.ZEC="t1KRMMmwMSZth8vJcd2ZHtPEFKTQ74yVixE"
+LABEL donate.crypto.XMR="884PqZ1gDjWW7fKxtbaeRoBeSh9EGZbkqUyLriWmuKbwLZrAJdYUs4wQxoVfEJoW7LBhdQMP9cFhZQpJr6xvg7esHLdCbb1"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+# Set temp user for advanced setup
+#################################################################
+USER root
+
+##################################################################
+# Create Base directory for various soft
+##################################################################
+ENV EMG_LOCAL_BASE_DIR=/usr/local/share/epicmorg
+RUN mkdir -p ${EMG_LOCAL_BASE_DIR}
+COPY usr/local/epicmorg ${EMG_LOCAL_BASE_DIR}
+
+##################################################################
+# prepare system
+##################################################################
+RUN for i in $(seq 1 8); do mkdir -p "/usr/share/man/man${i}"; done
+RUN mkdir -p /etc/apt/keyrings
+
+##################################################################
+# ARGuments
+##################################################################
+ARG P4_VERSION=r24.1
+ARG P4_BIN_DIR=${EMG_LOCAL_BASE_DIR}/p4/${P4_VERSION}/bin
+ARG P4_DOWNLOAD_URL=https://filehost.perforce.com/perforce/${P4_VERSION}/bin.linux26x86_64/p4
+
+ARG SZ_VERSION=7z2407
+ARG SZ_BIN_DIR=${EMG_LOCAL_BASE_DIR}/7z/${SZ_VERSION}/bin
+ARG SZ_DOWNLOAD_URL=https://www.7-zip.org/a/${SZ_VERSION}-linux-x64.tar.xz
+ARG SZ_TEMP=/tmp/${SZ_VERSION}-linux-x64.tar.xz
+
+ARG LAZYGIT_VERSION=0.42.0
+ARG LAZYGIT_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazygit/${LAZYGIT_VERSION}/bin
+ARG LAZYGIT_DOWNLOAD_URL=https://github.com/jesseduffield/lazygit/releases/download/v${LAZYGIT_VERSION}/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz
+ARG LAZYGIT_TEMP=/tmp/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz
+
+ARG LAZYCLI_VERSION=0.1.15
+ARG LAZYCLI_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazycli/${LAZYCLI_VERSION}/bin
+ARG LAZYCLI_DOWNLOAD_URL=https://github.com/jesseduffield/lazycli/releases/download/v${LAZYCLI_VERSION}/lazycli-linux-x64.tar.gz
+ARG LAZYCLI_TEMP=/tmp/lazycli-linux-x64.tar.gz
+
+ARG LAZYNPM_VERSION=0.1.4
+ARG LAZYNPM_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazynpm/${LAZYNPM_VERSION}/bin
+ARG LAZYNPM_DOWNLOAD_URL=https://github.com/jesseduffield/lazynpm/releases/download/v${LAZYNPM_VERSION}/lazynpm_${LAZYNPM_VERSION}_Linux_x86_64.tar.gz
+ARG LAZYNPM_TEMP=/tmp/lazynpm_${LAZYNPM_VERSION}_Linux_x86_64.tar.gz
+
+ARG LAZYDOCKER_VERSION=0.23.3
+ARG LAZYDOCKER_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazydocker/${LAZYDOCKER_VERSION}/bin
+ARG LAZYDOCKER_DOWNLOAD_URL=https://github.com/jesseduffield/lazydocker/releases/download/v${LAZYDOCKER_VERSION}/lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz
+ARG LAZYDOCKER_TEMP=/tmp/lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz
+
+ARG DUMB_INIT_VERSION=1.2.5
+ARG DUMB_INIT_BIN_DIR=${EMG_LOCAL_BASE_DIR}/dumb-init/${DUMB_INIT_VERSION}/bin
+ARG DUMB_INIT_DOWNLOAD_URL=https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_x86_64
+
+ARG GOSU_VERSION=1.17
+ARG GOSU_BIN_DIR=${EMG_LOCAL_BASE_DIR}/gosu/${GOSU_VERSION}/bin
+ARG GOSU_DOWNLOAD_URL=https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64
+
+##################################################################
+# Additional settings
+##################################################################
+ENV MAVEN_VERSION=3.9.8
+ENV MAVEN_LINK=https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.zip
+ENV MAVEN_ROOT=${EMG_LOCAL_BASE_DIR}/maven/${MAVEN_VERSION}
+ENV MAVEN_PATH=${MAVEN_ROOT}/apache-maven-${MAVEN_VERSION}
+ENV MAVEN_BIN=${MAVEN_PATH}/bin
+ARG MAVEN_TEMP=/tmp/apache-maven-${MAVEN_VERSION}-bin.zip
+
+ENV GRADLE_VERSION=8.8
+ENV GRADLE_LINK=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip
+ENV GRADLE_ROOT=${EMG_LOCAL_BASE_DIR}/gradle/${GRADLE_VERSION}
+ENV GRADLE_PATH=${GRADLE_ROOT}/gradle-${GRADLE_VERSION}
+ENV GRADLE_BIN=${GRADLE_PATH}/bin
+ARG GRADLE_TEMP=/tmp/gradle-${GRADLE_VERSION}-all.zip
+
+ENV KTC_VERSION=2.0.0
+ENV KTC_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KTC_VERSION}/kotlin-compiler-${KTC_VERSION}.zip
+ARG KTC_TEMP=/tmp/kotlin-compiler-${KTC_VERSION}.zip
+ENV KTC_ROOT=${EMG_LOCAL_BASE_DIR}/kotlin/${KTC_VERSION}
+ENV KTC_PATH=${KTC_ROOT}/kotlinc
+ENV KTC_BIN=${KTC_PATH}/bin
+
+ENV KNPL_VERSION=${KTC_VERSION}
+ENV KNPL_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KNPL_VERSION}/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}.tar.gz
+ARG KNPL_TEMP=/tmp/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}.tar.gz
+ENV KNPL_ROOT=${EMG_LOCAL_BASE_DIR}/kotlin/${KNPL_VERSION}
+ENV KNPL_PATH=${KNPL_ROOT}/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}
+ENV KNPL_BIN=${KNPL_PATH}/bin
+
+RUN mkdir -p ${MAVEN_PATH} ${KTC_PATH} ${KNPL_PATH} ${GRADLE_PATH}
+ENV PATH=${PATH}:${MAVEN_BIN}:${GRADLE_BIN}:${KTC_BIN}:${KNPL_BIN}
+
+##################################################################
+# update lists
+##################################################################
+RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
+ apt-get update
+
+##################################################################
+# sources list
+##################################################################
+RUN rm -rfv /etc/apt/sources.list
+RUN rm -rfv /etc/apt/sources.list.d/*.sources
+RUN rm -rfv /etc/locale.gen
+
+COPY etc/apt/apt.conf.d/99-no-check-valid-until /etc/apt/apt.conf.d/99-no-check-valid-until
+COPY etc/apt/apt.conf.d/98-allow-unauthenticated /etc/apt/apt.conf.d/98-allow-unauthenticated
+COPY etc/apt/apt.conf.d/97-allow-cert-exp /etc/apt/apt.conf.d/97-allow-cert-exp
+COPY etc/apt/apt.conf.d/96-apt-retries /etc/apt/apt.conf.d/96-apt-retries
+COPY etc/apt/sources.list /etc/apt/sources.list
+COPY etc/locale.gen /etc/locale.gen
+COPY usr/local/share/ca-certificates /usr/local/share/ca-certificates
+
+RUN apt-get update && \
+ apt-get upgrade -y && \
+ apt-get dist-upgrade -y
+
+##################################################################
+# installing utils
+##################################################################
+RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ apt-transport-https \
+ apt-utils \
+ aptitude \
+ bash \
+ binutils \
+ ca-certificates \
+ cmatrix \
+ cmatrix-xfont \
+ console-cyrillic \
+ cron \
+ curl \
+ git \
+ gnupg \
+ gnupg1 \
+ gnupg2 \
+ htop \
+ iftop \
+ iputils-ping \
+ jq \
+ kmod \
+ locales \
+ locate \
+ lsb-release \
+ lsof \
+ lynx \
+ mc \
+ mercurial \
+ nano \
+ nload \
+ nmap \
+ openssl \
+ perl \
+ procps \
+ rar \
+ rsync \
+ screenfetch \
+ smbclient \
+ software-properties-common \
+ subversion \
+ sudo \
+ telnet \
+ tini \
+ tmux \
+ tree \
+ unrar \
+ unrar-free \
+ unzip \
+ util-linux \
+ uuid-runtime \
+ wget \
+ zip
+
+RUN apt-key adv --keyserver keyserver.ubuntu.com --refresh-keys
+RUN apt-key list | grep "expired: " | sed -ne 's|pub .*/\([^ ]*\) .*|\1|gp' | xargs -n1 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys
+
+RUN update-ca-certificates --fresh
+
+##################################################################
+# update locales
+##################################################################
+RUN locale-gen
+
+##################################################################
+# Install p4client
+##################################################################
+RUN mkdir -p ${P4_BIN_DIR}
+ADD ${P4_DOWNLOAD_URL} ${P4_BIN_DIR}
+RUN chmod +x ${P4_BIN_DIR}/p4
+ENV PATH="${P4_BIN_DIR}:${PATH}"
+
+# Update internal p4 binary to new
+RUN rm -rfv /opt/perforce/bin/p4 && \
+ ln -sfv ${P4_BIN_DIR}/p4 /opt/perforce/bin/p4 && \
+ ln -sfv ${P4_BIN_DIR}/p4 /opt/perforce/usr/bin/p4
+
+##################################################################
+# Install 7z official binary
+##################################################################
+RUN mkdir -p ${SZ_BIN_DIR}
+ADD ${SZ_DOWNLOAD_URL} /tmp
+
+RUN tar -xf ${SZ_TEMP} --directory ${SZ_BIN_DIR} && \
+ chmod +x ${SZ_BIN_DIR}/7zz && \
+ chmod +x ${SZ_BIN_DIR}/7zzs && \
+ find ${SZ_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name '7zz' ! -name '7zzs' -exec mv {} ${SZ_BIN_DIR}/.. \;
+
+ENV PATH="${SZ_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo 7zz $(7zz | head -4) && \
+ echo 7z $(7z | head -4) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyGit official binary
+##################################################################
+RUN mkdir -p ${LAZYGIT_BIN_DIR}
+ADD ${LAZYGIT_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYGIT_TEMP} --directory ${LAZYGIT_BIN_DIR} && \
+ chmod +x ${LAZYGIT_BIN_DIR}/lazygit && \
+ find ${LAZYGIT_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazygit' -exec mv {} ${LAZYGIT_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYGIT_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazygit $(lazygit --version) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyCLI official binary
+##################################################################
+RUN mkdir -p ${LAZYCLI_BIN_DIR}
+ADD ${LAZYCLI_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYCLI_TEMP} --directory ${LAZYCLI_BIN_DIR} && \
+ chmod +x ${LAZYCLI_BIN_DIR}/lazycli && \
+ find ${LAZYCLI_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazycli' -exec mv {} ${LAZYCLI_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYCLI_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazycli $(lazycli --version) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyNPM official binary
+##################################################################
+RUN mkdir -p ${LAZYNPM_BIN_DIR}
+ADD ${LAZYNPM_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYNPM_TEMP} --directory ${LAZYNPM_BIN_DIR} && \
+ chmod +x ${LAZYNPM_BIN_DIR}/lazynpm && \
+ find ${LAZYNPM_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazynpm' -exec mv {} ${LAZYNPM_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYNPM_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazynpm $(lazynpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyDocker official binary
+##################################################################
+RUN mkdir -p ${LAZYDOCKER_BIN_DIR}
+ADD ${LAZYDOCKER_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYDOCKER_TEMP} --directory ${LAZYDOCKER_BIN_DIR} && \
+ chmod +x -R ${LAZYDOCKER_BIN_DIR}/lazydocker && \
+ find ${LAZYDOCKER_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazydocker' -exec mv {} ${LAZYDOCKER_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYDOCKER_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazydocker $(lazydocker --version) && \
+ echo "============================================="
+
+##################################################################
+# dumb init
+##################################################################
+RUN mkdir -p ${DUMB_INIT_BIN_DIR}
+ADD ${DUMB_INIT_DOWNLOAD_URL} ${DUMB_INIT_BIN_DIR}
+
+RUN mv -fv ${DUMB_INIT_BIN_DIR}/dumb-init_${DUMB_INIT_VERSION}_x86_64 ${DUMB_INIT_BIN_DIR}/dumb-init && \
+ chmod +x ${DUMB_INIT_BIN_DIR}/dumb-init
+
+ENV PATH="${DUMB_INIT_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo dumb-init $(dumb-init --version) && \
+ echo "============================================="
+
+##################################################################
+# gosu for easy step-down from root
+##################################################################
+RUN mkdir -p ${GOSU_BIN_DIR}
+ADD ${GOSU_DOWNLOAD_URL} ${GOSU_BIN_DIR}
+
+RUN mv -fv ${GOSU_BIN_DIR}/gosu-amd64 ${GOSU_BIN_DIR}/gosu && \
+ chmod +x -R ${GOSU_BIN_DIR}/gosu
+
+ENV PATH="${GOSU_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo gosu $(gosu --version) && \
+ echo "============================================="
+
+##################################################################
+# Maven
+##################################################################
+ENV MAVEN_HOME=${MAVEN_ROOT}
+ENV M2_HOME=${MAVEN_ROOT}
+
+ADD ${MAVEN_LINK} /tmp
+RUN 7zz x ${MAVEN_TEMP} -o${MAVEN_ROOT}
+RUN chmod +x -R ${MAVEN_BIN}
+RUN mvn -v
+
+##################################################################
+# GRADLE
+##################################################################
+ADD ${GRADLE_LINK} /tmp
+RUN 7zz x ${GRADLE_TEMP} -o${GRADLE_ROOT}
+RUN chmod +x -R ${GRADLE_BIN}
+RUN gradle -v
+
+##################################################################
+# kotlin-compiler
+##################################################################
+ADD ${KTC_LINK} /tmp
+RUN 7zz x ${KTC_TEMP} -o${KTC_ROOT}
+RUN chmod +x -R ${KTC_BIN}
+RUN kotlin -version
+
+##################################################################
+# kotlin-native-prebuilt-linux
+##################################################################
+ADD ${KNPL_LINK} /tmp
+RUN tar -xvzf ${KNPL_TEMP} --directory ${KTC_ROOT}
+RUN chmod +x -R ${KNPL_BIN}
+
+##################################################################
+# git fresh binary
+##################################################################
+RUN gpg --keyserver keyserver.ubuntu.com --recv-keys A1715D88E1DF1F24 && \
+ gpg --export --output /etc/apt/keyrings/launchpad-git.gpg A1715D88E1DF1F24 && \
+ rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+ rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list
+COPY etc/apt/sources.list.d/launchpad_git-mainline.list /etc/apt/sources.list.d/launchpad_git-mainline.list
+COPY etc/apt/sources.list.d/launchpad_git-stable.list /etc/apt/sources.list.d/launchpad_git-stable.list
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ git
+
+RUN echo "=============================================" && \
+ echo git $(git --version) && \
+ echo "============================================="
+
+##################################################################
+# git-lfs official binary
+##################################################################
+RUN curl -fsSL https://packagecloud.io/github/git-lfs/gpgkey | gpg --dearmor > /etc/apt/keyrings/github_git-lfs-archive-keyring.gpg && \
+ rm -rfv /etc/apt/sources.list.d/github_git-lfs.list
+COPY etc/apt/sources.list.d/github_git-lfs.list /etc/apt/sources.list.d/github_git-lfs.list
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ git \
+ git-lfs && \
+ git-lfs install --skip-repo
+
+RUN echo "=============================================" && \
+ echo git $(git --version) && \
+ echo git-lfs $(git-lfs --version) && \
+ echo "============================================="
+
+##################################################################
+# gh official binary
+##################################################################
+RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/githubcli-archive-keyring.gpg && \
+ chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg && \
+ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list && \
+ apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ gh
+
+RUN echo "=============================================" && \
+ echo gh $(gh --version) && \
+ echo "============================================="
+
+##################################################################
+# cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /tmp/* && \
+ rm -rfv /var/cache/apt/archives/*.deb
+
+##################################################################
+# update file db
+##################################################################
+RUN updatedb
+
+##################################################################
+# Set original user back
+#################################################################
+# tcuser 1000
+#USER 1000
diff --git a/linux/advanced/teamcity/server/2024.07.3/Makefile b/linux/advanced/teamcity/server/2024.07.3/Makefile
new file mode 100644
index 000000000..06e855b50
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.07.3/Makefile
@@ -0,0 +1,36 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+ make build
+ make deploy
+ make clean
+
+build:
+ kaniko-wrapper --version
+
+dry:
+ make dry-run
+
+test:
+ make dry-run
+
+dry-run:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:v1.23.2-debug --dry-run
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:v1.23.2-debug
+
+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
diff --git a/linux/advanced/teamcity/server/2024.07.3/README.md b/linux/advanced/teamcity/server/2024.07.3/README.md
new file mode 100644
index 000000000..76aff7f7a
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.07.3/README.md
@@ -0,0 +1,115 @@
+## TeamCity Server - Powerful Continuous Integration and Continuous Delivery out of the box
+
+[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) server image. The image is suitable for production use and evaluation purposes.
+
+ More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-server.md).
+
+## How to Use This Image
+
+First, pull the image from the Docker Hub Repository
+
+```docker pull jetbrains/teamcity-server```
+
+
+### Linux container
+
+Use the following command to start a container with TeamCity server
+
+
+
+```
+docker run -it --name teamcity-server-instance \
+ -v :/data/teamcity_server/datadir \
+ -v :/opt/teamcity/logs \
+ -p :8111 \
+ jetbrains/teamcity-server
+```
+where
+
+ - **\** is the host machine directory to serve as the [TeamCity Data Directory](https://www.jetbrains.com/help/teamcity/teamcity-data-directory.html) where TeamCity stores project settings and build results. Pass an empty directory for the brand new start. If the mapping is not set, you will lose all the TeamCity settings on the container shutdown.
+ - **\** is the host machine directory to store the TeamCity server logs. The mapping can be omitted, but then the logs will be lost on container shutdown which will make issues investigation impossible.
+
+
+If you need to run a Linux-based container with non-root permissions (for example, when using some open source container application platforms), set the server's internal user identifier explicitly by passing an additional `-u 1000:1000` parameter. Note that after switching to a non-root user you might not be able to perform writing operations on files created under the root user. In this case, run `chown -R 1000:1000 ` to change the ownership of the directory containing these files.
+
+#### Alternative Tomcat configuration
+
+TeamCity has Tomcat J2EE server under the hood, and if you need to provide an alternative configuration for the TomCat, you can use extra parameter
+```
+-v /alternative/path/to/conf:/opt/teamcity/conf
+```
+
+To get a sample of the current contents of the Tomcat's `conf` directory, use the [`docker cp`](https://docs.docker.com/engine/reference/commandline/cp/) command.
+
+### Windows container
+```
+docker run -it --name teamcity-server-instance
+ -v :C:/ProgramData/JetBrains/TeamCity
+ -v :C:/TeamCity/logs
+ -p :8111
+ jetbrains/teamcity-server
+```
+
+See above for **\** and **\** description.
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+### Database
+
+TeamCity stores set of users and build results in an SQL database in addition to the Data Directory.
+By default, the TeamCity server uses an internal database stored on the file system under the data directory. However, production use requires an [external database](https://www.jetbrains.com/help/teamcity/setting-up-an-external-database.html#SettingupanExternalDatabase-DefaultInternalDatabase).
+
+To use the server for production, make sure to review and apply the [recommendations](https://www.jetbrains.com/help/teamcity/installing-and-configuring-the-teamcity-server.html#InstallingandConfiguringtheTeamCityServer-ConfiguringServerforProductionUse).
+
+### Build agents
+
+You will need at least one TeamCity agent to run builds. Check the [`jetbrains/teamcity-agent`](https://hub.docker.com/r/jetbrains/teamcity-agent/) and [`jetbrains/teamcity-minimal-agent`](https://hub.docker.com/r/jetbrains/teamcity-minimal-agent/) images.
+
+## Additional Commands
+
+When you need to pass additional environment variables to the server process, use the regular `-e` option. For example, to pass TEAMCITY_SERVER_MEM_OPTS environment variable, use:
+
+```
+docker run -it --name teamcity-server-instance \
+ -e TEAMCITY_SERVER_MEM_OPTS="-Xmx2g -XX:MaxPermSize=270m -XX:ReservedCodeCacheSize=350m" \
+ -v :/data/teamcity_server/datadir \
+ -v :/opt/teamcity/logs \
+ -p :8111 \
+ jetbrains/teamcity-server
+```
+
+To run the `maintainDB` script (e.g. for the server backup), stop your running container and execute the following command from your host:
+```
+docker run -it --name teamcity-server-instance \
+ -v :/data/teamcity_server/datadir \
+ -v :/opt/teamcity/logs \
+ -p :8111 \
+ jetbrains/teamcity-server \
+ "/opt/teamcity/bin/maintainDB.sh" "backup"
+```
+
+
+Be sure to keep all the local system paths the same with the main server start command.
+
+To change the context of the TeamCity app inside a Tomcat container, pass `-e TEAMCITY_CONTEXT=/context` to the `docker run` command. The default one is `ROOT`, meaning that the server would be available at `http://host/`.
+
+## Upgrading TeamCity
+
+Make sure to check the generic TeamCity [upgrade instructions](https://www.jetbrains.com/help/teamcity/upgrade.html).
+If you made no changes to the container, you can just stop the running container, pull a newer version of the image and the server in it via the usual command.
+If you changed the image, you will need to replicate the changes to the new TeamCity server image. In general, use Docker common sense to perform the upgrade.
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [Minimal Build Agent](https://hub.docker.com/r/jetbrains/teamcity-minimal-agent/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/)
diff --git a/linux/advanced/teamcity/server/2024.07.3/docker-compose.yml b/linux/advanced/teamcity/server/2024.07.3/docker-compose.yml
new file mode 100644
index 000000000..a06de7d08
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.07.3/docker-compose.yml
@@ -0,0 +1,6 @@
+#version: '3'
+services:
+ app:
+ image: "epicmorg/teamcity-server:2024.07.3"
+ build:
+ context: .
diff --git a/linux/advanced/teamcity/server/2024.07.3/etc/apt/apt.conf.d/96-apt-retries b/linux/advanced/teamcity/server/2024.07.3/etc/apt/apt.conf.d/96-apt-retries
new file mode 100644
index 000000000..73262ccc3
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.07.3/etc/apt/apt.conf.d/96-apt-retries
@@ -0,0 +1 @@
+Acquire::Retries "9";
diff --git a/linux/advanced/teamcity/server/2024.07.3/etc/apt/apt.conf.d/97-allow-cert-exp b/linux/advanced/teamcity/server/2024.07.3/etc/apt/apt.conf.d/97-allow-cert-exp
new file mode 100644
index 000000000..e7ec46810
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.07.3/etc/apt/apt.conf.d/97-allow-cert-exp
@@ -0,0 +1,2 @@
+Acquire::https::Verify-Peer "false";
+Acquire::https::Verify-Host "false";
diff --git a/linux/advanced/teamcity/server/2024.07.3/etc/apt/apt.conf.d/98-allow-unauthenticated b/linux/advanced/teamcity/server/2024.07.3/etc/apt/apt.conf.d/98-allow-unauthenticated
new file mode 100644
index 000000000..b36cd01c8
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.07.3/etc/apt/apt.conf.d/98-allow-unauthenticated
@@ -0,0 +1 @@
+APT::Get::AllowUnauthenticated "true";
diff --git a/linux/advanced/teamcity/server/2024.07.3/etc/apt/apt.conf.d/99-no-check-valid-until b/linux/advanced/teamcity/server/2024.07.3/etc/apt/apt.conf.d/99-no-check-valid-until
new file mode 100644
index 000000000..4e6d9209d
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.07.3/etc/apt/apt.conf.d/99-no-check-valid-until
@@ -0,0 +1 @@
+Acquire::Check-Valid-Until no;
diff --git a/linux/advanced/teamcity/server/2024.07.3/etc/apt/sources.list b/linux/advanced/teamcity/server/2024.07.3/etc/apt/sources.list
new file mode 100644
index 000000000..60d392e99
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.07.3/etc/apt/sources.list
@@ -0,0 +1,19 @@
+#------------------------------------------------------------------------------#
+# OFFICIAL UBUNTU REPOS #
+#------------------------------------------------------------------------------#
+
+###### Ubuntu Main Repos
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal main multiverse restricted universe
+
+###### Ubuntu Update Repos
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-backports main multiverse restricted universe
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-proposed main multiverse restricted universe
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-security main multiverse restricted universe
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-updates main multiverse restricted universe
+
+###### Ubuntu Sorurce Repos
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-backports main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-proposed main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-security main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ focal-updates main multiverse restricted universe
diff --git a/linux/advanced/teamcity/server/2024.07.3/etc/apt/sources.list.d/github_git-lfs.list b/linux/advanced/teamcity/server/2024.07.3/etc/apt/sources.list.d/github_git-lfs.list
new file mode 100644
index 000000000..c8a9a13b2
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.07.3/etc/apt/sources.list.d/github_git-lfs.list
@@ -0,0 +1,2 @@
+deb [signed-by=/etc/apt/keyrings/github_git-lfs-archive-keyring.gpg] https://packagecloud.io/github/git-lfs/ubuntu/ focal main
+deb-src [signed-by=/etc/apt/keyrings/github_git-lfs-archive-keyring.gpg] https://packagecloud.io/github/git-lfs/ubuntu/ focal main
diff --git a/linux/advanced/teamcity/server/2024.07.3/etc/apt/sources.list.d/launchpad_git-mainline.list b/linux/advanced/teamcity/server/2024.07.3/etc/apt/sources.list.d/launchpad_git-mainline.list
new file mode 100644
index 000000000..4acedfe8d
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.07.3/etc/apt/sources.list.d/launchpad_git-mainline.list
@@ -0,0 +1,5 @@
+# mainline
+deb [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/candidate/ubuntu focal main
+deb-src [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/candidate/ubuntu focal main
+
+
diff --git a/linux/advanced/teamcity/server/2024.07.3/etc/apt/sources.list.d/launchpad_git-stable.list b/linux/advanced/teamcity/server/2024.07.3/etc/apt/sources.list.d/launchpad_git-stable.list
new file mode 100644
index 000000000..d2ef6c06d
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.07.3/etc/apt/sources.list.d/launchpad_git-stable.list
@@ -0,0 +1,3 @@
+# stable
+deb [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/ppa/ubuntu focal main
+deb-src [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/ppa/ubuntu focal main
diff --git a/linux/advanced/teamcity/server/2024.07.3/etc/locale.gen b/linux/advanced/teamcity/server/2024.07.3/etc/locale.gen
new file mode 100644
index 000000000..02f100afa
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.07.3/etc/locale.gen
@@ -0,0 +1,12 @@
+en_GB.UTF-8 UTF-8
+en_GB ISO-8859-1
+en_GB.ISO-8859-15 ISO-8859-15
+en_US.UTF-8 UTF-8
+en_US ISO-8859-1
+en_US.ISO-8859-15 ISO-8859-15
+ru_RU.UTF-8 UTF-8
+ru_RU.KOI8-R KOI8-R
+ru_RU ISO-8859-5
+ru_RU.CP1251 CP1251
+ru_UA.UTF-8 UTF-8
+ru_UA KOI8-U
diff --git a/linux/advanced/teamcity/server/2024.07.3/etc/locale.gen.full b/linux/advanced/teamcity/server/2024.07.3/etc/locale.gen.full
new file mode 100644
index 000000000..1e7b446a5
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.07.3/etc/locale.gen.full
@@ -0,0 +1,495 @@
+aa_DJ.UTF-8 UTF-8
+aa_DJ ISO-8859-1
+aa_ER UTF-8
+aa_ER@saaho UTF-8
+aa_ET UTF-8
+af_ZA.UTF-8 UTF-8
+af_ZA ISO-8859-1
+agr_PE UTF-8
+ak_GH UTF-8
+am_ET UTF-8
+an_ES.UTF-8 UTF-8
+an_ES ISO-8859-15
+anp_IN UTF-8
+ar_AE.UTF-8 UTF-8
+ar_AE ISO-8859-6
+ar_BH.UTF-8 UTF-8
+ar_BH ISO-8859-6
+ar_DZ.UTF-8 UTF-8
+ar_DZ ISO-8859-6
+ar_EG.UTF-8 UTF-8
+ar_EG ISO-8859-6
+ar_IN UTF-8
+ar_IQ.UTF-8 UTF-8
+ar_IQ ISO-8859-6
+ar_JO.UTF-8 UTF-8
+ar_JO ISO-8859-6
+ar_KW.UTF-8 UTF-8
+ar_KW ISO-8859-6
+ar_LB.UTF-8 UTF-8
+ar_LB ISO-8859-6
+ar_LY.UTF-8 UTF-8
+ar_LY ISO-8859-6
+ar_MA.UTF-8 UTF-8
+ar_MA ISO-8859-6
+ar_OM.UTF-8 UTF-8
+ar_OM ISO-8859-6
+ar_QA.UTF-8 UTF-8
+ar_QA ISO-8859-6
+ar_SA.UTF-8 UTF-8
+ar_SA ISO-8859-6
+ar_SD.UTF-8 UTF-8
+ar_SD ISO-8859-6
+ar_SS UTF-8
+ar_SY.UTF-8 UTF-8
+ar_SY ISO-8859-6
+ar_TN.UTF-8 UTF-8
+ar_TN ISO-8859-6
+ar_YE.UTF-8 UTF-8
+ar_YE ISO-8859-6
+ayc_PE UTF-8
+az_AZ UTF-8
+az_IR UTF-8
+as_IN UTF-8
+ast_ES.UTF-8 UTF-8
+ast_ES ISO-8859-15
+be_BY.UTF-8 UTF-8
+be_BY CP1251
+be_BY@latin UTF-8
+bem_ZM UTF-8
+ber_DZ UTF-8
+ber_MA UTF-8
+bg_BG.UTF-8 UTF-8
+bg_BG CP1251
+bhb_IN.UTF-8 UTF-8
+bho_IN UTF-8
+bho_NP UTF-8
+bi_VU UTF-8
+bn_BD UTF-8
+bn_IN UTF-8
+bo_CN UTF-8
+bo_IN UTF-8
+br_FR.UTF-8 UTF-8
+br_FR ISO-8859-1
+br_FR@euro ISO-8859-15
+brx_IN UTF-8
+bs_BA.UTF-8 UTF-8
+bs_BA ISO-8859-2
+byn_ER UTF-8
+ca_AD.UTF-8 UTF-8
+ca_AD ISO-8859-15
+ca_ES.UTF-8 UTF-8
+ca_ES ISO-8859-1
+ca_ES@euro ISO-8859-15
+ca_ES@valencia UTF-8
+ca_FR.UTF-8 UTF-8
+ca_FR ISO-8859-15
+ca_IT.UTF-8 UTF-8
+ca_IT ISO-8859-15
+ce_RU UTF-8
+chr_US UTF-8
+cmn_TW UTF-8
+crh_UA UTF-8
+cs_CZ.UTF-8 UTF-8
+cs_CZ ISO-8859-2
+csb_PL UTF-8
+cv_RU UTF-8
+cy_GB.UTF-8 UTF-8
+cy_GB ISO-8859-14
+da_DK.UTF-8 UTF-8
+da_DK ISO-8859-1
+de_AT.UTF-8 UTF-8
+de_AT ISO-8859-1
+de_AT@euro ISO-8859-15
+de_BE.UTF-8 UTF-8
+de_BE ISO-8859-1
+de_BE@euro ISO-8859-15
+de_CH.UTF-8 UTF-8
+de_CH ISO-8859-1
+de_DE.UTF-8 UTF-8
+de_DE ISO-8859-1
+de_DE@euro ISO-8859-15
+de_IT.UTF-8 UTF-8
+de_IT ISO-8859-1
+de_LI.UTF-8 UTF-8
+de_LU.UTF-8 UTF-8
+de_LU ISO-8859-1
+de_LU@euro ISO-8859-15
+doi_IN UTF-8
+dsb_DE UTF-8
+dv_MV UTF-8
+dz_BT UTF-8
+el_GR.UTF-8 UTF-8
+el_GR ISO-8859-7
+el_GR@euro ISO-8859-7
+el_CY.UTF-8 UTF-8
+el_CY ISO-8859-7
+en_AG UTF-8
+en_AU.UTF-8 UTF-8
+en_AU ISO-8859-1
+en_BW.UTF-8 UTF-8
+en_BW ISO-8859-1
+en_CA.UTF-8 UTF-8
+en_CA ISO-8859-1
+en_DK.UTF-8 UTF-8
+en_DK.ISO-8859-15 ISO-8859-15
+en_DK ISO-8859-1
+en_GB.UTF-8 UTF-8
+en_GB ISO-8859-1
+en_GB.ISO-8859-15 ISO-8859-15
+en_HK.UTF-8 UTF-8
+en_HK ISO-8859-1
+en_IE.UTF-8 UTF-8
+en_IE ISO-8859-1
+en_IE@euro ISO-8859-15
+en_IL UTF-8
+en_IN UTF-8
+en_NG UTF-8
+en_NZ.UTF-8 UTF-8
+en_NZ ISO-8859-1
+en_PH.UTF-8 UTF-8
+en_PH ISO-8859-1
+en_SC.UTF-8 UTF-8
+en_SG.UTF-8 UTF-8
+en_SG ISO-8859-1
+en_US.UTF-8 UTF-8
+en_US ISO-8859-1
+en_US.ISO-8859-15 ISO-8859-15
+en_ZA.UTF-8 UTF-8
+en_ZA ISO-8859-1
+en_ZM UTF-8
+en_ZW.UTF-8 UTF-8
+en_ZW ISO-8859-1
+eo UTF-8
+es_AR.UTF-8 UTF-8
+es_AR ISO-8859-1
+es_BO.UTF-8 UTF-8
+es_BO ISO-8859-1
+es_CL.UTF-8 UTF-8
+es_CL ISO-8859-1
+es_CO.UTF-8 UTF-8
+es_CO ISO-8859-1
+es_CR.UTF-8 UTF-8
+es_CR ISO-8859-1
+es_CU UTF-8
+es_DO.UTF-8 UTF-8
+es_DO ISO-8859-1
+es_EC.UTF-8 UTF-8
+es_EC ISO-8859-1
+es_ES.UTF-8 UTF-8
+es_ES ISO-8859-1
+es_ES@euro ISO-8859-15
+es_GT.UTF-8 UTF-8
+es_GT ISO-8859-1
+es_HN.UTF-8 UTF-8
+es_HN ISO-8859-1
+es_MX.UTF-8 UTF-8
+es_MX ISO-8859-1
+es_NI.UTF-8 UTF-8
+es_NI ISO-8859-1
+es_PA.UTF-8 UTF-8
+es_PA ISO-8859-1
+es_PE.UTF-8 UTF-8
+es_PE ISO-8859-1
+es_PR.UTF-8 UTF-8
+es_PR ISO-8859-1
+es_PY.UTF-8 UTF-8
+es_PY ISO-8859-1
+es_SV.UTF-8 UTF-8
+es_SV ISO-8859-1
+es_US.UTF-8 UTF-8
+es_US ISO-8859-1
+es_UY.UTF-8 UTF-8
+es_UY ISO-8859-1
+es_VE.UTF-8 UTF-8
+es_VE ISO-8859-1
+et_EE.UTF-8 UTF-8
+et_EE ISO-8859-1
+et_EE.ISO-8859-15 ISO-8859-15
+eu_ES.UTF-8 UTF-8
+eu_ES ISO-8859-1
+eu_ES@euro ISO-8859-15
+eu_FR.UTF-8 UTF-8
+eu_FR ISO-8859-1
+eu_FR@euro ISO-8859-15
+fa_IR UTF-8
+ff_SN UTF-8
+fi_FI.UTF-8 UTF-8
+fi_FI ISO-8859-1
+fi_FI@euro ISO-8859-15
+fil_PH UTF-8
+fo_FO.UTF-8 UTF-8
+fo_FO ISO-8859-1
+fr_BE.UTF-8 UTF-8
+fr_BE ISO-8859-1
+fr_BE@euro ISO-8859-15
+fr_CA.UTF-8 UTF-8
+fr_CA ISO-8859-1
+fr_CH.UTF-8 UTF-8
+fr_CH ISO-8859-1
+fr_FR.UTF-8 UTF-8
+fr_FR ISO-8859-1
+fr_FR@euro ISO-8859-15
+fr_LU.UTF-8 UTF-8
+fr_LU ISO-8859-1
+fr_LU@euro ISO-8859-15
+fur_IT UTF-8
+fy_NL UTF-8
+fy_DE UTF-8
+ga_IE.UTF-8 UTF-8
+ga_IE ISO-8859-1
+ga_IE@euro ISO-8859-15
+gd_GB.UTF-8 UTF-8
+gd_GB ISO-8859-15
+gez_ER UTF-8
+gez_ER@abegede UTF-8
+gez_ET UTF-8
+gez_ET@abegede UTF-8
+gl_ES.UTF-8 UTF-8
+gl_ES ISO-8859-1
+gl_ES@euro ISO-8859-15
+gu_IN UTF-8
+gv_GB.UTF-8 UTF-8
+gv_GB ISO-8859-1
+ha_NG UTF-8
+hak_TW UTF-8
+he_IL.UTF-8 UTF-8
+he_IL ISO-8859-8
+hi_IN UTF-8
+hif_FJ UTF-8
+hne_IN UTF-8
+hr_HR.UTF-8 UTF-8
+hr_HR ISO-8859-2
+hsb_DE.UTF-8 UTF-8
+hsb_DE ISO-8859-2
+ht_HT UTF-8
+hu_HU.UTF-8 UTF-8
+hu_HU ISO-8859-2
+hy_AM UTF-8
+hy_AM.ARMSCII-8 ARMSCII-8
+ia_FR UTF-8
+id_ID.UTF-8 UTF-8
+id_ID ISO-8859-1
+ig_NG UTF-8
+ik_CA UTF-8
+is_IS.UTF-8 UTF-8
+is_IS ISO-8859-1
+it_CH.UTF-8 UTF-8
+it_CH ISO-8859-1
+it_IT.UTF-8 UTF-8
+it_IT ISO-8859-1
+it_IT@euro ISO-8859-15
+iu_CA UTF-8
+ja_JP.UTF-8 UTF-8
+ja_JP.EUC-JP EUC-JP
+ka_GE.UTF-8 UTF-8
+ka_GE GEORGIAN-PS
+kab_DZ UTF-8
+kk_KZ.UTF-8 UTF-8
+kk_KZ PT154
+kk_KZ.RK1048 RK1048
+kl_GL.UTF-8 UTF-8
+kl_GL ISO-8859-1
+km_KH UTF-8
+kn_IN UTF-8
+ko_KR.UTF-8 UTF-8
+ko_KR.EUC-KR EUC-KR
+kok_IN UTF-8
+ks_IN UTF-8
+ks_IN@devanagari UTF-8
+ku_TR.UTF-8 UTF-8
+ku_TR ISO-8859-9
+kw_GB.UTF-8 UTF-8
+kw_GB ISO-8859-1
+ky_KG UTF-8
+lb_LU UTF-8
+lg_UG.UTF-8 UTF-8
+lg_UG ISO-8859-10
+li_BE UTF-8
+li_NL UTF-8
+lij_IT UTF-8
+ln_CD UTF-8
+lo_LA UTF-8
+lt_LT.UTF-8 UTF-8
+lt_LT ISO-8859-13
+lv_LV.UTF-8 UTF-8
+lv_LV ISO-8859-13
+lzh_TW UTF-8
+mag_IN UTF-8
+mai_IN UTF-8
+mai_NP UTF-8
+mfe_MU UTF-8
+mg_MG.UTF-8 UTF-8
+mg_MG ISO-8859-15
+mhr_RU UTF-8
+mi_NZ.UTF-8 UTF-8
+mi_NZ ISO-8859-13
+miq_NI UTF-8
+mjw_IN UTF-8
+mk_MK.UTF-8 UTF-8
+mk_MK ISO-8859-5
+ml_IN UTF-8
+mn_MN UTF-8
+mni_IN UTF-8
+mr_IN UTF-8
+ms_MY.UTF-8 UTF-8
+ms_MY ISO-8859-1
+mt_MT.UTF-8 UTF-8
+mt_MT ISO-8859-3
+my_MM UTF-8
+nan_TW UTF-8
+nan_TW@latin UTF-8
+nb_NO.UTF-8 UTF-8
+nb_NO ISO-8859-1
+nds_DE UTF-8
+nds_NL UTF-8
+ne_NP UTF-8
+nhn_MX UTF-8
+niu_NU UTF-8
+niu_NZ UTF-8
+nl_AW UTF-8
+nl_BE.UTF-8 UTF-8
+nl_BE ISO-8859-1
+nl_BE@euro ISO-8859-15
+nl_NL.UTF-8 UTF-8
+nl_NL ISO-8859-1
+nl_NL@euro ISO-8859-15
+nn_NO.UTF-8 UTF-8
+nn_NO ISO-8859-1
+nr_ZA UTF-8
+nso_ZA UTF-8
+oc_FR.UTF-8 UTF-8
+oc_FR ISO-8859-1
+om_ET UTF-8
+om_KE.UTF-8 UTF-8
+om_KE ISO-8859-1
+or_IN UTF-8
+os_RU UTF-8
+pa_IN UTF-8
+pa_PK UTF-8
+pap_AW UTF-8
+pap_CW UTF-8
+pl_PL.UTF-8 UTF-8
+pl_PL ISO-8859-2
+ps_AF UTF-8
+pt_BR.UTF-8 UTF-8
+pt_BR ISO-8859-1
+pt_PT.UTF-8 UTF-8
+pt_PT ISO-8859-1
+pt_PT@euro ISO-8859-15
+quz_PE UTF-8
+raj_IN UTF-8
+ro_RO.UTF-8 UTF-8
+ro_RO ISO-8859-2
+ru_RU.UTF-8 UTF-8
+ru_RU.KOI8-R KOI8-R
+ru_RU ISO-8859-5
+ru_RU.CP1251 CP1251
+ru_UA.UTF-8 UTF-8
+ru_UA KOI8-U
+rw_RW UTF-8
+sa_IN UTF-8
+sah_RU UTF-8
+sat_IN UTF-8
+sc_IT UTF-8
+sd_IN UTF-8
+sd_IN@devanagari UTF-8
+se_NO UTF-8
+sgs_LT UTF-8
+shn_MM UTF-8
+shs_CA UTF-8
+si_LK UTF-8
+trixie_ET UTF-8
+sk_SK.UTF-8 UTF-8
+sk_SK ISO-8859-2
+sl_SI.UTF-8 UTF-8
+sl_SI ISO-8859-2
+sm_WS UTF-8
+so_DJ.UTF-8 UTF-8
+so_DJ ISO-8859-1
+so_ET UTF-8
+so_KE.UTF-8 UTF-8
+so_KE ISO-8859-1
+so_SO.UTF-8 UTF-8
+so_SO ISO-8859-1
+sq_AL.UTF-8 UTF-8
+sq_AL ISO-8859-1
+sq_MK UTF-8
+sr_ME UTF-8
+sr_RS UTF-8
+sr_RS@latin UTF-8
+ss_ZA UTF-8
+st_ZA.UTF-8 UTF-8
+st_ZA ISO-8859-1
+sv_FI.UTF-8 UTF-8
+sv_FI ISO-8859-1
+sv_FI@euro ISO-8859-15
+sv_SE.UTF-8 UTF-8
+sv_SE ISO-8859-1
+sv_SE.ISO-8859-15 ISO-8859-15
+sw_KE UTF-8
+sw_TZ UTF-8
+szl_PL UTF-8
+ta_IN UTF-8
+ta_LK UTF-8
+tcy_IN.UTF-8 UTF-8
+te_IN UTF-8
+tg_TJ.UTF-8 UTF-8
+tg_TJ KOI8-T
+th_TH.UTF-8 UTF-8
+th_TH TIS-620
+the_NP UTF-8
+ti_ER UTF-8
+ti_ET UTF-8
+tig_ER UTF-8
+tk_TM UTF-8
+tl_PH.UTF-8 UTF-8
+tl_PH ISO-8859-1
+tn_ZA UTF-8
+to_TO UTF-8
+tpi_PG UTF-8
+tr_CY.UTF-8 UTF-8
+tr_CY ISO-8859-9
+tr_TR.UTF-8 UTF-8
+tr_TR ISO-8859-9
+ts_ZA UTF-8
+tt_RU UTF-8
+tt_RU@iqtelif UTF-8
+ug_CN UTF-8
+uk_UA.UTF-8 UTF-8
+uk_UA KOI8-U
+unm_US UTF-8
+ur_IN UTF-8
+ur_PK UTF-8
+uz_UZ.UTF-8 UTF-8
+uz_UZ ISO-8859-1
+uz_UZ@cyrillic UTF-8
+ve_ZA UTF-8
+vi_VN UTF-8
+wa_BE.UTF-8 UTF-8
+wa_BE ISO-8859-1
+wa_BE@euro ISO-8859-15
+wae_CH UTF-8
+wal_ET UTF-8
+wo_SN UTF-8
+xh_ZA.UTF-8 UTF-8
+xh_ZA ISO-8859-1
+yi_US.UTF-8 UTF-8
+yi_US CP1255
+yo_NG UTF-8
+yue_HK UTF-8
+yuw_PG UTF-8
+zh_CN.UTF-8 UTF-8
+zh_CN.GB18030 GB18030
+zh_CN.GBK GBK
+zh_CN GB2312
+zh_HK.UTF-8 UTF-8
+zh_HK BIG5-HKSCS
+zh_SG.UTF-8 UTF-8
+zh_SG.GBK GBK
+zh_SG GB2312
+zh_TW.UTF-8 UTF-8
+zh_TW.EUC-TW EUC-TW
+zh_TW BIG5
+zu_ZA.UTF-8 UTF-8
+zu_ZA ISO-8859-1
diff --git a/linux/advanced/teamcity/server/2024.07.3/usr/local/epicmorg/README.md b/linux/advanced/teamcity/server/2024.07.3/usr/local/epicmorg/README.md
new file mode 100644
index 000000000..83071e9ca
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.07.3/usr/local/epicmorg/README.md
@@ -0,0 +1,48 @@
+# About
+Hello. This folder contains sub-folders with custom tools such as `gosu`, `dumb-init` and etc.
+
+Some child images could install to this folder custom compilled products. Example: `nginx`, `php`, etc.
+
+All directories that contains binaryes (``) will be added to `$PATH`.
+
+# Structure
+pattern: `/usr/local/epicmorg///<..some data and files..>`
+
+example:
+```
+/usr/local/epicmorg/
+|-- 7z
+| `-- 7z2407
+| |-- History.txt
+| |-- License.txt
+| |-- MANUAL
+| |-- bin
+| `-- readme.txt
+|-- dumb-init
+| `-- 1.2.5
+| `-- bin
+|-- gosu
+| `-- 1.17
+| `-- bin
+|-- lazycli
+| `-- 0.1.15
+| `-- bin
+|-- lazydocker
+| `-- 0.23.3
+| |-- LICENSE
+| |-- README.md
+| `-- bin
+|-- lazygit
+| `-- 0.42.0
+| |-- LICENSE
+| |-- README.md
+| `-- bin
+|-- lazynpm
+| `-- 0.1.4
+| |-- LICENSE
+| |-- README.md
+| `-- bin
+`-- p4
+ `-- r23.2
+ `-- bin
+```
diff --git a/linux/advanced/teamcity/server/2024.07.3/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt b/linux/advanced/teamcity/server/2024.07.3/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
new file mode 100644
index 000000000..4c143a21f
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.07.3/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFwjCCA6qgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAxMjEwNDE1WhcNMzIwMjI3MjEwNDE1WjBwMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMSAwHgYDVQQDDBdSdXNzaWFuIFRydXN0ZWQgUm9v
+dCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMfFOZ8pUAL3+r2n
+qqE0Zp52selXsKGFYoG0GM5bwz1bSFtCt+AZQMhkWQheI3poZAToYJu69pHLKS6Q
+XBiwBC1cvzYmUYKMYZC7jE5YhEU2bSL0mX7NaMxMDmH2/NwuOVRj8OImVa5s1F4U
+zn4Kv3PFlDBjjSjXKVY9kmjUBsXQrIHeaqmUIsPIlNWUnimXS0I0abExqkbdrXbX
+YwCOXhOO2pDUx3ckmJlCMUGacUTnylyQW2VsJIyIGA8V0xzdaeUXg0VZ6ZmNUr5Y
+Ber/EAOLPb8NYpsAhJe2mXjMB/J9HNsoFMBFJ0lLOT/+dQvjbdRZoOT8eqJpWnVD
+U+QL/qEZnz57N88OWM3rabJkRNdU/Z7x5SFIM9FrqtN8xewsiBWBI0K6XFuOBOTD
+4V08o4TzJ8+Ccq5XlCUW2L48pZNCYuBDfBh7FxkB7qDgGDiaftEkZZfApRg2E+M9
+G8wkNKTPLDc4wH0FDTijhgxR3Y4PiS1HL2Zhw7bD3CbslmEGgfnnZojNkJtcLeBH
+BLa52/dSwNU4WWLubaYSiAmA9IUMX1/RpfpxOxd4Ykmhz97oFbUaDJFipIggx5sX
+ePAlkTdWnv+RWBxlJwMQ25oEHmRguNYf4Zr/Rxr9cS93Y+mdXIZaBEE0KS2iLRqa
+OiWBki9IMQU4phqPOBAaG7A+eP8PAgMBAAGjZjBkMB0GA1UdDgQWBBTh0YHlzlpf
+BKrS6badZrHF+qwshzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzAS
+BgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
+AAOCAgEAALIY1wkilt/urfEVM5vKzr6utOeDWCUczmWX/RX4ljpRdgF+5fAIS4vH
+tmXkqpSCOVeWUrJV9QvZn6L227ZwuE15cWi8DCDal3Ue90WgAJJZMfTshN4OI8cq
+W9E4EG9wglbEtMnObHlms8F3CHmrw3k6KmUkWGoa+/ENmcVl68u/cMRl1JbW2bM+
+/3A+SAg2c6iPDlehczKx2oa95QW0SkPPWGuNA/CE8CpyANIhu9XFrj3RQ3EqeRcS
+AQQod1RNuHpfETLU/A2gMmvn/w/sx7TB3W5BPs6rprOA37tutPq9u6FTZOcG1Oqj
+C/B7yTqgI7rbyvox7DEXoX7rIiEqyNNUguTk/u3SZ4VXE2kmxdmSh3TQvybfbnXV
+4JbCZVaqiZraqc7oZMnRoWrXRG3ztbnbes/9qhRGI7PqXqeKJBztxRTEVj8ONs1d
+WN5szTwaPIvhkhO3CO5ErU2rVdUr89wKpNXbBODFKRtgxUT70YpmJ46VVaqdAhOZ
+D9EUUn4YaeLaS8AjSF/h7UkjOibNc4qVDiPP+rkehFWM66PVnP1Msh93tc+taIfC
+EYVMxjh8zNbFuoc7fzvvrFILLe7ifvEIUqSVIC/AzplM/Jxw7buXFeGP1qVCBEHq
+391d/9RAfaZ12zkwFsl+IKwE/OZxW8AHa9i1p4GO0YSNuczzEm4=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/linux/advanced/teamcity/server/2024.07.3/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt b/linux/advanced/teamcity/server/2024.07.3/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
new file mode 100644
index 000000000..2e3f8285d
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.07.3/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
@@ -0,0 +1,41 @@
+-----BEGIN CERTIFICATE-----
+MIIHQjCCBSqgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAyMTEyNTE5WhcNMjcwMzA2MTEyNTE5WjBvMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMR8wHQYDVQQDDBZSdXNzaWFuIFRydXN0ZWQgU3Vi
+IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9YPqBKOk19NFymrE
+wehzrhBEgT2atLezpduB24mQ7CiOa/HVpFCDRZzdxqlh8drku408/tTmWzlNH/br
+HuQhZ/miWKOf35lpKzjyBd6TPM23uAfJvEOQ2/dnKGGJbsUo1/udKSvxQwVHpVv3
+S80OlluKfhWPDEXQpgyFqIzPoxIQTLZ0deirZwMVHarZ5u8HqHetRuAtmO2ZDGQn
+vVOJYAjls+Hiueq7Lj7Oce7CQsTwVZeP+XQx28PAaEZ3y6sQEt6rL06ddpSdoTMp
+BnCqTbxW+eWMyjkIn6t9GBtUV45yB1EkHNnj2Ex4GwCiN9T84QQjKSr+8f0psGrZ
+vPbCbQAwNFJjisLixnjlGPLKa5vOmNwIh/LAyUW5DjpkCx004LPDuqPpFsKXNKpa
+L2Dm6uc0x4Jo5m+gUTVORB6hOSzWnWDj2GWfomLzzyjG81DRGFBpco/O93zecsIN
+3SL2Ysjpq1zdoS01CMYxie//9zWvYwzI25/OZigtnpCIrcd2j1Y6dMUFQAzAtHE+
+qsXflSL8HIS+IJEFIQobLlYhHkoE3avgNx5jlu+OLYe0dF0Ykx1PGNjbwqvTX37R
+Cn32NMjlotW2QcGEZhDKj+3urZizp5xdTPZitA+aEjZM/Ni71VOdiOP0igbw6asZ
+2fxdozZ1TnSSYNYvNATwthNmZysCAwEAAaOCAeUwggHhMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTR4XENCy2BTm6KSo9MI7NM
+XqtpCzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzCBxwYIKwYBBQUH
+AQEEgbowgbcwOwYIKwYBBQUHMAKGL2h0dHA6Ly9yb3N0ZWxlY29tLnJ1L2NkcC9y
+b290Y2Ffc3NsX3JzYTIwMjIuY3J0MDsGCCsGAQUFBzAChi9odHRwOi8vY29tcGFu
+eS5ydC5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNydDA7BggrBgEFBQcwAoYv
+aHR0cDovL3JlZXN0ci1wa2kucnUvY2RwL3Jvb3RjYV9zc2xfcnNhMjAyMi5jcnQw
+gbAGA1UdHwSBqDCBpTA1oDOgMYYvaHR0cDovL3Jvc3RlbGVjb20ucnUvY2RwL3Jv
+b3RjYV9zc2xfcnNhMjAyMi5jcmwwNaAzoDGGL2h0dHA6Ly9jb21wYW55LnJ0LnJ1
+L2NkcC9yb290Y2Ffc3NsX3JzYTIwMjIuY3JsMDWgM6Axhi9odHRwOi8vcmVlc3Ry
+LXBraS5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNybDANBgkqhkiG9w0BAQsF
+AAOCAgEARBVzZls79AdiSCpar15dA5Hr/rrT4WbrOfzlpI+xrLeRPrUG6eUWIW4v
+Sui1yx3iqGLCjPcKb+HOTwoRMbI6ytP/ndp3TlYua2advYBEhSvjs+4vDZNwXr/D
+anbwIWdurZmViQRBDFebpkvnIvru/RpWud/5r624Wp8voZMRtj/cm6aI9LtvBfT9
+cfzhOaexI/99c14dyiuk1+6QhdwKaCRTc1mdfNQmnfWNRbfWhWBlK3h4GGE9JK33
+Gk8ZS8DMrkdAh0xby4xAQ/mSWAfWrBmfzlOqGyoB1U47WTOeqNbWkkoAP2ys94+s
+Jg4NTkiDVtXRF6nr6fYi0bSOvOFg0IQrMXO2Y8gyg9ARdPJwKtvWX8VPADCYMiWH
+h4n8bZokIrImVKLDQKHY4jCsND2HHdJfnrdL2YJw1qFskNO4cSNmZydw0Wkgjv9k
+F+KxqrDKlB8MZu2Hclph6v/CZ0fQ9YuE8/lsHZ0Qc2HyiSMnvjgK5fDc3TD4fa8F
+E8gMNurM+kV8PT8LNIM+4Zs+LKEV8nqRWBaxkIVJGekkVKO8xDBOG/aN62AZKHOe
+GcyIdu7yNMMRihGVZCYr8rYiJoKiOzDqOkPkLOPdhtVlgnhowzHDxMHND/E2WA5p
+ZHuNM/m0TXt2wTTPL7JH2YC0gPz/BvvSzjksgzU5rLbRyUKQkgU=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/linux/advanced/teamcity/server/2024.12/Dockerfile b/linux/advanced/teamcity/server/2024.12/Dockerfile
new file mode 100644
index 000000000..a0c0f15f0
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.12/Dockerfile
@@ -0,0 +1,429 @@
+FROM jetbrains/teamcity-server:2024.12
+LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
+LABEL org.opencontainers.image.vendor="EpicMorg DevTeam, developer@epicm.org"
+LABEL org.opencontainers.image.authors="STAM, kasthack, Aleks-Z"
+LABEL org.opencontainers.image.source="https://github.com/EpicMorg/docker"
+LABEL org.opencontainers.image.url="https://github.com/EpicMorg/docker"
+LABEL donate.crypto.TON="EQDvHXRK-K1ZieJhgTD9JZQk7xCnWzRbctYnUkWq1lZq1bUg"
+LABEL donate.crypto.ETH="0x26a8443a694f08cdfec966aa6fd72c45068753ec"
+LABEL donate.crypto.BTC="bc1querz8ug9asjmsuy6yn4a94a2athgprnu7e5zq2"
+LABEL donate.crypto.LTC="ltc1qtwwacq8f0n76fer2y83wxu540hddnmf8cdrlvg"
+LABEL donate.crypto.NVC="4SbMynYETyhmKdggu8f38ULU6yQKiJPuo6"
+LABEL donate.crypto.DOGE="DHyfE1CZzWtyaQiaMmv6g4KvXVQRUgrYE6"
+LABEL donate.crypto.PPC="pQWArPzYoLppNe7ew3QPfto1k1eq66BYUB"
+LABEL donate.crypto.RVN="R9t2LKeLhDSZBKNgUzSDZAossA3UqNvbV3"
+LABEL donate.crypto.ZEC="t1KRMMmwMSZth8vJcd2ZHtPEFKTQ74yVixE"
+LABEL donate.crypto.XMR="884PqZ1gDjWW7fKxtbaeRoBeSh9EGZbkqUyLriWmuKbwLZrAJdYUs4wQxoVfEJoW7LBhdQMP9cFhZQpJr6xvg7esHLdCbb1"
+ARG DEBIAN_FRONTEND=noninteractive
+
+##################################################################
+# Set temp user for advanced setup
+#################################################################
+USER root
+
+##################################################################
+# Create Base directory for various soft
+##################################################################
+ENV EMG_LOCAL_BASE_DIR=/usr/local/share/epicmorg
+RUN mkdir -p ${EMG_LOCAL_BASE_DIR}
+COPY usr/local/epicmorg ${EMG_LOCAL_BASE_DIR}
+
+##################################################################
+# prepare system
+##################################################################
+RUN for i in $(seq 1 8); do mkdir -p "/usr/share/man/man${i}"; done
+RUN mkdir -p /etc/apt/keyrings
+
+##################################################################
+# ARGuments
+##################################################################
+ARG P4_VERSION=r24.1
+ARG P4_BIN_DIR=${EMG_LOCAL_BASE_DIR}/p4/${P4_VERSION}/bin
+ARG P4_DOWNLOAD_URL=https://filehost.perforce.com/perforce/${P4_VERSION}/bin.linux26x86_64/p4
+
+ARG SZ_VERSION=7z2407
+ARG SZ_BIN_DIR=${EMG_LOCAL_BASE_DIR}/7z/${SZ_VERSION}/bin
+ARG SZ_DOWNLOAD_URL=https://www.7-zip.org/a/${SZ_VERSION}-linux-x64.tar.xz
+ARG SZ_TEMP=/tmp/${SZ_VERSION}-linux-x64.tar.xz
+
+ARG LAZYGIT_VERSION=0.42.0
+ARG LAZYGIT_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazygit/${LAZYGIT_VERSION}/bin
+ARG LAZYGIT_DOWNLOAD_URL=https://github.com/jesseduffield/lazygit/releases/download/v${LAZYGIT_VERSION}/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz
+ARG LAZYGIT_TEMP=/tmp/lazygit_${LAZYGIT_VERSION}_Linux_x86_64.tar.gz
+
+ARG LAZYCLI_VERSION=0.1.15
+ARG LAZYCLI_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazycli/${LAZYCLI_VERSION}/bin
+ARG LAZYCLI_DOWNLOAD_URL=https://github.com/jesseduffield/lazycli/releases/download/v${LAZYCLI_VERSION}/lazycli-linux-x64.tar.gz
+ARG LAZYCLI_TEMP=/tmp/lazycli-linux-x64.tar.gz
+
+ARG LAZYNPM_VERSION=0.1.4
+ARG LAZYNPM_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazynpm/${LAZYNPM_VERSION}/bin
+ARG LAZYNPM_DOWNLOAD_URL=https://github.com/jesseduffield/lazynpm/releases/download/v${LAZYNPM_VERSION}/lazynpm_${LAZYNPM_VERSION}_Linux_x86_64.tar.gz
+ARG LAZYNPM_TEMP=/tmp/lazynpm_${LAZYNPM_VERSION}_Linux_x86_64.tar.gz
+
+ARG LAZYDOCKER_VERSION=0.23.3
+ARG LAZYDOCKER_BIN_DIR=${EMG_LOCAL_BASE_DIR}/lazydocker/${LAZYDOCKER_VERSION}/bin
+ARG LAZYDOCKER_DOWNLOAD_URL=https://github.com/jesseduffield/lazydocker/releases/download/v${LAZYDOCKER_VERSION}/lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz
+ARG LAZYDOCKER_TEMP=/tmp/lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz
+
+ARG DUMB_INIT_VERSION=1.2.5
+ARG DUMB_INIT_BIN_DIR=${EMG_LOCAL_BASE_DIR}/dumb-init/${DUMB_INIT_VERSION}/bin
+ARG DUMB_INIT_DOWNLOAD_URL=https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_x86_64
+
+ARG GOSU_VERSION=1.17
+ARG GOSU_BIN_DIR=${EMG_LOCAL_BASE_DIR}/gosu/${GOSU_VERSION}/bin
+ARG GOSU_DOWNLOAD_URL=https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64
+
+##################################################################
+# Additional settings
+##################################################################
+ENV MAVEN_VERSION=3.9.8
+ENV MAVEN_LINK=https://dlcdn.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.zip
+ENV MAVEN_ROOT=${EMG_LOCAL_BASE_DIR}/maven/${MAVEN_VERSION}
+ENV MAVEN_PATH=${MAVEN_ROOT}/apache-maven-${MAVEN_VERSION}
+ENV MAVEN_BIN=${MAVEN_PATH}/bin
+ARG MAVEN_TEMP=/tmp/apache-maven-${MAVEN_VERSION}-bin.zip
+
+ENV GRADLE_VERSION=8.8
+ENV GRADLE_LINK=https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip
+ENV GRADLE_ROOT=${EMG_LOCAL_BASE_DIR}/gradle/${GRADLE_VERSION}
+ENV GRADLE_PATH=${GRADLE_ROOT}/gradle-${GRADLE_VERSION}
+ENV GRADLE_BIN=${GRADLE_PATH}/bin
+ARG GRADLE_TEMP=/tmp/gradle-${GRADLE_VERSION}-all.zip
+
+ENV KTC_VERSION=2.0.0
+ENV KTC_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KTC_VERSION}/kotlin-compiler-${KTC_VERSION}.zip
+ARG KTC_TEMP=/tmp/kotlin-compiler-${KTC_VERSION}.zip
+ENV KTC_ROOT=${EMG_LOCAL_BASE_DIR}/kotlin/${KTC_VERSION}
+ENV KTC_PATH=${KTC_ROOT}/kotlinc
+ENV KTC_BIN=${KTC_PATH}/bin
+
+ENV KNPL_VERSION=${KTC_VERSION}
+ENV KNPL_LINK=https://github.com/JetBrains/kotlin/releases/download/v${KNPL_VERSION}/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}.tar.gz
+ARG KNPL_TEMP=/tmp/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}.tar.gz
+ENV KNPL_ROOT=${EMG_LOCAL_BASE_DIR}/kotlin/${KNPL_VERSION}
+ENV KNPL_PATH=${KNPL_ROOT}/kotlin-native-prebuilt-linux-x86_64-${KNPL_VERSION}
+ENV KNPL_BIN=${KNPL_PATH}/bin
+
+RUN mkdir -p ${MAVEN_PATH} ${KTC_PATH} ${KNPL_PATH} ${GRADLE_PATH}
+ENV PATH=${PATH}:${MAVEN_BIN}:${GRADLE_BIN}:${KTC_BIN}:${KNPL_BIN}
+
+##################################################################
+# update lists
+##################################################################
+RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
+ apt-get update
+
+##################################################################
+# sources list
+##################################################################
+RUN rm -rfv /etc/apt/sources.list
+RUN rm -rfv /etc/apt/sources.list.d/*.sources
+RUN rm -rfv /etc/locale.gen
+
+COPY etc/apt/apt.conf.d/99-no-check-valid-until /etc/apt/apt.conf.d/99-no-check-valid-until
+COPY etc/apt/apt.conf.d/98-allow-unauthenticated /etc/apt/apt.conf.d/98-allow-unauthenticated
+COPY etc/apt/apt.conf.d/97-allow-cert-exp /etc/apt/apt.conf.d/97-allow-cert-exp
+COPY etc/apt/apt.conf.d/96-apt-retries /etc/apt/apt.conf.d/96-apt-retries
+COPY etc/apt/sources.list /etc/apt/sources.list
+COPY etc/locale.gen /etc/locale.gen
+COPY usr/local/share/ca-certificates /usr/local/share/ca-certificates
+
+RUN apt-get update && \
+ apt-get upgrade -y && \
+ apt-get dist-upgrade -y
+
+##################################################################
+# installing utils
+##################################################################
+RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ apt-transport-https \
+ apt-utils \
+ aptitude \
+ bash \
+ binutils \
+ ca-certificates \
+ cmatrix \
+ cmatrix-xfont \
+ console-cyrillic \
+ cron \
+ curl \
+ git \
+ gnupg \
+ gnupg1 \
+ gnupg2 \
+ htop \
+ iftop \
+ iputils-ping \
+ jq \
+ kmod \
+ locales \
+ locate \
+ lsb-release \
+ lsof \
+ lynx \
+ mc \
+ mercurial \
+ nano \
+ nload \
+ nmap \
+ openssl \
+ perl \
+ procps \
+ rar \
+ rsync \
+ screenfetch \
+ smbclient \
+ software-properties-common \
+ subversion \
+ sudo \
+ telnet \
+ tini \
+ tmux \
+ tree \
+ unrar \
+ unrar-free \
+ unzip \
+ util-linux \
+ uuid-runtime \
+ wget \
+ zip
+
+RUN apt-key adv --keyserver keyserver.ubuntu.com --refresh-keys
+RUN apt-key list | grep "expired: " | sed -ne 's|pub .*/\([^ ]*\) .*|\1|gp' | xargs -n1 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys
+
+RUN update-ca-certificates --fresh
+
+##################################################################
+# update locales
+##################################################################
+RUN locale-gen
+
+##################################################################
+# Install p4client
+##################################################################
+RUN mkdir -p ${P4_BIN_DIR}
+ADD ${P4_DOWNLOAD_URL} ${P4_BIN_DIR}
+RUN chmod +x ${P4_BIN_DIR}/p4
+ENV PATH="${P4_BIN_DIR}:${PATH}"
+
+# Update internal p4 binary to new
+RUN rm -rfv /opt/perforce/bin/p4 && \
+ ln -sfv ${P4_BIN_DIR}/p4 /opt/perforce/bin/p4 && \
+ ln -sfv ${P4_BIN_DIR}/p4 /opt/perforce/usr/bin/p4
+
+##################################################################
+# Install 7z official binary
+##################################################################
+RUN mkdir -p ${SZ_BIN_DIR}
+ADD ${SZ_DOWNLOAD_URL} /tmp
+
+RUN tar -xf ${SZ_TEMP} --directory ${SZ_BIN_DIR} && \
+ chmod +x ${SZ_BIN_DIR}/7zz && \
+ chmod +x ${SZ_BIN_DIR}/7zzs && \
+ find ${SZ_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name '7zz' ! -name '7zzs' -exec mv {} ${SZ_BIN_DIR}/.. \;
+
+ENV PATH="${SZ_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo 7zz $(7zz | head -4) && \
+ echo 7z $(7z | head -4) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyGit official binary
+##################################################################
+RUN mkdir -p ${LAZYGIT_BIN_DIR}
+ADD ${LAZYGIT_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYGIT_TEMP} --directory ${LAZYGIT_BIN_DIR} && \
+ chmod +x ${LAZYGIT_BIN_DIR}/lazygit && \
+ find ${LAZYGIT_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazygit' -exec mv {} ${LAZYGIT_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYGIT_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazygit $(lazygit --version) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyCLI official binary
+##################################################################
+RUN mkdir -p ${LAZYCLI_BIN_DIR}
+ADD ${LAZYCLI_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYCLI_TEMP} --directory ${LAZYCLI_BIN_DIR} && \
+ chmod +x ${LAZYCLI_BIN_DIR}/lazycli && \
+ find ${LAZYCLI_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazycli' -exec mv {} ${LAZYCLI_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYCLI_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazycli $(lazycli --version) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyNPM official binary
+##################################################################
+RUN mkdir -p ${LAZYNPM_BIN_DIR}
+ADD ${LAZYNPM_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYNPM_TEMP} --directory ${LAZYNPM_BIN_DIR} && \
+ chmod +x ${LAZYNPM_BIN_DIR}/lazynpm && \
+ find ${LAZYNPM_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazynpm' -exec mv {} ${LAZYNPM_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYNPM_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazynpm $(lazynpm --version) && \
+ echo "============================================="
+
+##################################################################
+# Install LazyDocker official binary
+##################################################################
+RUN mkdir -p ${LAZYDOCKER_BIN_DIR}
+ADD ${LAZYDOCKER_DOWNLOAD_URL} /tmp
+
+RUN tar -xzf ${LAZYDOCKER_TEMP} --directory ${LAZYDOCKER_BIN_DIR} && \
+ chmod +x -R ${LAZYDOCKER_BIN_DIR}/lazydocker && \
+ find ${LAZYDOCKER_BIN_DIR} -maxdepth 1 -mindepth 1 ! -name 'lazydocker' -exec mv {} ${LAZYDOCKER_BIN_DIR}/.. \;
+
+ENV PATH="${LAZYDOCKER_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo lazydocker $(lazydocker --version) && \
+ echo "============================================="
+
+##################################################################
+# dumb init
+##################################################################
+RUN mkdir -p ${DUMB_INIT_BIN_DIR}
+ADD ${DUMB_INIT_DOWNLOAD_URL} ${DUMB_INIT_BIN_DIR}
+
+RUN mv -fv ${DUMB_INIT_BIN_DIR}/dumb-init_${DUMB_INIT_VERSION}_x86_64 ${DUMB_INIT_BIN_DIR}/dumb-init && \
+ chmod +x ${DUMB_INIT_BIN_DIR}/dumb-init
+
+ENV PATH="${DUMB_INIT_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo dumb-init $(dumb-init --version) && \
+ echo "============================================="
+
+##################################################################
+# gosu for easy step-down from root
+##################################################################
+RUN mkdir -p ${GOSU_BIN_DIR}
+ADD ${GOSU_DOWNLOAD_URL} ${GOSU_BIN_DIR}
+
+RUN mv -fv ${GOSU_BIN_DIR}/gosu-amd64 ${GOSU_BIN_DIR}/gosu && \
+ chmod +x -R ${GOSU_BIN_DIR}/gosu
+
+ENV PATH="${GOSU_BIN_DIR}:${PATH}"
+
+RUN echo "=============================================" && \
+ echo gosu $(gosu --version) && \
+ echo "============================================="
+
+##################################################################
+# Maven
+##################################################################
+ENV MAVEN_HOME=${MAVEN_ROOT}
+ENV M2_HOME=${MAVEN_ROOT}
+
+ADD ${MAVEN_LINK} /tmp
+RUN 7zz x ${MAVEN_TEMP} -o${MAVEN_ROOT}
+RUN chmod +x -R ${MAVEN_BIN}
+RUN mvn -v
+
+##################################################################
+# GRADLE
+##################################################################
+ADD ${GRADLE_LINK} /tmp
+RUN 7zz x ${GRADLE_TEMP} -o${GRADLE_ROOT}
+RUN chmod +x -R ${GRADLE_BIN}
+RUN gradle -v
+
+##################################################################
+# kotlin-compiler
+##################################################################
+ADD ${KTC_LINK} /tmp
+RUN 7zz x ${KTC_TEMP} -o${KTC_ROOT}
+RUN chmod +x -R ${KTC_BIN}
+RUN kotlin -version
+
+##################################################################
+# kotlin-native-prebuilt-linux
+##################################################################
+ADD ${KNPL_LINK} /tmp
+RUN tar -xvzf ${KNPL_TEMP} --directory ${KTC_ROOT}
+RUN chmod +x -R ${KNPL_BIN}
+
+##################################################################
+# git fresh binary
+##################################################################
+RUN gpg --keyserver keyserver.ubuntu.com --recv-keys A1715D88E1DF1F24 && \
+ gpg --export --output /etc/apt/keyrings/launchpad-git.gpg A1715D88E1DF1F24 && \
+ rm -rfv /etc/apt/sources.list.d/launchpad_git-mainline.list && \
+ rm -rfv /etc/apt/sources.list.d/launchpad_git-stable.list
+COPY etc/apt/sources.list.d/launchpad_git-mainline.list /etc/apt/sources.list.d/launchpad_git-mainline.list
+COPY etc/apt/sources.list.d/launchpad_git-stable.list /etc/apt/sources.list.d/launchpad_git-stable.list
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ git
+
+RUN echo "=============================================" && \
+ echo git $(git --version) && \
+ echo "============================================="
+
+##################################################################
+# git-lfs official binary
+##################################################################
+RUN curl -fsSL https://packagecloud.io/github/git-lfs/gpgkey | gpg --dearmor > /etc/apt/keyrings/github_git-lfs-archive-keyring.gpg && \
+ rm -rfv /etc/apt/sources.list.d/github_git-lfs.list
+COPY etc/apt/sources.list.d/github_git-lfs.list /etc/apt/sources.list.d/github_git-lfs.list
+RUN apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ git \
+ git-lfs && \
+ git-lfs install --skip-repo
+
+RUN echo "=============================================" && \
+ echo git $(git --version) && \
+ echo git-lfs $(git-lfs --version) && \
+ echo "============================================="
+
+##################################################################
+# gh official binary
+##################################################################
+RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/githubcli-archive-keyring.gpg && \
+ chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg && \
+ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list && \
+ apt-get update && \
+ apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests \
+ gh
+
+RUN echo "=============================================" && \
+ echo gh $(gh --version) && \
+ echo "============================================="
+
+##################################################################
+# cleanup
+##################################################################
+RUN echo "clean up" && \
+ apt-get clean -y && \
+ apt-get autoclean -y && \
+ rm -rfv /var/lib/apt/lists/* && \
+ rm -rfv /tmp/* && \
+ rm -rfv /var/cache/apt/archives/*.deb
+
+##################################################################
+# update file db
+##################################################################
+RUN updatedb
+
+##################################################################
+# Set original user back
+#################################################################
+# tcuser 1000
+#USER 1000
diff --git a/linux/advanced/teamcity/server/2024.12/Makefile b/linux/advanced/teamcity/server/2024.12/Makefile
new file mode 100644
index 000000000..06e855b50
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.12/Makefile
@@ -0,0 +1,36 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+ make build
+ make deploy
+ make clean
+
+build:
+ kaniko-wrapper --version
+
+dry:
+ make dry-run
+
+test:
+ make dry-run
+
+dry-run:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:v1.23.2-debug --dry-run
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:v1.23.2-debug
+
+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
diff --git a/linux/advanced/teamcity/server/2024.12/README.md b/linux/advanced/teamcity/server/2024.12/README.md
new file mode 100644
index 000000000..76aff7f7a
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.12/README.md
@@ -0,0 +1,115 @@
+## TeamCity Server - Powerful Continuous Integration and Continuous Delivery out of the box
+
+[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) server image. The image is suitable for production use and evaluation purposes.
+
+ More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-server.md).
+
+## How to Use This Image
+
+First, pull the image from the Docker Hub Repository
+
+```docker pull jetbrains/teamcity-server```
+
+
+### Linux container
+
+Use the following command to start a container with TeamCity server
+
+
+
+```
+docker run -it --name teamcity-server-instance \
+ -v :/data/teamcity_server/datadir \
+ -v :/opt/teamcity/logs \
+ -p :8111 \
+ jetbrains/teamcity-server
+```
+where
+
+ - **\** is the host machine directory to serve as the [TeamCity Data Directory](https://www.jetbrains.com/help/teamcity/teamcity-data-directory.html) where TeamCity stores project settings and build results. Pass an empty directory for the brand new start. If the mapping is not set, you will lose all the TeamCity settings on the container shutdown.
+ - **\** is the host machine directory to store the TeamCity server logs. The mapping can be omitted, but then the logs will be lost on container shutdown which will make issues investigation impossible.
+
+
+If you need to run a Linux-based container with non-root permissions (for example, when using some open source container application platforms), set the server's internal user identifier explicitly by passing an additional `-u 1000:1000` parameter. Note that after switching to a non-root user you might not be able to perform writing operations on files created under the root user. In this case, run `chown -R 1000:1000 ` to change the ownership of the directory containing these files.
+
+#### Alternative Tomcat configuration
+
+TeamCity has Tomcat J2EE server under the hood, and if you need to provide an alternative configuration for the TomCat, you can use extra parameter
+```
+-v /alternative/path/to/conf:/opt/teamcity/conf
+```
+
+To get a sample of the current contents of the Tomcat's `conf` directory, use the [`docker cp`](https://docs.docker.com/engine/reference/commandline/cp/) command.
+
+### Windows container
+```
+docker run -it --name teamcity-server-instance
+ -v :C:/ProgramData/JetBrains/TeamCity
+ -v :C:/TeamCity/logs
+ -p :8111
+ jetbrains/teamcity-server
+```
+
+See above for **\** and **\** description.
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+### Database
+
+TeamCity stores set of users and build results in an SQL database in addition to the Data Directory.
+By default, the TeamCity server uses an internal database stored on the file system under the data directory. However, production use requires an [external database](https://www.jetbrains.com/help/teamcity/setting-up-an-external-database.html#SettingupanExternalDatabase-DefaultInternalDatabase).
+
+To use the server for production, make sure to review and apply the [recommendations](https://www.jetbrains.com/help/teamcity/installing-and-configuring-the-teamcity-server.html#InstallingandConfiguringtheTeamCityServer-ConfiguringServerforProductionUse).
+
+### Build agents
+
+You will need at least one TeamCity agent to run builds. Check the [`jetbrains/teamcity-agent`](https://hub.docker.com/r/jetbrains/teamcity-agent/) and [`jetbrains/teamcity-minimal-agent`](https://hub.docker.com/r/jetbrains/teamcity-minimal-agent/) images.
+
+## Additional Commands
+
+When you need to pass additional environment variables to the server process, use the regular `-e` option. For example, to pass TEAMCITY_SERVER_MEM_OPTS environment variable, use:
+
+```
+docker run -it --name teamcity-server-instance \
+ -e TEAMCITY_SERVER_MEM_OPTS="-Xmx2g -XX:MaxPermSize=270m -XX:ReservedCodeCacheSize=350m" \
+ -v :/data/teamcity_server/datadir \
+ -v :/opt/teamcity/logs \
+ -p :8111 \
+ jetbrains/teamcity-server
+```
+
+To run the `maintainDB` script (e.g. for the server backup), stop your running container and execute the following command from your host:
+```
+docker run -it --name teamcity-server-instance \
+ -v :/data/teamcity_server/datadir \
+ -v :/opt/teamcity/logs \
+ -p :8111 \
+ jetbrains/teamcity-server \
+ "/opt/teamcity/bin/maintainDB.sh" "backup"
+```
+
+
+Be sure to keep all the local system paths the same with the main server start command.
+
+To change the context of the TeamCity app inside a Tomcat container, pass `-e TEAMCITY_CONTEXT=/context` to the `docker run` command. The default one is `ROOT`, meaning that the server would be available at `http://host/`.
+
+## Upgrading TeamCity
+
+Make sure to check the generic TeamCity [upgrade instructions](https://www.jetbrains.com/help/teamcity/upgrade.html).
+If you made no changes to the container, you can just stop the running container, pull a newer version of the image and the server in it via the usual command.
+If you changed the image, you will need to replicate the changes to the new TeamCity server image. In general, use Docker common sense to perform the upgrade.
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [Minimal Build Agent](https://hub.docker.com/r/jetbrains/teamcity-minimal-agent/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/)
diff --git a/linux/advanced/teamcity/server/2024.12/docker-compose.yml b/linux/advanced/teamcity/server/2024.12/docker-compose.yml
new file mode 100644
index 000000000..bd05dcd75
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.12/docker-compose.yml
@@ -0,0 +1,6 @@
+#version: '3'
+services:
+ app:
+ image: "epicmorg/teamcity-server:2024.12"
+ build:
+ context: .
diff --git a/linux/advanced/teamcity/server/2024.12/etc/apt/apt.conf.d/96-apt-retries b/linux/advanced/teamcity/server/2024.12/etc/apt/apt.conf.d/96-apt-retries
new file mode 100644
index 000000000..73262ccc3
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.12/etc/apt/apt.conf.d/96-apt-retries
@@ -0,0 +1 @@
+Acquire::Retries "9";
diff --git a/linux/advanced/teamcity/server/2024.12/etc/apt/apt.conf.d/97-allow-cert-exp b/linux/advanced/teamcity/server/2024.12/etc/apt/apt.conf.d/97-allow-cert-exp
new file mode 100644
index 000000000..e7ec46810
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.12/etc/apt/apt.conf.d/97-allow-cert-exp
@@ -0,0 +1,2 @@
+Acquire::https::Verify-Peer "false";
+Acquire::https::Verify-Host "false";
diff --git a/linux/advanced/teamcity/server/2024.12/etc/apt/apt.conf.d/98-allow-unauthenticated b/linux/advanced/teamcity/server/2024.12/etc/apt/apt.conf.d/98-allow-unauthenticated
new file mode 100644
index 000000000..b36cd01c8
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.12/etc/apt/apt.conf.d/98-allow-unauthenticated
@@ -0,0 +1 @@
+APT::Get::AllowUnauthenticated "true";
diff --git a/linux/advanced/teamcity/server/2024.12/etc/apt/apt.conf.d/99-no-check-valid-until b/linux/advanced/teamcity/server/2024.12/etc/apt/apt.conf.d/99-no-check-valid-until
new file mode 100644
index 000000000..4e6d9209d
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.12/etc/apt/apt.conf.d/99-no-check-valid-until
@@ -0,0 +1 @@
+Acquire::Check-Valid-Until no;
diff --git a/linux/advanced/teamcity/server/2024.12/etc/apt/sources.list b/linux/advanced/teamcity/server/2024.12/etc/apt/sources.list
new file mode 100644
index 000000000..a45006bab
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.12/etc/apt/sources.list
@@ -0,0 +1,19 @@
+#------------------------------------------------------------------------------#
+# OFFICIAL UBUNTU REPOS #
+#------------------------------------------------------------------------------#
+
+###### Ubuntu Main Repos
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy main multiverse restricted universe
+
+###### Ubuntu Update Repos
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy-backports main multiverse restricted universe
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy-proposed main multiverse restricted universe
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy-security main multiverse restricted universe
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy-updates main multiverse restricted universe
+
+###### Ubuntu Sorurce Repos
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy-backports main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy-proposed main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy-security main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy-updates main multiverse restricted universe
diff --git a/linux/advanced/teamcity/server/2024.12/etc/apt/sources.list.d/github_git-lfs.list b/linux/advanced/teamcity/server/2024.12/etc/apt/sources.list.d/github_git-lfs.list
new file mode 100644
index 000000000..eef30c760
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.12/etc/apt/sources.list.d/github_git-lfs.list
@@ -0,0 +1,2 @@
+deb [signed-by=/etc/apt/keyrings/github_git-lfs-archive-keyring.gpg] https://packagecloud.io/github/git-lfs/ubuntu/ jammy main
+deb-src [signed-by=/etc/apt/keyrings/github_git-lfs-archive-keyring.gpg] https://packagecloud.io/github/git-lfs/ubuntu/ jammy main
diff --git a/linux/advanced/teamcity/server/2024.12/etc/apt/sources.list.d/launchpad_git-mainline.list b/linux/advanced/teamcity/server/2024.12/etc/apt/sources.list.d/launchpad_git-mainline.list
new file mode 100644
index 000000000..09dc5aa02
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.12/etc/apt/sources.list.d/launchpad_git-mainline.list
@@ -0,0 +1,5 @@
+# mainline
+deb [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/candidate/ubuntu jammy main
+deb-src [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/candidate/ubuntu jammy main
+
+
diff --git a/linux/advanced/teamcity/server/2024.12/etc/apt/sources.list.d/launchpad_git-stable.list b/linux/advanced/teamcity/server/2024.12/etc/apt/sources.list.d/launchpad_git-stable.list
new file mode 100644
index 000000000..17a2907e4
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.12/etc/apt/sources.list.d/launchpad_git-stable.list
@@ -0,0 +1,3 @@
+# stable
+deb [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy main
+deb-src [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy main
diff --git a/linux/advanced/teamcity/server/2024.12/etc/locale.gen b/linux/advanced/teamcity/server/2024.12/etc/locale.gen
new file mode 100644
index 000000000..02f100afa
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.12/etc/locale.gen
@@ -0,0 +1,12 @@
+en_GB.UTF-8 UTF-8
+en_GB ISO-8859-1
+en_GB.ISO-8859-15 ISO-8859-15
+en_US.UTF-8 UTF-8
+en_US ISO-8859-1
+en_US.ISO-8859-15 ISO-8859-15
+ru_RU.UTF-8 UTF-8
+ru_RU.KOI8-R KOI8-R
+ru_RU ISO-8859-5
+ru_RU.CP1251 CP1251
+ru_UA.UTF-8 UTF-8
+ru_UA KOI8-U
diff --git a/linux/advanced/teamcity/server/2024.12/etc/locale.gen.full b/linux/advanced/teamcity/server/2024.12/etc/locale.gen.full
new file mode 100644
index 000000000..1e7b446a5
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.12/etc/locale.gen.full
@@ -0,0 +1,495 @@
+aa_DJ.UTF-8 UTF-8
+aa_DJ ISO-8859-1
+aa_ER UTF-8
+aa_ER@saaho UTF-8
+aa_ET UTF-8
+af_ZA.UTF-8 UTF-8
+af_ZA ISO-8859-1
+agr_PE UTF-8
+ak_GH UTF-8
+am_ET UTF-8
+an_ES.UTF-8 UTF-8
+an_ES ISO-8859-15
+anp_IN UTF-8
+ar_AE.UTF-8 UTF-8
+ar_AE ISO-8859-6
+ar_BH.UTF-8 UTF-8
+ar_BH ISO-8859-6
+ar_DZ.UTF-8 UTF-8
+ar_DZ ISO-8859-6
+ar_EG.UTF-8 UTF-8
+ar_EG ISO-8859-6
+ar_IN UTF-8
+ar_IQ.UTF-8 UTF-8
+ar_IQ ISO-8859-6
+ar_JO.UTF-8 UTF-8
+ar_JO ISO-8859-6
+ar_KW.UTF-8 UTF-8
+ar_KW ISO-8859-6
+ar_LB.UTF-8 UTF-8
+ar_LB ISO-8859-6
+ar_LY.UTF-8 UTF-8
+ar_LY ISO-8859-6
+ar_MA.UTF-8 UTF-8
+ar_MA ISO-8859-6
+ar_OM.UTF-8 UTF-8
+ar_OM ISO-8859-6
+ar_QA.UTF-8 UTF-8
+ar_QA ISO-8859-6
+ar_SA.UTF-8 UTF-8
+ar_SA ISO-8859-6
+ar_SD.UTF-8 UTF-8
+ar_SD ISO-8859-6
+ar_SS UTF-8
+ar_SY.UTF-8 UTF-8
+ar_SY ISO-8859-6
+ar_TN.UTF-8 UTF-8
+ar_TN ISO-8859-6
+ar_YE.UTF-8 UTF-8
+ar_YE ISO-8859-6
+ayc_PE UTF-8
+az_AZ UTF-8
+az_IR UTF-8
+as_IN UTF-8
+ast_ES.UTF-8 UTF-8
+ast_ES ISO-8859-15
+be_BY.UTF-8 UTF-8
+be_BY CP1251
+be_BY@latin UTF-8
+bem_ZM UTF-8
+ber_DZ UTF-8
+ber_MA UTF-8
+bg_BG.UTF-8 UTF-8
+bg_BG CP1251
+bhb_IN.UTF-8 UTF-8
+bho_IN UTF-8
+bho_NP UTF-8
+bi_VU UTF-8
+bn_BD UTF-8
+bn_IN UTF-8
+bo_CN UTF-8
+bo_IN UTF-8
+br_FR.UTF-8 UTF-8
+br_FR ISO-8859-1
+br_FR@euro ISO-8859-15
+brx_IN UTF-8
+bs_BA.UTF-8 UTF-8
+bs_BA ISO-8859-2
+byn_ER UTF-8
+ca_AD.UTF-8 UTF-8
+ca_AD ISO-8859-15
+ca_ES.UTF-8 UTF-8
+ca_ES ISO-8859-1
+ca_ES@euro ISO-8859-15
+ca_ES@valencia UTF-8
+ca_FR.UTF-8 UTF-8
+ca_FR ISO-8859-15
+ca_IT.UTF-8 UTF-8
+ca_IT ISO-8859-15
+ce_RU UTF-8
+chr_US UTF-8
+cmn_TW UTF-8
+crh_UA UTF-8
+cs_CZ.UTF-8 UTF-8
+cs_CZ ISO-8859-2
+csb_PL UTF-8
+cv_RU UTF-8
+cy_GB.UTF-8 UTF-8
+cy_GB ISO-8859-14
+da_DK.UTF-8 UTF-8
+da_DK ISO-8859-1
+de_AT.UTF-8 UTF-8
+de_AT ISO-8859-1
+de_AT@euro ISO-8859-15
+de_BE.UTF-8 UTF-8
+de_BE ISO-8859-1
+de_BE@euro ISO-8859-15
+de_CH.UTF-8 UTF-8
+de_CH ISO-8859-1
+de_DE.UTF-8 UTF-8
+de_DE ISO-8859-1
+de_DE@euro ISO-8859-15
+de_IT.UTF-8 UTF-8
+de_IT ISO-8859-1
+de_LI.UTF-8 UTF-8
+de_LU.UTF-8 UTF-8
+de_LU ISO-8859-1
+de_LU@euro ISO-8859-15
+doi_IN UTF-8
+dsb_DE UTF-8
+dv_MV UTF-8
+dz_BT UTF-8
+el_GR.UTF-8 UTF-8
+el_GR ISO-8859-7
+el_GR@euro ISO-8859-7
+el_CY.UTF-8 UTF-8
+el_CY ISO-8859-7
+en_AG UTF-8
+en_AU.UTF-8 UTF-8
+en_AU ISO-8859-1
+en_BW.UTF-8 UTF-8
+en_BW ISO-8859-1
+en_CA.UTF-8 UTF-8
+en_CA ISO-8859-1
+en_DK.UTF-8 UTF-8
+en_DK.ISO-8859-15 ISO-8859-15
+en_DK ISO-8859-1
+en_GB.UTF-8 UTF-8
+en_GB ISO-8859-1
+en_GB.ISO-8859-15 ISO-8859-15
+en_HK.UTF-8 UTF-8
+en_HK ISO-8859-1
+en_IE.UTF-8 UTF-8
+en_IE ISO-8859-1
+en_IE@euro ISO-8859-15
+en_IL UTF-8
+en_IN UTF-8
+en_NG UTF-8
+en_NZ.UTF-8 UTF-8
+en_NZ ISO-8859-1
+en_PH.UTF-8 UTF-8
+en_PH ISO-8859-1
+en_SC.UTF-8 UTF-8
+en_SG.UTF-8 UTF-8
+en_SG ISO-8859-1
+en_US.UTF-8 UTF-8
+en_US ISO-8859-1
+en_US.ISO-8859-15 ISO-8859-15
+en_ZA.UTF-8 UTF-8
+en_ZA ISO-8859-1
+en_ZM UTF-8
+en_ZW.UTF-8 UTF-8
+en_ZW ISO-8859-1
+eo UTF-8
+es_AR.UTF-8 UTF-8
+es_AR ISO-8859-1
+es_BO.UTF-8 UTF-8
+es_BO ISO-8859-1
+es_CL.UTF-8 UTF-8
+es_CL ISO-8859-1
+es_CO.UTF-8 UTF-8
+es_CO ISO-8859-1
+es_CR.UTF-8 UTF-8
+es_CR ISO-8859-1
+es_CU UTF-8
+es_DO.UTF-8 UTF-8
+es_DO ISO-8859-1
+es_EC.UTF-8 UTF-8
+es_EC ISO-8859-1
+es_ES.UTF-8 UTF-8
+es_ES ISO-8859-1
+es_ES@euro ISO-8859-15
+es_GT.UTF-8 UTF-8
+es_GT ISO-8859-1
+es_HN.UTF-8 UTF-8
+es_HN ISO-8859-1
+es_MX.UTF-8 UTF-8
+es_MX ISO-8859-1
+es_NI.UTF-8 UTF-8
+es_NI ISO-8859-1
+es_PA.UTF-8 UTF-8
+es_PA ISO-8859-1
+es_PE.UTF-8 UTF-8
+es_PE ISO-8859-1
+es_PR.UTF-8 UTF-8
+es_PR ISO-8859-1
+es_PY.UTF-8 UTF-8
+es_PY ISO-8859-1
+es_SV.UTF-8 UTF-8
+es_SV ISO-8859-1
+es_US.UTF-8 UTF-8
+es_US ISO-8859-1
+es_UY.UTF-8 UTF-8
+es_UY ISO-8859-1
+es_VE.UTF-8 UTF-8
+es_VE ISO-8859-1
+et_EE.UTF-8 UTF-8
+et_EE ISO-8859-1
+et_EE.ISO-8859-15 ISO-8859-15
+eu_ES.UTF-8 UTF-8
+eu_ES ISO-8859-1
+eu_ES@euro ISO-8859-15
+eu_FR.UTF-8 UTF-8
+eu_FR ISO-8859-1
+eu_FR@euro ISO-8859-15
+fa_IR UTF-8
+ff_SN UTF-8
+fi_FI.UTF-8 UTF-8
+fi_FI ISO-8859-1
+fi_FI@euro ISO-8859-15
+fil_PH UTF-8
+fo_FO.UTF-8 UTF-8
+fo_FO ISO-8859-1
+fr_BE.UTF-8 UTF-8
+fr_BE ISO-8859-1
+fr_BE@euro ISO-8859-15
+fr_CA.UTF-8 UTF-8
+fr_CA ISO-8859-1
+fr_CH.UTF-8 UTF-8
+fr_CH ISO-8859-1
+fr_FR.UTF-8 UTF-8
+fr_FR ISO-8859-1
+fr_FR@euro ISO-8859-15
+fr_LU.UTF-8 UTF-8
+fr_LU ISO-8859-1
+fr_LU@euro ISO-8859-15
+fur_IT UTF-8
+fy_NL UTF-8
+fy_DE UTF-8
+ga_IE.UTF-8 UTF-8
+ga_IE ISO-8859-1
+ga_IE@euro ISO-8859-15
+gd_GB.UTF-8 UTF-8
+gd_GB ISO-8859-15
+gez_ER UTF-8
+gez_ER@abegede UTF-8
+gez_ET UTF-8
+gez_ET@abegede UTF-8
+gl_ES.UTF-8 UTF-8
+gl_ES ISO-8859-1
+gl_ES@euro ISO-8859-15
+gu_IN UTF-8
+gv_GB.UTF-8 UTF-8
+gv_GB ISO-8859-1
+ha_NG UTF-8
+hak_TW UTF-8
+he_IL.UTF-8 UTF-8
+he_IL ISO-8859-8
+hi_IN UTF-8
+hif_FJ UTF-8
+hne_IN UTF-8
+hr_HR.UTF-8 UTF-8
+hr_HR ISO-8859-2
+hsb_DE.UTF-8 UTF-8
+hsb_DE ISO-8859-2
+ht_HT UTF-8
+hu_HU.UTF-8 UTF-8
+hu_HU ISO-8859-2
+hy_AM UTF-8
+hy_AM.ARMSCII-8 ARMSCII-8
+ia_FR UTF-8
+id_ID.UTF-8 UTF-8
+id_ID ISO-8859-1
+ig_NG UTF-8
+ik_CA UTF-8
+is_IS.UTF-8 UTF-8
+is_IS ISO-8859-1
+it_CH.UTF-8 UTF-8
+it_CH ISO-8859-1
+it_IT.UTF-8 UTF-8
+it_IT ISO-8859-1
+it_IT@euro ISO-8859-15
+iu_CA UTF-8
+ja_JP.UTF-8 UTF-8
+ja_JP.EUC-JP EUC-JP
+ka_GE.UTF-8 UTF-8
+ka_GE GEORGIAN-PS
+kab_DZ UTF-8
+kk_KZ.UTF-8 UTF-8
+kk_KZ PT154
+kk_KZ.RK1048 RK1048
+kl_GL.UTF-8 UTF-8
+kl_GL ISO-8859-1
+km_KH UTF-8
+kn_IN UTF-8
+ko_KR.UTF-8 UTF-8
+ko_KR.EUC-KR EUC-KR
+kok_IN UTF-8
+ks_IN UTF-8
+ks_IN@devanagari UTF-8
+ku_TR.UTF-8 UTF-8
+ku_TR ISO-8859-9
+kw_GB.UTF-8 UTF-8
+kw_GB ISO-8859-1
+ky_KG UTF-8
+lb_LU UTF-8
+lg_UG.UTF-8 UTF-8
+lg_UG ISO-8859-10
+li_BE UTF-8
+li_NL UTF-8
+lij_IT UTF-8
+ln_CD UTF-8
+lo_LA UTF-8
+lt_LT.UTF-8 UTF-8
+lt_LT ISO-8859-13
+lv_LV.UTF-8 UTF-8
+lv_LV ISO-8859-13
+lzh_TW UTF-8
+mag_IN UTF-8
+mai_IN UTF-8
+mai_NP UTF-8
+mfe_MU UTF-8
+mg_MG.UTF-8 UTF-8
+mg_MG ISO-8859-15
+mhr_RU UTF-8
+mi_NZ.UTF-8 UTF-8
+mi_NZ ISO-8859-13
+miq_NI UTF-8
+mjw_IN UTF-8
+mk_MK.UTF-8 UTF-8
+mk_MK ISO-8859-5
+ml_IN UTF-8
+mn_MN UTF-8
+mni_IN UTF-8
+mr_IN UTF-8
+ms_MY.UTF-8 UTF-8
+ms_MY ISO-8859-1
+mt_MT.UTF-8 UTF-8
+mt_MT ISO-8859-3
+my_MM UTF-8
+nan_TW UTF-8
+nan_TW@latin UTF-8
+nb_NO.UTF-8 UTF-8
+nb_NO ISO-8859-1
+nds_DE UTF-8
+nds_NL UTF-8
+ne_NP UTF-8
+nhn_MX UTF-8
+niu_NU UTF-8
+niu_NZ UTF-8
+nl_AW UTF-8
+nl_BE.UTF-8 UTF-8
+nl_BE ISO-8859-1
+nl_BE@euro ISO-8859-15
+nl_NL.UTF-8 UTF-8
+nl_NL ISO-8859-1
+nl_NL@euro ISO-8859-15
+nn_NO.UTF-8 UTF-8
+nn_NO ISO-8859-1
+nr_ZA UTF-8
+nso_ZA UTF-8
+oc_FR.UTF-8 UTF-8
+oc_FR ISO-8859-1
+om_ET UTF-8
+om_KE.UTF-8 UTF-8
+om_KE ISO-8859-1
+or_IN UTF-8
+os_RU UTF-8
+pa_IN UTF-8
+pa_PK UTF-8
+pap_AW UTF-8
+pap_CW UTF-8
+pl_PL.UTF-8 UTF-8
+pl_PL ISO-8859-2
+ps_AF UTF-8
+pt_BR.UTF-8 UTF-8
+pt_BR ISO-8859-1
+pt_PT.UTF-8 UTF-8
+pt_PT ISO-8859-1
+pt_PT@euro ISO-8859-15
+quz_PE UTF-8
+raj_IN UTF-8
+ro_RO.UTF-8 UTF-8
+ro_RO ISO-8859-2
+ru_RU.UTF-8 UTF-8
+ru_RU.KOI8-R KOI8-R
+ru_RU ISO-8859-5
+ru_RU.CP1251 CP1251
+ru_UA.UTF-8 UTF-8
+ru_UA KOI8-U
+rw_RW UTF-8
+sa_IN UTF-8
+sah_RU UTF-8
+sat_IN UTF-8
+sc_IT UTF-8
+sd_IN UTF-8
+sd_IN@devanagari UTF-8
+se_NO UTF-8
+sgs_LT UTF-8
+shn_MM UTF-8
+shs_CA UTF-8
+si_LK UTF-8
+trixie_ET UTF-8
+sk_SK.UTF-8 UTF-8
+sk_SK ISO-8859-2
+sl_SI.UTF-8 UTF-8
+sl_SI ISO-8859-2
+sm_WS UTF-8
+so_DJ.UTF-8 UTF-8
+so_DJ ISO-8859-1
+so_ET UTF-8
+so_KE.UTF-8 UTF-8
+so_KE ISO-8859-1
+so_SO.UTF-8 UTF-8
+so_SO ISO-8859-1
+sq_AL.UTF-8 UTF-8
+sq_AL ISO-8859-1
+sq_MK UTF-8
+sr_ME UTF-8
+sr_RS UTF-8
+sr_RS@latin UTF-8
+ss_ZA UTF-8
+st_ZA.UTF-8 UTF-8
+st_ZA ISO-8859-1
+sv_FI.UTF-8 UTF-8
+sv_FI ISO-8859-1
+sv_FI@euro ISO-8859-15
+sv_SE.UTF-8 UTF-8
+sv_SE ISO-8859-1
+sv_SE.ISO-8859-15 ISO-8859-15
+sw_KE UTF-8
+sw_TZ UTF-8
+szl_PL UTF-8
+ta_IN UTF-8
+ta_LK UTF-8
+tcy_IN.UTF-8 UTF-8
+te_IN UTF-8
+tg_TJ.UTF-8 UTF-8
+tg_TJ KOI8-T
+th_TH.UTF-8 UTF-8
+th_TH TIS-620
+the_NP UTF-8
+ti_ER UTF-8
+ti_ET UTF-8
+tig_ER UTF-8
+tk_TM UTF-8
+tl_PH.UTF-8 UTF-8
+tl_PH ISO-8859-1
+tn_ZA UTF-8
+to_TO UTF-8
+tpi_PG UTF-8
+tr_CY.UTF-8 UTF-8
+tr_CY ISO-8859-9
+tr_TR.UTF-8 UTF-8
+tr_TR ISO-8859-9
+ts_ZA UTF-8
+tt_RU UTF-8
+tt_RU@iqtelif UTF-8
+ug_CN UTF-8
+uk_UA.UTF-8 UTF-8
+uk_UA KOI8-U
+unm_US UTF-8
+ur_IN UTF-8
+ur_PK UTF-8
+uz_UZ.UTF-8 UTF-8
+uz_UZ ISO-8859-1
+uz_UZ@cyrillic UTF-8
+ve_ZA UTF-8
+vi_VN UTF-8
+wa_BE.UTF-8 UTF-8
+wa_BE ISO-8859-1
+wa_BE@euro ISO-8859-15
+wae_CH UTF-8
+wal_ET UTF-8
+wo_SN UTF-8
+xh_ZA.UTF-8 UTF-8
+xh_ZA ISO-8859-1
+yi_US.UTF-8 UTF-8
+yi_US CP1255
+yo_NG UTF-8
+yue_HK UTF-8
+yuw_PG UTF-8
+zh_CN.UTF-8 UTF-8
+zh_CN.GB18030 GB18030
+zh_CN.GBK GBK
+zh_CN GB2312
+zh_HK.UTF-8 UTF-8
+zh_HK BIG5-HKSCS
+zh_SG.UTF-8 UTF-8
+zh_SG.GBK GBK
+zh_SG GB2312
+zh_TW.UTF-8 UTF-8
+zh_TW.EUC-TW EUC-TW
+zh_TW BIG5
+zu_ZA.UTF-8 UTF-8
+zu_ZA ISO-8859-1
diff --git a/linux/advanced/teamcity/server/2024.12/usr/local/epicmorg/README.md b/linux/advanced/teamcity/server/2024.12/usr/local/epicmorg/README.md
new file mode 100644
index 000000000..83071e9ca
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.12/usr/local/epicmorg/README.md
@@ -0,0 +1,48 @@
+# About
+Hello. This folder contains sub-folders with custom tools such as `gosu`, `dumb-init` and etc.
+
+Some child images could install to this folder custom compilled products. Example: `nginx`, `php`, etc.
+
+All directories that contains binaryes (``) will be added to `$PATH`.
+
+# Structure
+pattern: `/usr/local/epicmorg///<..some data and files..>`
+
+example:
+```
+/usr/local/epicmorg/
+|-- 7z
+| `-- 7z2407
+| |-- History.txt
+| |-- License.txt
+| |-- MANUAL
+| |-- bin
+| `-- readme.txt
+|-- dumb-init
+| `-- 1.2.5
+| `-- bin
+|-- gosu
+| `-- 1.17
+| `-- bin
+|-- lazycli
+| `-- 0.1.15
+| `-- bin
+|-- lazydocker
+| `-- 0.23.3
+| |-- LICENSE
+| |-- README.md
+| `-- bin
+|-- lazygit
+| `-- 0.42.0
+| |-- LICENSE
+| |-- README.md
+| `-- bin
+|-- lazynpm
+| `-- 0.1.4
+| |-- LICENSE
+| |-- README.md
+| `-- bin
+`-- p4
+ `-- r23.2
+ `-- bin
+```
diff --git a/linux/advanced/teamcity/server/2024.12/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt b/linux/advanced/teamcity/server/2024.12/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
new file mode 100644
index 000000000..4c143a21f
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.12/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFwjCCA6qgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAxMjEwNDE1WhcNMzIwMjI3MjEwNDE1WjBwMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMSAwHgYDVQQDDBdSdXNzaWFuIFRydXN0ZWQgUm9v
+dCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMfFOZ8pUAL3+r2n
+qqE0Zp52selXsKGFYoG0GM5bwz1bSFtCt+AZQMhkWQheI3poZAToYJu69pHLKS6Q
+XBiwBC1cvzYmUYKMYZC7jE5YhEU2bSL0mX7NaMxMDmH2/NwuOVRj8OImVa5s1F4U
+zn4Kv3PFlDBjjSjXKVY9kmjUBsXQrIHeaqmUIsPIlNWUnimXS0I0abExqkbdrXbX
+YwCOXhOO2pDUx3ckmJlCMUGacUTnylyQW2VsJIyIGA8V0xzdaeUXg0VZ6ZmNUr5Y
+Ber/EAOLPb8NYpsAhJe2mXjMB/J9HNsoFMBFJ0lLOT/+dQvjbdRZoOT8eqJpWnVD
+U+QL/qEZnz57N88OWM3rabJkRNdU/Z7x5SFIM9FrqtN8xewsiBWBI0K6XFuOBOTD
+4V08o4TzJ8+Ccq5XlCUW2L48pZNCYuBDfBh7FxkB7qDgGDiaftEkZZfApRg2E+M9
+G8wkNKTPLDc4wH0FDTijhgxR3Y4PiS1HL2Zhw7bD3CbslmEGgfnnZojNkJtcLeBH
+BLa52/dSwNU4WWLubaYSiAmA9IUMX1/RpfpxOxd4Ykmhz97oFbUaDJFipIggx5sX
+ePAlkTdWnv+RWBxlJwMQ25oEHmRguNYf4Zr/Rxr9cS93Y+mdXIZaBEE0KS2iLRqa
+OiWBki9IMQU4phqPOBAaG7A+eP8PAgMBAAGjZjBkMB0GA1UdDgQWBBTh0YHlzlpf
+BKrS6badZrHF+qwshzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzAS
+BgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
+AAOCAgEAALIY1wkilt/urfEVM5vKzr6utOeDWCUczmWX/RX4ljpRdgF+5fAIS4vH
+tmXkqpSCOVeWUrJV9QvZn6L227ZwuE15cWi8DCDal3Ue90WgAJJZMfTshN4OI8cq
+W9E4EG9wglbEtMnObHlms8F3CHmrw3k6KmUkWGoa+/ENmcVl68u/cMRl1JbW2bM+
+/3A+SAg2c6iPDlehczKx2oa95QW0SkPPWGuNA/CE8CpyANIhu9XFrj3RQ3EqeRcS
+AQQod1RNuHpfETLU/A2gMmvn/w/sx7TB3W5BPs6rprOA37tutPq9u6FTZOcG1Oqj
+C/B7yTqgI7rbyvox7DEXoX7rIiEqyNNUguTk/u3SZ4VXE2kmxdmSh3TQvybfbnXV
+4JbCZVaqiZraqc7oZMnRoWrXRG3ztbnbes/9qhRGI7PqXqeKJBztxRTEVj8ONs1d
+WN5szTwaPIvhkhO3CO5ErU2rVdUr89wKpNXbBODFKRtgxUT70YpmJ46VVaqdAhOZ
+D9EUUn4YaeLaS8AjSF/h7UkjOibNc4qVDiPP+rkehFWM66PVnP1Msh93tc+taIfC
+EYVMxjh8zNbFuoc7fzvvrFILLe7ifvEIUqSVIC/AzplM/Jxw7buXFeGP1qVCBEHq
+391d/9RAfaZ12zkwFsl+IKwE/OZxW8AHa9i1p4GO0YSNuczzEm4=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/linux/advanced/teamcity/server/2024.12/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt b/linux/advanced/teamcity/server/2024.12/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
new file mode 100644
index 000000000..2e3f8285d
--- /dev/null
+++ b/linux/advanced/teamcity/server/2024.12/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
@@ -0,0 +1,41 @@
+-----BEGIN CERTIFICATE-----
+MIIHQjCCBSqgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAyMTEyNTE5WhcNMjcwMzA2MTEyNTE5WjBvMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMR8wHQYDVQQDDBZSdXNzaWFuIFRydXN0ZWQgU3Vi
+IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9YPqBKOk19NFymrE
+wehzrhBEgT2atLezpduB24mQ7CiOa/HVpFCDRZzdxqlh8drku408/tTmWzlNH/br
+HuQhZ/miWKOf35lpKzjyBd6TPM23uAfJvEOQ2/dnKGGJbsUo1/udKSvxQwVHpVv3
+S80OlluKfhWPDEXQpgyFqIzPoxIQTLZ0deirZwMVHarZ5u8HqHetRuAtmO2ZDGQn
+vVOJYAjls+Hiueq7Lj7Oce7CQsTwVZeP+XQx28PAaEZ3y6sQEt6rL06ddpSdoTMp
+BnCqTbxW+eWMyjkIn6t9GBtUV45yB1EkHNnj2Ex4GwCiN9T84QQjKSr+8f0psGrZ
+vPbCbQAwNFJjisLixnjlGPLKa5vOmNwIh/LAyUW5DjpkCx004LPDuqPpFsKXNKpa
+L2Dm6uc0x4Jo5m+gUTVORB6hOSzWnWDj2GWfomLzzyjG81DRGFBpco/O93zecsIN
+3SL2Ysjpq1zdoS01CMYxie//9zWvYwzI25/OZigtnpCIrcd2j1Y6dMUFQAzAtHE+
+qsXflSL8HIS+IJEFIQobLlYhHkoE3avgNx5jlu+OLYe0dF0Ykx1PGNjbwqvTX37R
+Cn32NMjlotW2QcGEZhDKj+3urZizp5xdTPZitA+aEjZM/Ni71VOdiOP0igbw6asZ
+2fxdozZ1TnSSYNYvNATwthNmZysCAwEAAaOCAeUwggHhMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTR4XENCy2BTm6KSo9MI7NM
+XqtpCzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzCBxwYIKwYBBQUH
+AQEEgbowgbcwOwYIKwYBBQUHMAKGL2h0dHA6Ly9yb3N0ZWxlY29tLnJ1L2NkcC9y
+b290Y2Ffc3NsX3JzYTIwMjIuY3J0MDsGCCsGAQUFBzAChi9odHRwOi8vY29tcGFu
+eS5ydC5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNydDA7BggrBgEFBQcwAoYv
+aHR0cDovL3JlZXN0ci1wa2kucnUvY2RwL3Jvb3RjYV9zc2xfcnNhMjAyMi5jcnQw
+gbAGA1UdHwSBqDCBpTA1oDOgMYYvaHR0cDovL3Jvc3RlbGVjb20ucnUvY2RwL3Jv
+b3RjYV9zc2xfcnNhMjAyMi5jcmwwNaAzoDGGL2h0dHA6Ly9jb21wYW55LnJ0LnJ1
+L2NkcC9yb290Y2Ffc3NsX3JzYTIwMjIuY3JsMDWgM6Axhi9odHRwOi8vcmVlc3Ry
+LXBraS5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNybDANBgkqhkiG9w0BAQsF
+AAOCAgEARBVzZls79AdiSCpar15dA5Hr/rrT4WbrOfzlpI+xrLeRPrUG6eUWIW4v
+Sui1yx3iqGLCjPcKb+HOTwoRMbI6ytP/ndp3TlYua2advYBEhSvjs+4vDZNwXr/D
+anbwIWdurZmViQRBDFebpkvnIvru/RpWud/5r624Wp8voZMRtj/cm6aI9LtvBfT9
+cfzhOaexI/99c14dyiuk1+6QhdwKaCRTc1mdfNQmnfWNRbfWhWBlK3h4GGE9JK33
+Gk8ZS8DMrkdAh0xby4xAQ/mSWAfWrBmfzlOqGyoB1U47WTOeqNbWkkoAP2ys94+s
+Jg4NTkiDVtXRF6nr6fYi0bSOvOFg0IQrMXO2Y8gyg9ARdPJwKtvWX8VPADCYMiWH
+h4n8bZokIrImVKLDQKHY4jCsND2HHdJfnrdL2YJw1qFskNO4cSNmZydw0Wkgjv9k
+F+KxqrDKlB8MZu2Hclph6v/CZ0fQ9YuE8/lsHZ0Qc2HyiSMnvjgK5fDc3TD4fa8F
+E8gMNurM+kV8PT8LNIM+4Zs+LKEV8nqRWBaxkIVJGekkVKO8xDBOG/aN62AZKHOe
+GcyIdu7yNMMRihGVZCYr8rYiJoKiOzDqOkPkLOPdhtVlgnhowzHDxMHND/E2WA5p
+ZHuNM/m0TXt2wTTPL7JH2YC0gPz/BvvSzjksgzU5rLbRyUKQkgU=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/linux/advanced/teamcity/server/Dockerfile b/linux/advanced/teamcity/server/latest/Dockerfile
similarity index 98%
rename from linux/advanced/teamcity/server/Dockerfile
rename to linux/advanced/teamcity/server/latest/Dockerfile
index a4276e4aa..a6e8f528f 100644
--- a/linux/advanced/teamcity/server/Dockerfile
+++ b/linux/advanced/teamcity/server/latest/Dockerfile
@@ -1,4 +1,4 @@
-FROM jetbrains/teamcity-server
+FROM jetbrains/teamcity-server:latest
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
LABEL org.opencontainers.image.vendor="EpicMorg DevTeam, developer@epicm.org"
LABEL org.opencontainers.image.authors="STAM, kasthack, Aleks-Z"
@@ -208,6 +208,11 @@ ADD ${P4_DOWNLOAD_URL} ${P4_BIN_DIR}
RUN chmod +x ${P4_BIN_DIR}/p4
ENV PATH="${P4_BIN_DIR}:${PATH}"
+# Update internal p4 binary to new
+RUN rm -rfv /opt/perforce/bin/p4 && \
+ ln -sfv ${P4_BIN_DIR}/p4 /opt/perforce/bin/p4 && \
+ ln -sfv ${P4_BIN_DIR}/p4 /opt/perforce/usr/bin/p4
+
##################################################################
# Install 7z official binary
##################################################################
diff --git a/linux/advanced/teamcity/server/latest/Makefile b/linux/advanced/teamcity/server/latest/Makefile
new file mode 100644
index 000000000..06e855b50
--- /dev/null
+++ b/linux/advanced/teamcity/server/latest/Makefile
@@ -0,0 +1,36 @@
+PIP_BREAK_SYSTEM_PACKAGES=1
+
+all: app
+
+app:
+ make build
+ make deploy
+ make clean
+
+build:
+ kaniko-wrapper --version
+
+dry:
+ make dry-run
+
+test:
+ make dry-run
+
+dry-run:
+ kaniko-wrapper --kaniko-image gcr.io/kaniko-project/executor:v1.23.2-debug --dry-run
+
+build-compose:
+ docker-compose build --compress --parallel --progress plain
+
+deploy:
+ kaniko-wrapper --deploy --kaniko-image gcr.io/kaniko-project/executor:v1.23.2-debug
+
+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
diff --git a/linux/advanced/teamcity/server/latest/README.md b/linux/advanced/teamcity/server/latest/README.md
new file mode 100644
index 000000000..76aff7f7a
--- /dev/null
+++ b/linux/advanced/teamcity/server/latest/README.md
@@ -0,0 +1,115 @@
+## TeamCity Server - Powerful Continuous Integration and Continuous Delivery out of the box
+
+[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
+
+This is an official [JetBrains TeamCity](https://www.jetbrains.com/teamcity/) server image. The image is suitable for production use and evaluation purposes.
+
+ More details about tags and components are [here](https://github.com/JetBrains/teamcity-docker-images/blob/master/generated/teamcity-server.md).
+
+## How to Use This Image
+
+First, pull the image from the Docker Hub Repository
+
+```docker pull jetbrains/teamcity-server```
+
+
+### Linux container
+
+Use the following command to start a container with TeamCity server
+
+
+
+```
+docker run -it --name teamcity-server-instance \
+ -v :/data/teamcity_server/datadir \
+ -v :/opt/teamcity/logs \
+ -p :8111 \
+ jetbrains/teamcity-server
+```
+where
+
+ - **\** is the host machine directory to serve as the [TeamCity Data Directory](https://www.jetbrains.com/help/teamcity/teamcity-data-directory.html) where TeamCity stores project settings and build results. Pass an empty directory for the brand new start. If the mapping is not set, you will lose all the TeamCity settings on the container shutdown.
+ - **\** is the host machine directory to store the TeamCity server logs. The mapping can be omitted, but then the logs will be lost on container shutdown which will make issues investigation impossible.
+
+
+If you need to run a Linux-based container with non-root permissions (for example, when using some open source container application platforms), set the server's internal user identifier explicitly by passing an additional `-u 1000:1000` parameter. Note that after switching to a non-root user you might not be able to perform writing operations on files created under the root user. In this case, run `chown -R 1000:1000 ` to change the ownership of the directory containing these files.
+
+#### Alternative Tomcat configuration
+
+TeamCity has Tomcat J2EE server under the hood, and if you need to provide an alternative configuration for the TomCat, you can use extra parameter
+```
+-v /alternative/path/to/conf:/opt/teamcity/conf
+```
+
+To get a sample of the current contents of the Tomcat's `conf` directory, use the [`docker cp`](https://docs.docker.com/engine/reference/commandline/cp/) command.
+
+### Windows container
+```
+docker run -it --name teamcity-server-instance
+ -v :C:/ProgramData/JetBrains/TeamCity
+ -v :C:/TeamCity/logs
+ -p :8111
+ jetbrains/teamcity-server
+```
+
+See above for **\** and **\** description.
+
+The details on the known problems in Windows containers are available in the [TeamCity documentation](https://www.jetbrains.com/help/teamcity/known-issues.html#KnownIssues-WindowsDockerContainers).
+
+### Database
+
+TeamCity stores set of users and build results in an SQL database in addition to the Data Directory.
+By default, the TeamCity server uses an internal database stored on the file system under the data directory. However, production use requires an [external database](https://www.jetbrains.com/help/teamcity/setting-up-an-external-database.html#SettingupanExternalDatabase-DefaultInternalDatabase).
+
+To use the server for production, make sure to review and apply the [recommendations](https://www.jetbrains.com/help/teamcity/installing-and-configuring-the-teamcity-server.html#InstallingandConfiguringtheTeamCityServer-ConfiguringServerforProductionUse).
+
+### Build agents
+
+You will need at least one TeamCity agent to run builds. Check the [`jetbrains/teamcity-agent`](https://hub.docker.com/r/jetbrains/teamcity-agent/) and [`jetbrains/teamcity-minimal-agent`](https://hub.docker.com/r/jetbrains/teamcity-minimal-agent/) images.
+
+## Additional Commands
+
+When you need to pass additional environment variables to the server process, use the regular `-e` option. For example, to pass TEAMCITY_SERVER_MEM_OPTS environment variable, use:
+
+```
+docker run -it --name teamcity-server-instance \
+ -e TEAMCITY_SERVER_MEM_OPTS="-Xmx2g -XX:MaxPermSize=270m -XX:ReservedCodeCacheSize=350m" \
+ -v :/data/teamcity_server/datadir \
+ -v :/opt/teamcity/logs \
+ -p :8111 \
+ jetbrains/teamcity-server
+```
+
+To run the `maintainDB` script (e.g. for the server backup), stop your running container and execute the following command from your host:
+```
+docker run -it --name teamcity-server-instance \
+ -v :/data/teamcity_server/datadir \
+ -v :/opt/teamcity/logs \
+ -p :8111 \
+ jetbrains/teamcity-server \
+ "/opt/teamcity/bin/maintainDB.sh" "backup"
+```
+
+
+Be sure to keep all the local system paths the same with the main server start command.
+
+To change the context of the TeamCity app inside a Tomcat container, pass `-e TEAMCITY_CONTEXT=/context` to the `docker run` command. The default one is `ROOT`, meaning that the server would be available at `http://host/`.
+
+## Upgrading TeamCity
+
+Make sure to check the generic TeamCity [upgrade instructions](https://www.jetbrains.com/help/teamcity/upgrade.html).
+If you made no changes to the container, you can just stop the running container, pull a newer version of the image and the server in it via the usual command.
+If you changed the image, you will need to replicate the changes to the new TeamCity server image. In general, use Docker common sense to perform the upgrade.
+
+## License
+
+The image is available under the [TeamCity license](https://www.jetbrains.com/teamcity/buy/license.html).
+TeamCity is free for perpetual use with the limitation of 100 build configurations (jobs) and 3 agents. [Licensing details](https://www.jetbrains.com/help/teamcity/licensing-policy.html).
+
+## Feedback
+
+Report issues of suggestions to the official TeamCity [issue tracker](https://youtrack.jetbrains.com/issues/TW).
+
+## Other TeamCity Images
+* [Minimal Build Agent](https://hub.docker.com/r/jetbrains/teamcity-minimal-agent/)
+* [Build Agent](https://hub.docker.com/r/jetbrains/teamcity-agent/)
diff --git a/linux/advanced/teamcity/server/docker-compose.yml b/linux/advanced/teamcity/server/latest/docker-compose.yml
similarity index 100%
rename from linux/advanced/teamcity/server/docker-compose.yml
rename to linux/advanced/teamcity/server/latest/docker-compose.yml
diff --git a/linux/advanced/teamcity/server/latest/etc/apt/apt.conf.d/96-apt-retries b/linux/advanced/teamcity/server/latest/etc/apt/apt.conf.d/96-apt-retries
new file mode 100644
index 000000000..73262ccc3
--- /dev/null
+++ b/linux/advanced/teamcity/server/latest/etc/apt/apt.conf.d/96-apt-retries
@@ -0,0 +1 @@
+Acquire::Retries "9";
diff --git a/linux/advanced/teamcity/server/latest/etc/apt/apt.conf.d/97-allow-cert-exp b/linux/advanced/teamcity/server/latest/etc/apt/apt.conf.d/97-allow-cert-exp
new file mode 100644
index 000000000..e7ec46810
--- /dev/null
+++ b/linux/advanced/teamcity/server/latest/etc/apt/apt.conf.d/97-allow-cert-exp
@@ -0,0 +1,2 @@
+Acquire::https::Verify-Peer "false";
+Acquire::https::Verify-Host "false";
diff --git a/linux/advanced/teamcity/server/latest/etc/apt/apt.conf.d/98-allow-unauthenticated b/linux/advanced/teamcity/server/latest/etc/apt/apt.conf.d/98-allow-unauthenticated
new file mode 100644
index 000000000..b36cd01c8
--- /dev/null
+++ b/linux/advanced/teamcity/server/latest/etc/apt/apt.conf.d/98-allow-unauthenticated
@@ -0,0 +1 @@
+APT::Get::AllowUnauthenticated "true";
diff --git a/linux/advanced/teamcity/server/latest/etc/apt/apt.conf.d/99-no-check-valid-until b/linux/advanced/teamcity/server/latest/etc/apt/apt.conf.d/99-no-check-valid-until
new file mode 100644
index 000000000..4e6d9209d
--- /dev/null
+++ b/linux/advanced/teamcity/server/latest/etc/apt/apt.conf.d/99-no-check-valid-until
@@ -0,0 +1 @@
+Acquire::Check-Valid-Until no;
diff --git a/linux/advanced/teamcity/server/latest/etc/apt/sources.list b/linux/advanced/teamcity/server/latest/etc/apt/sources.list
new file mode 100644
index 000000000..a45006bab
--- /dev/null
+++ b/linux/advanced/teamcity/server/latest/etc/apt/sources.list
@@ -0,0 +1,19 @@
+#------------------------------------------------------------------------------#
+# OFFICIAL UBUNTU REPOS #
+#------------------------------------------------------------------------------#
+
+###### Ubuntu Main Repos
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy main multiverse restricted universe
+
+###### Ubuntu Update Repos
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy-backports main multiverse restricted universe
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy-proposed main multiverse restricted universe
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy-security main multiverse restricted universe
+deb [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy-updates main multiverse restricted universe
+
+###### Ubuntu Sorurce Repos
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy-backports main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy-proposed main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy-security main multiverse restricted universe
+deb-src [trusted=yes] http://archive.ubuntu.com/ubuntu/ jammy-updates main multiverse restricted universe
diff --git a/linux/advanced/teamcity/server/latest/etc/apt/sources.list.d/github_git-lfs.list b/linux/advanced/teamcity/server/latest/etc/apt/sources.list.d/github_git-lfs.list
new file mode 100644
index 000000000..eef30c760
--- /dev/null
+++ b/linux/advanced/teamcity/server/latest/etc/apt/sources.list.d/github_git-lfs.list
@@ -0,0 +1,2 @@
+deb [signed-by=/etc/apt/keyrings/github_git-lfs-archive-keyring.gpg] https://packagecloud.io/github/git-lfs/ubuntu/ jammy main
+deb-src [signed-by=/etc/apt/keyrings/github_git-lfs-archive-keyring.gpg] https://packagecloud.io/github/git-lfs/ubuntu/ jammy main
diff --git a/linux/advanced/teamcity/server/latest/etc/apt/sources.list.d/launchpad_git-mainline.list b/linux/advanced/teamcity/server/latest/etc/apt/sources.list.d/launchpad_git-mainline.list
new file mode 100644
index 000000000..09dc5aa02
--- /dev/null
+++ b/linux/advanced/teamcity/server/latest/etc/apt/sources.list.d/launchpad_git-mainline.list
@@ -0,0 +1,5 @@
+# mainline
+deb [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/candidate/ubuntu jammy main
+deb-src [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/candidate/ubuntu jammy main
+
+
diff --git a/linux/advanced/teamcity/server/latest/etc/apt/sources.list.d/launchpad_git-stable.list b/linux/advanced/teamcity/server/latest/etc/apt/sources.list.d/launchpad_git-stable.list
new file mode 100644
index 000000000..17a2907e4
--- /dev/null
+++ b/linux/advanced/teamcity/server/latest/etc/apt/sources.list.d/launchpad_git-stable.list
@@ -0,0 +1,3 @@
+# stable
+deb [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy main
+deb-src [signed-by=/etc/apt/keyrings/launchpad-git.gpg] https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy main
diff --git a/linux/advanced/teamcity/server/latest/etc/locale.gen b/linux/advanced/teamcity/server/latest/etc/locale.gen
new file mode 100644
index 000000000..02f100afa
--- /dev/null
+++ b/linux/advanced/teamcity/server/latest/etc/locale.gen
@@ -0,0 +1,12 @@
+en_GB.UTF-8 UTF-8
+en_GB ISO-8859-1
+en_GB.ISO-8859-15 ISO-8859-15
+en_US.UTF-8 UTF-8
+en_US ISO-8859-1
+en_US.ISO-8859-15 ISO-8859-15
+ru_RU.UTF-8 UTF-8
+ru_RU.KOI8-R KOI8-R
+ru_RU ISO-8859-5
+ru_RU.CP1251 CP1251
+ru_UA.UTF-8 UTF-8
+ru_UA KOI8-U
diff --git a/linux/advanced/teamcity/server/latest/etc/locale.gen.full b/linux/advanced/teamcity/server/latest/etc/locale.gen.full
new file mode 100644
index 000000000..1e7b446a5
--- /dev/null
+++ b/linux/advanced/teamcity/server/latest/etc/locale.gen.full
@@ -0,0 +1,495 @@
+aa_DJ.UTF-8 UTF-8
+aa_DJ ISO-8859-1
+aa_ER UTF-8
+aa_ER@saaho UTF-8
+aa_ET UTF-8
+af_ZA.UTF-8 UTF-8
+af_ZA ISO-8859-1
+agr_PE UTF-8
+ak_GH UTF-8
+am_ET UTF-8
+an_ES.UTF-8 UTF-8
+an_ES ISO-8859-15
+anp_IN UTF-8
+ar_AE.UTF-8 UTF-8
+ar_AE ISO-8859-6
+ar_BH.UTF-8 UTF-8
+ar_BH ISO-8859-6
+ar_DZ.UTF-8 UTF-8
+ar_DZ ISO-8859-6
+ar_EG.UTF-8 UTF-8
+ar_EG ISO-8859-6
+ar_IN UTF-8
+ar_IQ.UTF-8 UTF-8
+ar_IQ ISO-8859-6
+ar_JO.UTF-8 UTF-8
+ar_JO ISO-8859-6
+ar_KW.UTF-8 UTF-8
+ar_KW ISO-8859-6
+ar_LB.UTF-8 UTF-8
+ar_LB ISO-8859-6
+ar_LY.UTF-8 UTF-8
+ar_LY ISO-8859-6
+ar_MA.UTF-8 UTF-8
+ar_MA ISO-8859-6
+ar_OM.UTF-8 UTF-8
+ar_OM ISO-8859-6
+ar_QA.UTF-8 UTF-8
+ar_QA ISO-8859-6
+ar_SA.UTF-8 UTF-8
+ar_SA ISO-8859-6
+ar_SD.UTF-8 UTF-8
+ar_SD ISO-8859-6
+ar_SS UTF-8
+ar_SY.UTF-8 UTF-8
+ar_SY ISO-8859-6
+ar_TN.UTF-8 UTF-8
+ar_TN ISO-8859-6
+ar_YE.UTF-8 UTF-8
+ar_YE ISO-8859-6
+ayc_PE UTF-8
+az_AZ UTF-8
+az_IR UTF-8
+as_IN UTF-8
+ast_ES.UTF-8 UTF-8
+ast_ES ISO-8859-15
+be_BY.UTF-8 UTF-8
+be_BY CP1251
+be_BY@latin UTF-8
+bem_ZM UTF-8
+ber_DZ UTF-8
+ber_MA UTF-8
+bg_BG.UTF-8 UTF-8
+bg_BG CP1251
+bhb_IN.UTF-8 UTF-8
+bho_IN UTF-8
+bho_NP UTF-8
+bi_VU UTF-8
+bn_BD UTF-8
+bn_IN UTF-8
+bo_CN UTF-8
+bo_IN UTF-8
+br_FR.UTF-8 UTF-8
+br_FR ISO-8859-1
+br_FR@euro ISO-8859-15
+brx_IN UTF-8
+bs_BA.UTF-8 UTF-8
+bs_BA ISO-8859-2
+byn_ER UTF-8
+ca_AD.UTF-8 UTF-8
+ca_AD ISO-8859-15
+ca_ES.UTF-8 UTF-8
+ca_ES ISO-8859-1
+ca_ES@euro ISO-8859-15
+ca_ES@valencia UTF-8
+ca_FR.UTF-8 UTF-8
+ca_FR ISO-8859-15
+ca_IT.UTF-8 UTF-8
+ca_IT ISO-8859-15
+ce_RU UTF-8
+chr_US UTF-8
+cmn_TW UTF-8
+crh_UA UTF-8
+cs_CZ.UTF-8 UTF-8
+cs_CZ ISO-8859-2
+csb_PL UTF-8
+cv_RU UTF-8
+cy_GB.UTF-8 UTF-8
+cy_GB ISO-8859-14
+da_DK.UTF-8 UTF-8
+da_DK ISO-8859-1
+de_AT.UTF-8 UTF-8
+de_AT ISO-8859-1
+de_AT@euro ISO-8859-15
+de_BE.UTF-8 UTF-8
+de_BE ISO-8859-1
+de_BE@euro ISO-8859-15
+de_CH.UTF-8 UTF-8
+de_CH ISO-8859-1
+de_DE.UTF-8 UTF-8
+de_DE ISO-8859-1
+de_DE@euro ISO-8859-15
+de_IT.UTF-8 UTF-8
+de_IT ISO-8859-1
+de_LI.UTF-8 UTF-8
+de_LU.UTF-8 UTF-8
+de_LU ISO-8859-1
+de_LU@euro ISO-8859-15
+doi_IN UTF-8
+dsb_DE UTF-8
+dv_MV UTF-8
+dz_BT UTF-8
+el_GR.UTF-8 UTF-8
+el_GR ISO-8859-7
+el_GR@euro ISO-8859-7
+el_CY.UTF-8 UTF-8
+el_CY ISO-8859-7
+en_AG UTF-8
+en_AU.UTF-8 UTF-8
+en_AU ISO-8859-1
+en_BW.UTF-8 UTF-8
+en_BW ISO-8859-1
+en_CA.UTF-8 UTF-8
+en_CA ISO-8859-1
+en_DK.UTF-8 UTF-8
+en_DK.ISO-8859-15 ISO-8859-15
+en_DK ISO-8859-1
+en_GB.UTF-8 UTF-8
+en_GB ISO-8859-1
+en_GB.ISO-8859-15 ISO-8859-15
+en_HK.UTF-8 UTF-8
+en_HK ISO-8859-1
+en_IE.UTF-8 UTF-8
+en_IE ISO-8859-1
+en_IE@euro ISO-8859-15
+en_IL UTF-8
+en_IN UTF-8
+en_NG UTF-8
+en_NZ.UTF-8 UTF-8
+en_NZ ISO-8859-1
+en_PH.UTF-8 UTF-8
+en_PH ISO-8859-1
+en_SC.UTF-8 UTF-8
+en_SG.UTF-8 UTF-8
+en_SG ISO-8859-1
+en_US.UTF-8 UTF-8
+en_US ISO-8859-1
+en_US.ISO-8859-15 ISO-8859-15
+en_ZA.UTF-8 UTF-8
+en_ZA ISO-8859-1
+en_ZM UTF-8
+en_ZW.UTF-8 UTF-8
+en_ZW ISO-8859-1
+eo UTF-8
+es_AR.UTF-8 UTF-8
+es_AR ISO-8859-1
+es_BO.UTF-8 UTF-8
+es_BO ISO-8859-1
+es_CL.UTF-8 UTF-8
+es_CL ISO-8859-1
+es_CO.UTF-8 UTF-8
+es_CO ISO-8859-1
+es_CR.UTF-8 UTF-8
+es_CR ISO-8859-1
+es_CU UTF-8
+es_DO.UTF-8 UTF-8
+es_DO ISO-8859-1
+es_EC.UTF-8 UTF-8
+es_EC ISO-8859-1
+es_ES.UTF-8 UTF-8
+es_ES ISO-8859-1
+es_ES@euro ISO-8859-15
+es_GT.UTF-8 UTF-8
+es_GT ISO-8859-1
+es_HN.UTF-8 UTF-8
+es_HN ISO-8859-1
+es_MX.UTF-8 UTF-8
+es_MX ISO-8859-1
+es_NI.UTF-8 UTF-8
+es_NI ISO-8859-1
+es_PA.UTF-8 UTF-8
+es_PA ISO-8859-1
+es_PE.UTF-8 UTF-8
+es_PE ISO-8859-1
+es_PR.UTF-8 UTF-8
+es_PR ISO-8859-1
+es_PY.UTF-8 UTF-8
+es_PY ISO-8859-1
+es_SV.UTF-8 UTF-8
+es_SV ISO-8859-1
+es_US.UTF-8 UTF-8
+es_US ISO-8859-1
+es_UY.UTF-8 UTF-8
+es_UY ISO-8859-1
+es_VE.UTF-8 UTF-8
+es_VE ISO-8859-1
+et_EE.UTF-8 UTF-8
+et_EE ISO-8859-1
+et_EE.ISO-8859-15 ISO-8859-15
+eu_ES.UTF-8 UTF-8
+eu_ES ISO-8859-1
+eu_ES@euro ISO-8859-15
+eu_FR.UTF-8 UTF-8
+eu_FR ISO-8859-1
+eu_FR@euro ISO-8859-15
+fa_IR UTF-8
+ff_SN UTF-8
+fi_FI.UTF-8 UTF-8
+fi_FI ISO-8859-1
+fi_FI@euro ISO-8859-15
+fil_PH UTF-8
+fo_FO.UTF-8 UTF-8
+fo_FO ISO-8859-1
+fr_BE.UTF-8 UTF-8
+fr_BE ISO-8859-1
+fr_BE@euro ISO-8859-15
+fr_CA.UTF-8 UTF-8
+fr_CA ISO-8859-1
+fr_CH.UTF-8 UTF-8
+fr_CH ISO-8859-1
+fr_FR.UTF-8 UTF-8
+fr_FR ISO-8859-1
+fr_FR@euro ISO-8859-15
+fr_LU.UTF-8 UTF-8
+fr_LU ISO-8859-1
+fr_LU@euro ISO-8859-15
+fur_IT UTF-8
+fy_NL UTF-8
+fy_DE UTF-8
+ga_IE.UTF-8 UTF-8
+ga_IE ISO-8859-1
+ga_IE@euro ISO-8859-15
+gd_GB.UTF-8 UTF-8
+gd_GB ISO-8859-15
+gez_ER UTF-8
+gez_ER@abegede UTF-8
+gez_ET UTF-8
+gez_ET@abegede UTF-8
+gl_ES.UTF-8 UTF-8
+gl_ES ISO-8859-1
+gl_ES@euro ISO-8859-15
+gu_IN UTF-8
+gv_GB.UTF-8 UTF-8
+gv_GB ISO-8859-1
+ha_NG UTF-8
+hak_TW UTF-8
+he_IL.UTF-8 UTF-8
+he_IL ISO-8859-8
+hi_IN UTF-8
+hif_FJ UTF-8
+hne_IN UTF-8
+hr_HR.UTF-8 UTF-8
+hr_HR ISO-8859-2
+hsb_DE.UTF-8 UTF-8
+hsb_DE ISO-8859-2
+ht_HT UTF-8
+hu_HU.UTF-8 UTF-8
+hu_HU ISO-8859-2
+hy_AM UTF-8
+hy_AM.ARMSCII-8 ARMSCII-8
+ia_FR UTF-8
+id_ID.UTF-8 UTF-8
+id_ID ISO-8859-1
+ig_NG UTF-8
+ik_CA UTF-8
+is_IS.UTF-8 UTF-8
+is_IS ISO-8859-1
+it_CH.UTF-8 UTF-8
+it_CH ISO-8859-1
+it_IT.UTF-8 UTF-8
+it_IT ISO-8859-1
+it_IT@euro ISO-8859-15
+iu_CA UTF-8
+ja_JP.UTF-8 UTF-8
+ja_JP.EUC-JP EUC-JP
+ka_GE.UTF-8 UTF-8
+ka_GE GEORGIAN-PS
+kab_DZ UTF-8
+kk_KZ.UTF-8 UTF-8
+kk_KZ PT154
+kk_KZ.RK1048 RK1048
+kl_GL.UTF-8 UTF-8
+kl_GL ISO-8859-1
+km_KH UTF-8
+kn_IN UTF-8
+ko_KR.UTF-8 UTF-8
+ko_KR.EUC-KR EUC-KR
+kok_IN UTF-8
+ks_IN UTF-8
+ks_IN@devanagari UTF-8
+ku_TR.UTF-8 UTF-8
+ku_TR ISO-8859-9
+kw_GB.UTF-8 UTF-8
+kw_GB ISO-8859-1
+ky_KG UTF-8
+lb_LU UTF-8
+lg_UG.UTF-8 UTF-8
+lg_UG ISO-8859-10
+li_BE UTF-8
+li_NL UTF-8
+lij_IT UTF-8
+ln_CD UTF-8
+lo_LA UTF-8
+lt_LT.UTF-8 UTF-8
+lt_LT ISO-8859-13
+lv_LV.UTF-8 UTF-8
+lv_LV ISO-8859-13
+lzh_TW UTF-8
+mag_IN UTF-8
+mai_IN UTF-8
+mai_NP UTF-8
+mfe_MU UTF-8
+mg_MG.UTF-8 UTF-8
+mg_MG ISO-8859-15
+mhr_RU UTF-8
+mi_NZ.UTF-8 UTF-8
+mi_NZ ISO-8859-13
+miq_NI UTF-8
+mjw_IN UTF-8
+mk_MK.UTF-8 UTF-8
+mk_MK ISO-8859-5
+ml_IN UTF-8
+mn_MN UTF-8
+mni_IN UTF-8
+mr_IN UTF-8
+ms_MY.UTF-8 UTF-8
+ms_MY ISO-8859-1
+mt_MT.UTF-8 UTF-8
+mt_MT ISO-8859-3
+my_MM UTF-8
+nan_TW UTF-8
+nan_TW@latin UTF-8
+nb_NO.UTF-8 UTF-8
+nb_NO ISO-8859-1
+nds_DE UTF-8
+nds_NL UTF-8
+ne_NP UTF-8
+nhn_MX UTF-8
+niu_NU UTF-8
+niu_NZ UTF-8
+nl_AW UTF-8
+nl_BE.UTF-8 UTF-8
+nl_BE ISO-8859-1
+nl_BE@euro ISO-8859-15
+nl_NL.UTF-8 UTF-8
+nl_NL ISO-8859-1
+nl_NL@euro ISO-8859-15
+nn_NO.UTF-8 UTF-8
+nn_NO ISO-8859-1
+nr_ZA UTF-8
+nso_ZA UTF-8
+oc_FR.UTF-8 UTF-8
+oc_FR ISO-8859-1
+om_ET UTF-8
+om_KE.UTF-8 UTF-8
+om_KE ISO-8859-1
+or_IN UTF-8
+os_RU UTF-8
+pa_IN UTF-8
+pa_PK UTF-8
+pap_AW UTF-8
+pap_CW UTF-8
+pl_PL.UTF-8 UTF-8
+pl_PL ISO-8859-2
+ps_AF UTF-8
+pt_BR.UTF-8 UTF-8
+pt_BR ISO-8859-1
+pt_PT.UTF-8 UTF-8
+pt_PT ISO-8859-1
+pt_PT@euro ISO-8859-15
+quz_PE UTF-8
+raj_IN UTF-8
+ro_RO.UTF-8 UTF-8
+ro_RO ISO-8859-2
+ru_RU.UTF-8 UTF-8
+ru_RU.KOI8-R KOI8-R
+ru_RU ISO-8859-5
+ru_RU.CP1251 CP1251
+ru_UA.UTF-8 UTF-8
+ru_UA KOI8-U
+rw_RW UTF-8
+sa_IN UTF-8
+sah_RU UTF-8
+sat_IN UTF-8
+sc_IT UTF-8
+sd_IN UTF-8
+sd_IN@devanagari UTF-8
+se_NO UTF-8
+sgs_LT UTF-8
+shn_MM UTF-8
+shs_CA UTF-8
+si_LK UTF-8
+trixie_ET UTF-8
+sk_SK.UTF-8 UTF-8
+sk_SK ISO-8859-2
+sl_SI.UTF-8 UTF-8
+sl_SI ISO-8859-2
+sm_WS UTF-8
+so_DJ.UTF-8 UTF-8
+so_DJ ISO-8859-1
+so_ET UTF-8
+so_KE.UTF-8 UTF-8
+so_KE ISO-8859-1
+so_SO.UTF-8 UTF-8
+so_SO ISO-8859-1
+sq_AL.UTF-8 UTF-8
+sq_AL ISO-8859-1
+sq_MK UTF-8
+sr_ME UTF-8
+sr_RS UTF-8
+sr_RS@latin UTF-8
+ss_ZA UTF-8
+st_ZA.UTF-8 UTF-8
+st_ZA ISO-8859-1
+sv_FI.UTF-8 UTF-8
+sv_FI ISO-8859-1
+sv_FI@euro ISO-8859-15
+sv_SE.UTF-8 UTF-8
+sv_SE ISO-8859-1
+sv_SE.ISO-8859-15 ISO-8859-15
+sw_KE UTF-8
+sw_TZ UTF-8
+szl_PL UTF-8
+ta_IN UTF-8
+ta_LK UTF-8
+tcy_IN.UTF-8 UTF-8
+te_IN UTF-8
+tg_TJ.UTF-8 UTF-8
+tg_TJ KOI8-T
+th_TH.UTF-8 UTF-8
+th_TH TIS-620
+the_NP UTF-8
+ti_ER UTF-8
+ti_ET UTF-8
+tig_ER UTF-8
+tk_TM UTF-8
+tl_PH.UTF-8 UTF-8
+tl_PH ISO-8859-1
+tn_ZA UTF-8
+to_TO UTF-8
+tpi_PG UTF-8
+tr_CY.UTF-8 UTF-8
+tr_CY ISO-8859-9
+tr_TR.UTF-8 UTF-8
+tr_TR ISO-8859-9
+ts_ZA UTF-8
+tt_RU UTF-8
+tt_RU@iqtelif UTF-8
+ug_CN UTF-8
+uk_UA.UTF-8 UTF-8
+uk_UA KOI8-U
+unm_US UTF-8
+ur_IN UTF-8
+ur_PK UTF-8
+uz_UZ.UTF-8 UTF-8
+uz_UZ ISO-8859-1
+uz_UZ@cyrillic UTF-8
+ve_ZA UTF-8
+vi_VN UTF-8
+wa_BE.UTF-8 UTF-8
+wa_BE ISO-8859-1
+wa_BE@euro ISO-8859-15
+wae_CH UTF-8
+wal_ET UTF-8
+wo_SN UTF-8
+xh_ZA.UTF-8 UTF-8
+xh_ZA ISO-8859-1
+yi_US.UTF-8 UTF-8
+yi_US CP1255
+yo_NG UTF-8
+yue_HK UTF-8
+yuw_PG UTF-8
+zh_CN.UTF-8 UTF-8
+zh_CN.GB18030 GB18030
+zh_CN.GBK GBK
+zh_CN GB2312
+zh_HK.UTF-8 UTF-8
+zh_HK BIG5-HKSCS
+zh_SG.UTF-8 UTF-8
+zh_SG.GBK GBK
+zh_SG GB2312
+zh_TW.UTF-8 UTF-8
+zh_TW.EUC-TW EUC-TW
+zh_TW BIG5
+zu_ZA.UTF-8 UTF-8
+zu_ZA ISO-8859-1
diff --git a/linux/advanced/teamcity/server/latest/usr/local/epicmorg/README.md b/linux/advanced/teamcity/server/latest/usr/local/epicmorg/README.md
new file mode 100644
index 000000000..83071e9ca
--- /dev/null
+++ b/linux/advanced/teamcity/server/latest/usr/local/epicmorg/README.md
@@ -0,0 +1,48 @@
+# About
+Hello. This folder contains sub-folders with custom tools such as `gosu`, `dumb-init` and etc.
+
+Some child images could install to this folder custom compilled products. Example: `nginx`, `php`, etc.
+
+All directories that contains binaryes (``) will be added to `$PATH`.
+
+# Structure
+pattern: `/usr/local/epicmorg///<..some data and files..>`
+
+example:
+```
+/usr/local/epicmorg/
+|-- 7z
+| `-- 7z2407
+| |-- History.txt
+| |-- License.txt
+| |-- MANUAL
+| |-- bin
+| `-- readme.txt
+|-- dumb-init
+| `-- 1.2.5
+| `-- bin
+|-- gosu
+| `-- 1.17
+| `-- bin
+|-- lazycli
+| `-- 0.1.15
+| `-- bin
+|-- lazydocker
+| `-- 0.23.3
+| |-- LICENSE
+| |-- README.md
+| `-- bin
+|-- lazygit
+| `-- 0.42.0
+| |-- LICENSE
+| |-- README.md
+| `-- bin
+|-- lazynpm
+| `-- 0.1.4
+| |-- LICENSE
+| |-- README.md
+| `-- bin
+`-- p4
+ `-- r23.2
+ `-- bin
+```
diff --git a/linux/advanced/teamcity/server/latest/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt b/linux/advanced/teamcity/server/latest/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
new file mode 100644
index 000000000..4c143a21f
--- /dev/null
+++ b/linux/advanced/teamcity/server/latest/usr/local/share/ca-certificates/russian_trusted_root_ca_pem.crt
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFwjCCA6qgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAxMjEwNDE1WhcNMzIwMjI3MjEwNDE1WjBwMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMSAwHgYDVQQDDBdSdXNzaWFuIFRydXN0ZWQgUm9v
+dCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMfFOZ8pUAL3+r2n
+qqE0Zp52selXsKGFYoG0GM5bwz1bSFtCt+AZQMhkWQheI3poZAToYJu69pHLKS6Q
+XBiwBC1cvzYmUYKMYZC7jE5YhEU2bSL0mX7NaMxMDmH2/NwuOVRj8OImVa5s1F4U
+zn4Kv3PFlDBjjSjXKVY9kmjUBsXQrIHeaqmUIsPIlNWUnimXS0I0abExqkbdrXbX
+YwCOXhOO2pDUx3ckmJlCMUGacUTnylyQW2VsJIyIGA8V0xzdaeUXg0VZ6ZmNUr5Y
+Ber/EAOLPb8NYpsAhJe2mXjMB/J9HNsoFMBFJ0lLOT/+dQvjbdRZoOT8eqJpWnVD
+U+QL/qEZnz57N88OWM3rabJkRNdU/Z7x5SFIM9FrqtN8xewsiBWBI0K6XFuOBOTD
+4V08o4TzJ8+Ccq5XlCUW2L48pZNCYuBDfBh7FxkB7qDgGDiaftEkZZfApRg2E+M9
+G8wkNKTPLDc4wH0FDTijhgxR3Y4PiS1HL2Zhw7bD3CbslmEGgfnnZojNkJtcLeBH
+BLa52/dSwNU4WWLubaYSiAmA9IUMX1/RpfpxOxd4Ykmhz97oFbUaDJFipIggx5sX
+ePAlkTdWnv+RWBxlJwMQ25oEHmRguNYf4Zr/Rxr9cS93Y+mdXIZaBEE0KS2iLRqa
+OiWBki9IMQU4phqPOBAaG7A+eP8PAgMBAAGjZjBkMB0GA1UdDgQWBBTh0YHlzlpf
+BKrS6badZrHF+qwshzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzAS
+BgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
+AAOCAgEAALIY1wkilt/urfEVM5vKzr6utOeDWCUczmWX/RX4ljpRdgF+5fAIS4vH
+tmXkqpSCOVeWUrJV9QvZn6L227ZwuE15cWi8DCDal3Ue90WgAJJZMfTshN4OI8cq
+W9E4EG9wglbEtMnObHlms8F3CHmrw3k6KmUkWGoa+/ENmcVl68u/cMRl1JbW2bM+
+/3A+SAg2c6iPDlehczKx2oa95QW0SkPPWGuNA/CE8CpyANIhu9XFrj3RQ3EqeRcS
+AQQod1RNuHpfETLU/A2gMmvn/w/sx7TB3W5BPs6rprOA37tutPq9u6FTZOcG1Oqj
+C/B7yTqgI7rbyvox7DEXoX7rIiEqyNNUguTk/u3SZ4VXE2kmxdmSh3TQvybfbnXV
+4JbCZVaqiZraqc7oZMnRoWrXRG3ztbnbes/9qhRGI7PqXqeKJBztxRTEVj8ONs1d
+WN5szTwaPIvhkhO3CO5ErU2rVdUr89wKpNXbBODFKRtgxUT70YpmJ46VVaqdAhOZ
+D9EUUn4YaeLaS8AjSF/h7UkjOibNc4qVDiPP+rkehFWM66PVnP1Msh93tc+taIfC
+EYVMxjh8zNbFuoc7fzvvrFILLe7ifvEIUqSVIC/AzplM/Jxw7buXFeGP1qVCBEHq
+391d/9RAfaZ12zkwFsl+IKwE/OZxW8AHa9i1p4GO0YSNuczzEm4=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/linux/advanced/teamcity/server/latest/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt b/linux/advanced/teamcity/server/latest/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
new file mode 100644
index 000000000..2e3f8285d
--- /dev/null
+++ b/linux/advanced/teamcity/server/latest/usr/local/share/ca-certificates/russian_trusted_sub_ca_pem.crt
@@ -0,0 +1,41 @@
+-----BEGIN CERTIFICATE-----
+MIIHQjCCBSqgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAyMTEyNTE5WhcNMjcwMzA2MTEyNTE5WjBvMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMR8wHQYDVQQDDBZSdXNzaWFuIFRydXN0ZWQgU3Vi
+IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9YPqBKOk19NFymrE
+wehzrhBEgT2atLezpduB24mQ7CiOa/HVpFCDRZzdxqlh8drku408/tTmWzlNH/br
+HuQhZ/miWKOf35lpKzjyBd6TPM23uAfJvEOQ2/dnKGGJbsUo1/udKSvxQwVHpVv3
+S80OlluKfhWPDEXQpgyFqIzPoxIQTLZ0deirZwMVHarZ5u8HqHetRuAtmO2ZDGQn
+vVOJYAjls+Hiueq7Lj7Oce7CQsTwVZeP+XQx28PAaEZ3y6sQEt6rL06ddpSdoTMp
+BnCqTbxW+eWMyjkIn6t9GBtUV45yB1EkHNnj2Ex4GwCiN9T84QQjKSr+8f0psGrZ
+vPbCbQAwNFJjisLixnjlGPLKa5vOmNwIh/LAyUW5DjpkCx004LPDuqPpFsKXNKpa
+L2Dm6uc0x4Jo5m+gUTVORB6hOSzWnWDj2GWfomLzzyjG81DRGFBpco/O93zecsIN
+3SL2Ysjpq1zdoS01CMYxie//9zWvYwzI25/OZigtnpCIrcd2j1Y6dMUFQAzAtHE+
+qsXflSL8HIS+IJEFIQobLlYhHkoE3avgNx5jlu+OLYe0dF0Ykx1PGNjbwqvTX37R
+Cn32NMjlotW2QcGEZhDKj+3urZizp5xdTPZitA+aEjZM/Ni71VOdiOP0igbw6asZ
+2fxdozZ1TnSSYNYvNATwthNmZysCAwEAAaOCAeUwggHhMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTR4XENCy2BTm6KSo9MI7NM
+XqtpCzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzCBxwYIKwYBBQUH
+AQEEgbowgbcwOwYIKwYBBQUHMAKGL2h0dHA6Ly9yb3N0ZWxlY29tLnJ1L2NkcC9y
+b290Y2Ffc3NsX3JzYTIwMjIuY3J0MDsGCCsGAQUFBzAChi9odHRwOi8vY29tcGFu
+eS5ydC5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNydDA7BggrBgEFBQcwAoYv
+aHR0cDovL3JlZXN0ci1wa2kucnUvY2RwL3Jvb3RjYV9zc2xfcnNhMjAyMi5jcnQw
+gbAGA1UdHwSBqDCBpTA1oDOgMYYvaHR0cDovL3Jvc3RlbGVjb20ucnUvY2RwL3Jv
+b3RjYV9zc2xfcnNhMjAyMi5jcmwwNaAzoDGGL2h0dHA6Ly9jb21wYW55LnJ0LnJ1
+L2NkcC9yb290Y2Ffc3NsX3JzYTIwMjIuY3JsMDWgM6Axhi9odHRwOi8vcmVlc3Ry
+LXBraS5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNybDANBgkqhkiG9w0BAQsF
+AAOCAgEARBVzZls79AdiSCpar15dA5Hr/rrT4WbrOfzlpI+xrLeRPrUG6eUWIW4v
+Sui1yx3iqGLCjPcKb+HOTwoRMbI6ytP/ndp3TlYua2advYBEhSvjs+4vDZNwXr/D
+anbwIWdurZmViQRBDFebpkvnIvru/RpWud/5r624Wp8voZMRtj/cm6aI9LtvBfT9
+cfzhOaexI/99c14dyiuk1+6QhdwKaCRTc1mdfNQmnfWNRbfWhWBlK3h4GGE9JK33
+Gk8ZS8DMrkdAh0xby4xAQ/mSWAfWrBmfzlOqGyoB1U47WTOeqNbWkkoAP2ys94+s
+Jg4NTkiDVtXRF6nr6fYi0bSOvOFg0IQrMXO2Y8gyg9ARdPJwKtvWX8VPADCYMiWH
+h4n8bZokIrImVKLDQKHY4jCsND2HHdJfnrdL2YJw1qFskNO4cSNmZydw0Wkgjv9k
+F+KxqrDKlB8MZu2Hclph6v/CZ0fQ9YuE8/lsHZ0Qc2HyiSMnvjgK5fDc3TD4fa8F
+E8gMNurM+kV8PT8LNIM+4Zs+LKEV8nqRWBaxkIVJGekkVKO8xDBOG/aN62AZKHOe
+GcyIdu7yNMMRihGVZCYr8rYiJoKiOzDqOkPkLOPdhtVlgnhowzHDxMHND/E2WA5p
+ZHuNM/m0TXt2wTTPL7JH2YC0gPz/BvvSzjksgzU5rLbRyUKQkgU=
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/linux/ecosystem/epicmorg/debian/06-squeeze/slim/Dockerfile b/linux/ecosystem/epicmorg/debian/06-squeeze/slim/Dockerfile
index d860c068a..02ce041a8 100644
--- a/linux/ecosystem/epicmorg/debian/06-squeeze/slim/Dockerfile
+++ b/linux/ecosystem/epicmorg/debian/06-squeeze/slim/Dockerfile
@@ -80,9 +80,13 @@ RUN locale-gen
##################################################################
# Create Base directory for various soft
##################################################################
-ENV EMG_LOCAL_BASE_DIR=/usr/local/epicmorg
+ENV EMG_LOCAL_BASE_DIR=/usr/local/share/epicmorg
+ENV EMG_WELCOME_MESSAGE=true
+ENV EMG_DONATION_MESSAGE=true
RUN mkdir -p ${EMG_LOCAL_BASE_DIR}
COPY usr/local/epicmorg ${EMG_LOCAL_BASE_DIR}
+RUN chmod +x ${EMG_LOCAL_BASE_DIR}/welcome.sh && \
+ echo '[ ! -z "$TERM" -a -x ${EMG_LOCAL_BASE_DIR}/welcome.sh -a -x ${EMG_LOCAL_BASE_DIR}/welcome.sh ] && ${EMG_LOCAL_BASE_DIR}/welcome.sh' >> /etc/bash.bashrc
##################################################################
# cleanup
diff --git a/linux/ecosystem/epicmorg/debian/06-squeeze/slim/usr/local/epicmorg/welcome.sh b/linux/ecosystem/epicmorg/debian/06-squeeze/slim/usr/local/epicmorg/welcome.sh
new file mode 100644
index 000000000..57a314082
--- /dev/null
+++ b/linux/ecosystem/epicmorg/debian/06-squeeze/slim/usr/local/epicmorg/welcome.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+# Donation message
+show_donation_message() {
+ if [ "${EMG_DONATION_MESSAGE:-true}" != "false" ]; then
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ ║"
+ echo "║ Images are developed under the MIT license and are not the result of ║"
+ echo "║ commercial activity. If you'd like to support us, feel free to donate ║"
+ echo "║ using the wallet details below. ║"
+ echo "║ Thank You! ║"
+ echo "║ ║"
+ echo "╠═════════════════════╦════════════════════════════════════════════════════╣"
+ echo "║ TYPE ║ ADDRESS ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ TON ║ EQDvHXRK-K1ZieJhgTD9JZQk7xCnWzRbctYnUkWq1lZq1bUg ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ETH ║ 0x26a8443a694f08cdfec966aa6fd72c45068753ec ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ BTC ║ bc1querz8ug9asjmsuy6yn4a94a2athgprnu7e5zq2 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ LTC ║ ltc1qtwwacq8f0n76fer2y83wxu540hddnmf8cdrlvg ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ NVC ║ 4SbMynYETyhmKdggu8f38ULU6yQKiJPuo6 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ DOGE ║ DHyfE1CZzWtyaQiaMmv6g4KvXVQRUgrYE6 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ PPC ║ pQWArPzYoLppNe7ew3QPfto1k1eq66BYUB ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ RVN ║ R9t2LKeLhDSZBKNgUzSDZAossA3UqNvbV3 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ZEC ║ t1KRMMmwMSZth8vJcd2ZHtPEFKTQ74yVixE ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ XMR ║ 884PqZ1gDjWW7fKxtbaeRoBeSh9EGZbkqUyLriWmuKbwLZrAJ ║"
+ echo "║ ║ dYUs4wQxoVfEJoW7LBhdQMP9cFhZQpJr6xvg7esHLdCbb1 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ║ https://patreon.com/epicmorg ║"
+ echo "║ WEB LINKS ║ https://ko-fi.com/epicmorg ║"
+ echo "║ ║ https://ko-fi.com/alexz696 ║"
+ echo "╚═════════════════════╩════════════════════════════════════════════════════╝"
+ fi
+}
+
+
+# Welcome message
+show_welcome_message() {
+ if [ "${EMG_WELCOME_MESSAGE:-true}" != "false" ]; then
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ ║"
+ echo "║ Welcome to one of the containers of the project. ║"
+ echo "║ ║"
+ echo "║ * EpicMorg directory with static binaries: '${EMG_LOCAL_BASE_DIR}' ║"
+ echo "║ * To disable Welcome message switch 'EMG_WELCOME_MESSAGE' to 'false' ║"
+ echo "║ * To disable Donation message switch 'EMG_DONATION_MESSAGE' to 'false' ║"
+ echo "║ ║"
+ echo "╚══════════════════════════════════════════════════════════════════════════╝"
+ show_donation_message
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ Thank you for choosing us. ║"
+ echo "║ Enjoy using the project! ║"
+ echo "║ EpicMorg, 2025 ║"
+ echo "╚══════════════════════════════════════════════════════════════════════════╝"
+ fi
+}
+
+clear
+show_welcome_message
+exit 0
diff --git a/linux/ecosystem/epicmorg/debian/07-wheezy/slim/Dockerfile b/linux/ecosystem/epicmorg/debian/07-wheezy/slim/Dockerfile
index 303cd4de1..c9ff65abb 100644
--- a/linux/ecosystem/epicmorg/debian/07-wheezy/slim/Dockerfile
+++ b/linux/ecosystem/epicmorg/debian/07-wheezy/slim/Dockerfile
@@ -81,9 +81,13 @@ RUN locale-gen
##################################################################
# Create Base directory for various soft
##################################################################
-ENV EMG_LOCAL_BASE_DIR=/usr/local/epicmorg
+ENV EMG_LOCAL_BASE_DIR=/usr/local/share/epicmorg
+ENV EMG_WELCOME_MESSAGE=true
+ENV EMG_DONATION_MESSAGE=true
RUN mkdir -p ${EMG_LOCAL_BASE_DIR}
COPY usr/local/epicmorg ${EMG_LOCAL_BASE_DIR}
+RUN chmod +x ${EMG_LOCAL_BASE_DIR}/welcome.sh && \
+ echo '[ ! -z "$TERM" -a -x ${EMG_LOCAL_BASE_DIR}/welcome.sh -a -x ${EMG_LOCAL_BASE_DIR}/welcome.sh ] && ${EMG_LOCAL_BASE_DIR}/welcome.sh' >> /etc/bash.bashrc
##################################################################
# cleanup
diff --git a/linux/ecosystem/epicmorg/debian/07-wheezy/slim/usr/local/epicmorg/welcome.sh b/linux/ecosystem/epicmorg/debian/07-wheezy/slim/usr/local/epicmorg/welcome.sh
new file mode 100644
index 000000000..57a314082
--- /dev/null
+++ b/linux/ecosystem/epicmorg/debian/07-wheezy/slim/usr/local/epicmorg/welcome.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+# Donation message
+show_donation_message() {
+ if [ "${EMG_DONATION_MESSAGE:-true}" != "false" ]; then
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ ║"
+ echo "║ Images are developed under the MIT license and are not the result of ║"
+ echo "║ commercial activity. If you'd like to support us, feel free to donate ║"
+ echo "║ using the wallet details below. ║"
+ echo "║ Thank You! ║"
+ echo "║ ║"
+ echo "╠═════════════════════╦════════════════════════════════════════════════════╣"
+ echo "║ TYPE ║ ADDRESS ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ TON ║ EQDvHXRK-K1ZieJhgTD9JZQk7xCnWzRbctYnUkWq1lZq1bUg ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ETH ║ 0x26a8443a694f08cdfec966aa6fd72c45068753ec ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ BTC ║ bc1querz8ug9asjmsuy6yn4a94a2athgprnu7e5zq2 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ LTC ║ ltc1qtwwacq8f0n76fer2y83wxu540hddnmf8cdrlvg ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ NVC ║ 4SbMynYETyhmKdggu8f38ULU6yQKiJPuo6 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ DOGE ║ DHyfE1CZzWtyaQiaMmv6g4KvXVQRUgrYE6 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ PPC ║ pQWArPzYoLppNe7ew3QPfto1k1eq66BYUB ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ RVN ║ R9t2LKeLhDSZBKNgUzSDZAossA3UqNvbV3 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ZEC ║ t1KRMMmwMSZth8vJcd2ZHtPEFKTQ74yVixE ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ XMR ║ 884PqZ1gDjWW7fKxtbaeRoBeSh9EGZbkqUyLriWmuKbwLZrAJ ║"
+ echo "║ ║ dYUs4wQxoVfEJoW7LBhdQMP9cFhZQpJr6xvg7esHLdCbb1 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ║ https://patreon.com/epicmorg ║"
+ echo "║ WEB LINKS ║ https://ko-fi.com/epicmorg ║"
+ echo "║ ║ https://ko-fi.com/alexz696 ║"
+ echo "╚═════════════════════╩════════════════════════════════════════════════════╝"
+ fi
+}
+
+
+# Welcome message
+show_welcome_message() {
+ if [ "${EMG_WELCOME_MESSAGE:-true}" != "false" ]; then
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ ║"
+ echo "║ Welcome to one of the containers of the project. ║"
+ echo "║ ║"
+ echo "║ * EpicMorg directory with static binaries: '${EMG_LOCAL_BASE_DIR}' ║"
+ echo "║ * To disable Welcome message switch 'EMG_WELCOME_MESSAGE' to 'false' ║"
+ echo "║ * To disable Donation message switch 'EMG_DONATION_MESSAGE' to 'false' ║"
+ echo "║ ║"
+ echo "╚══════════════════════════════════════════════════════════════════════════╝"
+ show_donation_message
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ Thank you for choosing us. ║"
+ echo "║ Enjoy using the project! ║"
+ echo "║ EpicMorg, 2025 ║"
+ echo "╚══════════════════════════════════════════════════════════════════════════╝"
+ fi
+}
+
+clear
+show_welcome_message
+exit 0
diff --git a/linux/ecosystem/epicmorg/debian/08-jessie/slim/Dockerfile b/linux/ecosystem/epicmorg/debian/08-jessie/slim/Dockerfile
index e61bbc365..67ef8d0a6 100644
--- a/linux/ecosystem/epicmorg/debian/08-jessie/slim/Dockerfile
+++ b/linux/ecosystem/epicmorg/debian/08-jessie/slim/Dockerfile
@@ -81,9 +81,13 @@ RUN locale-gen
##################################################################
# Create Base directory for various soft
##################################################################
-ENV EMG_LOCAL_BASE_DIR=/usr/local/epicmorg
+ENV EMG_LOCAL_BASE_DIR=/usr/local/share/epicmorg
+ENV EMG_WELCOME_MESSAGE=true
+ENV EMG_DONATION_MESSAGE=true
RUN mkdir -p ${EMG_LOCAL_BASE_DIR}
COPY usr/local/epicmorg ${EMG_LOCAL_BASE_DIR}
+RUN chmod +x ${EMG_LOCAL_BASE_DIR}/welcome.sh && \
+ echo '[ ! -z "$TERM" -a -x ${EMG_LOCAL_BASE_DIR}/welcome.sh -a -x ${EMG_LOCAL_BASE_DIR}/welcome.sh ] && ${EMG_LOCAL_BASE_DIR}/welcome.sh' >> /etc/bash.bashrc
##################################################################
# cleanup
diff --git a/linux/ecosystem/epicmorg/debian/08-jessie/slim/usr/local/epicmorg/welcome.sh b/linux/ecosystem/epicmorg/debian/08-jessie/slim/usr/local/epicmorg/welcome.sh
new file mode 100644
index 000000000..57a314082
--- /dev/null
+++ b/linux/ecosystem/epicmorg/debian/08-jessie/slim/usr/local/epicmorg/welcome.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+# Donation message
+show_donation_message() {
+ if [ "${EMG_DONATION_MESSAGE:-true}" != "false" ]; then
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ ║"
+ echo "║ Images are developed under the MIT license and are not the result of ║"
+ echo "║ commercial activity. If you'd like to support us, feel free to donate ║"
+ echo "║ using the wallet details below. ║"
+ echo "║ Thank You! ║"
+ echo "║ ║"
+ echo "╠═════════════════════╦════════════════════════════════════════════════════╣"
+ echo "║ TYPE ║ ADDRESS ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ TON ║ EQDvHXRK-K1ZieJhgTD9JZQk7xCnWzRbctYnUkWq1lZq1bUg ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ETH ║ 0x26a8443a694f08cdfec966aa6fd72c45068753ec ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ BTC ║ bc1querz8ug9asjmsuy6yn4a94a2athgprnu7e5zq2 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ LTC ║ ltc1qtwwacq8f0n76fer2y83wxu540hddnmf8cdrlvg ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ NVC ║ 4SbMynYETyhmKdggu8f38ULU6yQKiJPuo6 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ DOGE ║ DHyfE1CZzWtyaQiaMmv6g4KvXVQRUgrYE6 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ PPC ║ pQWArPzYoLppNe7ew3QPfto1k1eq66BYUB ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ RVN ║ R9t2LKeLhDSZBKNgUzSDZAossA3UqNvbV3 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ZEC ║ t1KRMMmwMSZth8vJcd2ZHtPEFKTQ74yVixE ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ XMR ║ 884PqZ1gDjWW7fKxtbaeRoBeSh9EGZbkqUyLriWmuKbwLZrAJ ║"
+ echo "║ ║ dYUs4wQxoVfEJoW7LBhdQMP9cFhZQpJr6xvg7esHLdCbb1 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ║ https://patreon.com/epicmorg ║"
+ echo "║ WEB LINKS ║ https://ko-fi.com/epicmorg ║"
+ echo "║ ║ https://ko-fi.com/alexz696 ║"
+ echo "╚═════════════════════╩════════════════════════════════════════════════════╝"
+ fi
+}
+
+
+# Welcome message
+show_welcome_message() {
+ if [ "${EMG_WELCOME_MESSAGE:-true}" != "false" ]; then
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ ║"
+ echo "║ Welcome to one of the containers of the project. ║"
+ echo "║ ║"
+ echo "║ * EpicMorg directory with static binaries: '${EMG_LOCAL_BASE_DIR}' ║"
+ echo "║ * To disable Welcome message switch 'EMG_WELCOME_MESSAGE' to 'false' ║"
+ echo "║ * To disable Donation message switch 'EMG_DONATION_MESSAGE' to 'false' ║"
+ echo "║ ║"
+ echo "╚══════════════════════════════════════════════════════════════════════════╝"
+ show_donation_message
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ Thank you for choosing us. ║"
+ echo "║ Enjoy using the project! ║"
+ echo "║ EpicMorg, 2025 ║"
+ echo "╚══════════════════════════════════════════════════════════════════════════╝"
+ fi
+}
+
+clear
+show_welcome_message
+exit 0
diff --git a/linux/ecosystem/epicmorg/debian/09-stretch/slim/Dockerfile b/linux/ecosystem/epicmorg/debian/09-stretch/slim/Dockerfile
index 119e352a3..9df499ff4 100644
--- a/linux/ecosystem/epicmorg/debian/09-stretch/slim/Dockerfile
+++ b/linux/ecosystem/epicmorg/debian/09-stretch/slim/Dockerfile
@@ -82,9 +82,13 @@ RUN locale-gen
##################################################################
# Create Base directory for various soft
##################################################################
-ENV EMG_LOCAL_BASE_DIR=/usr/local/epicmorg
+ENV EMG_LOCAL_BASE_DIR=/usr/local/share/epicmorg
+ENV EMG_WELCOME_MESSAGE=true
+ENV EMG_DONATION_MESSAGE=true
RUN mkdir -p ${EMG_LOCAL_BASE_DIR}
COPY usr/local/epicmorg ${EMG_LOCAL_BASE_DIR}
+RUN chmod +x ${EMG_LOCAL_BASE_DIR}/welcome.sh && \
+ echo '[ ! -z "$TERM" -a -x ${EMG_LOCAL_BASE_DIR}/welcome.sh -a -x ${EMG_LOCAL_BASE_DIR}/welcome.sh ] && ${EMG_LOCAL_BASE_DIR}/welcome.sh' >> /etc/bash.bashrc
##################################################################
# cleanup
diff --git a/linux/ecosystem/epicmorg/debian/09-stretch/slim/usr/local/epicmorg/welcome.sh b/linux/ecosystem/epicmorg/debian/09-stretch/slim/usr/local/epicmorg/welcome.sh
new file mode 100644
index 000000000..57a314082
--- /dev/null
+++ b/linux/ecosystem/epicmorg/debian/09-stretch/slim/usr/local/epicmorg/welcome.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+# Donation message
+show_donation_message() {
+ if [ "${EMG_DONATION_MESSAGE:-true}" != "false" ]; then
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ ║"
+ echo "║ Images are developed under the MIT license and are not the result of ║"
+ echo "║ commercial activity. If you'd like to support us, feel free to donate ║"
+ echo "║ using the wallet details below. ║"
+ echo "║ Thank You! ║"
+ echo "║ ║"
+ echo "╠═════════════════════╦════════════════════════════════════════════════════╣"
+ echo "║ TYPE ║ ADDRESS ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ TON ║ EQDvHXRK-K1ZieJhgTD9JZQk7xCnWzRbctYnUkWq1lZq1bUg ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ETH ║ 0x26a8443a694f08cdfec966aa6fd72c45068753ec ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ BTC ║ bc1querz8ug9asjmsuy6yn4a94a2athgprnu7e5zq2 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ LTC ║ ltc1qtwwacq8f0n76fer2y83wxu540hddnmf8cdrlvg ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ NVC ║ 4SbMynYETyhmKdggu8f38ULU6yQKiJPuo6 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ DOGE ║ DHyfE1CZzWtyaQiaMmv6g4KvXVQRUgrYE6 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ PPC ║ pQWArPzYoLppNe7ew3QPfto1k1eq66BYUB ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ RVN ║ R9t2LKeLhDSZBKNgUzSDZAossA3UqNvbV3 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ZEC ║ t1KRMMmwMSZth8vJcd2ZHtPEFKTQ74yVixE ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ XMR ║ 884PqZ1gDjWW7fKxtbaeRoBeSh9EGZbkqUyLriWmuKbwLZrAJ ║"
+ echo "║ ║ dYUs4wQxoVfEJoW7LBhdQMP9cFhZQpJr6xvg7esHLdCbb1 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ║ https://patreon.com/epicmorg ║"
+ echo "║ WEB LINKS ║ https://ko-fi.com/epicmorg ║"
+ echo "║ ║ https://ko-fi.com/alexz696 ║"
+ echo "╚═════════════════════╩════════════════════════════════════════════════════╝"
+ fi
+}
+
+
+# Welcome message
+show_welcome_message() {
+ if [ "${EMG_WELCOME_MESSAGE:-true}" != "false" ]; then
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ ║"
+ echo "║ Welcome to one of the containers of the project. ║"
+ echo "║ ║"
+ echo "║ * EpicMorg directory with static binaries: '${EMG_LOCAL_BASE_DIR}' ║"
+ echo "║ * To disable Welcome message switch 'EMG_WELCOME_MESSAGE' to 'false' ║"
+ echo "║ * To disable Donation message switch 'EMG_DONATION_MESSAGE' to 'false' ║"
+ echo "║ ║"
+ echo "╚══════════════════════════════════════════════════════════════════════════╝"
+ show_donation_message
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ Thank you for choosing us. ║"
+ echo "║ Enjoy using the project! ║"
+ echo "║ EpicMorg, 2025 ║"
+ echo "╚══════════════════════════════════════════════════════════════════════════╝"
+ fi
+}
+
+clear
+show_welcome_message
+exit 0
diff --git a/linux/ecosystem/epicmorg/debian/10-buster/slim/Dockerfile b/linux/ecosystem/epicmorg/debian/10-buster/slim/Dockerfile
index 16ba08819..0b72dcb0a 100644
--- a/linux/ecosystem/epicmorg/debian/10-buster/slim/Dockerfile
+++ b/linux/ecosystem/epicmorg/debian/10-buster/slim/Dockerfile
@@ -81,9 +81,13 @@ RUN locale-gen
##################################################################
# Create Base directory for various soft
##################################################################
-ENV EMG_LOCAL_BASE_DIR=/usr/local/epicmorg
+ENV EMG_LOCAL_BASE_DIR=/usr/local/share/epicmorg
+ENV EMG_WELCOME_MESSAGE=true
+ENV EMG_DONATION_MESSAGE=true
RUN mkdir -p ${EMG_LOCAL_BASE_DIR}
COPY usr/local/epicmorg ${EMG_LOCAL_BASE_DIR}
+RUN chmod +x ${EMG_LOCAL_BASE_DIR}/welcome.sh && \
+ echo '[ ! -z "$TERM" -a -x ${EMG_LOCAL_BASE_DIR}/welcome.sh -a -x ${EMG_LOCAL_BASE_DIR}/welcome.sh ] && ${EMG_LOCAL_BASE_DIR}/welcome.sh' >> /etc/bash.bashrc
##################################################################
# cleanup
diff --git a/linux/ecosystem/epicmorg/debian/10-buster/slim/usr/local/epicmorg/welcome.sh b/linux/ecosystem/epicmorg/debian/10-buster/slim/usr/local/epicmorg/welcome.sh
new file mode 100644
index 000000000..57a314082
--- /dev/null
+++ b/linux/ecosystem/epicmorg/debian/10-buster/slim/usr/local/epicmorg/welcome.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+# Donation message
+show_donation_message() {
+ if [ "${EMG_DONATION_MESSAGE:-true}" != "false" ]; then
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ ║"
+ echo "║ Images are developed under the MIT license and are not the result of ║"
+ echo "║ commercial activity. If you'd like to support us, feel free to donate ║"
+ echo "║ using the wallet details below. ║"
+ echo "║ Thank You! ║"
+ echo "║ ║"
+ echo "╠═════════════════════╦════════════════════════════════════════════════════╣"
+ echo "║ TYPE ║ ADDRESS ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ TON ║ EQDvHXRK-K1ZieJhgTD9JZQk7xCnWzRbctYnUkWq1lZq1bUg ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ETH ║ 0x26a8443a694f08cdfec966aa6fd72c45068753ec ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ BTC ║ bc1querz8ug9asjmsuy6yn4a94a2athgprnu7e5zq2 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ LTC ║ ltc1qtwwacq8f0n76fer2y83wxu540hddnmf8cdrlvg ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ NVC ║ 4SbMynYETyhmKdggu8f38ULU6yQKiJPuo6 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ DOGE ║ DHyfE1CZzWtyaQiaMmv6g4KvXVQRUgrYE6 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ PPC ║ pQWArPzYoLppNe7ew3QPfto1k1eq66BYUB ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ RVN ║ R9t2LKeLhDSZBKNgUzSDZAossA3UqNvbV3 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ZEC ║ t1KRMMmwMSZth8vJcd2ZHtPEFKTQ74yVixE ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ XMR ║ 884PqZ1gDjWW7fKxtbaeRoBeSh9EGZbkqUyLriWmuKbwLZrAJ ║"
+ echo "║ ║ dYUs4wQxoVfEJoW7LBhdQMP9cFhZQpJr6xvg7esHLdCbb1 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ║ https://patreon.com/epicmorg ║"
+ echo "║ WEB LINKS ║ https://ko-fi.com/epicmorg ║"
+ echo "║ ║ https://ko-fi.com/alexz696 ║"
+ echo "╚═════════════════════╩════════════════════════════════════════════════════╝"
+ fi
+}
+
+
+# Welcome message
+show_welcome_message() {
+ if [ "${EMG_WELCOME_MESSAGE:-true}" != "false" ]; then
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ ║"
+ echo "║ Welcome to one of the containers of the project. ║"
+ echo "║ ║"
+ echo "║ * EpicMorg directory with static binaries: '${EMG_LOCAL_BASE_DIR}' ║"
+ echo "║ * To disable Welcome message switch 'EMG_WELCOME_MESSAGE' to 'false' ║"
+ echo "║ * To disable Donation message switch 'EMG_DONATION_MESSAGE' to 'false' ║"
+ echo "║ ║"
+ echo "╚══════════════════════════════════════════════════════════════════════════╝"
+ show_donation_message
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ Thank you for choosing us. ║"
+ echo "║ Enjoy using the project! ║"
+ echo "║ EpicMorg, 2025 ║"
+ echo "╚══════════════════════════════════════════════════════════════════════════╝"
+ fi
+}
+
+clear
+show_welcome_message
+exit 0
diff --git a/linux/ecosystem/epicmorg/debian/11-bullseye/slim/Dockerfile b/linux/ecosystem/epicmorg/debian/11-bullseye/slim/Dockerfile
index a4bc9547c..fd4315ac8 100644
--- a/linux/ecosystem/epicmorg/debian/11-bullseye/slim/Dockerfile
+++ b/linux/ecosystem/epicmorg/debian/11-bullseye/slim/Dockerfile
@@ -81,9 +81,13 @@ RUN locale-gen
##################################################################
# Create Base directory for various soft
##################################################################
-ENV EMG_LOCAL_BASE_DIR=/usr/local/epicmorg
+ENV EMG_LOCAL_BASE_DIR=/usr/local/share/epicmorg
+ENV EMG_WELCOME_MESSAGE=true
+ENV EMG_DONATION_MESSAGE=true
RUN mkdir -p ${EMG_LOCAL_BASE_DIR}
COPY usr/local/epicmorg ${EMG_LOCAL_BASE_DIR}
+RUN chmod +x ${EMG_LOCAL_BASE_DIR}/welcome.sh && \
+ echo '[ ! -z "$TERM" -a -x ${EMG_LOCAL_BASE_DIR}/welcome.sh -a -x ${EMG_LOCAL_BASE_DIR}/welcome.sh ] && ${EMG_LOCAL_BASE_DIR}/welcome.sh' >> /etc/bash.bashrc
##################################################################
# cleanup
diff --git a/linux/ecosystem/epicmorg/debian/11-bullseye/slim/usr/local/epicmorg/welcome.sh b/linux/ecosystem/epicmorg/debian/11-bullseye/slim/usr/local/epicmorg/welcome.sh
new file mode 100644
index 000000000..57a314082
--- /dev/null
+++ b/linux/ecosystem/epicmorg/debian/11-bullseye/slim/usr/local/epicmorg/welcome.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+# Donation message
+show_donation_message() {
+ if [ "${EMG_DONATION_MESSAGE:-true}" != "false" ]; then
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ ║"
+ echo "║ Images are developed under the MIT license and are not the result of ║"
+ echo "║ commercial activity. If you'd like to support us, feel free to donate ║"
+ echo "║ using the wallet details below. ║"
+ echo "║ Thank You! ║"
+ echo "║ ║"
+ echo "╠═════════════════════╦════════════════════════════════════════════════════╣"
+ echo "║ TYPE ║ ADDRESS ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ TON ║ EQDvHXRK-K1ZieJhgTD9JZQk7xCnWzRbctYnUkWq1lZq1bUg ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ETH ║ 0x26a8443a694f08cdfec966aa6fd72c45068753ec ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ BTC ║ bc1querz8ug9asjmsuy6yn4a94a2athgprnu7e5zq2 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ LTC ║ ltc1qtwwacq8f0n76fer2y83wxu540hddnmf8cdrlvg ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ NVC ║ 4SbMynYETyhmKdggu8f38ULU6yQKiJPuo6 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ DOGE ║ DHyfE1CZzWtyaQiaMmv6g4KvXVQRUgrYE6 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ PPC ║ pQWArPzYoLppNe7ew3QPfto1k1eq66BYUB ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ RVN ║ R9t2LKeLhDSZBKNgUzSDZAossA3UqNvbV3 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ZEC ║ t1KRMMmwMSZth8vJcd2ZHtPEFKTQ74yVixE ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ XMR ║ 884PqZ1gDjWW7fKxtbaeRoBeSh9EGZbkqUyLriWmuKbwLZrAJ ║"
+ echo "║ ║ dYUs4wQxoVfEJoW7LBhdQMP9cFhZQpJr6xvg7esHLdCbb1 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ║ https://patreon.com/epicmorg ║"
+ echo "║ WEB LINKS ║ https://ko-fi.com/epicmorg ║"
+ echo "║ ║ https://ko-fi.com/alexz696 ║"
+ echo "╚═════════════════════╩════════════════════════════════════════════════════╝"
+ fi
+}
+
+
+# Welcome message
+show_welcome_message() {
+ if [ "${EMG_WELCOME_MESSAGE:-true}" != "false" ]; then
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ ║"
+ echo "║ Welcome to one of the containers of the project. ║"
+ echo "║ ║"
+ echo "║ * EpicMorg directory with static binaries: '${EMG_LOCAL_BASE_DIR}' ║"
+ echo "║ * To disable Welcome message switch 'EMG_WELCOME_MESSAGE' to 'false' ║"
+ echo "║ * To disable Donation message switch 'EMG_DONATION_MESSAGE' to 'false' ║"
+ echo "║ ║"
+ echo "╚══════════════════════════════════════════════════════════════════════════╝"
+ show_donation_message
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ Thank you for choosing us. ║"
+ echo "║ Enjoy using the project! ║"
+ echo "║ EpicMorg, 2025 ║"
+ echo "╚══════════════════════════════════════════════════════════════════════════╝"
+ fi
+}
+
+clear
+show_welcome_message
+exit 0
diff --git a/linux/ecosystem/epicmorg/debian/12-bookworm/slim/Dockerfile b/linux/ecosystem/epicmorg/debian/12-bookworm/slim/Dockerfile
index 24d04506c..963b1af07 100644
--- a/linux/ecosystem/epicmorg/debian/12-bookworm/slim/Dockerfile
+++ b/linux/ecosystem/epicmorg/debian/12-bookworm/slim/Dockerfile
@@ -83,8 +83,12 @@ RUN locale-gen
# Create Base directory for various soft
##################################################################
ENV EMG_LOCAL_BASE_DIR=/usr/local/share/epicmorg
+ENV EMG_WELCOME_MESSAGE=true
+ENV EMG_DONATION_MESSAGE=true
RUN mkdir -p ${EMG_LOCAL_BASE_DIR}
COPY usr/local/epicmorg ${EMG_LOCAL_BASE_DIR}
+RUN chmod +x ${EMG_LOCAL_BASE_DIR}/welcome.sh && \
+ echo '[ ! -z "$TERM" -a -x ${EMG_LOCAL_BASE_DIR}/welcome.sh -a -x ${EMG_LOCAL_BASE_DIR}/welcome.sh ] && ${EMG_LOCAL_BASE_DIR}/welcome.sh' >> /etc/bash.bashrc
##################################################################
# Set default workdir
diff --git a/linux/ecosystem/epicmorg/debian/12-bookworm/slim/usr/local/epicmorg/welcome.sh b/linux/ecosystem/epicmorg/debian/12-bookworm/slim/usr/local/epicmorg/welcome.sh
new file mode 100644
index 000000000..57a314082
--- /dev/null
+++ b/linux/ecosystem/epicmorg/debian/12-bookworm/slim/usr/local/epicmorg/welcome.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+# Donation message
+show_donation_message() {
+ if [ "${EMG_DONATION_MESSAGE:-true}" != "false" ]; then
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ ║"
+ echo "║ Images are developed under the MIT license and are not the result of ║"
+ echo "║ commercial activity. If you'd like to support us, feel free to donate ║"
+ echo "║ using the wallet details below. ║"
+ echo "║ Thank You! ║"
+ echo "║ ║"
+ echo "╠═════════════════════╦════════════════════════════════════════════════════╣"
+ echo "║ TYPE ║ ADDRESS ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ TON ║ EQDvHXRK-K1ZieJhgTD9JZQk7xCnWzRbctYnUkWq1lZq1bUg ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ETH ║ 0x26a8443a694f08cdfec966aa6fd72c45068753ec ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ BTC ║ bc1querz8ug9asjmsuy6yn4a94a2athgprnu7e5zq2 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ LTC ║ ltc1qtwwacq8f0n76fer2y83wxu540hddnmf8cdrlvg ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ NVC ║ 4SbMynYETyhmKdggu8f38ULU6yQKiJPuo6 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ DOGE ║ DHyfE1CZzWtyaQiaMmv6g4KvXVQRUgrYE6 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ PPC ║ pQWArPzYoLppNe7ew3QPfto1k1eq66BYUB ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ RVN ║ R9t2LKeLhDSZBKNgUzSDZAossA3UqNvbV3 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ZEC ║ t1KRMMmwMSZth8vJcd2ZHtPEFKTQ74yVixE ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ XMR ║ 884PqZ1gDjWW7fKxtbaeRoBeSh9EGZbkqUyLriWmuKbwLZrAJ ║"
+ echo "║ ║ dYUs4wQxoVfEJoW7LBhdQMP9cFhZQpJr6xvg7esHLdCbb1 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ║ https://patreon.com/epicmorg ║"
+ echo "║ WEB LINKS ║ https://ko-fi.com/epicmorg ║"
+ echo "║ ║ https://ko-fi.com/alexz696 ║"
+ echo "╚═════════════════════╩════════════════════════════════════════════════════╝"
+ fi
+}
+
+
+# Welcome message
+show_welcome_message() {
+ if [ "${EMG_WELCOME_MESSAGE:-true}" != "false" ]; then
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ ║"
+ echo "║ Welcome to one of the containers of the project. ║"
+ echo "║ ║"
+ echo "║ * EpicMorg directory with static binaries: '${EMG_LOCAL_BASE_DIR}' ║"
+ echo "║ * To disable Welcome message switch 'EMG_WELCOME_MESSAGE' to 'false' ║"
+ echo "║ * To disable Donation message switch 'EMG_DONATION_MESSAGE' to 'false' ║"
+ echo "║ ║"
+ echo "╚══════════════════════════════════════════════════════════════════════════╝"
+ show_donation_message
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ Thank you for choosing us. ║"
+ echo "║ Enjoy using the project! ║"
+ echo "║ EpicMorg, 2025 ║"
+ echo "╚══════════════════════════════════════════════════════════════════════════╝"
+ fi
+}
+
+clear
+show_welcome_message
+exit 0
diff --git a/linux/ecosystem/epicmorg/debian/13-trixie/slim/Dockerfile b/linux/ecosystem/epicmorg/debian/13-trixie/slim/Dockerfile
index 6a71d3aa3..fbb248b21 100644
--- a/linux/ecosystem/epicmorg/debian/13-trixie/slim/Dockerfile
+++ b/linux/ecosystem/epicmorg/debian/13-trixie/slim/Dockerfile
@@ -84,8 +84,12 @@ RUN locale-gen
# Create Base directory for various soft
##################################################################
ENV EMG_LOCAL_BASE_DIR=/usr/local/share/epicmorg
+ENV EMG_WELCOME_MESSAGE=true
+ENV EMG_DONATION_MESSAGE=true
RUN mkdir -p ${EMG_LOCAL_BASE_DIR}
COPY usr/local/epicmorg ${EMG_LOCAL_BASE_DIR}
+RUN chmod +x ${EMG_LOCAL_BASE_DIR}/welcome.sh && \
+ echo '[ ! -z "$TERM" -a -x ${EMG_LOCAL_BASE_DIR}/welcome.sh -a -x ${EMG_LOCAL_BASE_DIR}/welcome.sh ] && ${EMG_LOCAL_BASE_DIR}/welcome.sh' >> /etc/bash.bashrc
##################################################################
# Set default workdir
diff --git a/linux/ecosystem/epicmorg/debian/13-trixie/slim/usr/local/epicmorg/welcome.sh b/linux/ecosystem/epicmorg/debian/13-trixie/slim/usr/local/epicmorg/welcome.sh
new file mode 100644
index 000000000..57a314082
--- /dev/null
+++ b/linux/ecosystem/epicmorg/debian/13-trixie/slim/usr/local/epicmorg/welcome.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+# Donation message
+show_donation_message() {
+ if [ "${EMG_DONATION_MESSAGE:-true}" != "false" ]; then
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ ║"
+ echo "║ Images are developed under the MIT license and are not the result of ║"
+ echo "║ commercial activity. If you'd like to support us, feel free to donate ║"
+ echo "║ using the wallet details below. ║"
+ echo "║ Thank You! ║"
+ echo "║ ║"
+ echo "╠═════════════════════╦════════════════════════════════════════════════════╣"
+ echo "║ TYPE ║ ADDRESS ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ TON ║ EQDvHXRK-K1ZieJhgTD9JZQk7xCnWzRbctYnUkWq1lZq1bUg ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ETH ║ 0x26a8443a694f08cdfec966aa6fd72c45068753ec ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ BTC ║ bc1querz8ug9asjmsuy6yn4a94a2athgprnu7e5zq2 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ LTC ║ ltc1qtwwacq8f0n76fer2y83wxu540hddnmf8cdrlvg ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ NVC ║ 4SbMynYETyhmKdggu8f38ULU6yQKiJPuo6 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ DOGE ║ DHyfE1CZzWtyaQiaMmv6g4KvXVQRUgrYE6 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ PPC ║ pQWArPzYoLppNe7ew3QPfto1k1eq66BYUB ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ RVN ║ R9t2LKeLhDSZBKNgUzSDZAossA3UqNvbV3 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ZEC ║ t1KRMMmwMSZth8vJcd2ZHtPEFKTQ74yVixE ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ XMR ║ 884PqZ1gDjWW7fKxtbaeRoBeSh9EGZbkqUyLriWmuKbwLZrAJ ║"
+ echo "║ ║ dYUs4wQxoVfEJoW7LBhdQMP9cFhZQpJr6xvg7esHLdCbb1 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ║ https://patreon.com/epicmorg ║"
+ echo "║ WEB LINKS ║ https://ko-fi.com/epicmorg ║"
+ echo "║ ║ https://ko-fi.com/alexz696 ║"
+ echo "╚═════════════════════╩════════════════════════════════════════════════════╝"
+ fi
+}
+
+
+# Welcome message
+show_welcome_message() {
+ if [ "${EMG_WELCOME_MESSAGE:-true}" != "false" ]; then
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ ║"
+ echo "║ Welcome to one of the containers of the project. ║"
+ echo "║ ║"
+ echo "║ * EpicMorg directory with static binaries: '${EMG_LOCAL_BASE_DIR}' ║"
+ echo "║ * To disable Welcome message switch 'EMG_WELCOME_MESSAGE' to 'false' ║"
+ echo "║ * To disable Donation message switch 'EMG_DONATION_MESSAGE' to 'false' ║"
+ echo "║ ║"
+ echo "╚══════════════════════════════════════════════════════════════════════════╝"
+ show_donation_message
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ Thank you for choosing us. ║"
+ echo "║ Enjoy using the project! ║"
+ echo "║ EpicMorg, 2025 ║"
+ echo "╚══════════════════════════════════════════════════════════════════════════╝"
+ fi
+}
+
+clear
+show_welcome_message
+exit 0
diff --git a/linux/ecosystem/epicmorg/debian/sid/slim/Dockerfile b/linux/ecosystem/epicmorg/debian/sid/slim/Dockerfile
index e5216333d..03e75b0da 100644
--- a/linux/ecosystem/epicmorg/debian/sid/slim/Dockerfile
+++ b/linux/ecosystem/epicmorg/debian/sid/slim/Dockerfile
@@ -83,8 +83,12 @@ RUN locale-gen
# Create Base directory for various soft
##################################################################
ENV EMG_LOCAL_BASE_DIR=/usr/local/share/epicmorg
+ENV EMG_WELCOME_MESSAGE=true
+ENV EMG_DONATION_MESSAGE=true
RUN mkdir -p ${EMG_LOCAL_BASE_DIR}
COPY usr/local/epicmorg ${EMG_LOCAL_BASE_DIR}
+RUN chmod +x ${EMG_LOCAL_BASE_DIR}/welcome.sh && \
+ echo '[ ! -z "$TERM" -a -x ${EMG_LOCAL_BASE_DIR}/welcome.sh -a -x ${EMG_LOCAL_BASE_DIR}/welcome.sh ] && ${EMG_LOCAL_BASE_DIR}/welcome.sh' >> /etc/bash.bashrc
##################################################################
# Set default workdir
diff --git a/linux/ecosystem/epicmorg/debian/sid/slim/usr/local/epicmorg/welcome.sh b/linux/ecosystem/epicmorg/debian/sid/slim/usr/local/epicmorg/welcome.sh
new file mode 100644
index 000000000..57a314082
--- /dev/null
+++ b/linux/ecosystem/epicmorg/debian/sid/slim/usr/local/epicmorg/welcome.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+# Donation message
+show_donation_message() {
+ if [ "${EMG_DONATION_MESSAGE:-true}" != "false" ]; then
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ ║"
+ echo "║ Images are developed under the MIT license and are not the result of ║"
+ echo "║ commercial activity. If you'd like to support us, feel free to donate ║"
+ echo "║ using the wallet details below. ║"
+ echo "║ Thank You! ║"
+ echo "║ ║"
+ echo "╠═════════════════════╦════════════════════════════════════════════════════╣"
+ echo "║ TYPE ║ ADDRESS ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ TON ║ EQDvHXRK-K1ZieJhgTD9JZQk7xCnWzRbctYnUkWq1lZq1bUg ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ETH ║ 0x26a8443a694f08cdfec966aa6fd72c45068753ec ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ BTC ║ bc1querz8ug9asjmsuy6yn4a94a2athgprnu7e5zq2 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ LTC ║ ltc1qtwwacq8f0n76fer2y83wxu540hddnmf8cdrlvg ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ NVC ║ 4SbMynYETyhmKdggu8f38ULU6yQKiJPuo6 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ DOGE ║ DHyfE1CZzWtyaQiaMmv6g4KvXVQRUgrYE6 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ PPC ║ pQWArPzYoLppNe7ew3QPfto1k1eq66BYUB ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ RVN ║ R9t2LKeLhDSZBKNgUzSDZAossA3UqNvbV3 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ZEC ║ t1KRMMmwMSZth8vJcd2ZHtPEFKTQ74yVixE ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ XMR ║ 884PqZ1gDjWW7fKxtbaeRoBeSh9EGZbkqUyLriWmuKbwLZrAJ ║"
+ echo "║ ║ dYUs4wQxoVfEJoW7LBhdQMP9cFhZQpJr6xvg7esHLdCbb1 ║"
+ echo "╠═════════════════════╬════════════════════════════════════════════════════╣"
+ echo "║ ║ https://patreon.com/epicmorg ║"
+ echo "║ WEB LINKS ║ https://ko-fi.com/epicmorg ║"
+ echo "║ ║ https://ko-fi.com/alexz696 ║"
+ echo "╚═════════════════════╩════════════════════════════════════════════════════╝"
+ fi
+}
+
+
+# Welcome message
+show_welcome_message() {
+ if [ "${EMG_WELCOME_MESSAGE:-true}" != "false" ]; then
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ ║"
+ echo "║ Welcome to one of the containers of the project. ║"
+ echo "║ ║"
+ echo "║ * EpicMorg directory with static binaries: '${EMG_LOCAL_BASE_DIR}' ║"
+ echo "║ * To disable Welcome message switch 'EMG_WELCOME_MESSAGE' to 'false' ║"
+ echo "║ * To disable Donation message switch 'EMG_DONATION_MESSAGE' to 'false' ║"
+ echo "║ ║"
+ echo "╚══════════════════════════════════════════════════════════════════════════╝"
+ show_donation_message
+ echo "╔══════════════════════════════════════════════════════════════════════════╗"
+ echo "║ Thank you for choosing us. ║"
+ echo "║ Enjoy using the project! ║"
+ echo "║ EpicMorg, 2025 ║"
+ echo "╚══════════════════════════════════════════════════════════════════════════╝"
+ fi
+}
+
+clear
+show_welcome_message
+exit 0