diff --git a/roles/ipsilon/files/ipsilon.wsgi b/roles/ipsilon/files/ipsilon.wsgi
new file mode 100644
index 0000000000..4bda04e303
--- /dev/null
+++ b/roles/ipsilon/files/ipsilon.wsgi
@@ -0,0 +1,24 @@
+Alias /ui /usr/share/ipsilon/ui
+Alias /.well-known /etc/ipsilon/wellknown
+WSGIScriptAlias / /usr/sbin/ipsilon
+WSGIDaemonProcess ipsilon user=ipsilon group=ipsilon home=/var/lib/ipsilon
+
+
+
+ WSGIProcessGroup ipsilon
+
+
+
+ Require all granted
+
+
+
+ Require all granted
+
+
+
+ Require all granted
+
+
+ ForceType application/json
+
diff --git a/roles/ipsilon/files/ui-fedora/fedora-authn-logo-white.png b/roles/ipsilon/files/ui-fedora/fedora-authn-logo-white.png
new file mode 100644
index 0000000000..e36baf7ab5
Binary files /dev/null and b/roles/ipsilon/files/ui-fedora/fedora-authn-logo-white.png differ
diff --git a/roles/ipsilon/files/ui-fedora/fedora.css b/roles/ipsilon/files/ui-fedora/fedora.css
new file mode 100644
index 0000000000..86f1fb4b83
--- /dev/null
+++ b/roles/ipsilon/files/ui-fedora/fedora.css
@@ -0,0 +1,143 @@
+@import url(https://fonts.googleapis.com/css?family=Cantarell:400,700);
+
+body
+{
+ padding:0;
+ margin:0;
+ font-family: 'Cantarell', sans-serif;
+ font-size:20px;
+}
+
+.header_bg
+{
+ width:100%;
+ background-image: url('repeater.png');
+ height:84px;
+ display: block;
+}
+
+.body
+{
+ max-width:800px;
+ margin-left:auto;
+ margin-right:auto;
+
+}
+
+.main
+{
+/* margin-top:50px;*/
+}
+
+.header
+{
+ height:100%;
+}
+
+#loginbutton
+{
+ float: right;
+ margin-right: 4px;
+ margin-left: 8px;
+}
+
+#logo
+{
+ padding-top:9px;
+ margin-left:auto;
+ margin-right:auto;
+ display:block;
+}
+
+.middlebox
+{
+ width:320px;
+ background:#eee;
+ margin-left:auto;
+ margin-right:auto;
+ box-shadow: 0px 0px 5px 1px #999;
+ padding:10px 40px 2px 40px;
+ color:#555;
+ text-align:center;
+}
+
+table.details
+{
+ text-align:left;
+ font-size:16px;
+ margin-left:auto;
+ margin-right:auto;
+}
+
+table.details td:first-child
+{
+ font-weight:bold;
+ text-align:right;
+ padding-right:10px;
+}
+
+
+#toptext
+{
+ text-align:center;
+/* margin-bottom:30px;*/
+}
+
+
+input {
+ border: 1px solid #555;
+ padding-top:5px;
+ padding-bottom:5px;
+ font-size: 15px;
+/* width: 100%; */
+ background: #fff;
+ color: 000000;
+ text-indent:10px;
+ font-family: 'Cantarell', sans-serif;
+ }
+
+input:focus {
+ box-shadow: 0px 0px 5px #3366FF;
+}
+
+input[type=submit]
+{
+ text-indent:0px;
+ background-image: url('repeater.png');
+ color:white;
+/* font-weight:bold;*/
+ width: 150px;
+}
+
+.middlebox a {
+ padding-left: 5px;
+ padding-right: 5px;
+}
+
+.button {
+ border: 1px solid #555;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ font-size: 15px;
+/* width: 100%; */
+ background: #fff;
+ text-indent: 10px;
+ font-family: 'Cantarell', sans-serif;
+ text-indent: 0px;
+ background-image: url('repeater.png');
+ color: white;
+/* font-weight: bold;*/
+ text-decoration: none;
+/* display: block; */
+}
+
+
+#password, #username {
+ width: 310px;
+}
+
+input::-moz-focus-inner {
+ border:0;
+ padding:0;
+}
+
diff --git a/roles/ipsilon/files/ui-fedora/logo.svg b/roles/ipsilon/files/ui-fedora/logo.svg
new file mode 100644
index 0000000000..473b68cea0
--- /dev/null
+++ b/roles/ipsilon/files/ui-fedora/logo.svg
@@ -0,0 +1,158 @@
+
+
+
+
diff --git a/roles/ipsilon/files/ui-fedora/repeater.png b/roles/ipsilon/files/ui-fedora/repeater.png
new file mode 100644
index 0000000000..45d9189fba
Binary files /dev/null and b/roles/ipsilon/files/ui-fedora/repeater.png differ
diff --git a/roles/ipsilon/tasks/main.yml b/roles/ipsilon/tasks/main.yml
index c80d42f0b2..b1de63b19a 100644
--- a/roles/ipsilon/tasks/main.yml
+++ b/roles/ipsilon/tasks/main.yml
@@ -23,6 +23,11 @@
dest=/usr/share/ipsilon/templates-fedora
owner=ipsilon group=ipsilon mode=0666
+- name: copy ipsilon ui assets
+ copy: src=ui-fedora
+ dest=/usr/share/ipsilon/ui/fedora
+ owner=ipsilon group=ipsilon mode=0666
+
- name: copy ipsilon configuration
template: src={{ item }}.cfg
dest=/etc/ipsilon/{{ item }}.cfg
@@ -35,6 +40,10 @@
notify:
- restart apache
+- name: copy ipsilon wsgi
+ copy: src=ipsilon.wsgi
+ dest=/etc/httpd/conf.d/ipsilon.wsgi
+
- name: copy persona private key
copy: src={{ private }}/files/ipsilon/persona.key dest=/etc/ipsilon/persona.key
owner=ipsilon group=ipsilon mode=0600