diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ff57e6f02d924a7aaaeaec2e8f0c4ed3ef254390..ea7bda2282eee89883d9cc8f1f152fdc23cd45da 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -15,3 +15,15 @@ upload:
     - make release
   only:
     - tags
+
+pages:
+  stage: upload
+  script:
+    - apk add gcc linux-headers musl-dev
+    - pip install -r requirements-docs.txt
+    - pdoc ./perxis -o public -d google
+  artifacts:
+    paths:
+      - public
+  only:
+    - master
diff --git a/requirements-docs.txt b/requirements-docs.txt
new file mode 100644
index 0000000000000000000000000000000000000000..24e0c63efd92b258d8f5af58e1c27e138e1e2fd1
--- /dev/null
+++ b/requirements-docs.txt
@@ -0,0 +1,3 @@
+-r requirements.txt
+
+pdoc==15.0.*
diff --git a/requirements.txt b/requirements.txt
index 10719e97ec63696285bec23bb08472e63a780ba7..014f7ffbc23074c89a79e6ca4e0d58c2a2389460 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -8,6 +8,7 @@ charset-normalizer==3.3.2
 grpcio==1.67.1
 idna==3.7
 oauthlib==3.2.2
+google==3.0.0
 protobuf==5.29.3
 PyJWT==2.8.0
 requests==2.32.0