diff --git a/Vagrantfile b/Vagrantfile index 1e46276..589d56c 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -21,9 +21,6 @@ Vagrant.configure(2) do |config| ansible.playbook = "playbook.yml" ansible.ask_vault_pass = true ansible.verbose = "v" - ansible.extra_vars = { - base_domain: "datacoop.devel" - } # If the VM is already provisioned, we need to use the new port if provisioned? diff --git a/roles/docker/defaults/main.yml b/roles/docker/defaults/main.yml index 16e4821..5be8b75 100644 --- a/roles/docker/defaults/main.yml +++ b/roles/docker/defaults/main.yml @@ -117,6 +117,21 @@ services: - "{{ base_domain }}" - "www.{{ base_domain }}" + new_data_coop_website: + file: websites/new.data.coop.yml + domain: "new.{{ base_domain }}" + version: hugo + + new_new_data_coop_website: + file: websites/new-new.data.coop.yml + domain: "new-new.{{ base_domain }}" + version: latest + + slides_2022_website: + file: websites/2022.slides.data.coop.yml + domain: "2022.slides.{{ base_domain }}" + version: latest + cryptohagen_website: file: websites/cryptohagen.dk.yml domains: @@ -174,3 +189,7 @@ services: domain: "member.{{ base_domain }}" django_admins: "Vidir:valberg@orn.li" allowed_sender_domain: true + + watchtower: + file: watchtower.yml + version: amd64-1.5.1 diff --git a/roles/docker/files/configs/vhost/www b/roles/docker/files/configs/vhost/www new file mode 100644 index 0000000..2ced969 --- /dev/null +++ b/roles/docker/files/configs/vhost/www @@ -0,0 +1,2 @@ +server_name www.data.coop; +return 301 $scheme://data.coop$request_uri; diff --git a/roles/docker/tasks/services/matrix_riot.yml b/roles/docker/tasks/services/matrix_riot.yml index 68b984f..a445888 100644 --- a/roles/docker/tasks/services/matrix_riot.yml +++ b/roles/docker/tasks/services/matrix_riot.yml @@ -36,11 +36,6 @@ src: configs/riot/riot.im.conf dest: "{{ services.riot.volume_folder }}/data/riot.im.conf" -- name: upload vhost config for root domain - copy: - src: configs/vhost/root - dest: "{{ services.nginx_proxy.volume_folder }}/vhost/{{ base_domain }}" - - name: upload vhost config for matrix domain copy: src: configs/vhost/matrix diff --git a/roles/docker/tasks/services/watchtower.yml b/roles/docker/tasks/services/watchtower.yml index 87d3f4d..7641b0b 100644 --- a/roles/docker/tasks/services/watchtower.yml +++ b/roles/docker/tasks/services/watchtower.yml @@ -2,7 +2,7 @@ - name: watchtower container docker_container: name: watchtower - image: containrrr/watchtower:1.4.0 + image: containrrr/watchtower:{{ services.watchtower.version }} restart_policy: unless-stopped networks: - name: external_services @@ -11,4 +11,4 @@ - "{{ services.docker_registry.volume_folder }}/auth/config.json:/config.json" env: WATCHTOWER_LABEL_ENABLE: "true" - WATCHTOWER_POLL_INTERVAL: "60" \ No newline at end of file + WATCHTOWER_POLL_INTERVAL: "60" diff --git a/roles/docker/tasks/services/websites/2022.slides.data.coop.yml b/roles/docker/tasks/services/websites/2022.slides.data.coop.yml index 260af82..ba96d4d 100644 --- a/roles/docker/tasks/services/websites/2022.slides.data.coop.yml +++ b/roles/docker/tasks/services/websites/2022.slides.data.coop.yml @@ -1,16 +1,15 @@ --- - - name: setup 2022.slides.data.coop website using unipi docker_container: name: 2022.slides.data.coop_website - image: docker.data.coop/unipi:latest + image: docker.data.coop/unipi:{{ services.slides_2022_website.version }} restart_policy: unless-stopped purge_networks: yes networks: - name: external_services env: - VIRTUAL_HOST: "2022.slides.{{ services.data_coop_website.domains|join(',') }}" - LETSENCRYPT_HOST: "2022.slides.{{ services.data_coop_website.domains|join(',') }}" + VIRTUAL_HOST: "{{ services.slides_2022_website.domain }}" + LETSENCRYPT_HOST: "{{ services.slides_2022_website.domain }}" LETSENCRYPT_EMAIL: "{{ letsencrypt_email }}" # Temporarily hosting on github command: "--remote=https://github.com/sorbusursina/datacoop-slides.git#slides2022" diff --git a/roles/docker/tasks/services/websites/data.coop.yml b/roles/docker/tasks/services/websites/data.coop.yml index 2492757..18b81a8 100644 --- a/roles/docker/tasks/services/websites/data.coop.yml +++ b/roles/docker/tasks/services/websites/data.coop.yml @@ -1,4 +1,13 @@ --- +- name: Upload vhost config for root domain + copy: + src: configs/vhost/root + dest: "{{ services.nginx_proxy.volume_folder }}/vhost/{{ base_domain }}" + +- name: Upload vhost config for WWW domain + copy: + src: configs/vhost/www + dest: "{{ services.nginx_proxy.volume_folder }}/vhost/www.{{ base_domain }}" - name: setup data.coop website docker container docker_container: @@ -8,8 +17,8 @@ networks: - name: external_services env: - VIRTUAL_HOST : "{{ services.data_coop_website.domains|join(',') }}" - LETSENCRYPT_HOST: "{{ services.data_coop_website.domains|join(',') }}" + VIRTUAL_HOST : "{{ services.data_coop_website.domains | join(',') }}" + LETSENCRYPT_HOST: "{{ services.data_coop_website.domains | join(',') }}" LETSENCRYPT_EMAIL: "{{ letsencrypt_email }}" labels: com.centurylinklabs.watchtower.enable: "true" diff --git a/roles/docker/tasks/services/websites/new-new.data.coop.yml b/roles/docker/tasks/services/websites/new-new.data.coop.yml index 05ff1f3..d17af7b 100644 --- a/roles/docker/tasks/services/websites/new-new.data.coop.yml +++ b/roles/docker/tasks/services/websites/new-new.data.coop.yml @@ -1,14 +1,15 @@ +--- - name: setup new-new data.coop website using unipi docker_container: name: new-new.data.coop_website - image: docker.data.coop/unipi:latest + image: docker.data.coop/unipi:{{ services.new_new_data_coop_website.version }} restart_policy: unless-stopped purge_networks: yes networks: - name: external_services env: - VIRTUAL_HOST: "new-new.{{ services.data_coop_website.domains|join(',') }}" - LETSENCRYPT_HOST: "new-new.{{ services.data_coop_website.domains|join(',') }}" + VIRTUAL_HOST: "{{ services.new_new_data_coop_website.domain }}" + LETSENCRYPT_HOST: "{{ services.new_new_data_coop_website.domain }}" LETSENCRYPT_EMAIL: "{{ letsencrypt_email }}" # The ssh-key is for read-only only command: "--remote=git@git.data.coop:halfd/new-website.git#main --ssh-key ed25519:Ag9RekCyC2eow4P/e5crVvSTQ7dTK46WkG0wqEPVJbU= --ssh-authenticator SHA256:l9kdLkb0kJm46pOJ4tCHCtFUaqV1ImbZWMA5oje10fI" diff --git a/roles/docker/tasks/services/websites/new.data.coop.yml b/roles/docker/tasks/services/websites/new.data.coop.yml index f70596a..90ba65c 100644 --- a/roles/docker/tasks/services/websites/new.data.coop.yml +++ b/roles/docker/tasks/services/websites/new.data.coop.yml @@ -1,15 +1,14 @@ --- - - name: setup new data.coop website using hugo docker_container: name: new.data.coop_website - image: docker.data.coop/data-coop-website:hugo + image: docker.data.coop/data-coop-website:{{ services.new_data_coop_website.version }} restart_policy: unless-stopped networks: - name: external_services env: - VIRTUAL_HOST : "new.{{ services.data_coop_website.domains|join(',') }}" - LETSENCRYPT_HOST: "new.{{ services.data_coop_website.domains|join(',') }}" + VIRTUAL_HOST : "{{ services.new_data_coop_website.domain }}" + LETSENCRYPT_HOST: "{{ services.new_data_coop_website.domain }}" LETSENCRYPT_EMAIL: "{{ letsencrypt_email }}" labels: com.centurylinklabs.watchtower.enable: "true"