diff --git a/certs/websites/apps.du5t1n.xyz.cer b/certs/websites/apps.du5t1n.xyz.cer
new file mode 120000
index 0000000..e8dcb1c
--- /dev/null
+++ b/certs/websites/apps.du5t1n.xyz.cer
@@ -0,0 +1 @@
+../../.certs/certificates/apps.du5t1n.xyz.crt
\ No newline at end of file
diff --git a/certs/websites/apps.du5t1n.xyz.key b/certs/websites/apps.du5t1n.xyz.key
new file mode 120000
index 0000000..af5560e
--- /dev/null
+++ b/certs/websites/apps.du5t1n.xyz.key
@@ -0,0 +1 @@
+../../.certs/certificates/apps.du5t1n.xyz.key
\ No newline at end of file
diff --git a/group_vars/dch-proxy.yml b/group_vars/dch-proxy.yml
index d702312..62b1d3a 100644
--- a/group_vars/dch-proxy.yml
+++ b/group_vars/dch-proxy.yml
@@ -36,6 +36,8 @@ dch_proxy_sites:
- backend: web
match: ebonfire.com
matcher: end
+- backend: web
+ match: apps.du5t1n.xyz
- backend: web
match: hatchlearningcenter hlckc hlcks
matcher: dom
diff --git a/group_vars/public-web/main.yml b/group_vars/public-web/main.yml
index 8a58a20..656bb88 100644
--- a/group_vars/public-web/main.yml
+++ b/group_vars/public-web/main.yml
@@ -9,6 +9,7 @@ ebonfire_publisher_keys: '{{ dchwww_publisher_keys }}'
nratonpass_publisher_keys: '{{ dchwww_publisher_keys }}'
dcow_publisher_keys: '{{ dchwww_publisher_keys }}'
chmod777_publisher_keys: '{{ dchwww_publisher_keys }}'
+appsxyz_publisher_keys: '{{ dchwww_publisher_keys }}'
apache_server_name: pyrocufflink.net
userdir_proxy_backend: http://files.pyrocufflink.blue
tabitha_publisher_keys:
diff --git a/roles/websites/apps.du5t1n.xyz/defaults/main.yml b/roles/websites/apps.du5t1n.xyz/defaults/main.yml
new file mode 100644
index 0000000..2a65879
--- /dev/null
+++ b/roles/websites/apps.du5t1n.xyz/defaults/main.yml
@@ -0,0 +1 @@
+appsxyz_publisher_keys: []
diff --git a/roles/websites/apps.du5t1n.xyz/files/apps.du5t1n.xyz.httpd.conf b/roles/websites/apps.du5t1n.xyz/files/apps.du5t1n.xyz.httpd.conf
new file mode 100644
index 0000000..ce4b0cc
--- /dev/null
+++ b/roles/websites/apps.du5t1n.xyz/files/apps.du5t1n.xyz.httpd.conf
@@ -0,0 +1,23 @@
+
+ServerName apps.du5t1n.xyz
+
+RewriteEngine On
+RewriteRule (.*) https://%{SERVER_NAME}$1 [R=301,L]
+
+
+
+ServerName apps.du5t1n.xyz
+
+Include conf.d/ssl.include
+SSLCertificateKeyFile /etc/pki/tls/private/apps.du5t1n.xyz.key
+SSLCertificateFile /etc/pki/tls/certs/apps.du5t1n.xyz.cer
+
+
+ Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
+
+
+DocumentRoot /srv/www/apps.du5t1n.xyz/htdocs
+
+ Require all granted
+
+
diff --git a/roles/websites/apps.du5t1n.xyz/meta/main.yml b/roles/websites/apps.du5t1n.xyz/meta/main.yml
new file mode 100644
index 0000000..2a3807b
--- /dev/null
+++ b/roles/websites/apps.du5t1n.xyz/meta/main.yml
@@ -0,0 +1,7 @@
+dependencies:
+- role: cert
+ vars:
+ cert_src: websites/apps.du5t1n.xyz.cer
+ cert_dest: /etc/pki/tls/certs/apps.du5t1n.xyz.cer
+ cert_key_src: websites/apps.du5t1n.xyz.key
+ cert_key_dest: /etc/pki/tls/private/apps.du5t1n.xyz.key
diff --git a/roles/websites/apps.du5t1n.xyz/tasks/main.yml b/roles/websites/apps.du5t1n.xyz/tasks/main.yml
new file mode 100644
index 0000000..a15c3ff
--- /dev/null
+++ b/roles/websites/apps.du5t1n.xyz/tasks/main.yml
@@ -0,0 +1,55 @@
+- name: ensure rsync is installed
+ package:
+ name: rsync
+ state: present
+ tags:
+ - install
+
+- name: ensure app group exists
+ group:
+ name: webapp.appsxyz
+ state: present
+- name: ensure app user exists
+ user:
+ name: webapp.appsxyz
+ group: webapp.appsxyz
+ home: /srv/www/apps.du5t1n.xyz
+ createhome: true
+ state: present
+
+- name: ensure app home directory permissions are set
+ file:
+ path: /srv/www/apps.du5t1n.xyz
+ mode: u=rwx,go=rx
+ state: directory
+
+- name: ensure app ssh home directory exists
+ file:
+ path: /srv/www/apps.du5t1n.xyz/.ssh
+ mode: '0700'
+ owner: webapp.appsxyz
+ group: webapp.appsxyz
+ setype: ssh_home_t
+ state: directory
+- name: ensure publisher keys are trusted
+ authorized_key:
+ key: "{{ appsxyz_publisher_keys|join('\n') }}"
+ user: webapp.appsxyz
+ exclusive: true
+- name: ensure authorized_keys file permissions are correct
+ file:
+ path: /srv/www/apps.du5t1n.xyz/.ssh/authorized_keys
+ mode: u=rw,go=
+ owner: webapp.appsxyz
+ group: webapp.appsxyz
+ setype: ssh_home_t
+
+- name: ensure apache is configured to serve apps.du5t1n.xyz
+ copy:
+ src: apps.du5t1n.xyz.httpd.conf
+ dest: /etc/httpd/conf.d/apps.du5t1n.xyz.conf
+ mode: u=rw,go=r
+ notify: reload httpd
+ tags:
+ - httpd-config
+
diff --git a/websites.yml b/websites.yml
index 0676a36..348554d 100644
--- a/websites.yml
+++ b/websites.yml
@@ -23,6 +23,8 @@
tags: websites/darkchestofwonders.us
- role: websites/chmod777.sh
tags: websites/chmod777.sh
+ - role: websites/apps.du5t1n.xyz
+ tags: websites/apps.du5t1n.xyz
- role: cert
cert_src: websites/hatch.chat.cer
cert_dest: /etc/pki/tls/certs/hatch.chat.cer