diff --git a/conf.py b/conf.py
index 04cb4b4..11d2c9f 100644
--- a/conf.py
+++ b/conf.py
@@ -16,14 +16,20 @@
 # import sys
 # sys.path.insert(0, os.path.abspath('.'))
 
+import os
+
+def get_version():
+    with open("VERSION") as f:
+        return f.read().strip()
+
 # -- Project information -----------------------------------------------------
 
 project = u'VOLTHA Docs'
-copyright = u'2019, VOLTHA Contributors'
+copyright = u'2019-2020, VOLTHA Contributors & Open Networking Foundation'
 author = u'VOLTHA Contributors'
 
 # The short X.Y version
-version = "2.2.0"
+version = get_version()
 
 # The full version, including alpha/beta/rc tags
 release = version
@@ -55,6 +61,7 @@
     'sphinxcontrib.rackdiag',
     'sphinxcontrib.seqdiag',
     'sphinxcontrib.spelling',
+    "sphinx_multiversion",
 #    'sphinxcontrib.golangdomain',
 #    'autoapi.extension',
 ]
@@ -74,8 +81,8 @@
 # Text files with lists of words that shouldn't fail the spellchecker:
 spelling_word_list_filename=['dict.txt', ]
 
-# SCVersioning prep target commands, run in each target directory
-scv_prep_commands = [
+# sphinx-multiversion prep, run in each versioned source directory
+prep_commands = [
     'ln -sf _root_/repos _target_/repos',
     'make prep',
 ]
@@ -108,13 +115,15 @@
         '.DS_Store',
         'Thumbs.db',
         '_build',
-        'doc_venv',
+        'venv_docs',
         'voltha-system-tests/vst_venv',
+        'voltha-go/BUILD.md',
         'cord-tester/venv_cord',
         'cord-tester/docs',
         'cord-tester/src',
         'cord-tester/README.md',
         'cord-tester/cord-robot/README.rst',
+        'openolt/agent/*',
         'repos',
         'requirements.txt',
         'bbsim/README.md',
@@ -132,11 +141,17 @@
 #
 html_theme = 'sphinx_rtd_theme'
 
+html_logo = '_static/voltha.svg'
+
+html_favicon = '_static/voltha-favicon-128.png'
+
 # Theme options are theme-specific and customize the look and feel of a theme
 # further.  For a list of options available for each theme, see the
 # documentation.
 #
-# html_theme_options = {}
+html_theme_options = {
+    'logo_only': True
+}
 
 # 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,
@@ -154,6 +169,7 @@
 # html_sidebars = {}
 
 
+
 # -- Options for HTMLHelp output ---------------------------------------------
 
 # Output file base name for HTML help builder.
@@ -255,7 +271,9 @@
 # The link checker strips off .md from links and then complains
 linkcheck_ignore = [r'https://github.com/ciena/kind-voltha/blob/master/README',
                     r'https://github.com/opencord/voltctl/blob/master/LICENSE',
-                    r'https://github.com/ciena/kind-voltha#voltha-up-configuration-options']
+                    r'https://github.com/ciena/kind-voltha#voltha-up-configuration-options',
+                    r'https://www.sphinx-doc.org',
+                    ]
 
 # -- Configure recommonmark to use AutoStructify -----------------------------
 # Docs: https://recommonmark.readthedocs.io/en/latest/auto_structify.html
