diff --git a/buildout.cfg b/buildout.cfg
index 4cae45ed81513a1ad8467c1d7eefa9621f32b5ff..056aacf4f479dbdacf4251dbb69023dd653b5aaa 100644
--- a/buildout.cfg
+++ b/buildout.cfg
@@ -1,92 +1,11 @@
 [buildout]
-parts = sysegg scripts docker_images cxx_algorithms django node bower help
-extensions = mr.developer
+extends = common.cfg
+parts += docker_images cxx_algorithms
 index = https://pypi.org/simple
-auto-checkout = *
-eggs = beat.core
-       beat.cmdline
-       beat.backend.python
-       beat.web
-       ipdb
-       coverage
-       pip
-       autopep8
-newest = false
-develop = .
-versions = versions
-
-[versions]
-django = >=1.11,<2.0
-django-rest-swagger = >2.1
-django-guardian = >=1.3
-djangorestframework = >3.7
-django-activity-stream = >= 0.6.5
-django-jsonield = >= 1.0.1
-
-[sysegg]
-recipe = syseggrecipe
-;force-sysegg = true
-eggs = alabaster
-       babel
-       backports.shutil-get-terminal-size
-       click
-       click-plugins
-       colorlog
-       coverage
-       cycler
-       decorator
-       django
-       django-activity-stream
-       django-guardian
-       djangorestframework
-       django-rest-swagger
-       django-jsonfield
-       django-jsonfield-compat
-       docopt
-       docutils
-       funcsigs
-       functools32
-       graphviz
-       ipdb
-       ipython
-       ipython-genutils
-       imagesize
-       Jinja2
-       jsonschema
-       MarkupSafe
-       matplotlib
-       mock
-       numpy
-       oset
-       pathlib2
-       pbr
-       pexpect
-       pickleshare
-       pillow
-       pip
-       psutil
-       ptyprocess
-       psycopg2-binary
-       Pygments
-       pyparsing
-       python-archive
-       python-dateutil
-       pytz
-       PyYAML
-       pyzmq
-       simplegeneric
-       simplejson
-       six
-       snowballstemmer
-       Sphinx
-       sphinxcontrib-ansi
-       sphinxcontrib-httpdomain
-       sphinxcontrib-mscgen
-       sphinxcontrib-programoutput
-       sphinx-rtd-theme
-       termcolor
-       traitlets
-       uwsgi
+eggs += ipdb
+        coverage
+        pip
+        autopep8
 
 [sources]
 beat.core = git git@gitlab.idiap.ch:beat/beat.core branch=1.6.x
@@ -94,9 +13,6 @@ beat.cmdline = git git@gitlab.idiap.ch:beat/beat.cmdline branch=1.4.x
 beat.backend.python = git git@gitlab.idiap.ch:beat/beat.backend.python branch=1.5.x
 beat.examples = git git@gitlab.idiap.ch:beat/beat.examples egg=false
 
-[scripts]
-recipe = bob.buildout:scripts
-
 [docker_images]
 recipe = collective.recipe.cmd
 cmds = ./src/beat.core/buildout_pull_images.sh
@@ -111,51 +27,6 @@ uninstall_cmds = ./src/beat.core/buildout_compile_cxx_algorithm.sh cleanup
 on_install = true
 on_update = true
 
-[django]
-recipe = djangorecipe
-project = beat
-settings = web.settings.settings
-eggs = ${buildout:eggs}
-       django
-
 [node]
