diff --git a/flowspec/forms.py b/flowspec/forms.py
index b4ed9991254caa8a732391a5a4cddb049790ca0e..afb99cc1d4907cafdba32766e40c62fc971bf535 100644
--- a/flowspec/forms.py
+++ b/flowspec/forms.py
@@ -273,5 +273,9 @@ def get_matchingprotocol_route_pks(protocolist, routes):
 
 class SetupForm(forms.Form):
     password = forms.CharField(widget=forms.PasswordInput(), label="Password")
-
+    netconf_device = forms.CharField(label="Router host (NETCONF)")
+    netconf_port = forms.IntegerField(label="Router port (NETCONF)", min_value=0, max_value=65535)
+    netconf_user = forms.CharField(label="Router user (NETCONF)")
+    netconf_pass = forms.CharField(widget=forms.PasswordInput(), label="Router password (NETCONF)")
+    test_peer_addr = forms.CharField(label="Test peer IP subnet")
 
diff --git a/flowspec/views.py b/flowspec/views.py
index 0601464a5039b1b3f798c6cb535d41da1c834f71..fdf230b0da467c5ac827e6f6535d682d484b9edb 100644
--- a/flowspec/views.py
+++ b/flowspec/views.py
@@ -921,7 +921,7 @@ def routestats(request, route_slug):
         return HttpResponse(json.dumps({"error": "No data available. %s" % e}), mimetype="application/json", status=404)
 
 def setup(request):
-    if not User.objects.filter(username="admin"):
+    if User.objects.count() == 0:
         if request.method == "POST":
             form = SetupForm(request.POST)
             if form.is_valid():
@@ -929,6 +929,22 @@ def setup(request):
                 u.is_superuser = True
                 u.is_staff = True
                 u.save()
+                pr = PeerRange(network = form.cleaned_data["test_peer_addr"])
+                pr.save()
+                p = Peer(peer_name = "testpeer", peer_tag = "testpeer")
+                p.save()
+                p.networks.add(pr)
+                ua = UserProfile()
+                ua.user = u
+                ua.save()
+                ua.peers.add(p)
+
+                with open("flowspy/settings_local.py", "a") as f:
+                    f.write("NETCONF_DEVICE = \"%s\"\n" % form.cleaned_data["netconf_device"])
+                    f.write("NETCONF_USER = \"%s\"\n"   % form.cleaned_data["netconf_port"])
+                    f.write("NETCONF_PASS = \"%s\"\n"   % form.cleaned_data["netconf_user"])
+                    f.write("NETCONF_PORT = %s\n"       % form.cleaned_data["netconf_pass"])
+
                 logger.error('TODO REMOVE: password: %s' % form.cleaned_data["password"])
                 return HttpResponseRedirect(reverse("welcome"))
         else:
diff --git a/templates/flowspy/setup.html b/templates/flowspy/setup.html
index 6168c785467b9c3fe2e4d47f9ccc2f45c41dcbb8..7bed56838beb617d8dd54926ffc4d4872cb08950 100644
--- a/templates/flowspy/setup.html
+++ b/templates/flowspy/setup.html
@@ -6,7 +6,9 @@
 	Set the password of admin user:
 	<form action="{% url setup %}" method="post">
 	{% csrf_token %}
+	<table>
 	{{ form }}
+	</table>
 	<input type="submit" value="Set">
 	</form>
 </div>