diff --git a/scripts/ci/jobs/build-docs.yml b/scripts/ci/jobs/build-docs.yml
index 57b46843828dafa42dcbffc6d888b256d031637e..4807bcdac40fe4af274e67e2135658124b8c2200 100644
--- a/scripts/ci/jobs/build-docs.yml
+++ b/scripts/ci/jobs/build-docs.yml
@@ -1,6 +1,6 @@
 build docs:
   stage: build
-  tags: [shell, envinf]
+  tags: [envinf2-shell]
   dependencies: [meta]
   rules:
     - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
@@ -20,7 +20,7 @@ build docs:
     - mkdir -p build
     - cd build
   script:
-    - cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DOGS_USE_CONAN=OFF -DOGS_BUILD_PROCESSES=GroundwaterFlow
+    - cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DOGS_USE_CONAN=OFF -DOGS_USE_POETRY=OFF -DOGS_BUILD_PROCESSES=SteadyStateDiffusion
     - cmake --build . --target doc > >(tee make-docs.output)
     - cat DoxygenWarnings.log|grep -v 'too many nodes'
     - echo "doxygen_warnings `cat DoxygenWarnings.log|grep warning:|grep -v 'too many nodes'|wc -l|xargs`" > metrics.txt
@@ -33,6 +33,8 @@ build docs:
             netlify link --name ogs-doxygen-${CI_COMMIT_BRANCH//./-}
             netlify deploy --prod --dir=docs
         fi
+        sshpass -p $DOXYSEARCH_PW rsync -az doxysearch.db webdev@doxysearch.opengeosys.org:/var/www/doxysearch.opengeosys.org/$CI_COMMIT_BRANCH/
+        sshpass -p $DOXYSEARCH_PW ssh webdev@doxysearch.opengeosys.org doxyindexer -o /var/www/doxysearch.opengeosys.org/$CI_COMMIT_BRANCH /var/www/doxysearch.opengeosys.org/$CI_COMMIT_BRANCH/searchdata.xml
       fi
   artifacts:
     expose_as: 'Doxygen'
diff --git a/scripts/cmake/DocumentationSetup.cmake b/scripts/cmake/DocumentationSetup.cmake
index afacf620f7073a8b0b375aa8d607b5582f0ec3d1..4c49a0a131df9e7a7ed0232a477b4b3ede425be2 100644
--- a/scripts/cmake/DocumentationSetup.cmake
+++ b/scripts/cmake/DocumentationSetup.cmake
@@ -75,6 +75,14 @@ set(DOXYGEN_ALIASES
     "ogs_missing_documentation = \\xrefitem ogs_missing_documentation \\\"Missing Documentation\\\" \\\"OGS Input File Parameters&mdash\;List of incomplete documentation pages\\\" Documentation missing/incomplete"
 )
 set(DOXYGEN_CREATE_SUBDIRS YES)
+if($ENV{CI_COMMIT_BRANCH} MATCHES "master|^v[0-9]\.[0-9]\.[0-9]")
+    set(DOXYGEN_SERVER_BASED_SEARCH YES)
+    set(DOXYGEN_EXTERNAL_SEARCH YES)
+    set(DOXYGEN_SEARCHENGINE_URL
+        "http://doxysearch.opengeosys.org/$ENV{CI_COMMIT_BRANCH}/doxysearch.cgi"
+    )
+    message(STATUS "Doxygen search server: ${DOXYGEN_SEARCHENGINE_URL}")
+endif()
 configure_file(
     ${PROJECT_SOURCE_DIR}/Documentation/mainpage.dox.in
     ${PROJECT_BINARY_DIR}/DocAux/dox/mainpage.dox