-recipe = gp.recipe.node
-npms = bower protractor
-scripts = bower protractor webdriver-manager
-
-[bower]
-recipe = bowerrecipe
-packages = jquery#~1.11.3
-           jquery-dateFormat#~1.0.2
-           jquery-ui#~1.10.4
-           jquery.cookie#~1.4.1
-           jquery-file-upload#~9.14.0
-           fontawesome#~4.5.0
-           codemirror#~5.10.0
-           bootstrap#~3.3.6
-           bootstrap3-dialog#~1.34.9
-           bootstrap3-typeahead#~4.0.0
-           bootstrap-datepicker#~1.5.1
-           mousetrap#~1.5.3
-           mustache#2.3.0
-           raphael#~2.1.4
-           spectrum#~1.7.1
-           https://github.com/joshaven/string_score.git#~0.1.22
-           chosen-bootstrap#~1.1.0
-           angularjs#~1.6.4
-           angular-ui-router#~0.2.15
-           chartjs#~1.0.2
-           underscore#~1.8.3
-           datatables#~1.10.10
-           angular-ui-sortable#~0.14
-           angular-ui-codemirror
-executable = ${buildout:bin-directory}/bower
-base-directory = beat/web
-downloads = static
-
-[help]
-recipe = collective.recipe.cmd
-cmds = ${buildout:bin-directory}/sphinx-build doc/user beat/web/static/guide
-uninstall_cmds = rm -rf beat/web/static/guide
-on_install = true
-on_update = true
+npms += protractor
+scripts += protractor webdriver-manager
diff --git a/common.cfg b/common.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..e7be00c89e508401d9a028a4809ddefadaa41a14
--- /dev/null
+++ b/common.cfg
@@ -0,0 +1,137 @@
+[buildout]
+parts = syseggs scripts django node bower help
+extensions = mr.developer
+auto-checkout = *
+develop = .
+newest = false
+eggs = beat.web
+       beat.cmdline
+       beat.core
+       beat.backend.python
+versions = versions
+
+[scripts]
+recipe = bob.buildout:scripts
+base-directory = beat/web
+
+[django]
+recipe = djangorecipe
+project = beat
+settings = web.settings.settings
+eggs = ${buildout:eggs}
+       django
+
+[node]
+recipe = gp.recipe.node
+npms = bower
+scripts = bower
+
+[bower]
+recipe = bowerrecipe
+packages = jquery#~1.11.3
+           jquery-dateFormat#~1.0.2
+           jquery-ui#~1.10.4
+           jquery.cookie#~1.4.1
+           jquery-file-upload#~9.14.0
+           fontawesome#~4.5.0
+           codemirror#~5.10.0
+           bootstrap#~3.3.6
+           bootstrap3-dialog#~1.34.9
+           bootstrap3-typeahead#~4.0.0
+           bootstrap-datepicker#~1.5.1
+           mousetrap#~1.5.3
+           mustache#2.3.0
+           raphael#~2.1.4
+           spectrum#~1.7.1
+           https://github.com/joshaven/string_score.git#~0.1.22
+           chosen-bootstrap#~1.1.0
+           angularjs#~1.6.4
+           angular-ui-router#~0.2.15
+           chartjs#~1.0.2
+           underscore#~1.8.3
+           datatables#~1.10.10
+           angular-ui-sortable#~0.14
+           angular-ui-codemirror
+executable = ${buildout:bin-directory}/bower --config.interactive=false
+downloads = static
+
+[versions]
+django = >=1.11,<2.0
+django-rest-swagger = >2.1
+django-guardian = >=1.3
+djangorestframework = >3.7
+django-activity-stream = >= 0.6.5
+django-jsonfield = >= 1.0.1
+
+[syseggs]
+recipe = syseggrecipe
+;force-sysegg = true
+eggs = alabaster
+       babel
+       backports.shutil-get-terminal-size
+       click
+       click-plugins
+       colorlog
+       coverage
+       cycler
+       decorator
+       django
+       django-activity-stream
+       django-guardian
+       djangorestframework
+       django-rest-swagger
+       django-jsonfield
+       django-jsonfield-compat
+       docopt
+       docutils
+       funcsigs
+       functools32
+       graphviz
+       ipdb
+       ipython
+       ipython-genutils
+       imagesize
+       Jinja2
+       jsonschema
+       MarkupSafe
+       matplotlib
+       mock
+       numpy
+       oset
+       pathlib2
+       pbr
+       pexpect
+       pickleshare
+       pillow
+       pip
+       psutil
+       ptyprocess
+       psycopg2-binary
+       Pygments
+       pyparsing
+       python-archive
+       python-dateutil
+       pytz
+       PyYAML
+       pyzmq
+       simplegeneric
+       simplejson
+       six
+       snowballstemmer
+       Sphinx
+       sphinxcontrib-ansi
+       sphinxcontrib-httpdomain
+       sphinxcontrib-mscgen
+       sphinxcontrib-programoutput
+       sphinx-rtd-theme
+       termcolor
+       traitlets
+       uwsgi
+
+[help]
+base-path = .
+recipe = collective.recipe.cmd
+cmds = ${buildout:bin-directory}/sphinx-build ${help:base-path}/doc/user ${help:base-path}/beat/web/static/guide
+uninstall_cmds = rm -rf ${help:base-path}/beat/web/static/guide
+on_install = true
+on_update = true
\ No newline at end of file
diff --git a/release.cfg b/release.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..970283c7637fd221aee78ffa0431e3d7af05c917
--- /dev/null
+++ b/release.cfg
@@ -0,0 +1,34 @@
+[buildout]
+extends = common.cfg
+parts += uwsgi
+always-checkout = force
+eggs-directory = .buildout/eggs
+download-cache = .buildout/download-cache
+abi-tag-eggs = true
+
+[scripts]
+eggs = ${buildout:eggs}
+interpreter = python
+
+[sources]
+beat.core = git https://gitlab.idiap.ch/beat/beat.core.git rev=v1.6.0
+beat.cmdline = git https://gitlab.idiap.ch/beat/beat.cmdline.git rev=v1.4.0
+beat.backend.python = git https://gitlab.idiap.ch/beat/beat.backend.python.git rev=v1.5.0
+
+[uwsgi]
+recipe = buildout.recipe.uwsgi
+output-format=ini
+eggs = ${buildout:eggs}
+use-system-binary = true
+config-master = true
+config-processes = 5
+config-socket = /tmp/uwsgi.sock
+config-chmod-socket = 666
+config-env = DJANGO_SETTINGS_MODULE=beat.web.settings.production
+          PYTHON_EGG_CACHE=/tmp
+config-module = django.core.wsgi:get_wsgi_application()
+config-vacuum = true
+
+[django]
+settings = web.settings.production
+eggs = ${buildout:eggs}
diff --git a/setup.py b/setup.py
index 668d39a19147d616a39992645e81c915ea6d8efa..6129da7f07d663eb7634a963a0cace684043a1f8 100755
--- a/setup.py
+++ b/setup.py
@@ -26,6 +26,7 @@
 ###############################################################################
 
 from setuptools import setup, find_packages
+from io import open
 
 # The only thing we do in this file is to call the setup() function with all
 # parameters that define our package.
@@ -38,7 +39,7 @@ setup(
     license='AGPLv3',
     author='Idiap Research Institute',
     author_email='beat.support@idiap.ch',
-    long_description=open('README.rst').read(),
+    long_description=open('README.rst', encoding="utf-8").read(),
 
     # This line is required for any distutils based packaging.
     packages=find_packages(),