summaryrefslogtreecommitdiffstats
path: root/roles/media
diff options
context:
space:
mode:
Diffstat (limited to 'roles/media')
-rw-r--r--roles/media/defaults/main.yml1
-rw-r--r--roles/media/tasks/main.yml34
-rw-r--r--roles/media/templates/nginx-include20
3 files changed, 55 insertions, 0 deletions
diff --git a/roles/media/defaults/main.yml b/roles/media/defaults/main.yml
new file mode 100644
index 0000000..0d8046d
--- /dev/null
+++ b/roles/media/defaults/main.yml
@@ -0,0 +1 @@
+media_protect_root: false
diff --git a/roles/media/tasks/main.yml b/roles/media/tasks/main.yml
new file mode 100644
index 0000000..6eb3ab6
--- /dev/null
+++ b/roles/media/tasks/main.yml
@@ -0,0 +1,34 @@
+- name: Install package for setting htpasswd
+ package:
+ name: python3-passlib
+- name: Ensure web path exists
+ file:
+ path: /var/www/{{ host_name }}/{{ emacsconf_year }}/backstage
+ state: directory
+- name: Change ownership and permissions
+ file:
+ path: /var/www/{{ host_name }}/{{ emacsconf_year }}
+ owner: "{{ emacsconf_user }}"
+ group: "{{ emacsconf_group }}"
+ mode: "u=rwX,g=rwX,o=rX"
+ recurse: true
+- name: Create htpasswd entry
+ htpasswd:
+ create: yes
+ name: "{{ emacsconf_backstage_user }}"
+ password: "{{ emacsconf_backstage_password }}"
+ path: /etc/nginx/sites-available/{{ host_name }}-{{ emacsconf_year }}-htpasswd
+- name: Create Nginx include
+ template:
+ src: nginx-include
+ dest: /etc/nginx/sites-available/{{ host_name }}-{{ emacsconf_year }}-include
+- name: Include it in the main configuration
+ lineinfile:
+ path: /etc/nginx/sites-available/{{ host_name }}
+ regexp: "{{ host_name }}-{{ emacsconf_year }}-include"
+ line: " include sites-available/{{ host_name }}-{{ emacsconf_year }}-include;"
+ insertafter: root
+- name: Reload configuration
+ service:
+ name: nginx
+ state: reloaded
diff --git a/roles/media/templates/nginx-include b/roles/media/templates/nginx-include
new file mode 100644
index 0000000..3bfb58e
--- /dev/null
+++ b/roles/media/templates/nginx-include
@@ -0,0 +1,20 @@
+ location /{{ emacsconf_year }}/backstage {
+ auth_basic "Restricted";
+ auth_basic_user_file /etc/nginx/sites-available/{{ host_name }}-{{ emacsconf_year }}-htpasswd;
+ autoindex on;
+ }
+ {% if media_protect_root %}
+ location /{{ emacsconf_year }} {
+ auth_basic "Restricted";
+ auth_basic_user_file /etc/nginx/sites-available/{{ host_name }}-{{ emacsconf_year }}-htpasswd;
+ autoindex on;
+ }
+ {% endif %}
+ location /{{ emacsconf_year }}/emacsconf.ics {
+ auth_basic off;
+ }
+ {% for track in emacsconf_tracks %}
+ location /{{ emacsconf_year }}/emacsconf-{{ track.id }}.ics {
+ auth_basic off;
+ }
+ {% endfor %} \ No newline at end of file