Compare commits
4 Commits
b569e18c43
...
2baffca0f5
Author | SHA1 | Date | |
---|---|---|---|
2baffca0f5 | |||
cfba2ec859 | |||
a2d2d26d85 | |||
27bb55bf22 |
@ -1,5 +1,8 @@
|
|||||||
# vim:ft=ansible:
|
# vim:ft=ansible:
|
||||||
|
|
||||||
|
# Docker settings
|
||||||
|
docker_apt_arch: arm64
|
||||||
|
|
||||||
# DB secrets
|
# DB secrets
|
||||||
secret_gulagbot_local_db_pass: !vault |
|
secret_gulagbot_local_db_pass: !vault |
|
||||||
$ANSIBLE_VAULT;1.1;AES256
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
42
playbooks/home_automation.yml
Executable file
42
playbooks/home_automation.yml
Executable file
@ -0,0 +1,42 @@
|
|||||||
|
#!/usr/bin/env ansible-playbook
|
||||||
|
# vim:ft=ansible:
|
||||||
|
---
|
||||||
|
# Home media storage Pi
|
||||||
|
- hosts: pi-homeauto-1.desu.ltd
|
||||||
|
module_defaults:
|
||||||
|
docker_container:
|
||||||
|
state: started
|
||||||
|
restart_policy: unless-stopped
|
||||||
|
pull: yes
|
||||||
|
pre_tasks:
|
||||||
|
- name: ensure docker network
|
||||||
|
docker_network: name=web
|
||||||
|
tags: [ docker ]
|
||||||
|
tasks:
|
||||||
|
- name: include tasks for apps
|
||||||
|
include_tasks: tasks/app/{{ task }}
|
||||||
|
with_items:
|
||||||
|
- homeassistant.yml
|
||||||
|
loop_control:
|
||||||
|
loop_var: task
|
||||||
|
tags: [ always ]
|
||||||
|
roles:
|
||||||
|
- role: backup
|
||||||
|
vars:
|
||||||
|
backup_s3backup_list_extra:
|
||||||
|
- /data
|
||||||
|
backup_time: "Sun *-*-* 02:00:00"
|
||||||
|
tags: [ backup ]
|
||||||
|
- role: ingress
|
||||||
|
vars:
|
||||||
|
ingress_container_image: "nginx:latest"
|
||||||
|
ingress_container_ports:
|
||||||
|
- 80:80
|
||||||
|
ingress_container_config_mount: /etc/nginx/conf.d
|
||||||
|
ingress_container_persist_dir: /data/nginx
|
||||||
|
ingress_listen_args: 80
|
||||||
|
ingress_listen_tls: no
|
||||||
|
ingress_servers:
|
||||||
|
- name: homeauto.local.desu.ltd
|
||||||
|
proxy_pass: http://localhost:8123
|
||||||
|
tags: [ ingress ]
|
@ -30,51 +30,6 @@
|
|||||||
- name: ensure docker network
|
- name: ensure docker network
|
||||||
docker_network: name=web
|
docker_network: name=web
|
||||||
tags: [ docker ]
|
tags: [ docker ]
|
||||||
- name: ensure docker nginx config
|
|
||||||
copy:
|
|
||||||
dest: /data/nginx/conf.d/vhosts.conf
|
|
||||||
mode: "0644"
|
|
||||||
content: |
|
|
||||||
server {
|
|
||||||
listen 80 default_server;
|
|
||||||
server_name transmission.local.desu.ltd;
|
|
||||||
location / {
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
|
||||||
proxy_pass http://transmission:9091;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name jackett.local.desu.ltd;
|
|
||||||
location / {
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
|
||||||
proxy_pass http://jackett:9117;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name sonarr.local.desu.ltd;
|
|
||||||
location / {
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
|
||||||
proxy_pass http://sonarr:8989;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name radarr.local.desu.ltd;
|
|
||||||
location / {
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
|
||||||
proxy_set_header Connection $http_connection;
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
|
||||||
proxy_pass http://radarr:7878;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
tags: [ docker, ingress ]
|
|
||||||
- name: include tasks for apps
|
- name: include tasks for apps
|
||||||
include_tasks: tasks/app/{{ task }}
|
include_tasks: tasks/app/{{ task }}
|
||||||
with_items:
|
with_items:
|
||||||
@ -89,7 +44,6 @@
|
|||||||
- jackett.yml
|
- jackett.yml
|
||||||
- sonarr.yml
|
- sonarr.yml
|
||||||
- radarr.yml
|
- radarr.yml
|
||||||
- ingress-insecure.yml
|
|
||||||
loop_control:
|
loop_control:
|
||||||
loop_var: task
|
loop_var: task
|
||||||
tags: [ always ]
|
tags: [ always ]
|
||||||
@ -102,6 +56,25 @@
|
|||||||
- /data/sonarr
|
- /data/sonarr
|
||||||
backup_time: "Mon *-*-* 02:00:00"
|
backup_time: "Mon *-*-* 02:00:00"
|
||||||
tags: [ backup ]
|
tags: [ backup ]
|
||||||
|
- role: ingress
|
||||||
|
vars:
|
||||||
|
ingress_container_image: "nginx:latest"
|
||||||
|
ingress_container_ports:
|
||||||
|
- 80:80
|
||||||
|
ingress_container_config_mount: /etc/nginx/conf.d
|
||||||
|
ingress_container_persist_dir: /data/nginx
|
||||||
|
ingress_listen_args: 80
|
||||||
|
ingress_listen_tls: no
|
||||||
|
ingress_servers:
|
||||||
|
- name: transmission.local.desu.ltd
|
||||||
|
proxy_pass: http://transmission:9091
|
||||||
|
- name: jackett.local.desu.ltd
|
||||||
|
proxy_pass: http://jackett:9117
|
||||||
|
- name: sonarr.local.desu.ltd
|
||||||
|
proxy_pass: http://sonarr:8989
|
||||||
|
- name: radarr.local.desu.ltd
|
||||||
|
proxy_pass: http://radarr:7878
|
||||||
|
tags: [ ingress ]
|
||||||
- role: geerlingguy.postgresql
|
- role: geerlingguy.postgresql
|
||||||
vars:
|
vars:
|
||||||
postgresql_global_config_options:
|
postgresql_global_config_options:
|
||||||
|
12
playbooks/tasks/app/homeassistant.yml
Normal file
12
playbooks/tasks/app/homeassistant.yml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# vim:ft=ansible:
|
||||||
|
- name: docker deploy homeassistant
|
||||||
|
docker_container:
|
||||||
|
name: homeassistant
|
||||||
|
image: "ghcr.io/home-assistant/raspberrypi4-homeassistant:stable"
|
||||||
|
privileged: yes
|
||||||
|
network_mode: host
|
||||||
|
volumes:
|
||||||
|
- /dev/ttyACM0:/dev/ttyACM0
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
- /data/homeassistant/config:/config
|
||||||
|
tags: [ docker, homeassistant ]
|
@ -10,6 +10,7 @@ ingress_container_ports:
|
|||||||
- 80:80
|
- 80:80
|
||||||
- 443:443
|
- 443:443
|
||||||
ingress_container_persist_dir: "/data/nginx-certbot"
|
ingress_container_persist_dir: "/data/nginx-certbot"
|
||||||
|
ingress_container_config_mount: "/etc/nginx/user_conf.d"
|
||||||
ingress_container_timezone: America/Chicago
|
ingress_container_timezone: America/Chicago
|
||||||
|
|
||||||
# Network configuration
|
# Network configuration
|
||||||
|
@ -19,4 +19,4 @@
|
|||||||
ports: "{{ ingress_container_ports }}"
|
ports: "{{ ingress_container_ports }}"
|
||||||
volumes:
|
volumes:
|
||||||
- "{{ ingress_container_persist_dir }}/letsencrypt:/etc/letsencrypt"
|
- "{{ ingress_container_persist_dir }}/letsencrypt:/etc/letsencrypt"
|
||||||
- "{{ ingress_container_persist_dir }}/user_conf.d:/etc/nginx/user_conf.d:ro"
|
- "{{ ingress_container_persist_dir }}/user_conf.d:{{ ingress_container_config_mount }}:ro"
|
||||||
|
1
site.yml
1
site.yml
@ -15,6 +15,7 @@
|
|||||||
- import_playbook: playbooks/device_roles_workstation.yml
|
- import_playbook: playbooks/device_roles_workstation.yml
|
||||||
# Home configuration
|
# Home configuration
|
||||||
- import_playbook: playbooks/home_media.yml
|
- import_playbook: playbooks/home_media.yml
|
||||||
|
- import_playbook: playbooks/home_automation.yml
|
||||||
# Production configuration
|
# Production configuration
|
||||||
- import_playbook: playbooks/prod_db.yml
|
- import_playbook: playbooks/prod_db.yml
|
||||||
- import_playbook: playbooks/prod_web.yml
|
- import_playbook: playbooks/prod_web.yml
|
||||||
|
Loading…
Reference in New Issue
Block a user