diff --git a/doc/conf.py b/doc/source/conf.py
similarity index 100%
rename from doc/conf.py
rename to doc/source/conf.py
diff --git a/doc/CONTRIBUTING.rst b/doc/source/contributor/CONTRIBUTING.rst
similarity index 100%
rename from doc/CONTRIBUTING.rst
rename to doc/source/contributor/CONTRIBUTING.rst
diff --git a/doc/bug-triage.rst b/doc/source/contributor/bug-triage.rst
similarity index 100%
rename from doc/bug-triage.rst
rename to doc/source/contributor/bug-triage.rst
diff --git a/doc/source/contributor/index.rst b/doc/source/contributor/index.rst
new file mode 100644
index 0000000000..c2d7d4d973
--- /dev/null
+++ b/doc/source/contributor/index.rst
@@ -0,0 +1,10 @@
+Developer Docs
+==============
+
+.. toctree::
+   :maxdepth: 1
+
+   CONTRIBUTING
+   vagrant-dev-env
+   running-tests
+   bug-triage
diff --git a/doc/running-tests.rst b/doc/source/contributor/running-tests.rst
similarity index 100%
rename from doc/running-tests.rst
rename to doc/source/contributor/running-tests.rst
diff --git a/doc/vagrant-dev-env.rst b/doc/source/contributor/vagrant-dev-env.rst
similarity index 100%
rename from doc/vagrant-dev-env.rst
rename to doc/source/contributor/vagrant-dev-env.rst
diff --git a/doc/index.rst b/doc/source/index.rst
similarity index 66%
rename from doc/index.rst
rename to doc/source/index.rst
index ea02ce5f1e..c7c33fa52e 100644
--- a/doc/index.rst
+++ b/doc/source/index.rst
@@ -34,57 +34,26 @@ refer to the `Kolla image documentation
 <https://docs.openstack.org/kolla/latest/>`_.
 
 
-Overview
-========
+User Guides
+===========
 
 .. toctree::
-   :maxdepth: 1
+   :maxdepth: 2
 
-   deployment-philosophy
-   production-architecture-guide
-   quickstart
-   multinode
-   multi-regions
-   advanced-configuration
-   operating-kolla
-   security
-   kolla-for-openstack-development
-   troubleshooting
+   user/index
 
-Services
-========
+Reference
+=========
 
 .. toctree::
-   :maxdepth: 1
+   :maxdepth: 2
 
-   ceph-guide
-   central-logging-guide
-   external-ceph-guide
-   cinder-guide
-   cinder-guide-hnas
-   designate-guide
-   hyperv-guide
-   ironic-guide
-   manila-guide
-   manila-hnas-guide
-   nova-fake-driver
-   swift-guide
-   bifrost
-   networking-guide
-   kuryr-guide
-   zun-guide
-   osprofiler-guide
-   skydive-guide
-   vmware-guide
-   tacker-guide
+   reference/index
 
 Developer Docs
 ==============
 
 .. toctree::
-   :maxdepth: 1
+   :maxdepth: 2
 
-   CONTRIBUTING
-   vagrant-dev-env
-   running-tests
-   bug-triage
+   contributor/index
diff --git a/doc/bifrost.rst b/doc/source/reference/bifrost.rst
similarity index 96%
rename from doc/bifrost.rst
rename to doc/source/reference/bifrost.rst
index 38c755ae38..592ed093b7 100644
--- a/doc/bifrost.rst
+++ b/doc/source/reference/bifrost.rst
@@ -64,11 +64,11 @@ Preparation
 Prepare the Control Host
 ------------------------
 
-Follow the **Install dependencies** section of the :doc:`quickstart` guide
-instructions to set up kolla and kolla-ansible dependencies.  Follow the
-instructions in either the **Install kolla for development** section or the
-**Install kolla for deployment or evaluation** section to install kolla and
-kolla-ansible.
+Follow the **Install dependencies** section of the :doc:`../user/quickstart`
+guide instructions to set up kolla and kolla-ansible dependencies.  Follow
+the instructions in either the **Install kolla for development** section or
+the **Install kolla for deployment or evaluation** section to install kolla
+and kolla-ansible.
 
 Prepare the Deployment Host
 ---------------------------
