diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 95c5238efd9744293c4b3fef3e8f664e3e1bc9c2..3a6db601c4969dc47b82143a88917a244f81e3a3 100755
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,4 +1,3 @@
-
 variables:
   DOCKER_HOST: tcp://docker:2376
   DOCKER_TLS_CERTDIR: "/certs"
@@ -100,3 +99,14 @@ export_jupyternb:
     paths:
       - ${JUPYTERNB_FOLDER}${JUPYTERNB_FILE}.html
   needs: ["build_docker"]
+
+pages:
+  image: python:3.7-alpine
+  script:
+  - pip install -U sphinx
+  - pip install sphinx-rtd-theme
+  - sphinx-apidoc -o docs/source gtnash
+  - sphinx-build -b html docs/source public
+  artifacts:
+    paths:
+    - public
diff --git a/docs/source/conf.py b/docs/source/conf.py
new file mode 100644
index 0000000000000000000000000000000000000000..2d757f55111fe3d77b54d75db0e9de8985402895
--- /dev/null
+++ b/docs/source/conf.py
@@ -0,0 +1,60 @@
+# Configuration file for the Sphinx documentation builder.
+#
+# This file only contains a selection of the most common options. For a full
+# list see the documentation:
+# https://www.sphinx-doc.org/en/master/usage/configuration.html
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+import os
+import sys
+sys.path.insert(0, os.path.abspath('../../gtnash/game'))
+sys.path.insert(0, os.path.abspath('../../gtnash'))
+sys.path.insert(0, os.path.abspath('../..'))
+
+
+# -- Project information -----------------------------------------------------
+
+project = 'GTNash'
+copyright = '2022, Paul Jourdan, Régis Sabbadin'
+author = 'Paul Jourdan, Régis Sabbadin'
+
+# The full version, including alpha/beta/rc tags
+release = '0.1'
+
+
+# -- General configuration ---------------------------------------------------
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = ['sphinx.ext.autodoc']
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = []
+
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'sphinx_rtd_theme'
+
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+autodoc_mock_imports = ["numpy", "sage"]
+
diff --git a/docs/source/index.rst b/docs/source/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..2cf2e26d56c3a64eca88404b68df356271d318ca
--- /dev/null
+++ b/docs/source/index.rst
@@ -0,0 +1,21 @@
+.. GTNash documentation master file, created by
+   sphinx-quickstart on Thu Feb  3 13:20:54 2022.
+   You can adapt this file completely to your liking, but it should at least
+   contain the root `toctree` directive.
+
+Welcome to GTNash's documentation!
+==================================
+
+.. toctree::
+   :maxdepth: 2
+   :caption: Contents:
+
+   modules
+
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`