# Usage: # make run file=playbooks/deploy.yaml tags="" # # Dry Run: # make dry-run file=playbooks/deploy.yaml tags="" # # Available tags: # base, ddclient, wireguard, websites samba, # nginx, nextcloud, bitwarden, searxng, # monitoring, transmission, media_downloader # photoprism, plex # # Install: # make install # --- ## Non Docker Services ## - hosts: compute gather_facts: true tags: 'base' become: true roles: - role: base vars: base_user: '{{ username }}' base_user_password: '{{ vault_user_password }}' base_hardware: '{{ hardware }}' - hosts: compute gather_facts: true tags: 'ddclient' become: true roles: - role: ddclient vars: ddclient_proto: 'freedns' ddclient_user: '{{ vault_ddclient_user }}' ddclient_password: '{{ vault_ddclient_password }}' ddclient_domain: '{{ vpn_domain }}' - hosts: compute gather_facts: true tags: 'wireguard' become: true roles: - role: wireguard vars: wireguard_server_priv_key: '{{ vault_wireguard_server_priv_key }}' wireguard_server_pub_key: 'iwsriL3AUn4dgKfsSNgJtj/G808k4jXvSC+mM70YnAw=' wireguard_server_listen_port: 51820 wireguard_server_ip: '192.168.10.1/32' wireguard_peers: - peer_ip: '192.168.10.2/32' # my phone peer_key: 'QUirl0QsXC3P6D5t5VPlvDgfji1ZI5e0XhppBFLW9TY=' - peer_ip: '192.168.10.3/32' # personal laptop peer_key: 'pzqY/UxffV8O01K982jlgP1xJQphnglOdqVhOM2IUSc=' - peer_ip: '192.168.10.4/32' # vps peer_key: 'oz2jxeSUWD4r5g3y7XuSItqSiqOOJz8vulYYVXAsKS8=' - hosts: compute gather_facts: false tags: 'websites' become: false roles: - role: website vars: websites: '{{ nginx_websites }}' git_user: '{{ vault_git_user }}' git_pass: '{{ vault_git_password }}' sites_data_root: '{{ vol_data }}/sites' # Access: http://art-jr/data - hosts: compute gather_facts: true tags: 'samba' become: true roles: - role: samba vars: samba_user: '{{ vault_samba_user }}' samba_user_pass: '{{ vault_samba_password }}' samba_data_root: '{{ vol_media }}' ## Docker Services ## - hosts: compute gather_facts: false tags: 'nginx' become: false roles: - role: nginx_docker vars: nginx_website_domains: '{{ ["default"] + (nginx_websites | map(attribute="name") | list) }}' nginx_global_apps_domain: '{{ apps_domain }}' nginx_apps_confs: '{{ apps_conf_map | dict2items(key_name="app", value_name="conf") }}' nginx_conf_root: '{{ vol_data }}/nginx' nginx_static_html_root: '{{ vol_data }}/sites' nginx_certs_root: '{{ vol_data }}/letsencrypt' # - hosts: compute # gather_facts: false # tags: 'adguard' # become: false # roles: # - role: adguard # vars: # adguard_domain: '{{ apps_conf_map["adguard"]["access_domain"] }}' # adguard_host_port: '{{ apps_conf_map["adguard"]["port"] }}' # adguard_data_root: '{{ vol_data }}/adguard' - hosts: compute gather_facts: false tags: 'nextcloud' become: false roles: - role: nextcloud vars: nextcloud_domain: '{{ apps_conf_map["nextcloud"]["access_domain"] }}' nextcloud_host_port: '{{ apps_conf_map["nextcloud"]["port"] }}' nextcloud_data_root: '{{ vol_data }}/nextcloud' nextcloud_postgres_password: '{{ vault_nextcloud_postgres_password }}' - hosts: compute gather_facts: false tags: 'searxng' become: false roles: - role: searxng vars: searxng_domain: '{{ apps_conf_map["searxng"]["access_domain"] }}' searxng_host_port: '{{ apps_conf_map["searxng"]["port"] }}' searxng_data_root: '{{ vol_data }}/searxng' searxng_secret_key: '{{ vault_searxng_secret_key }}' - hosts: compute gather_facts: false tags: 'bitwarden' become: false roles: - role: bitwarden vars: bitwarden_host_port: '{{ apps_conf_map["bitwarden"]["port"] }}' bitwarden_data_dir: '{{ vol_data }}/bitwarden' - hosts: compute gather_facts: false tags: 'transmission' become: false roles: - role: transmission vars: transmission_host_port: '{{ apps_conf_map["transmission"]["port"] }}' transmission_user: '{{ vault_transmission_user }}' transmission_password: '{{ vault_transmission_password }}' transmission_root_dir: '{{ vol_media }}/transmission' - hosts: compute gather_facts: false tags: 'media_downloader' become: false roles: - role: media_downloader vars: media_downloader_sonarr_host_port: '{{ apps_conf_map["sonarr"]["port"] }}' media_downloader_radarr_host_port: '{{ apps_conf_map["radarr"]["port"] }}' media_downloader_prowlarr_host_port: '{{ apps_conf_map["prowlarr"]["port"] }}' media_downloader_bazarr_host_port: '{{ apps_conf_map["bazarr"]["port"] }}' media_downloader_transmission_root_dir: '{{ vol_media }}/transmission' media_downloader_media_root_dir: '{{ vol_media }}/media' - hosts: compute gather_facts: true tags: 'monitoring' roles: - role: 'monitoring' vars: monitoring_root_dir: '{{ vol_data }}/monitoring' monitoring_apps_confs: '{{ apps_conf_map | dict2items(key_name="app", value_name="conf") }}' monitoring_static_sites: '{{ nginx_websites }}' - hosts: compute gather_facts: false tags: 'photoprism' become: false roles: - role: photoprism vars: photoprism_host_port: '{{ apps_conf_map["photoprism"]["port"] }}' photoprism_admin_password: '{{ vault_photoprism_admin_password }}' photoprism_data_dir: '{{ vol_data }}/photoprism' photoprism_pics_root_dir: '{{ vol_media }}/pics' - hosts: compute gather_facts: false tags: 'plex' become: false roles: - role: plex vars: plex_host_port: '{{ apps_conf_map["plex"]["port"] }}' plex_claim: '{{ vault_plex_claim }}' plex_library_dir: '{{ vol_media }}/plex' plex_tv_dir: '{{ vol_media }}/media/tv' plex_mov_dir: '{{ vol_media }}/media/mov' plex_pic_dir: '{{ vol_media }}/pics' plex_music_dir: '{{ vol_media }}/music' plex_training_dir: '{{ vol_media }}/training'