@@ -179,8 +179,8 @@ host on which bifrost is deployed.
 Prepare Kolla-Ansible Configuration
 -----------------------------------
 
-Follow the instructions in :doc:`quickstart` to prepare kolla-ansible's global
-configuration file ``globals.yml``.  For bifrost, the
+Follow the instructions in :doc:`../user/quickstart` to prepare kolla-ansible's
+global configuration file ``globals.yml``.  For bifrost, the
 ``bifrost_network_interface`` variable should be set to the name of the
 interface that will be used to provision bare metal cloud hosts if this is
 different than ``network_interface``.  For example to use ``eth1``:
diff --git a/doc/central-logging-guide.rst b/doc/source/reference/central-logging-guide.rst
similarity index 100%
rename from doc/central-logging-guide.rst
rename to doc/source/reference/central-logging-guide.rst
diff --git a/doc/ceph-guide.rst b/doc/source/reference/ceph-guide.rst
similarity index 100%
rename from doc/ceph-guide.rst
rename to doc/source/reference/ceph-guide.rst
diff --git a/doc/cinder-guide-hnas.rst b/doc/source/reference/cinder-guide-hnas.rst
similarity index 100%
rename from doc/cinder-guide-hnas.rst
rename to doc/source/reference/cinder-guide-hnas.rst
diff --git a/doc/cinder-guide.rst b/doc/source/reference/cinder-guide.rst
similarity index 100%
rename from doc/cinder-guide.rst
rename to doc/source/reference/cinder-guide.rst
diff --git a/doc/designate-guide.rst b/doc/source/reference/designate-guide.rst
similarity index 100%
rename from doc/designate-guide.rst
rename to doc/source/reference/designate-guide.rst
diff --git a/doc/external-ceph-guide.rst b/doc/source/reference/external-ceph-guide.rst
similarity index 100%
rename from doc/external-ceph-guide.rst
rename to doc/source/reference/external-ceph-guide.rst
diff --git a/doc/hyperv-guide.rst b/doc/source/reference/hyperv-guide.rst
similarity index 100%
rename from doc/hyperv-guide.rst
rename to doc/source/reference/hyperv-guide.rst
diff --git a/doc/source/reference/index.rst b/doc/source/reference/index.rst
new file mode 100644
index 0000000000..aa819df04b
--- /dev/null
+++ b/doc/source/reference/index.rst
@@ -0,0 +1,26 @@
+Reference
+=========
+
+.. toctree::
+   :maxdepth: 1
+
+   ceph-guide
+   central-logging-guide
+   external-ceph-guide
+   cinder-guide
+   cinder-guide-hnas
+   designate-guide
+   hyperv-guide
+   ironic-guide
+   manila-guide
+   manila-hnas-guide
+   nova-fake-driver
+   swift-guide
+   bifrost
+   networking-guide
+   kuryr-guide
+   zun-guide
+   osprofiler-guide
+   skydive-guide
+   vmware-guide
+   tacker-guide
diff --git a/doc/ironic-guide.rst b/doc/source/reference/ironic-guide.rst
similarity index 100%
rename from doc/ironic-guide.rst
rename to doc/source/reference/ironic-guide.rst
diff --git a/doc/kollanet.png b/doc/source/reference/kollanet.png
similarity index 100%
rename from doc/kollanet.png
rename to doc/source/reference/kollanet.png
diff --git a/doc/kuryr-guide.rst b/doc/source/reference/kuryr-guide.rst
similarity index 100%
rename from doc/kuryr-guide.rst
rename to doc/source/reference/kuryr-guide.rst
diff --git a/doc/manila-guide.rst b/doc/source/reference/manila-guide.rst
similarity index 100%
rename from doc/manila-guide.rst
rename to doc/source/reference/manila-guide.rst
diff --git a/doc/manila-hnas-guide.rst b/doc/source/reference/manila-hnas-guide.rst
similarity index 100%
rename from doc/manila-hnas-guide.rst
rename to doc/source/reference/manila-hnas-guide.rst
diff --git a/doc/networking-guide.rst b/doc/source/reference/networking-guide.rst
similarity index 100%
rename from doc/networking-guide.rst
rename to doc/source/reference/networking-guide.rst
diff --git a/doc/nova-fake-driver.rst b/doc/source/reference/nova-fake-driver.rst
similarity index 100%
rename from doc/nova-fake-driver.rst
rename to doc/source/reference/nova-fake-driver.rst
diff --git a/doc/osprofiler-guide.rst b/doc/source/reference/osprofiler-guide.rst
similarity index 100%
rename from doc/osprofiler-guide.rst
rename to doc/source/reference/osprofiler-guide.rst
diff --git a/doc/skydive-guide.rst b/doc/source/reference/skydive-guide.rst
similarity index 100%
rename from doc/skydive-guide.rst
rename to doc/source/reference/skydive-guide.rst
diff --git a/doc/swift-guide.rst b/doc/source/reference/swift-guide.rst
similarity index 100%
rename from doc/swift-guide.rst
rename to doc/source/reference/swift-guide.rst
diff --git a/doc/tacker-guide.rst b/doc/source/reference/tacker-guide.rst
similarity index 100%
rename from doc/tacker-guide.rst
rename to doc/source/reference/tacker-guide.rst
diff --git a/doc/vmware-guide.rst b/doc/source/reference/vmware-guide.rst
similarity index 100%
rename from doc/vmware-guide.rst
rename to doc/source/reference/vmware-guide.rst
diff --git a/doc/zun-guide.rst b/doc/source/reference/zun-guide.rst
similarity index 100%
rename from doc/zun-guide.rst
rename to doc/source/reference/zun-guide.rst
diff --git a/doc/advanced-configuration.rst b/doc/source/user/advanced-configuration.rst
similarity index 100%
rename from doc/advanced-configuration.rst
rename to doc/source/user/advanced-configuration.rst
diff --git a/doc/deployment-philosophy.rst b/doc/source/user/deployment-philosophy.rst
similarity index 100%
rename from doc/deployment-philosophy.rst
rename to doc/source/user/deployment-philosophy.rst
diff --git a/doc/source/user/index.rst b/doc/source/user/index.rst
new file mode 100644
index 0000000000..786a54610a
--- /dev/null
+++ b/doc/source/user/index.rst
@@ -0,0 +1,16 @@
+User Guides
+===========
+
+.. toctree::
+   :maxdepth: 1
+
+   deployment-philosophy
+   production-architecture-guide
+   quickstart
+   multinode
+   multi-regions
+   advanced-configuration
+   operating-kolla
+   security
+   kolla-for-openstack-development
+   troubleshooting
diff --git a/doc/kolla-for-openstack-development.rst b/doc/source/user/kolla-for-openstack-development.rst
similarity index 100%
rename from doc/kolla-for-openstack-development.rst
rename to doc/source/user/kolla-for-openstack-development.rst
diff --git a/doc/multi-regions.rst b/doc/source/user/multi-regions.rst
similarity index 100%
rename from doc/multi-regions.rst
rename to doc/source/user/multi-regions.rst
diff --git a/doc/multinode.rst b/doc/source/user/multinode.rst
similarity index 100%
rename from doc/multinode.rst
rename to doc/source/user/multinode.rst
diff --git a/doc/operating-kolla.rst b/doc/source/user/operating-kolla.rst
similarity index 100%
rename from doc/operating-kolla.rst
rename to doc/source/user/operating-kolla.rst
diff --git a/doc/production-architecture-guide.rst b/doc/source/user/production-architecture-guide.rst
similarity index 100%
rename from doc/production-architecture-guide.rst
rename to doc/source/user/production-architecture-guide.rst
diff --git a/doc/quickstart.rst b/doc/source/user/quickstart.rst
similarity index 100%
rename from doc/quickstart.rst
rename to doc/source/user/quickstart.rst
diff --git a/doc/security.rst b/doc/source/user/security.rst
similarity index 100%
rename from doc/security.rst
rename to doc/source/user/security.rst
diff --git a/doc/troubleshooting.rst b/doc/source/user/troubleshooting.rst
similarity index 100%
rename from doc/troubleshooting.rst
rename to doc/source/user/troubleshooting.rst
diff --git a/setup.cfg b/setup.cfg
index fd08580ff8..35ab126252 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -53,7 +53,7 @@ setup-hooks =
 [build_sphinx]
 all_files = 1
 build-dir = doc/build
-source-dir = doc
+source-dir = doc/source
 warning-is-error = 1
 
 [build_releasenotes]