diff --git a/contrib/pg_tde/documentation/Makefile b/contrib/pg_tde/documentation/Makefile
new file mode 100644
index 0000000000000..0343748c537a8
--- /dev/null
+++ b/contrib/pg_tde/documentation/Makefile
@@ -0,0 +1,42 @@
+# Documentation Makefile.
+
+DOCDIR := documentation
+
+ifeq ($(shell basename $(CURDIR)),$(DOCDIR))
+ DIR := $(CURDIR)
+else
+ DIR := $(CURDIR)/$(DOCDIR)
+endif
+
+doc-check-images: ## Check if all images are used in documentation
+ @$(DIR)/_resources/bin/check-images.sh
+
+doc-remove-images: ## Remove unused images from documentation
+ @ACTION=remove $(DIR)/_resources/bin/check-images.sh
+
+doc-build: ## Build documentation (used in CI)
+ # This command is used to build and deploy a preview to onrender.com
+ # Preview URL: https://pmm-doc.onrender.com
+
+ mkdocs build -f $(DIR)/mkdocs.yml
+
+doc-build-pdf: ## Build documentation in PDF format
+ docker run --rm --platform=linux/amd64 -v $(DIR):/docs -w /build perconalab/pmm-doc-md:latest \
+ bash -c " \
+ cp -r /docs/* /build/ && \
+ git init && \
+ git config user.email 'doc-team@percona.com' && \
+ git add --all && \
+ git commit -am 'Initial commit' > /dev/null && \
+ ENABLE_PDF_EXPORT=1 mkdocs build -f mkdocs-pdf.yml && \
+ cp /build/site/pdf/*.pdf /docs/ \
+ "
+
+doc-build-image: ## Build perconalab/pmm-doc-md:latest image
+ # @docker buildx build --platform=linux/amd64 --progress=plain -t perconalab/pmm-doc-md:latest -f documentation/resources/Dockerfile.build .
+
+doc-build-preview: ## Build documentation and preview at http://localhost:8000
+ docker run --rm -v $(DIR):/docs -e ENABLE_PDF_EXPORT=1 perconalab/pmm-doc-md:latest mkdocs serve -a 127.0.0.1:8001
+
+doc-search-icons: ## Search for icons that can be used in documentation
+ @open https://squidfunk.github.io/mkdocs-material/reference/icons-emojis/#search
\ No newline at end of file
diff --git a/contrib/pg_tde/documentation/_resource/bin/check-images.sh b/contrib/pg_tde/documentation/_resource/bin/check-images.sh
new file mode 100644
index 0000000000000..01fb3a3e4bf9f
--- /dev/null
+++ b/contrib/pg_tde/documentation/_resource/bin/check-images.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+set -o errexit nounset
+
+declare -r doc_dir=$(git rev-parse --show-toplevel)/documentation
+declare -r img_dir="${doc_dir}/docs/images"
+declare -r exceptions="^PMM.png"
+declare -r action="${ACTION:-}"
+declare file=""
+
+if [ "$action" != "remove" ]; then
+ echo "Checking for unused images in documentation..."
+ echo
+else
+ echo "Removing unused images from documentation..."
+ echo
+fi
+
+for file in $(ls -1 "${img_dir}"); do
+ if ! grep -r --include "*.md" --include "mkdocs*.yml" -m 1 -q $file "${doc_dir}"; then
+ if [[ "$file" =~ ${exceptions} ]]; then
+ continue
+ fi
+ if [ "$action" = "remove" ]; then
+ echo "Removing ${img_dir}/${file} ..."
+ rm -f "${img_dir}/${file}"
+ else
+ echo "${img_dir}/${file}"
+ fi
+ fi
+done
\ No newline at end of file
diff --git a/contrib/pg_tde/documentation/_resourcepdf/.icons/percona/logo.svg b/contrib/pg_tde/documentation/_resourcepdf/.icons/percona/logo.svg
new file mode 100644
index 0000000000000..6bb15edb5a483
--- /dev/null
+++ b/contrib/pg_tde/documentation/_resourcepdf/.icons/percona/logo.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/contrib/pg_tde/documentation/_resourcepdf/bin/check-images.sh b/contrib/pg_tde/documentation/_resourcepdf/bin/check-images.sh
new file mode 100644
index 0000000000000..01fb3a3e4bf9f
--- /dev/null
+++ b/contrib/pg_tde/documentation/_resourcepdf/bin/check-images.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+set -o errexit nounset
+
+declare -r doc_dir=$(git rev-parse --show-toplevel)/documentation
+declare -r img_dir="${doc_dir}/docs/images"
+declare -r exceptions="^PMM.png"
+declare -r action="${ACTION:-}"
+declare file=""
+
+if [ "$action" != "remove" ]; then
+ echo "Checking for unused images in documentation..."
+ echo
+else
+ echo "Removing unused images from documentation..."
+ echo
+fi
+
+for file in $(ls -1 "${img_dir}"); do
+ if ! grep -r --include "*.md" --include "mkdocs*.yml" -m 1 -q $file "${doc_dir}"; then
+ if [[ "$file" =~ ${exceptions} ]]; then
+ continue
+ fi
+ if [ "$action" = "remove" ]; then
+ echo "Removing ${img_dir}/${file} ..."
+ rm -f "${img_dir}/${file}"
+ else
+ echo "${img_dir}/${file}"
+ fi
+ fi
+done
\ No newline at end of file
diff --git a/contrib/pg_tde/documentation/_resourcepdf/overrides/main.html b/contrib/pg_tde/documentation/_resourcepdf/overrides/main.html
new file mode 100644
index 0000000000000..536b11dcdc1a1
--- /dev/null
+++ b/contrib/pg_tde/documentation/_resourcepdf/overrides/main.html
@@ -0,0 +1,72 @@
+{#-
+ This file was automatically generated - do not edit
+-#}
+{% extends "base.html" %}
+
+{% block announce %}
+ This is the Release Candidate 2 (RC2) of Percona Transparent Data Encryption (TDE) extension.
+
It is not recommended for production environments at this stage.
+
We encourage you to test it and give your feedback.
+ This will help us improve the product and make it production-ready faster.
+{% endblock %}
+
+{% block scripts %}
+
+{{ super() }}
+{% endblock %}
+
+{% block site_nav %}
+ {% if nav %}
+ {% if page.meta and page.meta.hide %}
+ {% set hidden = "hidden" if "navigation" in page.meta.hide %}
+ {% endif %}
+
+
+
+ {% include "partials/nav.html" %}
+
+
+
+
+
+ {% endif %}
+ {% if "toc.integrate" not in features %}
+ {% if page.meta and page.meta.hide %}
+ {% set hidden = "hidden" if "toc" in page.meta.hide %}
+ {% endif %}
+
+ {% if not config.extra.generator == false %}
+ Made with
+
+ Material for MkDocs
+
+ {% endif %}
+
diff --git a/contrib/pg_tde/documentation/_resourcepdf/overrides/partials/header.html b/contrib/pg_tde/documentation/_resourcepdf/overrides/partials/header.html
new file mode 100644
index 0000000000000..1983ab1baef50
--- /dev/null
+++ b/contrib/pg_tde/documentation/_resourcepdf/overrides/partials/header.html
@@ -0,0 +1,135 @@
+
+
+
+{% set class = "md-header" %}
+{% if "navigation.tabs.sticky" in features %}
+ {% set class = class ~ " md-header--shadow md-header--lifted" %}
+{% elif "navigation.tabs" not in features %}
+ {% set class = class ~ " md-header--shadow" %}
+{% endif %}
+
+
+
+
+
+