Deploy slides hosting
This commit is contained in:
parent
000f3d3348
commit
82451784a8
7 changed files with 95 additions and 0 deletions
|
@ -11,3 +11,5 @@ certbot_certs:
|
||||||
- domains:
|
- domains:
|
||||||
- plausible.theorangeone.net
|
- plausible.theorangeone.net
|
||||||
- elbisualp.theorangeone.net
|
- elbisualp.theorangeone.net
|
||||||
|
- domains:
|
||||||
|
- slides.jakehoward.tech
|
||||||
|
|
|
@ -118,6 +118,7 @@
|
||||||
- website
|
- website
|
||||||
- remark42
|
- remark42
|
||||||
- artis3n.tailscale
|
- artis3n.tailscale
|
||||||
|
- slides
|
||||||
|
|
||||||
- hosts: jellyfin
|
- hosts: jellyfin
|
||||||
roles:
|
roles:
|
||||||
|
|
19
ansible/roles/slides/files/docker-compose.yml
Normal file
19
ansible/roles/slides/files/docker-compose.yml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
version: "2.3"
|
||||||
|
|
||||||
|
services:
|
||||||
|
slides:
|
||||||
|
image: ghcr.io/realorangeone/slides:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- TZ={{ timezone }}
|
||||||
|
- PUID={{ docker_user.id }}
|
||||||
|
volumes:
|
||||||
|
- ./htpasswd:/etc/nginx/.htpasswd:ro
|
||||||
|
- ./slides:/srv
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
- coredns
|
||||||
|
|
||||||
|
networks:
|
||||||
|
coredns:
|
||||||
|
external: true
|
4
ansible/roles/slides/handlers/main.yml
Normal file
4
ansible/roles/slides/handlers/main.yml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
- name: restart slides
|
||||||
|
shell:
|
||||||
|
chdir: /opt/slides
|
||||||
|
cmd: "{{ docker_update_command }}"
|
47
ansible/roles/slides/tasks/main.yml
Normal file
47
ansible/roles/slides/tasks/main.yml
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
- name: Include vault
|
||||||
|
include_vars: vault.yml
|
||||||
|
|
||||||
|
- name: Create install directory
|
||||||
|
file:
|
||||||
|
path: /opt/slides
|
||||||
|
state: directory
|
||||||
|
owner: "{{ docker_user.name }}"
|
||||||
|
mode: "{{ docker_compose_directory_mask }}"
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Install compose file
|
||||||
|
template:
|
||||||
|
src: files/docker-compose.yml
|
||||||
|
dest: /opt/slides/docker-compose.yml
|
||||||
|
mode: "{{ docker_compose_file_mask }}"
|
||||||
|
owner: "{{ docker_user.name }}"
|
||||||
|
validate: docker-compose -f %s config
|
||||||
|
notify: restart slides
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Create credentials
|
||||||
|
htpasswd:
|
||||||
|
path: /opt/slides/htpasswd
|
||||||
|
name: "{{ item.user }}"
|
||||||
|
password: "{{ item.password }}"
|
||||||
|
owner: "{{ docker_user.name }}"
|
||||||
|
mode: "0600"
|
||||||
|
loop: "{{ webdav_credentials }}"
|
||||||
|
loop_control:
|
||||||
|
label: "{{ item.user }}"
|
||||||
|
notify: restart slides
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Install nginx config
|
||||||
|
template:
|
||||||
|
src: files/nginx-docker.conf
|
||||||
|
dest: /etc/nginx/http.d/slides.conf
|
||||||
|
mode: "0644"
|
||||||
|
notify: reload nginx
|
||||||
|
become: true
|
||||||
|
vars:
|
||||||
|
server_name: slides.jakehoward.tech
|
||||||
|
upstream: slides-slides-1.docker:80
|
||||||
|
ssl_cert_path: /etc/letsencrypt/live/slides.jakehoward.tech
|
||||||
|
location_extra: |
|
||||||
|
client_max_body_size 15m;
|
14
ansible/roles/slides/vars/vault.yml
generated
Normal file
14
ansible/roles/slides/vars/vault.yml
generated
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
39346133313638313030663139356637666666346665356161383332613836656131353830323530
|
||||||
|
6636613939346437633430316436363538623339643439300a363464383763613631333161613034
|
||||||
|
31336138386639306166313532633439343763363563616130633165323166376265303663643130
|
||||||
|
3634303836383737340a643834373666386261363533353936623335396633396366373230653932
|
||||||
|
38316662333932646636623839396630383339393135643533323832623330323666613465626431
|
||||||
|
36356663653861666362376265636162336531663266616432636635333537656661396263643631
|
||||||
|
36653462663365646338623434393738346566633266643634633430336235343531613631383562
|
||||||
|
30333165313438363966626264643732353833366662653164666631636465636538303961316465
|
||||||
|
62356132643837646638376334343935313338316266393261316538393561356264313932623236
|
||||||
|
62326235303139353034636365663434383439366163646635626563666434636564623336653634
|
||||||
|
35363834306534333531383131323830623438323736656234623263353930666130363132343464
|
||||||
|
32363433653066656364393732366366353033663332366166343139616433303439623631663537
|
||||||
|
65313539663333626333623966313864623639353031313131346635666138613032
|
|
@ -253,6 +253,14 @@ resource "cloudflare_record" "jakehowardtech_headscale" {
|
||||||
ttl = 1
|
ttl = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resource "cloudflare_record" "jakehowardtech_slides" {
|
||||||
|
zone_id = cloudflare_zone.jakehowardtech.id
|
||||||
|
name = "slides"
|
||||||
|
value = cloudflare_record.sys_domain_walker.hostname
|
||||||
|
type = "CNAME"
|
||||||
|
ttl = 1
|
||||||
|
}
|
||||||
|
|
||||||
resource "cloudflare_record" "jakehowardtech_caa" {
|
resource "cloudflare_record" "jakehowardtech_caa" {
|
||||||
zone_id = cloudflare_zone.jakehowardtech.id
|
zone_id = cloudflare_zone.jakehowardtech.id
|
||||||
name = "@"
|
name = "@"
|
||||||
|
|
Loading…
Reference in a new issue