diff --git a/services/webapp/Dockerfile b/services/webapp/Dockerfile
index dff25b267f18fb1a0eebfa665c503516430d73e2..1c0c880eda944fd03966aac4f4da87e63e7d4dd6 100644
--- a/services/webapp/Dockerfile
+++ b/services/webapp/Dockerfile
@@ -63,6 +63,14 @@ COPY db_conf.sh /db_conf.sh
 RUN mkdir /var/log/webapp/ && chown rosetta:rosetta /var/log/webapp/
 
 
+#------------------------------
+# Viz
+#------------------------------
+RUN apt install python-pygraphviz graphviz-dev -y
+RUN pip3 install django-extensions pygraphviz
+# Example usage: rosetta/shell webapp "cd /opt/code && python3 manage.py graph_models core_app --exclude-models LoginToken,Text -o ORM.png"
+
+
 #------------------------------
 # Supervisord
 #------------------------------
@@ -81,8 +89,3 @@ COPY prestartup_webapp.sh /prestartup/
 RUN touch -m /prestartup/prestartup_webapp.sh
 
 
-
-
-
-
-
diff --git a/services/webapp/code/rosetta/settings.py b/services/webapp/code/rosetta/settings.py
index e3badd8397ed37a8b8811938f4027b587d816c7c..436f9d8ed56adda20eeba27ca57f2c62a885f1a9 100644
--- a/services/webapp/code/rosetta/settings.py
+++ b/services/webapp/code/rosetta/settings.py
@@ -42,7 +42,8 @@ INSTALLED_APPS = [
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'rest_framework',
-    'rest_framework_swagger',  
+    'rest_framework_swagger',
+    'django_extensions', 
 ]
 
 MIDDLEWARE = [