mirror of
https://github.com/davestephens/ansible-nas
synced 2024-12-26 03:23:11 +00:00
Merge branch 'master' into mv-miniflux
This commit is contained in:
commit
f18262e823
23 changed files with 246 additions and 177 deletions
|
@ -1,16 +1,21 @@
|
||||||
---
|
---
|
||||||
|
dist: focal
|
||||||
language: python
|
language: python
|
||||||
|
|
||||||
services: docker
|
services: docker
|
||||||
|
|
||||||
env:
|
env:
|
||||||
- playbook: nas.yml
|
- playbook: nas.yml
|
||||||
distro: ubuntu1804
|
distro: ubuntu2004
|
||||||
test_syntax: true
|
test_syntax: true
|
||||||
test_playbook: false
|
test_playbook: false
|
||||||
test_idempotence: false
|
test_idempotence: false
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- sudo apt-get -y install ansible
|
||||||
|
|
||||||
install:
|
install:
|
||||||
|
- sudo apt install ansible
|
||||||
- pip install ansible-lint
|
- pip install ansible-lint
|
||||||
- pip install mkdocs
|
- pip install mkdocs
|
||||||
- pip install mkdocs-material
|
- pip install mkdocs-material
|
||||||
|
|
|
@ -15,29 +15,14 @@
|
||||||
### Ansible-NAS Applications
|
### Ansible-NAS Applications
|
||||||
###
|
###
|
||||||
|
|
||||||
# Downloading
|
|
||||||
nzbget_enabled: false
|
|
||||||
pyload_enabled: false
|
|
||||||
|
|
||||||
# Media Serving
|
|
||||||
tautulli_enabled: false
|
|
||||||
|
|
||||||
# Media Sourcing
|
# Media Sourcing
|
||||||
get_iplayer_enabled: false
|
|
||||||
jackett_enabled: false
|
|
||||||
jellyfin_enabled: false
|
jellyfin_enabled: false
|
||||||
|
|
||||||
|
|
||||||
youtubedlmaterial_enabled: false
|
youtubedlmaterial_enabled: false
|
||||||
|
|
||||||
# Music
|
|
||||||
mymediaforalexa_enabled: false
|
|
||||||
|
|
||||||
# System Management
|
# System Management
|
||||||
glances_enabled: false
|
glances_enabled: false
|
||||||
stats_enabled: false
|
stats_enabled: false
|
||||||
guacamole_enabled: false
|
guacamole_enabled: false
|
||||||
cloudcmd_enabled: false
|
|
||||||
virtual_desktop_enabled: false
|
virtual_desktop_enabled: false
|
||||||
krusader_enabled: false
|
krusader_enabled: false
|
||||||
|
|
||||||
|
@ -48,18 +33,13 @@ timemachine_enabled: false
|
||||||
gitlab_enabled: false
|
gitlab_enabled: false
|
||||||
|
|
||||||
# IRC
|
# IRC
|
||||||
znc_enabled: false
|
|
||||||
thelounge_enabled: false
|
thelounge_enabled: false
|
||||||
|
|
||||||
# Finance
|
|
||||||
firefly_enabled: false
|
|
||||||
|
|
||||||
# Wallabag
|
# Wallabag
|
||||||
wallabag_enabled: false
|
wallabag_enabled: false
|
||||||
|
|
||||||
# Home Automation
|
# Home Automation
|
||||||
mosquitto_enabled: false
|
mosquitto_enabled: false
|
||||||
homebridge_enabled: false
|
|
||||||
openhab_enabled: false
|
openhab_enabled: false
|
||||||
|
|
||||||
# Books
|
# Books
|
||||||
|
@ -265,16 +245,6 @@ joomla_available_externally: "false"
|
||||||
joomla_database_password: top_secret
|
joomla_database_password: top_secret
|
||||||
joomla_port: "8181"
|
joomla_port: "8181"
|
||||||
|
|
||||||
###
|
|
||||||
### pyLoad
|
|
||||||
###
|
|
||||||
pyload_available_externally: "false"
|
|
||||||
pyload_config_directory: "{{ docker_home }}/pyload"
|
|
||||||
pyload_download_directory: "{{ downloads_root }}"
|
|
||||||
pyload_user_id: "0"
|
|
||||||
pyload_group_id: "0"
|
|
||||||
pyload_port: "8000"
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### PyTivo
|
### PyTivo
|
||||||
###
|
###
|
||||||
|
@ -288,24 +258,6 @@ pytivo_podcasts_directory: "{{ podcasts_root }}"
|
||||||
pytivo_user_id: "0"
|
pytivo_user_id: "0"
|
||||||
pytivo_group_id: "0"
|
pytivo_group_id: "0"
|
||||||
|
|
||||||
###
|
|
||||||
### Homebridge
|
|
||||||
###
|
|
||||||
homebridge_available_externally: "false"
|
|
||||||
homebridge_config_directory: "{{ docker_home }}/homebridge/config"
|
|
||||||
homebridge_user_id: "0"
|
|
||||||
homebridge_group_id: "0"
|
|
||||||
homebridge_port: "8087"
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### Tautulli
|
|
||||||
###
|
|
||||||
tautulli_available_externally: "false"
|
|
||||||
tautulli_config_directory: "{{ docker_home }}/tautulli/config"
|
|
||||||
tautulli_user_id: "0"
|
|
||||||
tautulli_group_id: "0"
|
|
||||||
tautulli_port: "8185"
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### YouTubeDL-Material
|
### YouTubeDL-Material
|
||||||
|
@ -323,17 +275,6 @@ youtubedlmaterial_port_http: "8998"
|
||||||
###
|
###
|
||||||
openvpn_config_directory: "{{ docker_home }}/openvpn"
|
openvpn_config_directory: "{{ docker_home }}/openvpn"
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
### ZNC
|
|
||||||
###
|
|
||||||
znc_available_externally: "false"
|
|
||||||
znc_data_directory: "{{ docker_home }}/znc"
|
|
||||||
znc_user_id: "0"
|
|
||||||
znc_group_id: "0"
|
|
||||||
znc_port: "6677"
|
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Stats
|
### Stats
|
||||||
###
|
###
|
||||||
|
@ -362,12 +303,6 @@ glances_available_externally: "false"
|
||||||
glances_port_one: "61208"
|
glances_port_one: "61208"
|
||||||
glances_port_two: "61209"
|
glances_port_two: "61209"
|
||||||
|
|
||||||
###
|
|
||||||
### nginx
|
|
||||||
###
|
|
||||||
nginx_data_directory: "{{ docker_home }}/nginx"
|
|
||||||
nginx_port_http: "80"
|
|
||||||
nginx_port_https: "443"
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Guacamole
|
### Guacamole
|
||||||
|
@ -376,16 +311,6 @@ guacamole_available_externally: "false"
|
||||||
guacamole_data_directory: "{{ docker_home }}/guacamole"
|
guacamole_data_directory: "{{ docker_home }}/guacamole"
|
||||||
guacamole_port: "8090"
|
guacamole_port: "8090"
|
||||||
|
|
||||||
###
|
|
||||||
### CloudCmd
|
|
||||||
###
|
|
||||||
cloudcmd_available_externally: "false"
|
|
||||||
cloudcmd_data_directory: "{{ docker_home }}/cloudcmd/config"
|
|
||||||
cloudcmd_browse_directory: "/"
|
|
||||||
cloudcmd_user_id: "0"
|
|
||||||
cloudcmd_group_id: "0"
|
|
||||||
cloudcmd_port: "7373"
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Krusader
|
### Krusader
|
||||||
###
|
###
|
||||||
|
@ -409,27 +334,6 @@ timemachine_share_name: Data
|
||||||
timemachine_log_level: error
|
timemachine_log_level: error
|
||||||
timemachine_port: "10445"
|
timemachine_port: "10445"
|
||||||
|
|
||||||
###
|
|
||||||
### get_iplayer
|
|
||||||
###
|
|
||||||
get_iplayer_config_directory: "{{ docker_home }}/get_iplayer"
|
|
||||||
get_iplayer_download_directory: "{{ tv_root }}/iplayer_downloads"
|
|
||||||
get_iplayer_port: "8182"
|
|
||||||
|
|
||||||
###
|
|
||||||
### mymediaforalexa
|
|
||||||
###
|
|
||||||
mymediaforalexa_media_directory: "{{ music_root }}"
|
|
||||||
mymediaforalexa_data_directory: "{{ docker_home }}/mymediaforalexa"
|
|
||||||
|
|
||||||
###
|
|
||||||
### Jackett
|
|
||||||
###
|
|
||||||
jackett_available_externally: "false"
|
|
||||||
jackett_data_directory: "{{ docker_home }}/jackett"
|
|
||||||
jackett_torrents_root: "{{ torrents_root }}"
|
|
||||||
jackett_port: "9117"
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### The Lounge
|
### The Lounge
|
||||||
###
|
###
|
||||||
|
@ -438,23 +342,6 @@ thelounge_data_directory: "{{ docker_home }}/thelounge"
|
||||||
thelounge_port_one: "113"
|
thelounge_port_one: "113"
|
||||||
thelounge_port_two: "9002"
|
thelounge_port_two: "9002"
|
||||||
|
|
||||||
###
|
|
||||||
### Firefly
|
|
||||||
###
|
|
||||||
firefly_available_externally: "false"
|
|
||||||
firefly_data_directory: "{{ docker_home }}/firefly"
|
|
||||||
firefly_port: "8066"
|
|
||||||
|
|
||||||
###
|
|
||||||
### Nzbget
|
|
||||||
###
|
|
||||||
nzbget_available_externally: "false"
|
|
||||||
nzbget_data_directory: "{{ docker_home }}/nzbget"
|
|
||||||
nzbget_download_directory: "{{ downloads_root }}"
|
|
||||||
nzbget_user_id: "0"
|
|
||||||
nzbget_group_id: "0"
|
|
||||||
nzbget_port: "6789"
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Wallabag
|
### Wallabag
|
||||||
###
|
###
|
||||||
|
|
86
nas.yml
86
nas.yml
|
@ -58,6 +58,11 @@
|
||||||
- bitwarden
|
- bitwarden
|
||||||
when: (bitwarden_enabled | default(False))
|
when: (bitwarden_enabled | default(False))
|
||||||
|
|
||||||
|
- role: cloudcmd
|
||||||
|
tags:
|
||||||
|
- cloudcmd
|
||||||
|
when: (cloudcmd_enabled | default(False))
|
||||||
|
|
||||||
- role: cloudflare_ddns
|
- role: cloudflare_ddns
|
||||||
tags:
|
tags:
|
||||||
- cloudflare_ddns
|
- cloudflare_ddns
|
||||||
|
@ -83,11 +88,21 @@
|
||||||
- emby
|
- emby
|
||||||
when: (emby_enabled | default(False))
|
when: (emby_enabled | default(False))
|
||||||
|
|
||||||
|
- role: firefly
|
||||||
|
tags:
|
||||||
|
- firefly
|
||||||
|
when: (firefly_enabled | default(False))
|
||||||
|
|
||||||
- role: gitea
|
- role: gitea
|
||||||
tags:
|
tags:
|
||||||
- gitea
|
- gitea
|
||||||
when: (gitea_enabled | default(False))
|
when: (gitea_enabled | default(False))
|
||||||
|
|
||||||
|
- role: get_iplayer
|
||||||
|
tags:
|
||||||
|
- get_iplayer
|
||||||
|
when: (get_iplayer_enabled | default(False))
|
||||||
|
|
||||||
- role: heimdall
|
- role: heimdall
|
||||||
tags:
|
tags:
|
||||||
- heimdall
|
- heimdall
|
||||||
|
@ -98,6 +113,16 @@
|
||||||
- homeassistant
|
- homeassistant
|
||||||
when: (homeassistant_enabled | default(False))
|
when: (homeassistant_enabled | default(False))
|
||||||
|
|
||||||
|
- role: homebridge
|
||||||
|
tags:
|
||||||
|
- homebridge
|
||||||
|
when: (homebridge_enabled | default(False))
|
||||||
|
|
||||||
|
- role: jackett
|
||||||
|
tags:
|
||||||
|
- jackettfalse
|
||||||
|
when: (jackett_enabled | default(False))
|
||||||
|
|
||||||
- role: lidarr
|
- role: lidarr
|
||||||
tags:
|
tags:
|
||||||
- lidarr
|
- lidarr
|
||||||
|
@ -118,6 +143,11 @@
|
||||||
- mylar
|
- mylar
|
||||||
when: (mylar_enabled | default(False))
|
when: (mylar_enabled | default(False))
|
||||||
|
|
||||||
|
- role: mymediaforalexa
|
||||||
|
tags:
|
||||||
|
- mymediaforalexa
|
||||||
|
when: (mymediaforalexa_enabled | default(False))
|
||||||
|
|
||||||
- role: n8n
|
- role: n8n
|
||||||
tags:
|
tags:
|
||||||
- n8n_enabled
|
- n8n_enabled
|
||||||
|
@ -133,6 +163,11 @@
|
||||||
- nextcloud
|
- nextcloud
|
||||||
when: (nextcloud_enabled | default(False))
|
when: (nextcloud_enabled | default(False))
|
||||||
|
|
||||||
|
- role: nzbget
|
||||||
|
tags:
|
||||||
|
- nzbget
|
||||||
|
when: (nzbget_enabled | default(False))
|
||||||
|
|
||||||
- role: organizr
|
- role: organizr
|
||||||
tags:
|
tags:
|
||||||
- organizr
|
- organizr
|
||||||
|
@ -143,6 +178,11 @@
|
||||||
- portainer
|
- portainer
|
||||||
when: (portainer_enabled | default(False))
|
when: (portainer_enabled | default(False))
|
||||||
|
|
||||||
|
- role: pyload
|
||||||
|
tags:
|
||||||
|
- pyload
|
||||||
|
when: (pyload_enabled | default(False))
|
||||||
|
|
||||||
- role: ombi
|
- role: ombi
|
||||||
tags:
|
tags:
|
||||||
- ombi
|
- ombi
|
||||||
|
@ -178,6 +218,11 @@
|
||||||
- syncthing
|
- syncthing
|
||||||
when: (syncthing_enabled | default(False))
|
when: (syncthing_enabled | default(False))
|
||||||
|
|
||||||
|
- role: tautulli
|
||||||
|
tags:
|
||||||
|
- tautulli
|
||||||
|
when: (tautulli_enabled | default(False))
|
||||||
|
|
||||||
- role: transmission
|
- role: transmission
|
||||||
tags:
|
tags:
|
||||||
- transmission
|
- transmission
|
||||||
|
@ -203,19 +248,12 @@
|
||||||
- watchtower
|
- watchtower
|
||||||
when: (watchtower_enabled | default(False))
|
when: (watchtower_enabled | default(False))
|
||||||
|
|
||||||
|
- role: znc
|
||||||
|
tags:
|
||||||
|
- znc
|
||||||
|
when: (znc_enabled | default(False))
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- import_tasks: tasks/firefly.yml
|
|
||||||
when: (firefly_enabled | default(False))
|
|
||||||
tags: firefly
|
|
||||||
|
|
||||||
- import_tasks: tasks/tautulli.yml
|
|
||||||
when: (tautulli_enabled | default(False))
|
|
||||||
tags: tautulli
|
|
||||||
|
|
||||||
- import_tasks: tasks/pyload.yml
|
|
||||||
when: (pyload_enabled | default(False))
|
|
||||||
tags: pyload
|
|
||||||
|
|
||||||
- import_tasks: tasks/thelounge.yml
|
- import_tasks: tasks/thelounge.yml
|
||||||
when: (thelounge_enabled | default(False))
|
when: (thelounge_enabled | default(False))
|
||||||
tags: thelounge
|
tags: thelounge
|
||||||
|
@ -224,10 +262,6 @@
|
||||||
when: (glances_enabled | default(False))
|
when: (glances_enabled | default(False))
|
||||||
tags: glances
|
tags: glances
|
||||||
|
|
||||||
- import_tasks: tasks/znc.yml
|
|
||||||
when: (znc_enabled | default(False))
|
|
||||||
tags: znc
|
|
||||||
|
|
||||||
- import_tasks: tasks/gitlab.yml
|
- import_tasks: tasks/gitlab.yml
|
||||||
when: (gitlab_enabled | default(False))
|
when: (gitlab_enabled | default(False))
|
||||||
tags: gitlab
|
tags: gitlab
|
||||||
|
@ -244,26 +278,14 @@
|
||||||
when: (guacamole_enabled | default(False))
|
when: (guacamole_enabled | default(False))
|
||||||
tags: guacamole
|
tags: guacamole
|
||||||
|
|
||||||
- import_tasks: tasks/get_iplayer.yml
|
|
||||||
when: (get_iplayer_enabled | default(False))
|
|
||||||
tags: get_iplayer
|
|
||||||
|
|
||||||
- import_tasks: tasks/mymediaforalexa.yml
|
- import_tasks: tasks/mymediaforalexa.yml
|
||||||
when: (mymediaforalexa_enabled | default(False))
|
when: (mymediaforalexa_enabled | default(False))
|
||||||
tags: mymediaforalexa
|
tags: mymediaforalexa
|
||||||
|
|
||||||
- import_tasks: tasks/jackett.yml
|
|
||||||
when: (jackett_enabled | default(False))
|
|
||||||
tags: jackett
|
|
||||||
|
|
||||||
- import_tasks: tasks/joomla.yml
|
- import_tasks: tasks/joomla.yml
|
||||||
when: (joomla_enabled | default(False))
|
when: (joomla_enabled | default(False))
|
||||||
tags: joomla
|
tags: joomla
|
||||||
|
|
||||||
- import_tasks: tasks/nzbget.yml
|
|
||||||
when: (nzbget_enabled | default(False))
|
|
||||||
tags: nzbget
|
|
||||||
|
|
||||||
- import_tasks: tasks/wallabag.yml
|
- import_tasks: tasks/wallabag.yml
|
||||||
when: (wallabag_enabled | default(False))
|
when: (wallabag_enabled | default(False))
|
||||||
tags: wallabag
|
tags: wallabag
|
||||||
|
@ -272,10 +294,6 @@
|
||||||
when: (mosquitto_enabled | default(False))
|
when: (mosquitto_enabled | default(False))
|
||||||
tags: mosquitto
|
tags: mosquitto
|
||||||
|
|
||||||
- import_tasks: tasks/homebridge.yml
|
|
||||||
when: (homebridge_enabled | default(False))
|
|
||||||
tags: homebridge
|
|
||||||
|
|
||||||
- import_tasks: tasks/calibre.yml
|
- import_tasks: tasks/calibre.yml
|
||||||
when: (calibre_enabled | default(False))
|
when: (calibre_enabled | default(False))
|
||||||
tags: calibre
|
tags: calibre
|
||||||
|
@ -288,10 +306,6 @@
|
||||||
when: (jellyfin_enabled | default(False))
|
when: (jellyfin_enabled | default(False))
|
||||||
tags: jellyfin
|
tags: jellyfin
|
||||||
|
|
||||||
- import_tasks: tasks/cloudcmd.yml
|
|
||||||
when: (cloudcmd_enabled | default(False))
|
|
||||||
tags: cloudcmd
|
|
||||||
|
|
||||||
- import_tasks: tasks/krusader.yml
|
- import_tasks: tasks/krusader.yml
|
||||||
when: (krusader_enabled | default(False))
|
when: (krusader_enabled | default(False))
|
||||||
tags: krusader
|
tags: krusader
|
||||||
|
|
19
roles/cloudcmd/defaults/main.yml
Normal file
19
roles/cloudcmd/defaults/main.yml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
---
|
||||||
|
# enable or disable the application
|
||||||
|
cloudcmd_enabled: false
|
||||||
|
cloudcmd_available_externally: "false"
|
||||||
|
|
||||||
|
# directories
|
||||||
|
cloudcmd_data_directory: "{{ docker_home }}/cloudcmd/config"
|
||||||
|
cloudcmd_browse_directory: "/"
|
||||||
|
|
||||||
|
# uid / gid
|
||||||
|
cloudcmd_user_id: "0"
|
||||||
|
cloudcmd_group_id: "0"
|
||||||
|
|
||||||
|
# network
|
||||||
|
cloudcmd_hostname: "cloudcmd"
|
||||||
|
cloudcmd_port: "7373"
|
||||||
|
|
||||||
|
# specs
|
||||||
|
cloudcmd_memory: "1g"
|
|
@ -1,12 +1,12 @@
|
||||||
---
|
---
|
||||||
- name: Create CloudCmd Directories
|
- name: Create Cloudcmd Directories
|
||||||
file:
|
file:
|
||||||
path: "{{ item }}"
|
path: "{{ item }}"
|
||||||
state: directory
|
state: directory
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ cloudcmd_data_directory }}"
|
- "{{ cloudcmd_data_directory }}"
|
||||||
|
|
||||||
- name: CloudCmd
|
- name: Create Cloudcmd Docker Container
|
||||||
docker_container:
|
docker_container:
|
||||||
name: cloudcmd
|
name: cloudcmd
|
||||||
image: coderaiser/cloudcmd
|
image: coderaiser/cloudcmd
|
||||||
|
@ -21,10 +21,10 @@
|
||||||
PUID: "{{ cloudcmd_user_id }}"
|
PUID: "{{ cloudcmd_user_id }}"
|
||||||
PGID: "{{ cloudcmd_group_id }}"
|
PGID: "{{ cloudcmd_group_id }}"
|
||||||
restart_policy: unless-stopped
|
restart_policy: unless-stopped
|
||||||
memory: 1g
|
memory: "{{ cloudcmd_memory }}"
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: "{{ cloudcmd_available_externally }}"
|
traefik.enable: "{{ cloudcmd_available_externally }}"
|
||||||
traefik.http.routers.cloudcmd.rule: "Host(`cloudcmd.{{ ansible_nas_domain }}`)"
|
traefik.http.routers.cloudcmd.rule: "Host(`{{ cloudcmd_hostname }}.{{ ansible_nas_domain }}`)"
|
||||||
traefik.http.routers.cloudcmd.tls.certresolver: "letsencrypt"
|
traefik.http.routers.cloudcmd.tls.certresolver: "letsencrypt"
|
||||||
traefik.http.routers.cloudcmd.tls.domains[0].main: "{{ ansible_nas_domain }}"
|
traefik.http.routers.cloudcmd.tls.domains[0].main: "{{ ansible_nas_domain }}"
|
||||||
traefik.http.routers.cloudcmd.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
|
traefik.http.routers.cloudcmd.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
|
14
roles/firefly/defaults/main.yml
Normal file
14
roles/firefly/defaults/main.yml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
# enable or disable the application
|
||||||
|
firefly_enabled: false
|
||||||
|
firefly_available_externally: "false"
|
||||||
|
|
||||||
|
# directories
|
||||||
|
firefly_data_directory: "{{ docker_home }}/firefly"
|
||||||
|
|
||||||
|
# network
|
||||||
|
firefly_hostname: "firefly"
|
||||||
|
firefly_port: "8066"
|
||||||
|
|
||||||
|
# specs
|
||||||
|
firefly_memory: "1g"
|
|
@ -1,3 +1,4 @@
|
||||||
|
---
|
||||||
- name: Create Firefly III Directories
|
- name: Create Firefly III Directories
|
||||||
file:
|
file:
|
||||||
path: "{{ item }}"
|
path: "{{ item }}"
|
||||||
|
@ -49,10 +50,10 @@
|
||||||
DB_PASSWORD: "firefly"
|
DB_PASSWORD: "firefly"
|
||||||
TZ: "{{ ansible_nas_timezone }}"
|
TZ: "{{ ansible_nas_timezone }}"
|
||||||
restart_policy: unless-stopped
|
restart_policy: unless-stopped
|
||||||
memory: 1g
|
memory: "{{ firefly_memory }}"
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: "{{ firefly_available_externally }}"
|
traefik.enable: "{{ firefly_available_externally }}"
|
||||||
traefik.http.routers.firefly.rule: "Host(`firefly.{{ ansible_nas_domain }}`)"
|
traefik.http.routers.firefly.rule: "Host(`{{ firefly_hostname }}.{{ ansible_nas_domain }}`)"
|
||||||
traefik.http.routers.firefly.tls.certresolver: "letsencrypt"
|
traefik.http.routers.firefly.tls.certresolver: "letsencrypt"
|
||||||
traefik.http.routers.firefly.tls.domains[0].main: "{{ ansible_nas_domain }}"
|
traefik.http.routers.firefly.tls.domains[0].main: "{{ ansible_nas_domain }}"
|
||||||
traefik.http.routers.firefly.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
|
traefik.http.routers.firefly.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
|
12
roles/get_iplayer/defaults/main.yml
Normal file
12
roles/get_iplayer/defaults/main.yml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
---
|
||||||
|
get_iplayer_enabled: false
|
||||||
|
|
||||||
|
# directories
|
||||||
|
get_iplayer_config_directory: "{{ docker_home }}/get_iplayer"
|
||||||
|
get_iplayer_download_directory: "{{ tv_root }}/iplayer_downloads"
|
||||||
|
|
||||||
|
# network
|
||||||
|
get_iplayer_port: "8182"
|
||||||
|
|
||||||
|
# specs
|
||||||
|
get_iplayer_memory: "1g"
|
|
@ -17,5 +17,5 @@
|
||||||
ports:
|
ports:
|
||||||
- "{{ get_iplayer_port }}:8181"
|
- "{{ get_iplayer_port }}:8181"
|
||||||
restart_policy: unless-stopped
|
restart_policy: unless-stopped
|
||||||
memory: 1g
|
memory: "{{ get_iplayer_memory }}"
|
||||||
|
|
18
roles/homebridge/defaults/main.yml
Normal file
18
roles/homebridge/defaults/main.yml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
---
|
||||||
|
# enable or disable the application
|
||||||
|
homebridge_enabled: false
|
||||||
|
homebridge_available_externally: "false"
|
||||||
|
|
||||||
|
# directories
|
||||||
|
homebridge_config_directory: "{{ docker_home }}/homebridge/config"
|
||||||
|
|
||||||
|
# uid / gid
|
||||||
|
homebridge_user_id: "0"
|
||||||
|
homebridge_group_id: "0"
|
||||||
|
|
||||||
|
# network
|
||||||
|
homebridge_hostname: "homebridge"
|
||||||
|
homebridge_port: "8087"
|
||||||
|
|
||||||
|
# specs
|
||||||
|
homebridge_memory: "1g"
|
|
@ -3,17 +3,18 @@
|
||||||
file:
|
file:
|
||||||
path: "{{ item }}"
|
path: "{{ item }}"
|
||||||
state: directory
|
state: directory
|
||||||
|
# mode: 0755
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ homebridge_config_directory }}"
|
- "{{ homebridge_config_directory }}"
|
||||||
|
|
||||||
- name: Homebridge Docker Container
|
- name: Create Homebridge Docker Container
|
||||||
docker_container:
|
docker_container:
|
||||||
name: homebridge
|
name: homebridge
|
||||||
image: oznu/homebridge
|
image: oznu/homebridge
|
||||||
pull: true
|
pull: true
|
||||||
volumes:
|
volumes:
|
||||||
- "{{ homebridge_config_directory }}:/homebridge"
|
- "{{ homebridge_config_directory }}:/homebridge"
|
||||||
network_mode: host
|
network_mode: "host"
|
||||||
env:
|
env:
|
||||||
TZ: "{{ ansible_nas_timezone }}"
|
TZ: "{{ ansible_nas_timezone }}"
|
||||||
PGID: "{{ homebridge_group_id }}"
|
PGID: "{{ homebridge_group_id }}"
|
||||||
|
@ -21,10 +22,10 @@
|
||||||
HOMEBRIDGE_CONFIG_UI: "1"
|
HOMEBRIDGE_CONFIG_UI: "1"
|
||||||
HOMEBRIDGE_CONFIG_UI_PORT: "{{ homebridge_port }}"
|
HOMEBRIDGE_CONFIG_UI_PORT: "{{ homebridge_port }}"
|
||||||
restart_policy: unless-stopped
|
restart_policy: unless-stopped
|
||||||
memory: 1g
|
memory: "{{ homebridge_memory }}"
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: "{{ homebridge_available_externally }}"
|
traefik.enable: "{{ homebridge_available_externally }}"
|
||||||
traefik.http.routers.homebridge.rule: "Host(`homebridge.{{ ansible_nas_domain }}`)"
|
traefik.http.routers.homebridge.rule: "Host(`{{ homebridge_hostname }}.{{ ansible_nas_domain }}`)"
|
||||||
traefik.http.routers.homebridge.tls.certresolver: "letsencrypt"
|
traefik.http.routers.homebridge.tls.certresolver: "letsencrypt"
|
||||||
traefik.http.routers.homebridge.tls.domains[0].main: "{{ ansible_nas_domain }}"
|
traefik.http.routers.homebridge.tls.domains[0].main: "{{ ansible_nas_domain }}"
|
||||||
traefik.http.routers.homebridge.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
|
traefik.http.routers.homebridge.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
|
15
roles/jackett/defaults/main.yml
Normal file
15
roles/jackett/defaults/main.yml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
---
|
||||||
|
# enable or disable the application
|
||||||
|
jackett_enabled: false
|
||||||
|
jackett_available_externally: "false"
|
||||||
|
|
||||||
|
# directories
|
||||||
|
jackett_data_directory: "{{ docker_home }}/jackett"
|
||||||
|
jackett_torrents_root: "{{ torrents_root }}"
|
||||||
|
|
||||||
|
# network
|
||||||
|
jackett_hostname: "jackett"
|
||||||
|
jackett_port: "9117"
|
||||||
|
|
||||||
|
# specs
|
||||||
|
jackett_memory: "1g"
|
|
@ -21,7 +21,7 @@
|
||||||
restart_policy: unless-stopped
|
restart_policy: unless-stopped
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: "{{ jackett_available_externally }}"
|
traefik.enable: "{{ jackett_available_externally }}"
|
||||||
traefik.http.routers.jackett.rule: "Host(`jackett.{{ ansible_nas_domain }}`)"
|
traefik.http.routers.jackett.rule: "Host(`{{ jackett_hostname }}.{{ ansible_nas_domain }}`)"
|
||||||
traefik.http.routers.jackett.tls.certresolver: "letsencrypt"
|
traefik.http.routers.jackett.tls.certresolver: "letsencrypt"
|
||||||
traefik.http.routers.jackett.tls.domains[0].main: "{{ ansible_nas_domain }}"
|
traefik.http.routers.jackett.tls.domains[0].main: "{{ ansible_nas_domain }}"
|
||||||
traefik.http.routers.jackett.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
|
traefik.http.routers.jackett.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
|
10
roles/mymediaforalexa/defaults/main.yml
Normal file
10
roles/mymediaforalexa/defaults/main.yml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
---
|
||||||
|
# enable or disable the application
|
||||||
|
mymediaforalexa_enabled: false
|
||||||
|
|
||||||
|
# directories
|
||||||
|
mymediaforalexa_media_directory: "{{ music_root }}"
|
||||||
|
mymediaforalexa_data_directory: "{{ docker_home }}/mymediaforalexa"
|
||||||
|
|
||||||
|
# specs
|
||||||
|
mymediaforalexa_memory: "1g"
|
|
@ -1,4 +1,5 @@
|
||||||
- name: Create mymedia for alexa Directories
|
---
|
||||||
|
- name: Create Mymediaforalexa Directories
|
||||||
file:
|
file:
|
||||||
path: "{{ item }}"
|
path: "{{ item }}"
|
||||||
state: directory
|
state: directory
|
||||||
|
@ -6,7 +7,7 @@
|
||||||
- "{{ mymediaforalexa_media_directory }}"
|
- "{{ mymediaforalexa_media_directory }}"
|
||||||
- "{{ mymediaforalexa_data_directory }}"
|
- "{{ mymediaforalexa_data_directory }}"
|
||||||
|
|
||||||
- name: mymedia for alexa Docker Container
|
- name: mymediaforalexa Docker Container
|
||||||
docker_container:
|
docker_container:
|
||||||
name: mymediaforalexa
|
name: mymediaforalexa
|
||||||
image: bizmodeller/mymediaforalexa
|
image: bizmodeller/mymediaforalexa
|
||||||
|
@ -16,5 +17,4 @@
|
||||||
- "{{ mymediaforalexa_data_directory }}:/datadir:rw"
|
- "{{ mymediaforalexa_data_directory }}:/datadir:rw"
|
||||||
network_mode: host
|
network_mode: host
|
||||||
restart_policy: unless-stopped
|
restart_policy: unless-stopped
|
||||||
memory: 1g
|
memory: "{{ mymediaforalexa_memory }}"
|
||||||
|
|
18
roles/nzbget/defaults/main.yml
Normal file
18
roles/nzbget/defaults/main.yml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
---
|
||||||
|
nzbget_enabled: false
|
||||||
|
nzbget_available_externally: "false"
|
||||||
|
|
||||||
|
# directories
|
||||||
|
nzbget_data_directory: "{{ docker_home }}/nzbget"
|
||||||
|
nzbget_download_directory: "{{ downloads_root }}"
|
||||||
|
|
||||||
|
# uid / gid
|
||||||
|
nzbget_user_id: "0"
|
||||||
|
nzbget_group_id: "0"
|
||||||
|
|
||||||
|
# network
|
||||||
|
nzbget_port: "6789"
|
||||||
|
nzbget_hostname: "nzbget"
|
||||||
|
|
||||||
|
# specs
|
||||||
|
nzbget_app_memory: "1g"
|
|
@ -24,7 +24,7 @@
|
||||||
memory: 1g
|
memory: 1g
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: "{{ nzbget_available_externally }}"
|
traefik.enable: "{{ nzbget_available_externally }}"
|
||||||
traefik.http.routers.nzbget.rule: "Host(`nzbget.{{ ansible_nas_domain }}`)"
|
traefik.http.routers.nzbget.rule: "Host(`{{ nzbget_hostname }}.{{ ansible_nas_domain }}`)"
|
||||||
traefik.http.routers.nzbget.tls.certresolver: "letsencrypt"
|
traefik.http.routers.nzbget.tls.certresolver: "letsencrypt"
|
||||||
traefik.http.routers.nzbget.tls.domains[0].main: "{{ ansible_nas_domain }}"
|
traefik.http.routers.nzbget.tls.domains[0].main: "{{ ansible_nas_domain }}"
|
||||||
traefik.http.routers.nzbget.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
|
traefik.http.routers.nzbget.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
|
19
roles/pyload/defaults/main.yml
Normal file
19
roles/pyload/defaults/main.yml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
---
|
||||||
|
pyload_enabled: false
|
||||||
|
pyload_available_externally: "false"
|
||||||
|
|
||||||
|
# directories
|
||||||
|
pyload_config_directory: "{{ docker_home }}/pyload"
|
||||||
|
pyload_download_directory: "{{ downloads_root }}"
|
||||||
|
|
||||||
|
|
||||||
|
# uid / gid
|
||||||
|
pyload_user_id: "0"
|
||||||
|
pyload_group_id: "0"
|
||||||
|
|
||||||
|
# network
|
||||||
|
pyload_hostname: "pyload"
|
||||||
|
pyload_port: "8000"
|
||||||
|
|
||||||
|
# specs
|
||||||
|
pyload_memory: "1g"
|
|
@ -23,10 +23,10 @@
|
||||||
UID: "{{ pyload_user_id }}"
|
UID: "{{ pyload_user_id }}"
|
||||||
GID: "{{ pyload_group_id }}"
|
GID: "{{ pyload_group_id }}"
|
||||||
restart_policy: unless-stopped
|
restart_policy: unless-stopped
|
||||||
memory: 1g
|
memory: "{{ pyload_memory }}"
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: "{{ pyload_available_externally }}"
|
traefik.enable: "{{ pyload_available_externally }}"
|
||||||
traefik.http.routers.pyload.rule: "Host(`pyload.{{ ansible_nas_domain }}`)"
|
traefik.http.routers.pyload.rule: "Host(`{{ pyload_hostname }}.{{ ansible_nas_domain }}`)"
|
||||||
traefik.http.routers.pyload.tls.certresolver: "letsencrypt"
|
traefik.http.routers.pyload.tls.certresolver: "letsencrypt"
|
||||||
traefik.http.routers.pyload.tls.domains[0].main: "{{ ansible_nas_domain }}"
|
traefik.http.routers.pyload.tls.domains[0].main: "{{ ansible_nas_domain }}"
|
||||||
traefik.http.routers.pyload.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
|
traefik.http.routers.pyload.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
|
17
roles/tautulli/defaults/main.yml
Normal file
17
roles/tautulli/defaults/main.yml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
---
|
||||||
|
tautulli_enabled: false
|
||||||
|
tautulli_available_externally: "false"
|
||||||
|
|
||||||
|
# directories
|
||||||
|
tautulli_config_directory: "{{ docker_home }}/tautulli/config"
|
||||||
|
|
||||||
|
# uid / gid
|
||||||
|
tautulli_user_id: "0"
|
||||||
|
tautulli_group_id: "0"
|
||||||
|
|
||||||
|
# network
|
||||||
|
tautulli_hostname: "tautulli"
|
||||||
|
tautulli_port: "8185"
|
||||||
|
|
||||||
|
# specs
|
||||||
|
tautulli_memory: "1g"
|
|
@ -22,10 +22,10 @@
|
||||||
PUID: "{{ tautulli_user_id }}"
|
PUID: "{{ tautulli_user_id }}"
|
||||||
PGID: "{{ tautulli_group_id }}"
|
PGID: "{{ tautulli_group_id }}"
|
||||||
restart_policy: unless-stopped
|
restart_policy: unless-stopped
|
||||||
memory: 1g
|
memory: "{{ tautulli_memory }}"
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: "{{ tautulli_available_externally }}"
|
traefik.enable: "{{ tautulli_available_externally }}"
|
||||||
traefik.http.routers.tautulli.rule: "Host(`tautulli.{{ ansible_nas_domain }}`)"
|
traefik.http.routers.tautulli.rule: "Host(`{{ tautulli_hostname }}.{{ ansible_nas_domain }}`)"
|
||||||
traefik.http.routers.tautulli.tls.certresolver: "letsencrypt"
|
traefik.http.routers.tautulli.tls.certresolver: "letsencrypt"
|
||||||
traefik.http.routers.tautulli.tls.domains[0].main: "{{ ansible_nas_domain }}"
|
traefik.http.routers.tautulli.tls.domains[0].main: "{{ ansible_nas_domain }}"
|
||||||
traefik.http.routers.tautulli.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
|
traefik.http.routers.tautulli.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
|
18
roles/znc/defaults/main.yml
Normal file
18
roles/znc/defaults/main.yml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
---
|
||||||
|
# enable or disable the application
|
||||||
|
znc_enabled: false
|
||||||
|
znc_available_externally: "false"
|
||||||
|
|
||||||
|
# directories
|
||||||
|
znc_data_directory: "{{ docker_home }}/znc"
|
||||||
|
|
||||||
|
# uid / gid
|
||||||
|
znc_user_id: "0"
|
||||||
|
znc_group_id: "0"
|
||||||
|
|
||||||
|
# network
|
||||||
|
znc_hostname: "znc"
|
||||||
|
znc_port: "6677"
|
||||||
|
|
||||||
|
# specs
|
||||||
|
znc_memory: "1g"
|
|
@ -3,10 +3,11 @@
|
||||||
file:
|
file:
|
||||||
path: "{{ item }}"
|
path: "{{ item }}"
|
||||||
state: directory
|
state: directory
|
||||||
|
# mode: 0755
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ znc_data_directory }}"
|
- "{{ znc_data_directory }}"
|
||||||
|
|
||||||
- name: ZNC
|
- name: Create ZNC Docker Container
|
||||||
docker_container:
|
docker_container:
|
||||||
name: znc
|
name: znc
|
||||||
image: znc
|
image: znc
|
||||||
|
@ -20,10 +21,10 @@
|
||||||
PUID: "{{ znc_user_id }}"
|
PUID: "{{ znc_user_id }}"
|
||||||
PGID: "{{ znc_group_id }}"
|
PGID: "{{ znc_group_id }}"
|
||||||
restart_policy: unless-stopped
|
restart_policy: unless-stopped
|
||||||
memory: 1g
|
memory: "{{ znc_memory }}"
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: "{{ znc_available_externally }}"
|
traefik.enable: "{{ znc_available_externally }}"
|
||||||
traefik.http.routers.znc.rule: "Host(`znc.{{ ansible_nas_domain }}`)"
|
traefik.http.routers.znc.rule: "Host(`{{ znc_hostname }}.{{ ansible_nas_domain }}`)"
|
||||||
traefik.http.routers.znc.tls.certresolver: "letsencrypt"
|
traefik.http.routers.znc.tls.certresolver: "letsencrypt"
|
||||||
traefik.http.routers.znc.tls.domains[0].main: "{{ ansible_nas_domain }}"
|
traefik.http.routers.znc.tls.domains[0].main: "{{ ansible_nas_domain }}"
|
||||||
traefik.http.routers.znc.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
|
traefik.http.routers.znc.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
|
Loading…
Reference in a new issue