From 74ef4ba964d1f6c3a5406f4d2a1beee70bc28490 Mon Sep 17 00:00:00 2001 From: animeai <6061753+animeai@users.noreply.github.com> Date: Sun, 5 Jan 2020 20:08:59 +0000 Subject: [PATCH 01/29] Fix tautulli so it can see plex logs --- group_vars/all.yml.dist | 1 + tasks/calibre.yml | 0 tasks/plex.yml | 2 ++ tasks/tautulli.yml | 2 ++ tests/test-vagrant.sh | 0 tests/test.sh | 0 6 files changed, 5 insertions(+) mode change 100755 => 100644 tasks/calibre.yml mode change 100755 => 100644 tests/test-vagrant.sh mode change 100755 => 100644 tests/test.sh diff --git a/group_vars/all.yml.dist b/group_vars/all.yml.dist index 8e5a4240..7901fc9c 100644 --- a/group_vars/all.yml.dist +++ b/group_vars/all.yml.dist @@ -351,6 +351,7 @@ pyload_group_id: 0 # delete your files plex_available_externally: "false" plex_config_directory: "{{ docker_home }}/plex/config" +plex_logs: "{{docker_home }}/plex/logs" plex_movies_directory: "{{ movies_root }}" plex_movies_permissions: "rw" plex_tv_directory: "{{ tv_root }}" diff --git a/tasks/calibre.yml b/tasks/calibre.yml old mode 100755 new mode 100644 diff --git a/tasks/plex.yml b/tasks/plex.yml index 4bfb9d95..58650b12 100644 --- a/tasks/plex.yml +++ b/tasks/plex.yml @@ -5,6 +5,7 @@ # mode: 0755 with_items: - "{{ plex_config_directory }}" + - "{{ plex_logs }}" - name: plex Docker Container docker_container: @@ -13,6 +14,7 @@ pull: true volumes: - "{{ plex_config_directory }}:/config:rw" + - "{{ plex_logs }}:/opt/plex/Library/Application Support/Plex Media Server/Logs:rw" - "{{ plex_movies_directory }}:/movies:{{ plex_movies_permissions }}" - "{{ plex_tv_directory }}:/tv:{{ plex_tv_permissions }}" - "{{ plex_photos_directory }}:/photos:{{ plex_photos_permissions }}" diff --git a/tasks/tautulli.yml b/tasks/tautulli.yml index aa793cb4..187faf96 100644 --- a/tasks/tautulli.yml +++ b/tasks/tautulli.yml @@ -5,6 +5,7 @@ # mode: 0755 with_items: - "{{ tautulli_config_directory }}" + - "{{ plex_logs }}" - name: Tautulli Docker Container docker_container: @@ -13,6 +14,7 @@ pull: true volumes: - "{{ tautulli_config_directory }}:/config:rw" + - "{{ plex_logs }}:/logs:ro" network_mode: "host" env: TZ: "{{ ansible_nas_timezone }}" diff --git a/tests/test-vagrant.sh b/tests/test-vagrant.sh old mode 100755 new mode 100644 diff --git a/tests/test.sh b/tests/test.sh old mode 100755 new mode 100644 From a5d8ab81228b7cfb16ee65d3863492f4b745bf41 Mon Sep 17 00:00:00 2001 From: animeai <6061753+animeai@users.noreply.github.com> Date: Sun, 5 Jan 2020 20:10:10 +0000 Subject: [PATCH 02/29] minor --- tasks/calibre.yml | 0 tests/test-vagrant.sh | 0 tests/test.sh | 0 3 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 tasks/calibre.yml mode change 100755 => 100644 tests/test-vagrant.sh mode change 100755 => 100644 tests/test.sh diff --git a/tasks/calibre.yml b/tasks/calibre.yml old mode 100755 new mode 100644 diff --git a/tests/test-vagrant.sh b/tests/test-vagrant.sh old mode 100755 new mode 100644 diff --git a/tests/test.sh b/tests/test.sh old mode 100755 new mode 100644 From ce21999f46c838e739c35c999e75b2b719aa6adc Mon Sep 17 00:00:00 2001 From: animeai <6061753+animeai@users.noreply.github.com> Date: Sun, 5 Jan 2020 21:47:40 +0000 Subject: [PATCH 03/29] Map all ports as variables in all.yml.dist NOTE: The majority of traefik ports were totally broken and would never have worked. It should be the external port there, not the internal container port!. Port conflicts were fixed. --- group_vars/all.yml.dist | 105 ++++++++++++++++++++-------- tasks/airsonic.yml | 4 +- tasks/bazarr.yml | 4 +- tasks/bitwarden.yml | 8 +-- tasks/calibre.yml | 4 +- tasks/cloudcmd.yml | 4 +- tasks/couchpotato.yml | 4 +- tasks/duplicati.yml | 4 +- tasks/emby.yml | 6 +- tasks/firefly.yml | 4 +- tasks/get_iplayer.yml | 2 +- tasks/gitea.yml | 10 +-- tasks/glances.yml | 6 +- tasks/guacamole.yml | 4 +- tasks/heimdall.yml | 6 +- tasks/homeassistant.yml | 4 +- tasks/homebridge.yml | 4 +- tasks/jackett.yml | 4 +- tasks/jellyfin.yml | 6 +- tasks/joomla.yml | 4 +- tasks/minidlna.yml | 4 +- tasks/miniflux.yml | 4 +- tasks/mosquitto.yml | 4 +- tasks/netdata.yml | 4 +- tasks/nextcloud.yml | 4 +- tasks/nginx.yml | 4 +- tasks/nzbget.yml | 4 +- tasks/openhab.yml | 6 +- tasks/portainer.yml | 5 +- tasks/pyload.yml | 4 +- tasks/radarr.yml | 4 +- tasks/sickchill.yml | 4 +- tasks/sonarr.yml | 4 +- tasks/stats.yml | 6 +- tasks/tautulli.yml | 6 +- tasks/thelounge.yml | 6 +- tasks/transmission.yml | 6 +- tasks/transmission_with_openvpn.yml | 6 +- tasks/wallabag.yml | 4 +- tasks/znc.yml | 4 +- 40 files changed, 168 insertions(+), 122 deletions(-) diff --git a/group_vars/all.yml.dist b/group_vars/all.yml.dist index 7901fc9c..3cc16547 100644 --- a/group_vars/all.yml.dist +++ b/group_vars/all.yml.dist @@ -314,6 +314,8 @@ traefik_debug: "false" heimdall_available_externally: "false" heimdall_docker_image: linuxserver/heimdall:latest heimdall_data_directory: "{{ docker_home }}/heimdall" +heimdall_port_http: "10080" +heimdall_port_https: "10443" ### ### Transmission @@ -323,9 +325,13 @@ transmission_with_openvpn_available_externally: "false" transmission_config_directory: "{{ docker_home }}/transmission/config" transmission_download_directory: "{{ downloads_root }}" transmission_watch_directory: "{{ torrents_root }}" -transmission_user_id: 0 -transmission_group_id: 0 +transmission_user_id: "0" +transmission_group_id: "0" transmission_local_network: "192.168.1.0/24" +transmission_webui_port: "9092" +transmission_external_port: "51414" +transmission_openvpn_webui_port: "9093" +transmission_openvpn_external_port: "51415" ### ### Joomla @@ -333,6 +339,7 @@ transmission_local_network: "192.168.1.0/24" joomla_data_directory: "{{ docker_home }}/joomla" joomla_available_externally: "false" joomla_database_password: top_secret +joomla_port: "8181" ### ### pyLoad @@ -340,9 +347,9 @@ joomla_database_password: top_secret pyload_available_externally: "false" pyload_config_directory: "{{ docker_home }}/pyload" pyload_download_directory: "{{ downloads_root }}" -pyload_user_id: 0 -pyload_group_id: 0 - +pyload_user_id: "0" +pyload_group_id: "0" +pyload_port: "8000" ### ### Plex @@ -360,8 +367,9 @@ plex_photos_directory: "{{ photos_root }}" plex_photos_permissions: "rw" plex_music_directory: "{{ music_root }}" plex_music_permissions: "rw" -plex_user_id: 0 -plex_group_id: 0 +plex_user_id: "0" +plex_group_id: "0" +plex_port: "32400" ### ### Homebridge @@ -370,6 +378,7 @@ homebridge_available_externally: "false" homebridge_config_directory: "{{ docker_home }}/homebridge/config" homebridge_user_id: "0" homebridge_group_id: "0" +homebridge_port: "8087" ### ### Emby @@ -382,24 +391,26 @@ emby_movies_directory: "{{ movies_root }}" emby_movies_permissions: "rw" emby_tv_directory: "{{ tv_root }}" emby_tv_permissions: "rw" -emby_user_id: 0 -emby_group_id: 0 +emby_user_id: "0" +emby_group_id: "0" +emby_port_http: "8096" +emby_port_https: "8920" ### ### Tautulli ### tautulli_available_externally: "false" tautulli_config_directory: "{{ docker_home }}/tautulli/config" -tautulli_user_id: 0 -tautulli_group_id: 0 - +tautulli_user_id: "0" +tautulli_group_id: "0" +tautulli_port: "8185" ### ### Duplicati ### duplicati_available_externally: "false" duplicati_data_directory: "{{ docker_home }}/duplicati/config" - +duplicati_port: "8200" ### ### Sonarr @@ -408,9 +419,9 @@ sonarr_available_externally: "false" sonarr_data_directory: "{{ docker_home }}/sonarr/config" sonarr_tv_directory: "{{ tv_root }}" sonarr_download_directory: "{{ downloads_root }}" -sonarr_user_id: 0 -sonarr_group_id: 0 - +sonarr_user_id: "0" +sonarr_group_id: "0" +sonarr_port: "8989" ### ### Radarr @@ -419,8 +430,9 @@ radarr_available_externally: "false" radarr_movies_directory: "{{ movies_root }}" radarr_download_directory: "{{ downloads_root }}" radarr_data_directory: "{{ docker_home }}/radarr" -radarr_user_id: 0 -radarr_group_id: 0 +radarr_user_id: "0" +radarr_group_id: "0" +radarr_port: "7878" ### ### Bazarr @@ -431,7 +443,7 @@ bazarr_tv_directory: "{{ tv_root }}" bazarr_movies_directory: "{{ movies_root }}" bazarr_user_id: "0" bazarr_group_id: "0" - +bazarr_port: "6767" ### ### Couchpotato @@ -441,9 +453,9 @@ couchpotato_config_directory: "{{ docker_home }}/couchpotato/config" couchpotato_movies_directory: "{{ movies_root }}" couchpotato_downloads_directory: "{{ downloads_root }}" couchpotato_torrents_directory: "{{ torrents_root }}" -couchpotato_user_id: 0 -couchpotato_group_id: 0 - +couchpotato_user_id: "0" +couchpotato_group_id: "0" +couchpotato_port: "5050" ### ### Sickchill @@ -452,13 +464,15 @@ sickchill_available_externally: "false" sickchill_config_directory: "{{ docker_home }}/sickchill/config" sickchill_tv_directory: "{{ tv_root }}" sickchill_downloads_directory: "{{ downloads_root }}/completed" -sickchill_user_id: 0 -sickchill_group_id: 0 +sickchill_user_id: "0" +sickchill_group_id: "0" +sickchill_port: "8081" ### ### Netdata ### netdata_available_externally: "false" +netdata_port: "19999" ### ### OpenVPN @@ -471,16 +485,16 @@ openvpn_config_directory: "{{ docker_home }}/openvpn" ### portainer_available_externally: "false" portainer_data_directory: "{{ docker_home }}/portainer/config" - +portainer_port: "9000" ### ### ZNC ### znc_available_externally: "false" znc_data_directory: "{{ docker_home }}/znc" -znc_user_id: 0 -znc_group_id: 0 - +znc_user_id: "0" +znc_group_id: "0" +znc_port: "6677" ### ### Stats @@ -490,28 +504,37 @@ telegraf_data_directory: "{{ docker_home }}/telegraf" influxdb_data_directory: "{{ docker_home }}/influxdb" grafana_data_directory: "{{ docker_home }}/grafana" stat_collection_interval: 15s +grafana_influxdb_port: "8086" +grafana_port: "3000" ### ### Gitea ### gitea_available_externally: "false" gitea_data_directory: "{{ docker_home }}/gitea" +gitea_port_http: "3001" +gitea_port_ssh: "222" ### ### Glances ### glances_available_externally: "false" +glances_port_one: "61208" +glances_port_two: "61209" ### ### Nextcloud ### nextcloud_available_externally: "false" nextcloud_data_directory: "{{ docker_home }}/nextcloud" +nextcloud_port: "8080" ### ### nginx ### nginx_data_directory: "{{ docker_home }}/nginx" +nginx_port_http: "80" +nginx_port_https: "443" ### ### Guacamole @@ -520,6 +543,7 @@ guacamole_available_externally: "false" guacamole_docker_image: guacamole/guacamole:0.9.14 guacamole_guacd_docker_image: guacamole/guacd:0.9.14 guacamole_data_directory: "{{ docker_home }}/guacamole" +guacamole_port: "8090" ### ### Miniflux @@ -528,12 +552,14 @@ miniflux_available_externally: "false" miniflux_data_directory: "{{ docker_home }}/miniflux" miniflux_admin_username: admin miniflux_admin_password: supersecure +miniflux_port: "8070" ### ### Airsonic ### airsonic_available_externally: "false" airsonic_data_directory: "{{ docker_home }}/airsonic" +airsonic_port: "4040" ### ### CloudCmd @@ -543,6 +569,7 @@ cloudcmd_data_directory: "{{ docker_home }}/cloudcmd/config" cloudcmd_browse_directory: "/" cloudcmd_user_id: "0" cloudcmd_group_id: "0" +cloudcmd_port: "7373" ### ### Watchtower @@ -578,12 +605,14 @@ timemachine_port: "10445" minidlna_media_directory1: "{{ movies_root }}" minidlna_media_directory2: "{{ tv_root }}" minidlna_friendly_name: "{{ ansible_nas_hostname }}" +minidlna_port: "8201" ### ### get_iplayer ### get_iplayer_config_directory: "{{ docker_home }}/get_iplayer" get_iplayer_download_directory: "{{ tv_root }}/iplayer_downloads" +get_iplayer_port: "8182" ### ### mymediaforalexa @@ -596,18 +625,23 @@ mymediaforalexa_data_directory: "{{ docker_home }}/mymediaforalexa" ### jackett_available_externally: "false" jackett_data_directory: "{{ docker_home }}/jackett" +jackett_port: "9117" ### ### The Lounge ### thelounge_available_externally: "false" thelounge_data_directory: "{{ docker_home }}/thelounge" +thelounge_port_one: "113" +thelounge_port_two: "9002" ### ### Bitwarden ### bitwarden_available_externally: "false" bitwarden_data_directory: "{{ docker_home }}/bitwarden" +bitwarden_port_a: "19080" +bitwarden_port_b: "3012" # Keep this token secret, this is password to access admin area of your server! # This token can be anything, but it's recommended to use a long, randomly generated string of characters, @@ -624,6 +658,7 @@ bitwarden_allow_signups: false ### firefly_available_externally: "false" firefly_data_directory: "{{ docker_home }}/firefly" +firefly_port: "8066" ### ### Nzbget @@ -631,20 +666,24 @@ firefly_data_directory: "{{ docker_home }}/firefly" nzbget_available_externally: "false" nzbget_data_directory: "{{ docker_home }}/nzbget" nzbget_download_directory: "{{ downloads_root }}" -nzbget_user_id: 0 -nzbget_group_id: 0 +nzbget_user_id: "0" +nzbget_group_id: "0" +nzbget_port: "6789" ### ### Wallabag ### wallabag_available_externally: "false" wallabag_data_directory: "{{ docker_home }}/wallabag" +wallabag_port: "7780" ### ### Mosquitto ### mosquitto_available_externally: "false" mosquitto_data_directory: "{{ docker_home }}/mosquitto" +mosquitto_port_a: "1883" +mosquitto_port_b: "9001" ### ### Calibre @@ -653,6 +692,7 @@ calibre_available_externally: "false" calibre_data_directory: "{{ docker_home }}/calibre" calibre_user_id: "0" calibre_group_id: "0" +calibre_port: "8084" # To disable ebook conversion set calibre_ebook_conversion to "". To enable it set it to "linuxserver/calibre-web:calibre" calibre_ebook_conversion: "linuxserver/calibre-web:calibre" @@ -661,6 +701,7 @@ calibre_ebook_conversion: "linuxserver/calibre-web:calibre" ### homeassistant_available_externally: "false" homeassistant_data_directory: "{{ docker_home }}/homeassistant" +homeassistant_port: "8123" ### ### openHAB @@ -668,6 +709,8 @@ homeassistant_data_directory: "{{ docker_home }}/homeassistant" openhab_available_externally: "false" openhab_docker_image: openhab/openhab:latest openhab_data_directory: "{{ docker_home }}/openhab" +openhab_port_http: "7777" +openhab_port_https: "7778" ### ### Jellyfin @@ -682,3 +725,5 @@ jellyfin_tv_directory: "{{ tv_root }}" jellyfin_tv_permissions: "rw" jellyfin_user_id: "0" jellyfin_group_id: "0" +jellyfin_port_http: "8896" +jellyfin_port_https: "8928" \ No newline at end of file diff --git a/tasks/airsonic.yml b/tasks/airsonic.yml index c28bbf57..fe93a3a7 100644 --- a/tasks/airsonic.yml +++ b/tasks/airsonic.yml @@ -19,12 +19,12 @@ - "{{ samba_shares_root }}/music:/airsonic/music:rw" - "{{ samba_shares_root }}/podcasts:/airsonic/podcasts:rw" ports: - - "4040:4040" + - "{{ airsonic_port }}:4040" restart_policy: unless-stopped memory: 1g labels: traefik.backend: "airsonic" traefik.frontend.rule: "Host:airsonic.{{ ansible_nas_domain }}" traefik.enable: "{{ airsonic_available_externally }}" - traefik.port: "4040" + traefik.port: "{{ airsonic_port }}" diff --git a/tasks/bazarr.yml b/tasks/bazarr.yml index ee8bd82a..62bd3116 100644 --- a/tasks/bazarr.yml +++ b/tasks/bazarr.yml @@ -16,7 +16,7 @@ - "{{ bazarr_movies_directory }}:/movies:rw" - "{{ bazarr_data_directory }}:/config:rw" ports: - - "6767:6767" + - "{{ bazarr_port }}:6767" env: TZ: "{{ ansible_nas_timezone }}" PUID: "{{ bazarr_user_id }}" @@ -27,4 +27,4 @@ traefik.backend: "bazarr" traefik.frontend.rule: "Host:bazarr.{{ ansible_nas_domain }}" traefik.enable: "{{ bazarr_available_externally }}" - traefik.port: "6767" \ No newline at end of file + traefik.port: "{{ bazarr_port }}" \ No newline at end of file diff --git a/tasks/bitwarden.yml b/tasks/bitwarden.yml index 07f523cc..a8d9aad2 100644 --- a/tasks/bitwarden.yml +++ b/tasks/bitwarden.yml @@ -11,8 +11,8 @@ image: mprasil/bitwarden:latest pull: true ports: - - "19080:80" - - "3012:3012" + - "{{ bitwarden_port_a }}:80" + - "{{ bitwarden_port_b }}:3012" volumes: - "{{ bitwarden_data_directory }}:/data:rw" env: @@ -23,9 +23,9 @@ labels: traefik.web.frontend.rule: "Host:bitwarden.{{ ansible_nas_domain }}" traefik.enable: "{{ bitwarden_available_externally }}" - traefik.web.port: "80" + traefik.web.port: "bitwarden_port_a" traefik.hub.frontend.rule: "Host:bitwarden.{{ ansible_nas_domain }};Path:/notifications/hub" - traefik.hub.port: "3012" + traefik.hub.port: "bitwarden_port_b" traefik.hub.protocol: "ws" restart_policy: unless-stopped #memory: 1g diff --git a/tasks/calibre.yml b/tasks/calibre.yml index f42e0dc1..8545cec6 100644 --- a/tasks/calibre.yml +++ b/tasks/calibre.yml @@ -19,11 +19,11 @@ PGID: "{{ calibre_group_id }}" DOCKER_MODS: "{{ calibre_ebook_conversion }}" ports: - - "8084:8083" + - "{{ calibre_port }}:8083" restart_policy: unless-stopped labels: traefik.backend: "calibre" traefik.frontend.rule: "Host:calibre.{{ ansible_nas_domain }}" traefik.enable: "{{ calibre_available_externally }}" - traefik.port: "8083" + traefik.port: "{{ calibre_port }} " memory: 1g \ No newline at end of file diff --git a/tasks/cloudcmd.yml b/tasks/cloudcmd.yml index 6eed807c..6fe6d29b 100644 --- a/tasks/cloudcmd.yml +++ b/tasks/cloudcmd.yml @@ -15,7 +15,7 @@ - "{{ cloudcmd_data_directory }}:/config:rw" - "{{ cloudcmd_browse_directory }}:/mnt/fs" ports: - - "7373:8000" + - "{{ cloudcmd_port }}:8000" env: TZ: "{{ ansible_nas_timezone }}" PUID: "{{ cloudcmd_user_id }}" @@ -26,4 +26,4 @@ traefik.backend: "cloudcmd" traefik.frontend.rule: "Host:cloudcmd.{{ ansible_nas_domain }}" traefik.enable: "{{ cloudcmd_available_externally }}" - traefik.port: "8000" \ No newline at end of file + traefik.port: "{{ cloudcmd_port }}" \ No newline at end of file diff --git a/tasks/couchpotato.yml b/tasks/couchpotato.yml index 04dacb7b..b33893ab 100644 --- a/tasks/couchpotato.yml +++ b/tasks/couchpotato.yml @@ -18,7 +18,7 @@ - "{{ couchpotato_movies_directory }}:/movies:rw" - "{{ couchpotato_torrents_directory }}:/torrents:rw" ports: - - "5050:5050" + - "{{ couchpotato_port }}:5050" env: TZ: "{{ ansible_nas_timezone }}" PUID: "{{ couchpotato_user_id }}" @@ -29,4 +29,4 @@ traefik.backend: "couchpotato" traefik.frontend.rule: "Host:couchpotato.{{ ansible_nas_domain }}" traefik.enable: "{{ couchpotato_available_externally }}" - traefik.port: "5050" \ No newline at end of file + traefik.port: "{{ couchpotato_port }}" \ No newline at end of file diff --git a/tasks/duplicati.yml b/tasks/duplicati.yml index 3b6145e2..cf7778bf 100644 --- a/tasks/duplicati.yml +++ b/tasks/duplicati.yml @@ -12,7 +12,7 @@ image: linuxserver/duplicati pull: true ports: - - "8200:8200" + - "{{ duplicati_port }}:8200" volumes: - "{{ duplicati_data_directory }}:/config:rw" - "{{ samba_shares_root }}:/source/shares:ro" @@ -24,4 +24,4 @@ traefik.backend: "duplicati" traefik.frontend.rule: "Host:duplicati.{{ ansible_nas_domain }}" traefik.enable: "{{ duplicati_available_externally }}" - traefik.port: "8200" + traefik.port: "{{ duplicati_port }}" diff --git a/tasks/emby.yml b/tasks/emby.yml index fdded57c..101434d4 100644 --- a/tasks/emby.yml +++ b/tasks/emby.yml @@ -15,8 +15,8 @@ - "{{ emby_movies_directory }}:/movies:{{ emby_movies_permissions }}" - "{{ emby_tv_directory }}:/tv:{{ emby_tv_permissions }}" ports: - - "8096:8096" # HTTP port - - "8920:8920" # HTTPS port + - "{{ emby_port_http }}:8096" + - "{{ emby_port_https }}:8920" network_mode: host env: TZ: "{{ ansible_nas_timezone }}" @@ -28,4 +28,4 @@ traefik.backend: "emby" traefik.frontend.rule: "Host:emby.{{ ansible_nas_domain }}" traefik.enable: "{{ emby_available_externally }}" - traefik.port: "8096" + traefik.port: "{{ emby_port_https }}" \ No newline at end of file diff --git a/tasks/firefly.yml b/tasks/firefly.yml index c72a7a15..ed5a0213 100644 --- a/tasks/firefly.yml +++ b/tasks/firefly.yml @@ -38,7 +38,7 @@ links: - firefly-mysql:db ports: - - "8066:80" + - "{{ firefly_port }}:80" env: APP_ENV: "local" APP_KEY: "S0m3R@nd0mString0f32Ch@rsEx@ct1y" @@ -53,4 +53,4 @@ traefik.backend: "firefly" traefik.frontend.rule: "Host:firefly.{{ ansible_nas_domain }}" traefik.enable: "{{ firefly_available_externally }}" - traefik.port: "8080" + traefik.port: "{{ firefly_port }}" \ No newline at end of file diff --git a/tasks/get_iplayer.yml b/tasks/get_iplayer.yml index 85a4ec68..2a25a4b0 100644 --- a/tasks/get_iplayer.yml +++ b/tasks/get_iplayer.yml @@ -15,7 +15,7 @@ - "{{ get_iplayer_config_directory }}:/root/.get_iplayer:rw" - "{{ get_iplayer_download_directory }}:/root/output:rw" ports: - - "8182:8181" + - "{{ get_iplayer_port }}:8181" restart_policy: unless-stopped memory: 1g diff --git a/tasks/gitea.yml b/tasks/gitea.yml index c44cb26d..8a3f3ef0 100644 --- a/tasks/gitea.yml +++ b/tasks/gitea.yml @@ -51,8 +51,8 @@ volumes: - "{{ gitea_data_directory }}/gitea:/data:rw" ports: - - "3001:3000" - - "222:22" + - "{{ gitea_port_http }}:3000" + - "{{ gitea_port_ssh }}:22" env: DB_TYPE: "mysql" DB_HOST: "db:3306" @@ -61,8 +61,8 @@ DB_PASSWD: "gitea" RUN_MODE: "prod" SSH_DOMAIN: "{{ ansible_nas_hostname }}" - SSH_PORT: "222" - ROOT_URL: "http://{{ ansible_nas_hostname }}:3001/" + SSH_PORT: "{{ gitea_port_ssh }}" + ROOT_URL: "http://{{ ansible_nas_hostname }}:{{ gitea_port_http }}/" USER_UID: "1309" USER_GID: "1309" restart_policy: unless-stopped @@ -71,4 +71,4 @@ traefik.backend: "gitea" traefik.frontend.rule: "Host:gitea.{{ ansible_nas_domain }}" traefik.enable: "{{ gitea_available_externally }}" - traefik.port: "3000" + traefik.port: "{{ gitea_port_http }}" diff --git a/tasks/glances.yml b/tasks/glances.yml index 8e3808c2..ce1659a4 100644 --- a/tasks/glances.yml +++ b/tasks/glances.yml @@ -4,8 +4,8 @@ image: nicolargo/glances pull: true ports: - - "61208:61208" - - "61209:61209" + - "{{ glances_port_one }}:61208" + - "{{ glances_port_two }}:61209" volumes: #- "/glances.conf:/glances/conf/glances.conf" - "/var/run/docker.sock:/var/run/docker.sock:ro" @@ -20,4 +20,4 @@ traefik.backend: "glances" traefik.frontend.rule: "Host:glances.{{ ansible_nas_domain }}" traefik.enable: "{{ glances_available_externally }}" - traefik.port: "61208" + traefik.port: "{{ glances_port_one }}" \ No newline at end of file diff --git a/tasks/guacamole.yml b/tasks/guacamole.yml index 92578602..09ec4c5e 100644 --- a/tasks/guacamole.yml +++ b/tasks/guacamole.yml @@ -44,7 +44,7 @@ - guacamole-mysql:mysql - guacamole-guacd:guacd ports: - - "8090:8080" + - "{{ guacamole_port }}:8080" env: MYSQL_DATABASE: "guacamole" MYSQL_USER: "guacamole-user" @@ -55,4 +55,4 @@ traefik.backend: "guacamole" traefik.frontend.rule: "Host:guacamole.{{ ansible_nas_domain }}" traefik.enable: "{{ guacamole_available_externally }}" - traefik.port: "8080" + traefik.port: "{{ guacamole_port }}" \ No newline at end of file diff --git a/tasks/heimdall.yml b/tasks/heimdall.yml index 4ff0397a..dc7132f3 100644 --- a/tasks/heimdall.yml +++ b/tasks/heimdall.yml @@ -36,12 +36,12 @@ PGID: "1310" TZ: "{{ ansible_nas_timezone }}" ports: - - "10080:80" - - "10443:443" + - "{{ heimdall_port_http }}:80" + - "{{ heimdall_port_https }}:443" restart_policy: unless-stopped memory: 1g labels: traefik.backend: "heimdall" traefik.frontend.rule: "Host:heimdall.{{ ansible_nas_domain }}" traefik.enable: "{{ heimdall_available_externally }}" - traefik.port: "80" + traefik.port: "{{ heimdall_port_http }}" \ No newline at end of file diff --git a/tasks/homeassistant.yml b/tasks/homeassistant.yml index 3b615e3d..ece0fe81 100644 --- a/tasks/homeassistant.yml +++ b/tasks/homeassistant.yml @@ -13,7 +13,7 @@ volumes: - "{{ homeassistant_data_directory }}/config:/config:rw" ports: - - "8123:8123" + - "{{ homeassistant_port }}:8123" restart_policy: unless-stopped env: TZ: "{{ ansible_nas_timezone }}" @@ -21,6 +21,6 @@ traefik.backend: "homeassistant" traefik.frontend.rule: "Host:homeassistant.{{ ansible_nas_domain }}" traefik.enable: "{{ homeassistant_available_externally }}" - traefik.port: "8123" + traefik.port: "{{ homeassistant_port }}" traefik.frontend.headers.SSLRedirect: "true" memory: 1g diff --git a/tasks/homebridge.yml b/tasks/homebridge.yml index 20e63ec0..df43e4a9 100644 --- a/tasks/homebridge.yml +++ b/tasks/homebridge.yml @@ -19,11 +19,11 @@ PGID: "{{ homebridge_group_id }}" PUID: "{{ homebridge_user_id }}" HOMEBRIDGE_CONFIG_UI: "1" - HOMEBRIDGE_CONFIG_UI_PORT: "8087" + HOMEBRIDGE_CONFIG_UI_PORT: "{{ homebridge_port }}" restart_policy: unless-stopped memory: 1g labels: traefik.backend: "homebridge" traefik.frontend.rule: "Host:homebridge.{{ ansible_nas_domain }}" traefik.enable: "{{ homebridge_available_externally }}" - traefik.port: "8087" + traefik.port: "{{ homebridge_port }}" diff --git a/tasks/jackett.yml b/tasks/jackett.yml index 02c09e9f..9023ae3b 100644 --- a/tasks/jackett.yml +++ b/tasks/jackett.yml @@ -15,7 +15,7 @@ - "/etc/localtime:/etc/localtime:ro" - "{{ torrents_root }}:/downloads" ports: - - "9117:9117" + - "{{ jackett_port }}:9117" env: TZ: "{{ ansible_nas_timezone }}" restart_policy: unless-stopped @@ -23,4 +23,4 @@ traefik.backend: "jackett" traefik.frontend.rule: "Host:jackett.{{ ansible_nas_domain }}" traefik.enable: "{{ jackett_available_externally }}" - traefik.port: "9117" \ No newline at end of file + traefik.port: "{{ jackett_port }}" \ No newline at end of file diff --git a/tasks/jellyfin.yml b/tasks/jellyfin.yml index 8f864b40..34251144 100644 --- a/tasks/jellyfin.yml +++ b/tasks/jellyfin.yml @@ -15,8 +15,8 @@ - "{{ jellyfin_movies_directory }}:/movies:{{ jellyfin_movies_permissions }}" - "{{ jellyfin_tv_directory }}:/tv:{{ jellyfin_tv_permissions }}" ports: - - "8896:8096" # HTTP port - - "8928:8920" # HTTPS port + - "{{ jellyfin_port_http }}:8096" + - "{{ jellyfin_port_https }}:8920" env: TZ: "{{ ansible_nas_timezone }}" PUID: "{{ jellyfin_user_id }}" @@ -27,4 +27,4 @@ traefik.backend: "jellyfin" traefik.frontend.rule: "Host:jellyfin.{{ ansible_nas_domain }}" traefik.enable: "{{ jellyfin_available_externally }}" - traefik.port: "8096" + traefik.port: "{{ jellyfin_port_https }}" \ No newline at end of file diff --git a/tasks/joomla.yml b/tasks/joomla.yml index 41888ff5..87d0df29 100644 --- a/tasks/joomla.yml +++ b/tasks/joomla.yml @@ -29,7 +29,7 @@ volumes: - "{{ joomla_data_directory }}:/var/www/html:rw" ports: - - "8181:80" + - "{{ joomla_port }}:80" links: - "joomla_mysql:mysql" env: @@ -42,4 +42,4 @@ traefik.backend: "joomla" traefik.frontend.rule: "Host: joomla.{{ ansible_nas_domain }}" traefik.enable: "{{ joomla_available_externally }}" - traefik.port: "80" + traefik.port: "{{ joomla_port }}" \ No newline at end of file diff --git a/tasks/minidlna.yml b/tasks/minidlna.yml index 58ef7129..9402700d 100644 --- a/tasks/minidlna.yml +++ b/tasks/minidlna.yml @@ -7,12 +7,12 @@ - "{{ minidlna_media_directory1 }}:/media1:rw" - "{{ minidlna_media_directory2 }}:/media2:rw" ports: - - "8201:8201" + - "{{ minidlna_port }}:8201" env: MINIDLNA_MEDIA_DIR1: "/media1" MINIDLNA_MEDIA_DIR2: "/media2" MINIDLNA_FRIENDLY_NAME: "{{ minidlna_friendly_name }}" - MINIDLNA_PORT: "8201" + MINIDLNA_PORT: "{{ minidlna_port }}" network_mode: host restart_policy: unless-stopped memory: 1g diff --git a/tasks/miniflux.yml b/tasks/miniflux.yml index 5d497a17..1feef495 100644 --- a/tasks/miniflux.yml +++ b/tasks/miniflux.yml @@ -26,7 +26,7 @@ links: - miniflux-postgres:db ports: - - "8070:8080" + - "{{ miniflux_port }}:8080" env: DATABASE_URL: "postgres://miniflux:supersecure@db/miniflux?sslmode=disable" RUN_MIGRATIONS: "1" @@ -39,4 +39,4 @@ traefik.backend: "miniflux" traefik.frontend.rule: "Host:miniflux.{{ ansible_nas_domain }}" traefik.enable: "{{ miniflux_available_externally }}" - traefik.port: "8080" + traefik.port: "{{ miniflux_port }}" \ No newline at end of file diff --git a/tasks/mosquitto.yml b/tasks/mosquitto.yml index 4a2ae235..1d1e2232 100644 --- a/tasks/mosquitto.yml +++ b/tasks/mosquitto.yml @@ -23,7 +23,7 @@ - "{{ mosquitto_data_directory }}/data:/mosquitto/data:rw" - "{{ mosquitto_data_directory }}/log:/mosquitto/log:rw" ports: - - "1883:1883" - - "9001:9001" + - "{{ mosquitto_port_a }}:1883" + - "{{ mosquitto_port_b }}:9001" restart_policy: unless-stopped memory: 1g diff --git a/tasks/netdata.yml b/tasks/netdata.yml index d4c7a5c8..2ece6e16 100644 --- a/tasks/netdata.yml +++ b/tasks/netdata.yml @@ -12,7 +12,7 @@ state: started pull: true ports: - - "19999:19999" + - "{{ netdata_port }}:19999" volumes: - "/proc:/host/proc:ro" - "/sys:/host/sys:ro" @@ -29,4 +29,4 @@ traefik.backend: "netdata" traefik.frontend.rule: "Host:netdata.{{ ansible_nas_domain }}" traefik.enable: "{{ netdata_available_externally }}" - traefik.port: "19999" \ No newline at end of file + traefik.port: "{{ netdata_port }}" \ No newline at end of file diff --git a/tasks/nextcloud.yml b/tasks/nextcloud.yml index 63789d5d..2bd3c05b 100644 --- a/tasks/nextcloud.yml +++ b/tasks/nextcloud.yml @@ -32,7 +32,7 @@ volumes: - "{{ nextcloud_data_directory }}/nextcloud:/var/www/html:rw" ports: - - "8080:80" + - "{{ nextcloud_port }}:80" env: MYSQL_HOST: "mysql" MYSQL_DATABASE: "nextcloud" @@ -45,4 +45,4 @@ traefik.backend: "nextcloud" traefik.frontend.rule: "Host:nextcloud.{{ ansible_nas_domain }}" traefik.enable: "{{ nextcloud_available_externally }}" - traefik.port: "80" + traefik.port: "{{ nextcloud_port }}" \ No newline at end of file diff --git a/tasks/nginx.yml b/tasks/nginx.yml index 80b30574..56cd23a7 100644 --- a/tasks/nginx.yml +++ b/tasks/nginx.yml @@ -15,8 +15,8 @@ image: jwilder/nginx-proxy pull: true ports: - - "80:80" - - "443:443" + - "{{ nginx_port_http }}:80" + - "{{ nginx_port_https }}:443" volumes: - "{{ nginx_data_directory }}/certs:/etc/nginx/certs:ro" - "{{ nginx_data_directory }}/vhost.d:/etc/nginx/vhost.d:rw" diff --git a/tasks/nzbget.yml b/tasks/nzbget.yml index 8d94cbf0..3731ea14 100644 --- a/tasks/nzbget.yml +++ b/tasks/nzbget.yml @@ -15,7 +15,7 @@ - "{{ nzbget_download_directory }}:/downloads:rw" - "{{ nzbget_data_directory }}:/config:rw" ports: - - "6789:6789" + - "{{ nzbget_port }}:6789" env: TZ: "{{ ansible_nas_timezone }}" PUID: "{{ nzbget_user_id }}" @@ -26,4 +26,4 @@ traefik.backend: "nzbget" traefik.frontend.rule: "Host:nzbget.{{ ansible_nas_domain }}" traefik.enable: "{{ nzbget_available_externally }}" - traefik.port: "6789" \ No newline at end of file + traefik.port: "{{ nzbget_port }}" \ No newline at end of file diff --git a/tasks/openhab.yml b/tasks/openhab.yml index 312f60c8..f7ecef17 100644 --- a/tasks/openhab.yml +++ b/tasks/openhab.yml @@ -40,12 +40,12 @@ - "/etc/localtime:/etc/localtime:ro" - "/etc/timezone:/etc/timezone:ro" env: - OPENHAB_HTTP_PORT: "7777" - OPENHAB_HTTPS_PORT: "7778" + OPENHAB_HTTP_PORT: "{{ openhab_port_http }}" + OPENHAB_HTTPS_PORT: "{{ openhab_port_https }}" restart_policy: unless-stopped memory: 1g labels: traefik.backend: "openhab" traefik.frontend.rule: "Host:openhab.{{ ansible_nas_domain }}" traefik.enable: "{{ openhab_available_externally }}" - traefik.port: "80" + traefik.port: "{{ openhab_port_https }}" diff --git a/tasks/portainer.yml b/tasks/portainer.yml index 3ac0bf39..8f7da5e6 100644 --- a/tasks/portainer.yml +++ b/tasks/portainer.yml @@ -16,12 +16,11 @@ - "/var/run/docker.sock:/var/run/docker.sock:ro" - "/etc/timezone:/etc/timezone:ro" ports: - - "9000:9000" + - "{{ portainer_port }}:9000" restart_policy: unless-stopped memory: 1g labels: traefik.backend: "portainer" traefik.frontend.rule: "Host:portainer.{{ ansible_nas_domain }}" traefik.enable: "{{ portainer_available_externally }}" - traefik.port: "9000" - + traefik.port: "{{ portainer_port }}" \ No newline at end of file diff --git a/tasks/pyload.yml b/tasks/pyload.yml index 379e22a7..baa1aa1a 100644 --- a/tasks/pyload.yml +++ b/tasks/pyload.yml @@ -17,7 +17,7 @@ - "{{ pyload_config_directory }}:/opt/pyload/pyload-config:rw" - "{{ pyload_download_directory }}:/opt/pyload/Downloads:rw" ports: - - "8000:8000" + - "{{ pyload_port }}:8000" env: TZ: "{{ ansible_nas_timezone }}" UID: "{{ pyload_user_id }}" @@ -28,4 +28,4 @@ traefik.backend: "pyload" traefik.frontend.rule: "Host:pyload.{{ ansible_nas_domain }}" traefik.enable: "{{ pyload_available_externally }}" - traefik.port: "8000" + traefik.port: "{{ pyload_port }}" diff --git a/tasks/radarr.yml b/tasks/radarr.yml index 9e5ba6fb..60adc94c 100644 --- a/tasks/radarr.yml +++ b/tasks/radarr.yml @@ -16,7 +16,7 @@ - "{{ radarr_download_directory }}/complete:/downloads:rw" - "{{ radarr_data_directory }}:/config:rw" ports: - - "7878:7878" + - "{{ radarr_port }}:7878" env: TZ: "{{ ansible_nas_timezone }}" PUID: "{{ radarr_user_id }}" @@ -27,4 +27,4 @@ traefik.backend: "radarr" traefik.frontend.rule: "Host:radarr.{{ ansible_nas_domain }}" traefik.enable: "{{ radarr_available_externally }}" - traefik.port: "7878" \ No newline at end of file + traefik.port: "{{ radarr_port }}" \ No newline at end of file diff --git a/tasks/sickchill.yml b/tasks/sickchill.yml index aa862dfe..c3555014 100644 --- a/tasks/sickchill.yml +++ b/tasks/sickchill.yml @@ -23,7 +23,7 @@ - "{{ sickchill_downloads_directory }}:/downloads:rw" - "{{ sickchill_tv_directory }}:/tv:rw" ports: - - "8081:8081" + - "{{ sickchill_port }}:8081" env: TZ: "{{ ansible_nas_timezone }}" PUID: "{{ sickchill_user_id }}" @@ -34,4 +34,4 @@ traefik.backend: "sickchill" traefik.frontend.rule: "Host:sickchill.{{ ansible_nas_domain }}" traefik.enable: "{{ sickchill_available_externally }}" - traefik.port: "8081" + traefik.port: "{{ sickchill_port }}" diff --git a/tasks/sonarr.yml b/tasks/sonarr.yml index 40d2858a..c9b86e94 100644 --- a/tasks/sonarr.yml +++ b/tasks/sonarr.yml @@ -16,7 +16,7 @@ - "{{ sonarr_download_directory }}/complete:/downloads:rw" - "{{ sonarr_data_directory }}:/config:rw" ports: - - "8989:8989" + - "{{ sonarr_port }}:8989" env: TZ: "{{ ansible_nas_timezone }}" PUID: "{{ sonarr_user_id }}" @@ -27,4 +27,4 @@ traefik.backend: "sonarr" traefik.frontend.rule: "Host:sonarr.{{ ansible_nas_domain }}" traefik.enable: "{{ sonarr_available_externally }}" - traefik.port: "8989" \ No newline at end of file + traefik.port: "{{ sonarr_port }}" \ No newline at end of file diff --git a/tasks/stats.yml b/tasks/stats.yml index c9870b51..0f8c2f77 100644 --- a/tasks/stats.yml +++ b/tasks/stats.yml @@ -28,7 +28,7 @@ volumes: - "{{ influxdb_data_directory }}:/var/lib/influxdb:rw" ports: - - "8086:8086" + - "{{ grafana_influxdb_port }}:8086" restart_policy: unless-stopped env: INFLUXDB_LOGGING_LEVEL: "error" @@ -64,11 +64,11 @@ - "{{ grafana_data_directory }}/data:/var/lib/grafana:rw" - "{{ grafana_data_directory }}/config/provisioning:/etc/grafana/provisioning:ro" ports: - - "3000:3000" + - "{{ grafana_port }}:3000" restart_policy: unless-stopped memory: 1g labels: traefik.backend: "grafana" traefik.frontend.rule: "Host:grafana.{{ ansible_nas_domain }}" traefik.enable: "{{ grafana_available_externally }}" - traefik.port: "3000" \ No newline at end of file + traefik.port: "{{ grafana_port }}" \ No newline at end of file diff --git a/tasks/tautulli.yml b/tasks/tautulli.yml index 187faf96..c2774252 100644 --- a/tasks/tautulli.yml +++ b/tasks/tautulli.yml @@ -15,7 +15,9 @@ volumes: - "{{ tautulli_config_directory }}:/config:rw" - "{{ plex_logs }}:/logs:ro" - network_mode: "host" + #network_mode: "host" + ports: + - "{{ tautulli_port }}:8181" env: TZ: "{{ ansible_nas_timezone }}" PUID: "{{ tautulli_user_id }}" @@ -26,4 +28,4 @@ traefik.backend: "tautulli" traefik.frontend.rule: "Host:tautulli.{{ ansible_nas_domain }}" traefik.enable: "{{ tautulli_available_externally }}" - traefik.port: "8181" \ No newline at end of file + traefik.port: "{{ tautulli_port }}" \ No newline at end of file diff --git a/tasks/thelounge.yml b/tasks/thelounge.yml index 15311b56..25dec09c 100644 --- a/tasks/thelounge.yml +++ b/tasks/thelounge.yml @@ -19,8 +19,8 @@ image: thelounge/thelounge:latest pull: true ports: - - "113:9001" - - "9000:9000" + - "{{ thelounge_port_one }}:9001" + - "{{ thelounge_port_two }}:9000" volumes: - "{{ thelounge_data_directory }}:/var/opt/thelounge" - "/var/run/dbus:/var/run/dbus" @@ -30,5 +30,5 @@ traefik.backend: "thelounge" traefik.frontend.rule: "Host:thelounge.{{ ansible_nas_domain }}" traefik.enable: "{{ thelounge_available_externally }}" - traefik.port: "9000" + traefik.port: "thelounge_port_two" diff --git a/tasks/transmission.yml b/tasks/transmission.yml index 16c08ee6..c8205038 100644 --- a/tasks/transmission.yml +++ b/tasks/transmission.yml @@ -19,8 +19,8 @@ - "{{ transmission_download_directory }}:/downloads:rw" - "{{ transmission_watch_directory }}:/watch:rw" ports: - - "9092:9091" - - "51414:51413" + - "{{ transmission_webui_port }}:9091" + - "{{ transmission_external_port }}:51413" env: TZ: "{{ ansible_nas_timezone }}" PUID: "{{ transmission_user_id }}" @@ -31,4 +31,4 @@ traefik.backend: "transmission" traefik.frontend.rule: "Host:transmission.{{ ansible_nas_domain }}" traefik.enable: "{{ transmission_available_externally }}" - traefik.port: "9091" + traefik.port: "{{ transmission_webui_port }}" diff --git a/tasks/transmission_with_openvpn.yml b/tasks/transmission_with_openvpn.yml index 9bb8ad1f..67a227e1 100644 --- a/tasks/transmission_with_openvpn.yml +++ b/tasks/transmission_with_openvpn.yml @@ -24,8 +24,8 @@ - "{{ transmission_watch_directory }}:/storage/watch:rw" - "/etc/timezone:/etc/timezone:ro" ports: - - "9091:9091" - - "51413:51413" + - "{{ transmission_openvpn_webui_port }}:9091" + - "{{ transmission_openvpn_external_port }}:51413" env: TRANSMISSION_HOME: "/config" TRANSMISSION_DOWNLOAD_DIR: "/storage/downloads/complete" @@ -49,4 +49,4 @@ traefik.backend: "transmission-openvpn" traefik.frontend.rule: "Host:transmission-openvpn.{{ ansible_nas_domain }}" traefik.enable: "{{ transmission_with_openvpn_available_externally }}" - traefik.port: "9091" \ No newline at end of file + traefik.port: "{{ transmission_openvpn_webui_port }}" \ No newline at end of file diff --git a/tasks/wallabag.yml b/tasks/wallabag.yml index 993e5aec..cf26b086 100644 --- a/tasks/wallabag.yml +++ b/tasks/wallabag.yml @@ -15,7 +15,7 @@ - "{{ wallabag_data_directory }}/data:/var/www/wallabag/data:rw" - "{{ wallabag_data_directory }}/images:/var/www/wallabag/web/assets/images:rw" ports: - - "7780:80" + - "{{ wallabag_port }}:80" env: SYMFONY__ENV__DOMAIN_NAME: "https://wallabag.{{ ansible_nas_domain }}" restart_policy: unless-stopped @@ -23,6 +23,6 @@ traefik.backend: "wallabag" traefik.frontend.rule: "Host:wallabag.{{ ansible_nas_domain }}" traefik.enable: "{{ wallabag_available_externally }}" - traefik.port: "80" + traefik.port: "{{ wallabag_port }}" traefik.frontend.headers.SSLRedirect: "true" memory: 1g \ No newline at end of file diff --git a/tasks/znc.yml b/tasks/znc.yml index 2b5b5c09..7e2e357f 100644 --- a/tasks/znc.yml +++ b/tasks/znc.yml @@ -15,7 +15,7 @@ - "{{ znc_data_directory }}:/znc-data:rw" - "/etc/timezone:/etc/timezone:ro" ports: - - "6677:6677" + - "{{ znc_port }}:6677" env: PUID: "{{ znc_user_id }}" PGID: "{{ znc_group_id }}" @@ -25,4 +25,4 @@ traefik.backend: "znc" traefik.frontend.rule: "Host:znc.{{ ansible_nas_domain }}" traefik.enable: "{{ znc_available_externally }}" - traefik.port: "6677" \ No newline at end of file + traefik.port: "{{ znc_port }}" \ No newline at end of file From 488c89c89a13bede3a15995bd8e6b02d32a67e77 Mon Sep 17 00:00:00 2001 From: animeai <6061753+animeai@users.noreply.github.com> Date: Sun, 5 Jan 2020 22:55:05 +0000 Subject: [PATCH 04/29] map ports for new containers --- tasks/lidarr.yml | 4 ++-- tasks/ubooquity.yml | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tasks/lidarr.yml b/tasks/lidarr.yml index c17ba1f5..86293867 100644 --- a/tasks/lidarr.yml +++ b/tasks/lidarr.yml @@ -14,7 +14,7 @@ - "{{ lidarr_downloads_directory }}:/downloads:rw" - "{{ lidarr_data_directory }}:/config:rw" ports: - - "8686:8686" + - "{{ lidarr_port }}:8686" env: TZ: "{{ ansible_nas_timezone }}" PUID: "{{ lidarr_user_id }}" @@ -25,4 +25,4 @@ traefik.backend: "lidarr" traefik.frontend.rule: "Host:lidarr.{{ ansible_nas_domain }}" traefik.enable: "{{ lidarr_available_externally }}" - traefik.port: "8686" \ No newline at end of file + traefik.port: "{{ lidarr_port }}" \ No newline at end of file diff --git a/tasks/ubooquity.yml b/tasks/ubooquity.yml index 6d159a22..b2828c77 100644 --- a/tasks/ubooquity.yml +++ b/tasks/ubooquity.yml @@ -22,11 +22,11 @@ PGID: "{{ ubooquity_group_id|quote }}" MAXMEM: "1024" ports: - - "2202:2202" - - "2203:2203" + - "{{ ubooquity_port_a }}:2202" + - "{{ ubooquity_port_b }}:2203" restart_policy: unless-stopped labels: traefik.backend: "ubooquity" traefik.frontend.rule: "Host:ubooquity.{{ ansible_nas_domain }}" traefik.enable: "{{ ubooquity_available_externally }}" - traefik.port: "2202" + traefik.port: "{{ ubooquity_port_a }}" From 5a923d43c8273c8bd386e02b2797f228c8fb8656 Mon Sep 17 00:00:00 2001 From: animeai Date: Tue, 7 Jan 2020 21:54:25 +0000 Subject: [PATCH 05/29] fix permissions --- tests/test-vagrant.sh | 0 tests/test.sh | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 tests/test-vagrant.sh mode change 100644 => 100755 tests/test.sh diff --git a/tests/test-vagrant.sh b/tests/test-vagrant.sh old mode 100644 new mode 100755 diff --git a/tests/test.sh b/tests/test.sh old mode 100644 new mode 100755 From f76e599cf39d0a7c1df2bea5afe15dbcd4b38740 Mon Sep 17 00:00:00 2001 From: animeai <6061753+animeai@users.noreply.github.com> Date: Thu, 9 Jan 2020 14:59:51 +0000 Subject: [PATCH 06/29] Update all.yml --- group_vars/all.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/group_vars/all.yml b/group_vars/all.yml index 9dee5fa3..3984f39e 100644 --- a/group_vars/all.yml +++ b/group_vars/all.yml @@ -284,7 +284,6 @@ cloudflare_email: "{{ ansible_nas_email }}" # Cloudflare 'Global API Key', can be found on the 'My Profile' page cloudflare_api_key: abcdeabcdeabcdeabcde1234512345 - ### ### General ### From 8e4c391b6971b8c32913eb85d2bc486fb12e64b9 Mon Sep 17 00:00:00 2001 From: animeai <6061753+animeai@users.noreply.github.com> Date: Fri, 10 Jan 2020 01:53:51 +0000 Subject: [PATCH 07/29] Add sonarr and radarr docs A La #85, but updated slightly and split into seperate documents. --- docs/applications/radarr.md | 21 +++++++++++++++++++++ docs/applications/sonarr.md | 22 ++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 docs/applications/radarr.md create mode 100644 docs/applications/sonarr.md diff --git a/docs/applications/radarr.md b/docs/applications/radarr.md new file mode 100644 index 00000000..bcabe690 --- /dev/null +++ b/docs/applications/radarr.md @@ -0,0 +1,21 @@ +# Sonarr & Radarr +Homepage: [radarr](https://radarr.video/) + +**Radarr** is an independent fork of Sonarr reworked for automatically downloading movies via Usenet and BitTorrent. + +## Usage + +Set `radarr_enabled: true` in your `/inventories/[my inventory]/group_vars/nas.yml` file. + +The Radarr web interface can be found at `http://ansible_nas_host_or_ip:7878 by default + +## Specific Configuration + +**First make sure Radarr has permissions to write and read the `/download`, and `/movies` folders**. Do this by ensuring the `radarr_movies_directory:` and `radarr_download_directory` settings are correct. + +Radarr will get the file path from the Download client. On default settings with Transmission the path is `/storage/downloads/complete`. You will need to create a path mapping in the **Remote Path Mappings** settings under **Download Client** to point to your internal path that is by default `/downloads`. *If you have difficulties with the path mapping you could also just add a new volume path for the Transmission container and use `/downloads` as the download directory.* + +For Radarr to understand that the `/movies` folder is a folder, you'll need to add a new subfolder into it. +You can also do this by adding a random movie to the folder. Keep in mind to have the internal setting **Create empty movie folders** on **yes** + +Comprehensive setup information can be found on the [Radarr github wiki](https://github.com/Radarr/Radarr/wiki/Setup-Guide) \ No newline at end of file diff --git a/docs/applications/sonarr.md b/docs/applications/sonarr.md new file mode 100644 index 00000000..099bf422 --- /dev/null +++ b/docs/applications/sonarr.md @@ -0,0 +1,22 @@ +# Sonarr & Radarr +Homepages: [sonarr](https://sonarr.tv/) + +**Sonarr** is a PVR for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. + +## Usage + +Set `sonarr_enabled: true` in your `/inventories/[my inventory]/group_vars/nas.yml` file. + +The Sonarr web interface can be found at `http://ansible_nas_host_or_ip:8989` by default + + +## Specific Configuration + +**First make sure Sonarr has permissions to write and read the `/download` and `/tv` folders**. Do this by ensuring the `sonarr_movies_directory:` and `sonarr_download_directory` settings are correct. + +Sonarr will get the file path from the Download client. On default settings with Transmission the path is `/storage/downloads/complete`. You will need to create a path mapping in the **Remote Path Mappings** settings under **Download Client** to point to your internal path that is by default `/downloads`. *If you have difficulties with the path mapping you could also just add a new volume path for the Transmission container and use `/downloads` as the download directory.* + +For Sonarr to understand that the `/tv` folder is a folder, you'll need to add a folder into it. +You can also do this by adding a random series to the folder. Keep in mind to have the setting **Create empty movie folders** on **yes** + +For comprehensive configuration instructions see the [Sonarr github wiki(https://github.com/Sonarr/Sonarr/wiki) \ No newline at end of file From bc04b648ddd10d12497e7b80853f1ecd5d6166cd Mon Sep 17 00:00:00 2001 From: animeai <6061753+animeai@users.noreply.github.com> Date: Fri, 10 Jan 2020 01:54:58 +0000 Subject: [PATCH 08/29] Update radarr.md --- docs/applications/radarr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/applications/radarr.md b/docs/applications/radarr.md index bcabe690..fd2c3897 100644 --- a/docs/applications/radarr.md +++ b/docs/applications/radarr.md @@ -7,7 +7,7 @@ Homepage: [radarr](https://radarr.video/) Set `radarr_enabled: true` in your `/inventories/[my inventory]/group_vars/nas.yml` file. -The Radarr web interface can be found at `http://ansible_nas_host_or_ip:7878 by default +The Radarr web interface can be found at `http://ansible_nas_host_or_ip:7878` by default ## Specific Configuration From faa46badeff594abe9ec7a93bc1f52c12f123a81 Mon Sep 17 00:00:00 2001 From: animeai <6061753+animeai@users.noreply.github.com> Date: Fri, 10 Jan 2020 01:55:43 +0000 Subject: [PATCH 09/29] Update sonarr.md --- docs/applications/sonarr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/applications/sonarr.md b/docs/applications/sonarr.md index 099bf422..924d5792 100644 --- a/docs/applications/sonarr.md +++ b/docs/applications/sonarr.md @@ -19,4 +19,4 @@ Sonarr will get the file path from the Download client. On default settings with For Sonarr to understand that the `/tv` folder is a folder, you'll need to add a folder into it. You can also do this by adding a random series to the folder. Keep in mind to have the setting **Create empty movie folders** on **yes** -For comprehensive configuration instructions see the [Sonarr github wiki(https://github.com/Sonarr/Sonarr/wiki) \ No newline at end of file +For comprehensive configuration instructions see the [Sonarr github wiki](https://github.com/Sonarr/Sonarr/wiki) \ No newline at end of file From 8807ba4057f65293422f5cf2cc50e67f53299779 Mon Sep 17 00:00:00 2001 From: animeai <6061753+animeai@users.noreply.github.com> Date: Thu, 16 Jan 2020 05:19:15 +0000 Subject: [PATCH 10/29] map traefik --- group_vars/all.yml | 4 +++- templates/traefik/traefik.toml | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/group_vars/all.yml b/group_vars/all.yml index 3984f39e..e1e016a4 100644 --- a/group_vars/all.yml +++ b/group_vars/all.yml @@ -99,7 +99,9 @@ joomla_enabled: false # You'll also need to map ports 80 and 443 from your router to your ansible-nas server, then enable the per-app "available_externally" # settings. traefik_enabled: false - +traefik_port_http: "80" +traefik_port_https: "443" +traefik_port_ui: "8083" ### ### General ### diff --git a/templates/traefik/traefik.toml b/templates/traefik/traefik.toml index c1c2a113..b54beee3 100644 --- a/templates/traefik/traefik.toml +++ b/templates/traefik/traefik.toml @@ -30,16 +30,16 @@ defaultEntryPoints = ["http", "https"] [entryPoints] [entryPoints.http] - address = ":80" + address = ":{{ traefik_port_http }}" [entryPoints.http.redirect] entryPoint = "https" [entryPoints.https] - address = ":443" + address = ":{{ traefik_port_https }}" [entryPoints.https.tls] [entryPoints.traefik] - address = ":8083" + address = ":{{ traefik_port_ui }}" ################################################################ # Traefik logs configuration From 1182e77172aaf9eb094d165aeed1040f6fe331b4 Mon Sep 17 00:00:00 2001 From: animeai <6061753+animeai@users.noreply.github.com> Date: Thu, 16 Jan 2020 09:52:26 +0000 Subject: [PATCH 11/29] Update homeassistant.yml Network Mode Host --- tasks/homeassistant.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/homeassistant.yml b/tasks/homeassistant.yml index 43a3604d..6e1ecd42 100644 --- a/tasks/homeassistant.yml +++ b/tasks/homeassistant.yml @@ -14,7 +14,7 @@ - "{{ homeassistant_data_directory }}/config:/config:rw" ports: - "{{ homeassistant_port }}:8123" - #network_mode: host + network_mode: host restart_policy: unless-stopped env: TZ: "{{ ansible_nas_timezone }}" From 3fdb963aa6084165dae7d3e3f942a3d2c44c07b1 Mon Sep 17 00:00:00 2001 From: David Stephens Date: Thu, 16 Jan 2020 22:33:14 +0000 Subject: [PATCH 12/29] Create application_request.md --- .github/ISSUE_TEMPLATE/application_request.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/application_request.md diff --git a/.github/ISSUE_TEMPLATE/application_request.md b/.github/ISSUE_TEMPLATE/application_request.md new file mode 100644 index 00000000..952e580e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/application_request.md @@ -0,0 +1,15 @@ +--- +name: Application Request +about: Suggest an application to be added to Ansible-NAS +title: '' +labels: 'enhancement' +assignees: '' + +--- + +**Application you'd like to add:** + +**Link to Docker image:** + +**Why you'd like this application added:** + From 6295d80a4958ff00cf23d3da4a7618b7671f27ea Mon Sep 17 00:00:00 2001 From: David Stephens Date: Sat, 18 Jan 2020 18:16:24 +0000 Subject: [PATCH 13/29] Fix Traefik forwarding ports (shouldn't be configurable) --- group_vars/all.yml | 4 ++-- tasks/airsonic.yml | 2 +- tasks/bazarr.yml | 2 +- tasks/bitwarden.yml | 2 +- tasks/calibre.yml | 2 +- tasks/cloudcmd.yml | 2 +- tasks/couchpotato.yml | 2 +- tasks/duplicati.yml | 2 +- tasks/emby.yml | 2 +- tasks/firefly.yml | 2 +- tasks/gitea.yml | 2 +- tasks/glances.yml | 2 +- tasks/guacamole.yml | 2 +- tasks/heimdall.yml | 2 +- tasks/homeassistant.yml | 4 +--- tasks/homebridge.yml | 2 +- tasks/jackett.yml | 2 +- tasks/jellyfin.yml | 2 +- tasks/joomla.yml | 2 +- tasks/lidarr.yml | 2 +- tasks/minidlna.yml | 2 +- tasks/miniflux.yml | 2 +- tasks/netdata.yml | 2 +- tasks/nextcloud.yml | 2 +- tasks/nzbget.yml | 2 +- tasks/openhab.yml | 2 +- tasks/portainer.yml | 2 +- tasks/pyload.yml | 2 +- tasks/radarr.yml | 2 +- tasks/sickchill.yml | 2 +- tasks/sonarr.yml | 2 +- tasks/stats.yml | 2 +- tasks/tautulli.yml | 2 +- tasks/thelounge.yml | 2 +- tasks/transmission.yml | 2 +- tasks/transmission_with_openvpn.yml | 2 +- tasks/ubooquity.yml | 6 +++--- tasks/wallabag.yml | 2 +- tasks/znc.yml | 2 +- 39 files changed, 42 insertions(+), 44 deletions(-) diff --git a/group_vars/all.yml b/group_vars/all.yml index e1e016a4..9aa0aedc 100644 --- a/group_vars/all.yml +++ b/group_vars/all.yml @@ -784,5 +784,5 @@ ubooquity_available_externally: "false" ubooquity_data_directory: "{{ docker_home }}/ubooquity" ubooquity_user_id: "0" ubooquity_group_id: "0" -ubooquity_port_a: "2202" -ubooquity_port_b: "2203" \ No newline at end of file +ubooquity_port_webui: "2202" +ubooquity_port_admin: "2203" \ No newline at end of file diff --git a/tasks/airsonic.yml b/tasks/airsonic.yml index fe93a3a7..c6844db6 100644 --- a/tasks/airsonic.yml +++ b/tasks/airsonic.yml @@ -26,5 +26,5 @@ traefik.backend: "airsonic" traefik.frontend.rule: "Host:airsonic.{{ ansible_nas_domain }}" traefik.enable: "{{ airsonic_available_externally }}" - traefik.port: "{{ airsonic_port }}" + traefik.port: "4040" diff --git a/tasks/bazarr.yml b/tasks/bazarr.yml index 62bd3116..a606f5bc 100644 --- a/tasks/bazarr.yml +++ b/tasks/bazarr.yml @@ -27,4 +27,4 @@ traefik.backend: "bazarr" traefik.frontend.rule: "Host:bazarr.{{ ansible_nas_domain }}" traefik.enable: "{{ bazarr_available_externally }}" - traefik.port: "{{ bazarr_port }}" \ No newline at end of file + traefik.port: "6767" \ No newline at end of file diff --git a/tasks/bitwarden.yml b/tasks/bitwarden.yml index a8d9aad2..9d118c0f 100644 --- a/tasks/bitwarden.yml +++ b/tasks/bitwarden.yml @@ -23,7 +23,7 @@ labels: traefik.web.frontend.rule: "Host:bitwarden.{{ ansible_nas_domain }}" traefik.enable: "{{ bitwarden_available_externally }}" - traefik.web.port: "bitwarden_port_a" + traefik.web.port: "80" traefik.hub.frontend.rule: "Host:bitwarden.{{ ansible_nas_domain }};Path:/notifications/hub" traefik.hub.port: "bitwarden_port_b" traefik.hub.protocol: "ws" diff --git a/tasks/calibre.yml b/tasks/calibre.yml index 8545cec6..36781953 100644 --- a/tasks/calibre.yml +++ b/tasks/calibre.yml @@ -25,5 +25,5 @@ traefik.backend: "calibre" traefik.frontend.rule: "Host:calibre.{{ ansible_nas_domain }}" traefik.enable: "{{ calibre_available_externally }}" - traefik.port: "{{ calibre_port }} " + traefik.port: "8083" memory: 1g \ No newline at end of file diff --git a/tasks/cloudcmd.yml b/tasks/cloudcmd.yml index 6fe6d29b..3943b761 100644 --- a/tasks/cloudcmd.yml +++ b/tasks/cloudcmd.yml @@ -26,4 +26,4 @@ traefik.backend: "cloudcmd" traefik.frontend.rule: "Host:cloudcmd.{{ ansible_nas_domain }}" traefik.enable: "{{ cloudcmd_available_externally }}" - traefik.port: "{{ cloudcmd_port }}" \ No newline at end of file + traefik.port: "8000" \ No newline at end of file diff --git a/tasks/couchpotato.yml b/tasks/couchpotato.yml index b33893ab..c084a5bc 100644 --- a/tasks/couchpotato.yml +++ b/tasks/couchpotato.yml @@ -29,4 +29,4 @@ traefik.backend: "couchpotato" traefik.frontend.rule: "Host:couchpotato.{{ ansible_nas_domain }}" traefik.enable: "{{ couchpotato_available_externally }}" - traefik.port: "{{ couchpotato_port }}" \ No newline at end of file + traefik.port: "5050" \ No newline at end of file diff --git a/tasks/duplicati.yml b/tasks/duplicati.yml index cf7778bf..593ce80e 100644 --- a/tasks/duplicati.yml +++ b/tasks/duplicati.yml @@ -24,4 +24,4 @@ traefik.backend: "duplicati" traefik.frontend.rule: "Host:duplicati.{{ ansible_nas_domain }}" traefik.enable: "{{ duplicati_available_externally }}" - traefik.port: "{{ duplicati_port }}" + traefik.port: "8200" diff --git a/tasks/emby.yml b/tasks/emby.yml index 101434d4..38ec652c 100644 --- a/tasks/emby.yml +++ b/tasks/emby.yml @@ -28,4 +28,4 @@ traefik.backend: "emby" traefik.frontend.rule: "Host:emby.{{ ansible_nas_domain }}" traefik.enable: "{{ emby_available_externally }}" - traefik.port: "{{ emby_port_https }}" \ No newline at end of file + traefik.port: "8096" \ No newline at end of file diff --git a/tasks/firefly.yml b/tasks/firefly.yml index ed5a0213..5955d334 100644 --- a/tasks/firefly.yml +++ b/tasks/firefly.yml @@ -53,4 +53,4 @@ traefik.backend: "firefly" traefik.frontend.rule: "Host:firefly.{{ ansible_nas_domain }}" traefik.enable: "{{ firefly_available_externally }}" - traefik.port: "{{ firefly_port }}" \ No newline at end of file + traefik.port: "80" \ No newline at end of file diff --git a/tasks/gitea.yml b/tasks/gitea.yml index 8a3f3ef0..34efdfad 100644 --- a/tasks/gitea.yml +++ b/tasks/gitea.yml @@ -71,4 +71,4 @@ traefik.backend: "gitea" traefik.frontend.rule: "Host:gitea.{{ ansible_nas_domain }}" traefik.enable: "{{ gitea_available_externally }}" - traefik.port: "{{ gitea_port_http }}" + traefik.port: "3000" diff --git a/tasks/glances.yml b/tasks/glances.yml index ce1659a4..8b93b1f5 100644 --- a/tasks/glances.yml +++ b/tasks/glances.yml @@ -20,4 +20,4 @@ traefik.backend: "glances" traefik.frontend.rule: "Host:glances.{{ ansible_nas_domain }}" traefik.enable: "{{ glances_available_externally }}" - traefik.port: "{{ glances_port_one }}" \ No newline at end of file + traefik.port: "61208" \ No newline at end of file diff --git a/tasks/guacamole.yml b/tasks/guacamole.yml index 09ec4c5e..061a2058 100644 --- a/tasks/guacamole.yml +++ b/tasks/guacamole.yml @@ -55,4 +55,4 @@ traefik.backend: "guacamole" traefik.frontend.rule: "Host:guacamole.{{ ansible_nas_domain }}" traefik.enable: "{{ guacamole_available_externally }}" - traefik.port: "{{ guacamole_port }}" \ No newline at end of file + traefik.port: "8080" \ No newline at end of file diff --git a/tasks/heimdall.yml b/tasks/heimdall.yml index dc7132f3..c7e9670b 100644 --- a/tasks/heimdall.yml +++ b/tasks/heimdall.yml @@ -44,4 +44,4 @@ traefik.backend: "heimdall" traefik.frontend.rule: "Host:heimdall.{{ ansible_nas_domain }}" traefik.enable: "{{ heimdall_available_externally }}" - traefik.port: "{{ heimdall_port_http }}" \ No newline at end of file + traefik.port: "80" \ No newline at end of file diff --git a/tasks/homeassistant.yml b/tasks/homeassistant.yml index 6e1ecd42..7645fd6e 100644 --- a/tasks/homeassistant.yml +++ b/tasks/homeassistant.yml @@ -12,8 +12,6 @@ pull: true volumes: - "{{ homeassistant_data_directory }}/config:/config:rw" - ports: - - "{{ homeassistant_port }}:8123" network_mode: host restart_policy: unless-stopped env: @@ -22,6 +20,6 @@ traefik.backend: "homeassistant" traefik.frontend.rule: "Host:homeassistant.{{ ansible_nas_domain }}" traefik.enable: "{{ homeassistant_available_externally }}" - traefik.port: "{{ homeassistant_port }}" + traefik.port: "8123" traefik.frontend.headers.SSLRedirect: "true" memory: 1g diff --git a/tasks/homebridge.yml b/tasks/homebridge.yml index df43e4a9..fffd970c 100644 --- a/tasks/homebridge.yml +++ b/tasks/homebridge.yml @@ -26,4 +26,4 @@ traefik.backend: "homebridge" traefik.frontend.rule: "Host:homebridge.{{ ansible_nas_domain }}" traefik.enable: "{{ homebridge_available_externally }}" - traefik.port: "{{ homebridge_port }}" + traefik.port: "8087" diff --git a/tasks/jackett.yml b/tasks/jackett.yml index 9023ae3b..5ac80cd0 100644 --- a/tasks/jackett.yml +++ b/tasks/jackett.yml @@ -23,4 +23,4 @@ traefik.backend: "jackett" traefik.frontend.rule: "Host:jackett.{{ ansible_nas_domain }}" traefik.enable: "{{ jackett_available_externally }}" - traefik.port: "{{ jackett_port }}" \ No newline at end of file + traefik.port: "9117" \ No newline at end of file diff --git a/tasks/jellyfin.yml b/tasks/jellyfin.yml index 34251144..673cf6d7 100644 --- a/tasks/jellyfin.yml +++ b/tasks/jellyfin.yml @@ -27,4 +27,4 @@ traefik.backend: "jellyfin" traefik.frontend.rule: "Host:jellyfin.{{ ansible_nas_domain }}" traefik.enable: "{{ jellyfin_available_externally }}" - traefik.port: "{{ jellyfin_port_https }}" \ No newline at end of file + traefik.port: "8096" \ No newline at end of file diff --git a/tasks/joomla.yml b/tasks/joomla.yml index 87d0df29..c5507932 100644 --- a/tasks/joomla.yml +++ b/tasks/joomla.yml @@ -42,4 +42,4 @@ traefik.backend: "joomla" traefik.frontend.rule: "Host: joomla.{{ ansible_nas_domain }}" traefik.enable: "{{ joomla_available_externally }}" - traefik.port: "{{ joomla_port }}" \ No newline at end of file + traefik.port: "80" \ No newline at end of file diff --git a/tasks/lidarr.yml b/tasks/lidarr.yml index 86293867..0c48a8b2 100644 --- a/tasks/lidarr.yml +++ b/tasks/lidarr.yml @@ -25,4 +25,4 @@ traefik.backend: "lidarr" traefik.frontend.rule: "Host:lidarr.{{ ansible_nas_domain }}" traefik.enable: "{{ lidarr_available_externally }}" - traefik.port: "{{ lidarr_port }}" \ No newline at end of file + traefik.port: "8686" \ No newline at end of file diff --git a/tasks/minidlna.yml b/tasks/minidlna.yml index 9402700d..173657e8 100644 --- a/tasks/minidlna.yml +++ b/tasks/minidlna.yml @@ -12,7 +12,7 @@ MINIDLNA_MEDIA_DIR1: "/media1" MINIDLNA_MEDIA_DIR2: "/media2" MINIDLNA_FRIENDLY_NAME: "{{ minidlna_friendly_name }}" - MINIDLNA_PORT: "{{ minidlna_port }}" + MINIDLNA_PORT: "8201" network_mode: host restart_policy: unless-stopped memory: 1g diff --git a/tasks/miniflux.yml b/tasks/miniflux.yml index 1feef495..b5e2b24a 100644 --- a/tasks/miniflux.yml +++ b/tasks/miniflux.yml @@ -39,4 +39,4 @@ traefik.backend: "miniflux" traefik.frontend.rule: "Host:miniflux.{{ ansible_nas_domain }}" traefik.enable: "{{ miniflux_available_externally }}" - traefik.port: "{{ miniflux_port }}" \ No newline at end of file + traefik.port: "8080 \ No newline at end of file diff --git a/tasks/netdata.yml b/tasks/netdata.yml index 2ece6e16..7065a4f0 100644 --- a/tasks/netdata.yml +++ b/tasks/netdata.yml @@ -29,4 +29,4 @@ traefik.backend: "netdata" traefik.frontend.rule: "Host:netdata.{{ ansible_nas_domain }}" traefik.enable: "{{ netdata_available_externally }}" - traefik.port: "{{ netdata_port }}" \ No newline at end of file + traefik.port: "19999" \ No newline at end of file diff --git a/tasks/nextcloud.yml b/tasks/nextcloud.yml index 2bd3c05b..d712ded0 100644 --- a/tasks/nextcloud.yml +++ b/tasks/nextcloud.yml @@ -45,4 +45,4 @@ traefik.backend: "nextcloud" traefik.frontend.rule: "Host:nextcloud.{{ ansible_nas_domain }}" traefik.enable: "{{ nextcloud_available_externally }}" - traefik.port: "{{ nextcloud_port }}" \ No newline at end of file + traefik.port: "80" \ No newline at end of file diff --git a/tasks/nzbget.yml b/tasks/nzbget.yml index 3731ea14..88ad126c 100644 --- a/tasks/nzbget.yml +++ b/tasks/nzbget.yml @@ -26,4 +26,4 @@ traefik.backend: "nzbget" traefik.frontend.rule: "Host:nzbget.{{ ansible_nas_domain }}" traefik.enable: "{{ nzbget_available_externally }}" - traefik.port: "{{ nzbget_port }}" \ No newline at end of file + traefik.port: "6789" \ No newline at end of file diff --git a/tasks/openhab.yml b/tasks/openhab.yml index f7ecef17..e7ceefe9 100644 --- a/tasks/openhab.yml +++ b/tasks/openhab.yml @@ -48,4 +48,4 @@ traefik.backend: "openhab" traefik.frontend.rule: "Host:openhab.{{ ansible_nas_domain }}" traefik.enable: "{{ openhab_available_externally }}" - traefik.port: "{{ openhab_port_https }}" + traefik.port: "7777" diff --git a/tasks/portainer.yml b/tasks/portainer.yml index 8f7da5e6..ceaac16b 100644 --- a/tasks/portainer.yml +++ b/tasks/portainer.yml @@ -23,4 +23,4 @@ traefik.backend: "portainer" traefik.frontend.rule: "Host:portainer.{{ ansible_nas_domain }}" traefik.enable: "{{ portainer_available_externally }}" - traefik.port: "{{ portainer_port }}" \ No newline at end of file + traefik.port: "9000" \ No newline at end of file diff --git a/tasks/pyload.yml b/tasks/pyload.yml index baa1aa1a..e8587d73 100644 --- a/tasks/pyload.yml +++ b/tasks/pyload.yml @@ -28,4 +28,4 @@ traefik.backend: "pyload" traefik.frontend.rule: "Host:pyload.{{ ansible_nas_domain }}" traefik.enable: "{{ pyload_available_externally }}" - traefik.port: "{{ pyload_port }}" + traefik.port: "8000" diff --git a/tasks/radarr.yml b/tasks/radarr.yml index 60adc94c..a053db87 100644 --- a/tasks/radarr.yml +++ b/tasks/radarr.yml @@ -27,4 +27,4 @@ traefik.backend: "radarr" traefik.frontend.rule: "Host:radarr.{{ ansible_nas_domain }}" traefik.enable: "{{ radarr_available_externally }}" - traefik.port: "{{ radarr_port }}" \ No newline at end of file + traefik.port: "7878" \ No newline at end of file diff --git a/tasks/sickchill.yml b/tasks/sickchill.yml index c3555014..4883501f 100644 --- a/tasks/sickchill.yml +++ b/tasks/sickchill.yml @@ -34,4 +34,4 @@ traefik.backend: "sickchill" traefik.frontend.rule: "Host:sickchill.{{ ansible_nas_domain }}" traefik.enable: "{{ sickchill_available_externally }}" - traefik.port: "{{ sickchill_port }}" + traefik.port: "8081" diff --git a/tasks/sonarr.yml b/tasks/sonarr.yml index c9b86e94..e0f6d76d 100644 --- a/tasks/sonarr.yml +++ b/tasks/sonarr.yml @@ -27,4 +27,4 @@ traefik.backend: "sonarr" traefik.frontend.rule: "Host:sonarr.{{ ansible_nas_domain }}" traefik.enable: "{{ sonarr_available_externally }}" - traefik.port: "{{ sonarr_port }}" \ No newline at end of file + traefik.port: "8989" \ No newline at end of file diff --git a/tasks/stats.yml b/tasks/stats.yml index 0f8c2f77..5b885bbe 100644 --- a/tasks/stats.yml +++ b/tasks/stats.yml @@ -71,4 +71,4 @@ traefik.backend: "grafana" traefik.frontend.rule: "Host:grafana.{{ ansible_nas_domain }}" traefik.enable: "{{ grafana_available_externally }}" - traefik.port: "{{ grafana_port }}" \ No newline at end of file + traefik.port: "3000" \ No newline at end of file diff --git a/tasks/tautulli.yml b/tasks/tautulli.yml index c2774252..8f99cd29 100644 --- a/tasks/tautulli.yml +++ b/tasks/tautulli.yml @@ -28,4 +28,4 @@ traefik.backend: "tautulli" traefik.frontend.rule: "Host:tautulli.{{ ansible_nas_domain }}" traefik.enable: "{{ tautulli_available_externally }}" - traefik.port: "{{ tautulli_port }}" \ No newline at end of file + traefik.port: "8181" \ No newline at end of file diff --git a/tasks/thelounge.yml b/tasks/thelounge.yml index 25dec09c..94696948 100644 --- a/tasks/thelounge.yml +++ b/tasks/thelounge.yml @@ -30,5 +30,5 @@ traefik.backend: "thelounge" traefik.frontend.rule: "Host:thelounge.{{ ansible_nas_domain }}" traefik.enable: "{{ thelounge_available_externally }}" - traefik.port: "thelounge_port_two" + traefik.port: "9000" diff --git a/tasks/transmission.yml b/tasks/transmission.yml index c8205038..e2ce54ee 100644 --- a/tasks/transmission.yml +++ b/tasks/transmission.yml @@ -31,4 +31,4 @@ traefik.backend: "transmission" traefik.frontend.rule: "Host:transmission.{{ ansible_nas_domain }}" traefik.enable: "{{ transmission_available_externally }}" - traefik.port: "{{ transmission_webui_port }}" + traefik.port: "9091" diff --git a/tasks/transmission_with_openvpn.yml b/tasks/transmission_with_openvpn.yml index 124315da..cbfaa865 100644 --- a/tasks/transmission_with_openvpn.yml +++ b/tasks/transmission_with_openvpn.yml @@ -46,4 +46,4 @@ traefik.backend: "transmission-openvpn" traefik.frontend.rule: "Host:transmission-openvpn.{{ ansible_nas_domain }}" traefik.enable: "{{ transmission_with_openvpn_available_externally }}" - traefik.port: "{{ transmission_openvpn_webui_port }}" \ No newline at end of file + traefik.port: "9091" \ No newline at end of file diff --git a/tasks/ubooquity.yml b/tasks/ubooquity.yml index b2828c77..31e2b3a6 100644 --- a/tasks/ubooquity.yml +++ b/tasks/ubooquity.yml @@ -22,11 +22,11 @@ PGID: "{{ ubooquity_group_id|quote }}" MAXMEM: "1024" ports: - - "{{ ubooquity_port_a }}:2202" - - "{{ ubooquity_port_b }}:2203" + - "{{ ubooquity_port_webui }}:2202" + - "{{ ubooquity_port_admin }}:2203" restart_policy: unless-stopped labels: traefik.backend: "ubooquity" traefik.frontend.rule: "Host:ubooquity.{{ ansible_nas_domain }}" traefik.enable: "{{ ubooquity_available_externally }}" - traefik.port: "{{ ubooquity_port_a }}" + traefik.port: "2202" diff --git a/tasks/wallabag.yml b/tasks/wallabag.yml index cf26b086..c1a6065c 100644 --- a/tasks/wallabag.yml +++ b/tasks/wallabag.yml @@ -23,6 +23,6 @@ traefik.backend: "wallabag" traefik.frontend.rule: "Host:wallabag.{{ ansible_nas_domain }}" traefik.enable: "{{ wallabag_available_externally }}" - traefik.port: "{{ wallabag_port }}" + traefik.port: "80" traefik.frontend.headers.SSLRedirect: "true" memory: 1g \ No newline at end of file diff --git a/tasks/znc.yml b/tasks/znc.yml index 7e2e357f..63fa3a34 100644 --- a/tasks/znc.yml +++ b/tasks/znc.yml @@ -25,4 +25,4 @@ traefik.backend: "znc" traefik.frontend.rule: "Host:znc.{{ ansible_nas_domain }}" traefik.enable: "{{ znc_available_externally }}" - traefik.port: "{{ znc_port }}" \ No newline at end of file + traefik.port: "6677" \ No newline at end of file From aef4b8a664a7d640d61f20e0034dff54e9f03b2d Mon Sep 17 00:00:00 2001 From: David Stephens Date: Sat, 18 Jan 2020 18:20:35 +0000 Subject: [PATCH 14/29] Missing quote --- tasks/miniflux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/miniflux.yml b/tasks/miniflux.yml index b5e2b24a..056809d0 100644 --- a/tasks/miniflux.yml +++ b/tasks/miniflux.yml @@ -39,4 +39,4 @@ traefik.backend: "miniflux" traefik.frontend.rule: "Host:miniflux.{{ ansible_nas_domain }}" traefik.enable: "{{ miniflux_available_externally }}" - traefik.port: "8080 \ No newline at end of file + traefik.port: "8080" \ No newline at end of file From 910b8ddd9f15dd2c29b27e42a7466cd0715fcdd0 Mon Sep 17 00:00:00 2001 From: Malpractis <31232305+Malpractis@users.noreply.github.com> Date: Tue, 21 Jan 2020 08:49:01 +1100 Subject: [PATCH 15/29] update ansible installation instructions Ansible has their own PPA now. The existing instructions (tested on ubuntu 18.04) will result in ansible 2.5.2 being installed, whereas adding the PPA will result in the latest (2.9.3). --- docs/installation.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/installation.md b/docs/installation.md index 42a9e85c..bafb1019 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -11,6 +11,12 @@ You can run Ansible-NAS from the computer you plan to use for your NAS, or from 2. Install Ansible: + `sudo apt update` + + `sudo apt install software-properties-common` + + `sudo apt-add-repository --yes --update ppa:ansible/ansible` + `sudo apt install ansible` 3. Clone Ansible-NAS: @@ -27,4 +33,4 @@ You can run Ansible-NAS from the computer you plan to use for your NAS, or from 7. Install the dependent roles: `ansible-galaxy install -r requirements.yml` (you might need `sudo` to install Ansible roles). -8. Run the playbook - something like `ansible-playbook -i inventories/my-ansible-nas/inventory nas.yml -b -K` should do you nicely. \ No newline at end of file +8. Run the playbook - something like `ansible-playbook -i inventories/my-ansible-nas/inventory nas.yml -b -K` should do you nicely. From 6a46e5065a9141ddb97659c2577e2c92569664f8 Mon Sep 17 00:00:00 2001 From: Malpractis <31232305+Malpractis@users.noreply.github.com> Date: Tue, 21 Jan 2020 08:49:46 +1100 Subject: [PATCH 16/29] update docker-py to docker module docker-py has been deprecated and replaced by docker --- tasks/docker.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tasks/docker.yml b/tasks/docker.yml index 1b13dcfa..7ec0ab6f 100644 --- a/tasks/docker.yml +++ b/tasks/docker.yml @@ -6,9 +6,9 @@ register: result until: result is succeeded -- name: 'Install docker-py' +- name: 'Install docker python module' pip: - name: docker-py + name: docker state: present register: result until: result is succeeded @@ -37,4 +37,4 @@ state: restarted when: docker_config.changed tags: - - skip_ansible_lint \ No newline at end of file + - skip_ansible_lint From 719c6657e4c94a1999bcfe8a601cc399bd076fff Mon Sep 17 00:00:00 2001 From: David Stephens Date: Mon, 20 Jan 2020 22:26:07 +0000 Subject: [PATCH 17/29] Add Serposcope SEO tracking --- README.md | 2 ++ docs/applications/serposcope.md | 11 +++++++ docs/configuration/application_ports.md | 1 + group_vars/all.yml | 12 ++++++- nas.yml | 4 +++ tasks/serposcope.yml | 44 +++++++++++++++++++++++++ templates/traefik/traefik.toml | 1 + 7 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 docs/applications/serposcope.md create mode 100644 tasks/serposcope.yml diff --git a/README.md b/README.md index f57c4ee9..8b705b2b 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ Ansible config and a bunch of Docker containers. * Content management with Joomla * A dual panel local file manager * Self-service media request web application +* SEO tracking with Serposcope ### Available Applications @@ -67,6 +68,7 @@ Ansible config and a bunch of Docker containers. * [Portainer](https://portainer.io/) - for managing Docker and running custom images * [pyLoad](https://pyload.net/) - A download manager with a friendly web-interface * [Radarr](https://radarr.video/) - for organising and downloading movies +* [Serposcope](https://serposcope.serphacker.com/en/) - tracker to monitor website ranking * [Sickchill](https://sickchill.github.io/) - for managing TV episodes * [Sonarr](https://sonarr.tv/) - for downloading and managing TV episodes * [Tautulli](http://tautulli.com/) - Monitor Your Plex Media Server diff --git a/docs/applications/serposcope.md b/docs/applications/serposcope.md new file mode 100644 index 00000000..c450691d --- /dev/null +++ b/docs/applications/serposcope.md @@ -0,0 +1,11 @@ +# Serposcope + +Homepage: [https://serposcope.serphacker.com/en/](https://serposcope.serphacker.com/en/) + +Serposcope is a free and open-source rank tracker to monitor websites ranking in Google and improve your SEO performances + +## Usage + +Set `serposcope_enabled: true` in your `inventories//nas.yml` file. + +The Serposcope web interface can be found at http://ansible_nas_host_or_ip:7134. diff --git a/docs/configuration/application_ports.md b/docs/configuration/application_ports.md index 492d9b7f..3718e2ec 100644 --- a/docs/configuration/application_ports.md +++ b/docs/configuration/application_ports.md @@ -43,6 +43,7 @@ By default, applications can be found on the ports listed below. | Portainer | 9000 | | | pyload | 8000 | | | Radarr | 7878 | | +| Serposcope | 7134 | | | Sickchill | 8081 | | | Sonarr | 8989 | | | Tautulli | 8181 | | diff --git a/group_vars/all.yml b/group_vars/all.yml index 9aa0aedc..ddddd93a 100644 --- a/group_vars/all.yml +++ b/group_vars/all.yml @@ -93,6 +93,9 @@ ubooquity_enabled: false # Joomla joomla_enabled: false +# SEO +serposcope_enabled: false + # External Access # Traefik will allow access to certain applications externally. To enable this you'll either; a domain name that points to your # home static IP address, the cloudflare with the cloudflare_ddns dynamic DNS container enabled, or use a dynamic DNS provider like no-ip. @@ -785,4 +788,11 @@ ubooquity_data_directory: "{{ docker_home }}/ubooquity" ubooquity_user_id: "0" ubooquity_group_id: "0" ubooquity_port_webui: "2202" -ubooquity_port_admin: "2203" \ No newline at end of file +ubooquity_port_admin: "2203" + +### +### Serposcope +### +serposcope_data_directory: "{{ docker_home }}/serposcope" +serposcope_port: 7134 +serposcope_available_externally: "false" \ No newline at end of file diff --git a/nas.yml b/nas.yml index 56aeedc0..487e2940 100644 --- a/nas.yml +++ b/nas.yml @@ -215,3 +215,7 @@ - import_tasks: tasks/lidarr.yml when: (lidarr_enabled | default(False)) tags: lidarr + + - import_tasks: tasks/serposcope.yml + when: (serposcope_enabled | default(False)) + tags: serposcope diff --git a/tasks/serposcope.yml b/tasks/serposcope.yml new file mode 100644 index 00000000..9e855eed --- /dev/null +++ b/tasks/serposcope.yml @@ -0,0 +1,44 @@ +- name: Create Serposcope Directories + file: + path: "{{ item }}" + state: directory + with_items: + - "{{ serposcope_data_directory }}/mysql" + +- name: Create MySQL container for Serposcope + docker_container: + name: serposcope-mysql + image: mysql:5.7 + pull: true + volumes: + - "{{ serposcope_data_directory }}/mysql:/var/lib/mysql:rw" + env: + MYSQL_DATABASE: "serposcope" + MYSQL_USER: "serposcope" + MYSQL_PASSWORD: "serposcope" + MYSQL_ROOT_PASSWORD: "serposcope" + restart_policy: unless-stopped + memory: 1g + +- name: Wait for MySQL to init + pause: + seconds: 30 + +- name: Create Serposcope container + docker_container: + name: serposcope + image: davestephens/serposcope:2.11.0 + pull: true + links: + - serposcope-mysql:db + ports: + - "{{ serposcope_port }}:7134" + env: + SERPOSCOPE_DB_URL: 'jdbc:mysql://db:3306/serposcope?user=serposcope\&password=serposcope\&allowMultiQueries=true' + restart_policy: unless-stopped + memory: 1g + labels: + traefik.backend: "serposcope" + traefik.frontend.rule: "Host:serposcope.{{ ansible_nas_domain }}" + traefik.enable: "{{ serposcope_available_externally }}" + traefik.port: "7134" \ No newline at end of file diff --git a/templates/traefik/traefik.toml b/templates/traefik/traefik.toml index b54beee3..e51420f3 100644 --- a/templates/traefik/traefik.toml +++ b/templates/traefik/traefik.toml @@ -208,6 +208,7 @@ onDemand = false # create certificate when container is created "portainer.{{ ansible_nas_domain }}", "pyload.{{ ansible_nas_domain }}", "radarr.{{ ansible_nas_domain }}", + "serposcope.{{ ansible_nas_domain }}", "sickchill.{{ ansible_nas_domain }}", "sonarr.{{ ansible_nas_domain }}", "tautulli.{{ ansible_nas_domain }}", From b3d1fe6630d2415629dc581766e2a98877aa4796 Mon Sep 17 00:00:00 2001 From: Malpractis <31232305+Malpractis@users.noreply.github.com> Date: Thu, 23 Jan 2020 08:37:39 +1100 Subject: [PATCH 18/29] add check and remove for docker-py --- tasks/docker.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tasks/docker.yml b/tasks/docker.yml index 7ec0ab6f..8ac88ecb 100644 --- a/tasks/docker.yml +++ b/tasks/docker.yml @@ -5,6 +5,19 @@ state: present register: result until: result is succeeded + +- name: 'Check if docker-py is installed' + shell: pip3 show docker-py + ignore_errors: true + register: docker_py_check + +- name: 'Remove docker-py if installed' + pip: + name: docker-py + state: absent + when: docker_py_check.stdout.find('docker-py') != -1 + register: result + until: result is succeeded - name: 'Install docker python module' pip: From ba067abab8d40441510a8b1bc9500cb43304a136 Mon Sep 17 00:00:00 2001 From: Malpractis <31232305+Malpractis@users.noreply.github.com> Date: Thu, 23 Jan 2020 08:50:41 +1100 Subject: [PATCH 19/29] fix failed docker-py check fix failed docker-py check when docker-py not installed --- tasks/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/docker.yml b/tasks/docker.yml index 8ac88ecb..4db52a30 100644 --- a/tasks/docker.yml +++ b/tasks/docker.yml @@ -8,7 +8,7 @@ - name: 'Check if docker-py is installed' shell: pip3 show docker-py - ignore_errors: true + failed_when: docker_py_check.rc != 1 and docker_py_check.rc != 0 register: docker_py_check - name: 'Remove docker-py if installed' From 5a36cb61699bc8152a9af72fb1041dc454b703a5 Mon Sep 17 00:00:00 2001 From: Malpractis <31232305+Malpractis@users.noreply.github.com> Date: Thu, 23 Jan 2020 08:54:54 +1100 Subject: [PATCH 20/29] fix whitespace --- tasks/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/docker.yml b/tasks/docker.yml index 4db52a30..9f8ba84e 100644 --- a/tasks/docker.yml +++ b/tasks/docker.yml @@ -5,7 +5,7 @@ state: present register: result until: result is succeeded - + - name: 'Check if docker-py is installed' shell: pip3 show docker-py failed_when: docker_py_check.rc != 1 and docker_py_check.rc != 0 From 0c04655d7fb1173963112285f28ed096856ac915 Mon Sep 17 00:00:00 2001 From: Malpractis <31232305+Malpractis@users.noreply.github.com> Date: Thu, 23 Jan 2020 09:40:05 +1100 Subject: [PATCH 21/29] fixing docker-py check --- tasks/docker.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tasks/docker.yml b/tasks/docker.yml index 9f8ba84e..aa80d49d 100644 --- a/tasks/docker.yml +++ b/tasks/docker.yml @@ -8,8 +8,10 @@ - name: 'Check if docker-py is installed' shell: pip3 show docker-py - failed_when: docker_py_check.rc != 1 and docker_py_check.rc != 0 register: docker_py_check + failed_when: docker_py_check.rc != 1 and docker_py_check.rc != 0 + changed_when: + - '"docker-py" in docker_py_check.stdout' - name: 'Remove docker-py if installed' pip: From 7c3fcca750c9463ea641d50f85871302430b91b8 Mon Sep 17 00:00:00 2001 From: Malpractis <31232305+Malpractis@users.noreply.github.com> Date: Thu, 23 Jan 2020 09:55:49 +1100 Subject: [PATCH 22/29] Revert "fix whitespace" This reverts commit 5a36cb61699bc8152a9af72fb1041dc454b703a5. --- tasks/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/docker.yml b/tasks/docker.yml index 9f8ba84e..4db52a30 100644 --- a/tasks/docker.yml +++ b/tasks/docker.yml @@ -5,7 +5,7 @@ state: present register: result until: result is succeeded - + - name: 'Check if docker-py is installed' shell: pip3 show docker-py failed_when: docker_py_check.rc != 1 and docker_py_check.rc != 0 From 7675ba3feeffaf38673e0cd61996695a578105e6 Mon Sep 17 00:00:00 2001 From: Malpractis <31232305+Malpractis@users.noreply.github.com> Date: Thu, 23 Jan 2020 09:55:51 +1100 Subject: [PATCH 23/29] Revert "fix failed docker-py check" This reverts commit ba067abab8d40441510a8b1bc9500cb43304a136. --- tasks/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks/docker.yml b/tasks/docker.yml index 4db52a30..8ac88ecb 100644 --- a/tasks/docker.yml +++ b/tasks/docker.yml @@ -8,7 +8,7 @@ - name: 'Check if docker-py is installed' shell: pip3 show docker-py - failed_when: docker_py_check.rc != 1 and docker_py_check.rc != 0 + ignore_errors: true register: docker_py_check - name: 'Remove docker-py if installed' From 02a45643e7ac2604035403957fa58357742aba27 Mon Sep 17 00:00:00 2001 From: Malpractis <31232305+Malpractis@users.noreply.github.com> Date: Thu, 23 Jan 2020 09:55:56 +1100 Subject: [PATCH 24/29] Revert "add check and remove for docker-py" This reverts commit b3d1fe6630d2415629dc581766e2a98877aa4796. --- tasks/docker.yml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/tasks/docker.yml b/tasks/docker.yml index 8ac88ecb..7ec0ab6f 100644 --- a/tasks/docker.yml +++ b/tasks/docker.yml @@ -5,19 +5,6 @@ state: present register: result until: result is succeeded - -- name: 'Check if docker-py is installed' - shell: pip3 show docker-py - ignore_errors: true - register: docker_py_check - -- name: 'Remove docker-py if installed' - pip: - name: docker-py - state: absent - when: docker_py_check.stdout.find('docker-py') != -1 - register: result - until: result is succeeded - name: 'Install docker python module' pip: From d77df0ff6f8dc19a688cd6ba6e4841df17fc0ba6 Mon Sep 17 00:00:00 2001 From: Malpractis <31232305+Malpractis@users.noreply.github.com> Date: Thu, 23 Jan 2020 09:59:16 +1100 Subject: [PATCH 25/29] remove docker-py --- tasks/docker.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tasks/docker.yml b/tasks/docker.yml index 7ec0ab6f..f7ff349c 100644 --- a/tasks/docker.yml +++ b/tasks/docker.yml @@ -6,6 +6,13 @@ register: result until: result is succeeded +- name: 'Remove docker-py python module' + pip: + name: docker-py + state: absent + register: result + until: result is succeeded + - name: 'Install docker python module' pip: name: docker From 151200e3ed2e17e565ec4e4c066973802def4442 Mon Sep 17 00:00:00 2001 From: David Stephens Date: Sat, 25 Jan 2020 00:24:00 +0000 Subject: [PATCH 26/29] Switch Guacamole image, add docs --- docs/applications/guacamole.md | 13 +++++++ group_vars/all.yml | 2 -- tasks/guacamole.yml | 62 +++++++++++++++------------------- 3 files changed, 41 insertions(+), 36 deletions(-) create mode 100644 docs/applications/guacamole.md diff --git a/docs/applications/guacamole.md b/docs/applications/guacamole.md new file mode 100644 index 00000000..9e15ad13 --- /dev/null +++ b/docs/applications/guacamole.md @@ -0,0 +1,13 @@ +# Jellyfin + +Homepage: [hhttps://guacamole.apache.org/](https://guacamole.apache.org/) + +Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH. + +## Usage + +Set `guacamole_enabled: true` in your `inventories//nas.yml` file. + +## Specific Configuration + +The default username and password is `guacadmin`. Change it! \ No newline at end of file diff --git a/group_vars/all.yml b/group_vars/all.yml index ddddd93a..b3bbfaa0 100644 --- a/group_vars/all.yml +++ b/group_vars/all.yml @@ -592,8 +592,6 @@ nginx_port_https: "443" ### Guacamole ### guacamole_available_externally: "false" -guacamole_docker_image: guacamole/guacamole:0.9.14 -guacamole_guacd_docker_image: guacamole/guacd:0.9.14 guacamole_data_directory: "{{ docker_home }}/guacamole" guacamole_port: "8090" diff --git a/tasks/guacamole.yml b/tasks/guacamole.yml index 061a2058..09f167c3 100644 --- a/tasks/guacamole.yml +++ b/tasks/guacamole.yml @@ -4,55 +4,49 @@ path: "{{ item }}" state: directory with_items: - - "{{ guacamole_data_directory }}/mysql" + - "{{ guacamole_data_directory }}/config" -- name: Copy Guacamole database init script - copy: - src: files/guacamole/initdb-0.9.14.sql - dest: "{{ guacamole_data_directory }}/initdb-0.9.14.sql" - -- name: Guacamole Mysql Docker Container +- name: Remove Old Guacamole Mysql Docker Container docker_container: name: guacamole-mysql - image: mysql:5.7 - pull: true - volumes: - - "{{ guacamole_data_directory }}/mysql:/var/lib/mysql:rw" - - "{{ guacamole_data_directory }}/initdb-0.9.14.sql:/docker-entrypoint-initdb.d/initdb-0.9.14.sql:ro" - env: - MYSQL_DATABASE: "guacamole" - MYSQL_USER: "guacamole-user" - MYSQL_PASSWORD: "guacamole-pass" - MYSQL_ROOT_PASSWORD: "guacamole-secret" - restart_policy: unless-stopped - memory: 1g + state: absent + keep_volumes: true -- name: Guacamole guacd Container +- name: Remove Old Guacamole guacd Docker Container docker_container: name: guacamole-guacd - image: "{{ guacamole_guacd_docker_image }}" - pull: true - restart_policy: unless-stopped - memory: 1g + state: absent + keep_volumes: true -- name: Guacamole guacamole Container +- name: Remove old Guacamole directories + file: + path: "{{ item }}" + state: absent + with_items: + - "{{ guacamole_data_directory }}/mysql" + +# docker run -v /home/david/.guac:/config:rw -p 8080:8080 oznu/guacamole + + +- name: Guacamole Container docker_container: name: guacamole - image: "{{ guacamole_docker_image }}" + image: "oznu/guacamole" pull: true - links: - - guacamole-mysql:mysql - - guacamole-guacd:guacd + volumes: + - "{{ guacamole_data_directory }}/config:/config:rw" ports: - "{{ guacamole_port }}:8080" - env: - MYSQL_DATABASE: "guacamole" - MYSQL_USER: "guacamole-user" - MYSQL_PASSWORD: "guacamole-pass" restart_policy: unless-stopped memory: 1g labels: traefik.backend: "guacamole" traefik.frontend.rule: "Host:guacamole.{{ ansible_nas_domain }}" traefik.enable: "{{ guacamole_available_externally }}" - traefik.port: "8080" \ No newline at end of file + traefik.port: "8080" + +- name: Restart Guacamole Container + docker_container: + name: guacamole + image: "oznu/guacamole" + restart: true \ No newline at end of file From cc78a2cebcb64127621cfebc8ee41012d5a41d89 Mon Sep 17 00:00:00 2001 From: David Stephens Date: Sat, 25 Jan 2020 12:17:08 +0000 Subject: [PATCH 27/29] Add virtual desktop support --- README.md | 1 + docs/applications/guacamole.md | 8 +++++-- docs/applications/virtual_desktop.md | 30 ++++++++++++++++++++++++++ group_vars/all.yml | 14 +++++++++++- nas.yml | 4 ++++ tasks/virtual_desktop.yml | 30 ++++++++++++++++++++++++++ templates/virtual_desktop/users.txt.j2 | 1 + 7 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 docs/applications/virtual_desktop.md create mode 100644 tasks/virtual_desktop.yml create mode 100644 templates/virtual_desktop/users.txt.j2 diff --git a/README.md b/README.md index 8b705b2b..41e1b56e 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,7 @@ Ansible config and a bunch of Docker containers. * [Traefik](https://traefik.io/) - Web proxy and SSL certificate manager * [Transmission](https://transmissionbt.com/) - BitTorrent client (with OpenVPN if you have a supported VPN provider) * [Ubooquity](http://vaemendis.net/ubooquity/) - Book and comic server +* [Virtual Desktop](https://github.com/RattyDAVE/docker-ubuntu-xrdp-mate-custom) - A virtual desktop running on your NAS. * [Wallabag](https://wallabag.org/) - Save and classify articles. Read them later. * [Watchtower](https://github.com/v2tec/watchtower) - Monitor your Docker containers and update them if a new version is available * [ZNC](https://wiki.znc.in/ZNC) - IRC bouncer to stay connected to favourite IRC networks and channels diff --git a/docs/applications/guacamole.md b/docs/applications/guacamole.md index 9e15ad13..79d74185 100644 --- a/docs/applications/guacamole.md +++ b/docs/applications/guacamole.md @@ -1,4 +1,4 @@ -# Jellyfin +# Guacamole Homepage: [hhttps://guacamole.apache.org/](https://guacamole.apache.org/) @@ -10,4 +10,8 @@ Set `guacamole_enabled: true` in your `inventories//nas.yml` fil ## Specific Configuration -The default username and password is `guacadmin`. Change it! \ No newline at end of file +The default username and password is `guacadmin`. Change it! + +## What to connect to? + +You can run a virtual desktop from your Ansible-NAS box, check out the [docs](virtual_desktop). \ No newline at end of file diff --git a/docs/applications/virtual_desktop.md b/docs/applications/virtual_desktop.md new file mode 100644 index 00000000..e3ae18ef --- /dev/null +++ b/docs/applications/virtual_desktop.md @@ -0,0 +1,30 @@ +# Virtual Desktop + +It's possible to run a cut down desktop within a Docker container. We use [RattyDAVE's custom Ubuntu Mate image](https://github.com/RattyDAVE/docker-ubuntu-xrdp-mate-custom). + +## Usage + +Set `virtual_desktop_enabled: true` in your `inventories//nas.yml` file. + +## Specific Configuration + +By default `{{ ansible_nas_user }}` will be granted access with a password of `topsecret` with sudo rights. To change or add additional users override `vd_users` in your `nas.yml`: + +``` +vd_users: + - username: "{{ ansible_nas_user }}" + password: "topsecret" + sudo: "Y" + - username: "larrylaffer" + password: "kensentme" + sudo: "Y" +``` + +## Mounts + +`{{ samba_shares_root }}` is mounted to `/samba`. +`{{ docker_home }}` is mounted to `/docker`. + +## Remote Access + +It's possible to access your virtual desktop through a web browser! Check out [Guacamole](guacamole). \ No newline at end of file diff --git a/group_vars/all.yml b/group_vars/all.yml index b3bbfaa0..6bbe13d2 100644 --- a/group_vars/all.yml +++ b/group_vars/all.yml @@ -56,6 +56,7 @@ netdata_enabled: false watchtower_enabled: false cloudflare_ddns_enabled: false cloudcmd_enabled: false +virtual_desktop_enabled: false # Backup & Restore duplicati_enabled: false @@ -793,4 +794,15 @@ ubooquity_port_admin: "2203" ### serposcope_data_directory: "{{ docker_home }}/serposcope" serposcope_port: 7134 -serposcope_available_externally: "false" \ No newline at end of file +serposcope_available_externally: "false" + +### +### Virtual Desktop +### +vd_data_directory: "{{ docker_home }}/virtual_desktop" +vd_docker_image: "rattydave/docker-ubuntu-xrdp-mate-custom:19.10-tools" +vd_users: + - username: "{{ ansible_nas_user }}" + password: "topsecret" + sudo: "Y" +vd_rdp_port: 3389 \ No newline at end of file diff --git a/nas.yml b/nas.yml index 487e2940..f74093df 100644 --- a/nas.yml +++ b/nas.yml @@ -219,3 +219,7 @@ - import_tasks: tasks/serposcope.yml when: (serposcope_enabled | default(False)) tags: serposcope + + - import_tasks: tasks/virtual_desktop.yml + when: (virtual_desktop_enabled | default(False)) + tags: virtual_desktop diff --git a/tasks/virtual_desktop.yml b/tasks/virtual_desktop.yml new file mode 100644 index 00000000..90da6605 --- /dev/null +++ b/tasks/virtual_desktop.yml @@ -0,0 +1,30 @@ +--- +- name: Create Virtual Desktop Directories + file: + path: "{{ item }}" + state: directory + with_items: + - "{{ vd_data_directory }}" + - "{{ vd_data_directory }}/home" + +- name: Create users file + template: + src: "templates/virtual_desktop/users.txt.j2" + dest: "{{ vd_data_directory }}/users.txt" + +- name: Virtual Desktop Container + docker_container: + name: virtual_desktop + image: "{{ vd_docker_image }}" + pull: true + volumes: + - "{{ vd_data_directory }}/users.txt:/root/createusers.txt:ro" + - "{{ vd_data_directory }}/home:/home:rw" + - "{{ samba_shares_root }}:/samba:rw" + - "{{ docker_home }}:/docker:rw" + - "/etc/timezone:/etc/timezone:ro" + ports: + - "{{ vd_rdp_port }}:3389" + privileged: true + restart_policy: unless-stopped + memory: 2g diff --git a/templates/virtual_desktop/users.txt.j2 b/templates/virtual_desktop/users.txt.j2 new file mode 100644 index 00000000..759d451d --- /dev/null +++ b/templates/virtual_desktop/users.txt.j2 @@ -0,0 +1 @@ +{% for user in vd_users %}{{ user.username }}:{{ user.password }}:{{ user.sudo }}{% endfor %} From 800407e64c00f4acc83c71f6f6978b3ee3466cbf Mon Sep 17 00:00:00 2001 From: David Stephens Date: Sat, 25 Jan 2020 23:33:51 +0000 Subject: [PATCH 28/29] Docs links fix --- docs/applications/guacamole.md | 2 +- docs/applications/virtual_desktop.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/applications/guacamole.md b/docs/applications/guacamole.md index 79d74185..b4e3225b 100644 --- a/docs/applications/guacamole.md +++ b/docs/applications/guacamole.md @@ -14,4 +14,4 @@ The default username and password is `guacadmin`. Change it! ## What to connect to? -You can run a virtual desktop from your Ansible-NAS box, check out the [docs](virtual_desktop). \ No newline at end of file +You can run a virtual desktop from your Ansible-NAS box, check out the [Virtual Desktop docs](virtual_desktop.md). \ No newline at end of file diff --git a/docs/applications/virtual_desktop.md b/docs/applications/virtual_desktop.md index e3ae18ef..282f0e04 100644 --- a/docs/applications/virtual_desktop.md +++ b/docs/applications/virtual_desktop.md @@ -27,4 +27,4 @@ vd_users: ## Remote Access -It's possible to access your virtual desktop through a web browser! Check out [Guacamole](guacamole). \ No newline at end of file +It's possible to access your virtual desktop through a web browser! Check out [Guacamole](guacamole.md). \ No newline at end of file From d799a1b3dd2790e75563f09c8f89dc7482cbbb1e Mon Sep 17 00:00:00 2001 From: David Stephens Date: Sat, 25 Jan 2020 23:40:26 +0000 Subject: [PATCH 29/29] Docs inventory reference update --- docs/applications/airsonic.md | 2 +- docs/applications/bazarr.md | 2 +- docs/applications/bitwarden.md | 2 +- docs/applications/calibre.md | 2 +- docs/applications/cloudcmd.md | 4 ++-- docs/applications/cloudflare_ddns.md | 4 ++-- docs/applications/emby.md | 2 +- docs/applications/firefly.md | 2 +- docs/applications/get_iplayer.md | 2 +- docs/applications/homeassistant.md | 4 ++-- docs/applications/homebridge.md | 2 +- docs/applications/jackett.md | 2 +- docs/applications/jellyfin.md | 2 +- docs/applications/joomla.md | 4 ++-- docs/applications/lidarr.md | 2 +- docs/applications/minidlna.md | 2 +- docs/applications/miniflux.md | 2 +- docs/applications/mosquitto.md | 2 +- docs/applications/mymediaforalexa.md | 2 +- docs/applications/nextcloud.md | 2 ++ docs/applications/nzbget.md | 2 +- docs/applications/ombi.md | 2 +- docs/applications/openhab.md | 2 +- docs/applications/pyload.md | 2 +- docs/applications/thelounge.md | 2 +- docs/applications/timemachine.md | 2 +- docs/applications/traefik.md | 2 +- docs/applications/transmission.md | 2 +- docs/applications/ubooquity.md | 2 +- docs/applications/wallabag.md | 4 ++-- docs/applications/watchtower.md | 4 ++-- 31 files changed, 38 insertions(+), 36 deletions(-) diff --git a/docs/applications/airsonic.md b/docs/applications/airsonic.md index 8b4eb765..2ecd99f6 100644 --- a/docs/applications/airsonic.md +++ b/docs/applications/airsonic.md @@ -6,7 +6,7 @@ Airsonic is a free, web-based media streamer, providing ubiquitous access to you ## Usage -Set `airsonic_enabled: true` in your `group_vars/all.yml` file. +Set `airsonic_enabled: true` in your `inventories//nas.yml` file. The Airsonic web interface can be found at http://ansible_nas_host_or_ip:4040. diff --git a/docs/applications/bazarr.md b/docs/applications/bazarr.md index 7a86f09c..328e73cf 100644 --- a/docs/applications/bazarr.md +++ b/docs/applications/bazarr.md @@ -8,7 +8,7 @@ Bazarr is a companion application to Sonarr and Radarr. It manages and downloads ## Usage -Set `bazarr_enabled: true` in your `group_vars/all.yml` file. +Set `bazarr_enabled: true` in your `inventories//nas.yml` file. ## Specific Configuration diff --git a/docs/applications/bitwarden.md b/docs/applications/bitwarden.md index 5cfc0ae6..be562b2f 100644 --- a/docs/applications/bitwarden.md +++ b/docs/applications/bitwarden.md @@ -7,7 +7,7 @@ This is a Bitwarden server API implementation written in Rust compatible with up ## Usage -Set `bitwarden_enabled: true` in your `group_vars/all.yml` file. +Set `bitwarden_enabled: true` in your `inventories//nas.yml` file. ## Specific Configuration diff --git a/docs/applications/calibre.md b/docs/applications/calibre.md index 07968bac..afef056d 100644 --- a/docs/applications/calibre.md +++ b/docs/applications/calibre.md @@ -7,7 +7,7 @@ Calibre-Web is a web app providing a clean interface for browsing, reading and d ## Usage -Set `calibre_enabled: true` in your `group_vars/all.yml` file. +Set `calibre_enabled: true` in your `inventories//nas.yml` file. ## Specific Configuration diff --git a/docs/applications/cloudcmd.md b/docs/applications/cloudcmd.md index 7db954e2..1c9271e3 100644 --- a/docs/applications/cloudcmd.md +++ b/docs/applications/cloudcmd.md @@ -8,10 +8,10 @@ Cloud Commander is a file manager for the web. It includes a command-line consol ## Usage -Set `cloudcmd_enabled: true` in your `group_vars/all.yml` file. +Set `cloudcmd_enabled: true` in your `inventories//nas.yml` file. By default your the root of your Ansible-NAS box (`/`) is mounted into `/mnt/fs` within the container. If you'd like to -change this update `cloudcmd_browse_directory` in your `group_vars/all.yml` file. +change this update `cloudcmd_browse_directory` in your `inventories//nas.yml` file. If you enable external access to Cloud Commander (note that this is not recommended) then ensure you configure authorisation within the application (F10 from the main menu). \ No newline at end of file diff --git a/docs/applications/cloudflare_ddns.md b/docs/applications/cloudflare_ddns.md index 3f2bef57..46d239bc 100644 --- a/docs/applications/cloudflare_ddns.md +++ b/docs/applications/cloudflare_ddns.md @@ -8,8 +8,8 @@ host A record to point to your static IP, or enable this container to automatica ## Usage -Set `cloudflare_ddns_enabled: true` in your `group_vars/all.yml` file. +Set `cloudflare_ddns_enabled: true` in your `inventories//nas.yml` file. ## Specific Configuration -Make sure you set your Cloudflare login, domain and API key details within your `group_vars/all.yml` file. \ No newline at end of file +Make sure you set your Cloudflare login, domain and API key details within your `inventories//nas.yml` file. \ No newline at end of file diff --git a/docs/applications/emby.md b/docs/applications/emby.md index 45f6995b..4ece0ae6 100644 --- a/docs/applications/emby.md +++ b/docs/applications/emby.md @@ -11,7 +11,7 @@ similar functionality. ## Usage -Set `emby_enabled: true` in your `group_vars/all.yml` file. There are further +Set `emby_enabled: true` in your `inventories//nas.yml` file. There are further parameters you can edit such as `movies_root` and `tv_root` lower down. ## Specific Configuration diff --git a/docs/applications/firefly.md b/docs/applications/firefly.md index d7a8ee3e..d92ecd40 100644 --- a/docs/applications/firefly.md +++ b/docs/applications/firefly.md @@ -6,6 +6,6 @@ Firefly III is a self-hosted financial manager. It can help you keep track of ex ## Usage -Set `firefly_enabled: true` in your `group_vars/all.yml` file. +Set `firefly_enabled: true` in your `inventories//nas.yml` file. The Firefly III web interface can be found at http://ansible_nas_host_or_ip:8066. diff --git a/docs/applications/get_iplayer.md b/docs/applications/get_iplayer.md index b5825475..49e5ed20 100644 --- a/docs/applications/get_iplayer.md +++ b/docs/applications/get_iplayer.md @@ -6,6 +6,6 @@ Downloads TV and radio programmes from BBC iPlayer. ## Usage -Set `get_iplayer_enabled: true` in your `group_vars/all.yml` file. +Set `get_iplayer_enabled: true` in your `inventories//nas.yml` file. The get_iplayer web interface can be found at http://ansible_nas_host_or_ip:8182. diff --git a/docs/applications/homeassistant.md b/docs/applications/homeassistant.md index 29983c2e..51a6329d 100644 --- a/docs/applications/homeassistant.md +++ b/docs/applications/homeassistant.md @@ -5,8 +5,8 @@ Homepage: [https://www.home-assistant.io/](https://www.home-assistant.io/) ## Usage -Set `homeassistant_enabled: true` in your `group_vars/all.yml` file. +Set `homeassistant_enabled: true` in your `inventories//nas.yml` file. -If you want to access Home Assistant externally, don't forget to set `homeassistant_available_externally: "true"` in your `group_vars/all.yml` file. +If you want to access Home Assistant externally, don't forget to set `homeassistant_available_externally: "true"` in your `inventories//nas.yml` file. The Home Assistant web interface can be found at http://ansible_nas_host_or_ip:8123. diff --git a/docs/applications/homebridge.md b/docs/applications/homebridge.md index 645df83d..e00e382e 100644 --- a/docs/applications/homebridge.md +++ b/docs/applications/homebridge.md @@ -6,6 +6,6 @@ Homebridge is a lightweight NodeJS server you can run on your home network that ## Usage -Set `homebridge_enabled: true` in your `group_vars/all.yml` file. +Set `homebridge_enabled: true` in your `inventories//nas.yml` file. The Homebridge web interface can be found at http://ansible_nas_host_or_ip:8087. The default username and password is 'admin' - change this after your first login! diff --git a/docs/applications/jackett.md b/docs/applications/jackett.md index cc328774..582f99bd 100644 --- a/docs/applications/jackett.md +++ b/docs/applications/jackett.md @@ -6,6 +6,6 @@ Jackett works as a proxy server: it translates queries from apps (Sonarr, Radarr ## Usage -Set `jackett: true` in your `group_vars/all.yml` file. +Set `jackett: true` in your `inventories//nas.yml` file. The Jackett web interface can be found at http://ansible_nas_host_or_ip:9117. diff --git a/docs/applications/jellyfin.md b/docs/applications/jellyfin.md index ece01435..367cde3a 100644 --- a/docs/applications/jellyfin.md +++ b/docs/applications/jellyfin.md @@ -9,7 +9,7 @@ similar functionality. ## Usage -Set `jellyfin_enabled: true` in your `group_vars/all.yml` file. There are further +Set `jellyfin_enabled: true` in your `inventories//nas.yml` file. There are further parameters you can edit such as `movies_root` and `tv_root` lower down. ## Specific Configuration diff --git a/docs/applications/joomla.md b/docs/applications/joomla.md index 5f0ada71..4f3bc2e2 100644 --- a/docs/applications/joomla.md +++ b/docs/applications/joomla.md @@ -6,9 +6,9 @@ Joomla! is an award-winning content management system (CMS), which enables you t ## Usage -Set `joomla_enabled: true` in your `group_vars/all.yml` file. +Set `joomla_enabled: true` in your `inventories//nas.yml` file. -If you want to access Joomla externally, set `joomla_available_externally: "true"` in your `group_vars/all.yml` file. +If you want to access Joomla externally, set `joomla_available_externally: "true"` in your `inventories//nas.yml` file. The Joomla web interface can be found at http://ansible_nas_host_or_ip:8181. diff --git a/docs/applications/lidarr.md b/docs/applications/lidarr.md index aa4852db..7a73f1d8 100644 --- a/docs/applications/lidarr.md +++ b/docs/applications/lidarr.md @@ -9,4 +9,4 @@ Lidarr is a music collection manager for Usenet and BitTorrent users. It can mon ## Usage -Set `lidarr_enabled: true` in your `group_vars/all.yml` file. +Set `lidarr_enabled: true` in your `inventories//nas.yml` file. diff --git a/docs/applications/minidlna.md b/docs/applications/minidlna.md index 795f5858..61c4298e 100644 --- a/docs/applications/minidlna.md +++ b/docs/applications/minidlna.md @@ -6,6 +6,6 @@ MiniDLNA is server software with the aim of being fully compliant with DLNA/UPnP ## Usage -Set `minidlna_enabled: true` in your `group_vars/all.yml` file. +Set `minidlna_enabled: true` in your `inventories//nas.yml` file. The very basic MiniDLNA web interface can be found at http://ansible_nas_host_or_ip:8201. diff --git a/docs/applications/miniflux.md b/docs/applications/miniflux.md index 6b329c2d..d79ea242 100644 --- a/docs/applications/miniflux.md +++ b/docs/applications/miniflux.md @@ -6,7 +6,7 @@ Miniflux is a minimalist and opinionated feed reader. ## Usage -Set `miniflux_enabled: true` in your `group_vars/all.yml` file. +Set `miniflux_enabled: true` in your `inventories//nas.yml` file. The Miniflux web interface can be found at http://ansible_nas_host_or_ip:8070, the default username is `admin` and password `supersecure`. diff --git a/docs/applications/mosquitto.md b/docs/applications/mosquitto.md index 26da7021..5c981369 100644 --- a/docs/applications/mosquitto.md +++ b/docs/applications/mosquitto.md @@ -6,5 +6,5 @@ Mosquitto is a lightweight open source MQTT message broker. ## Usage -Set `mosquitto_enabled: true` in your `group_vars/all.yml` file. +Set `mosquitto_enabled: true` in your `inventories//nas.yml` file. diff --git a/docs/applications/mymediaforalexa.md b/docs/applications/mymediaforalexa.md index fe34eb71..e9c83646 100644 --- a/docs/applications/mymediaforalexa.md +++ b/docs/applications/mymediaforalexa.md @@ -6,6 +6,6 @@ My Media lets you stream your music collection to your Amazon Echo or Amazon Dot ## Usage -Set `mymediaforalexa_enabled: true` in your `group_vars/all.yml` file. +Set `mymediaforalexa_enabled: true` in your `inventories//nas.yml` file. The My Media for Alexa web interface can be found at http://ansible_nas_host_or_ip:52051. diff --git a/docs/applications/nextcloud.md b/docs/applications/nextcloud.md index 2c4e492d..f68d95e3 100644 --- a/docs/applications/nextcloud.md +++ b/docs/applications/nextcloud.md @@ -5,6 +5,8 @@ Homepage: [https://nextcloud.com](https://nextcloud.com) ## Usage +Set `nextcloud_enabled: true` in your `inventories//nas.yml` file. + Tread carefully. External access may require that you manually configure your Fully Qualified Domain Name (FQDN) as a trusted domain within the application. There is an evnironment variable set up for this in the "nextcloud task" which will most likely make manual configuration unneccessary. If you get the following [screenshot](https://docs.nextcloud.com/server/14/admin_manual/installation/installation_wizard.html#trusted-domains) warning when trying to access nextcloud externally you'll need to manually set it up. diff --git a/docs/applications/nzbget.md b/docs/applications/nzbget.md index d04d152e..95cd0e07 100644 --- a/docs/applications/nzbget.md +++ b/docs/applications/nzbget.md @@ -6,6 +6,6 @@ The most efficient Usenet downloader. NZBGet is written in C++ and designed with ## Usage -Set `nzbget_enabled: true` in your `group_vars/all.yml` file. +Set `nzbget_enabled: true` in your `inventories//nas.yml` file. The NZBget web interface can be found at http://ansible_nas_host_or_ip:6789, the default username is `nzbget` and password `tegbzn6789`. Change this once you've logged in! diff --git a/docs/applications/ombi.md b/docs/applications/ombi.md index f88b2492..8f5f6100 100644 --- a/docs/applications/ombi.md +++ b/docs/applications/ombi.md @@ -9,4 +9,4 @@ Ombi is a self-hosted web application that automatically gives your shared Plex ## Usage -Set `ombi_enabled: true` in your `group_vars/all.yml` file. +Set `ombi_enabled: true` in your `inventories//nas.yml` file. diff --git a/docs/applications/openhab.md b/docs/applications/openhab.md index aee723ef..7a517ac5 100644 --- a/docs/applications/openhab.md +++ b/docs/applications/openhab.md @@ -7,7 +7,7 @@ It allows you to connect many different IoT-Devices (which in this case means "I ## Usage -Set `openhab_enabled: true` in your `group_vars/all.yml` file. +Set `openhab_enabled: true` in your `inventories//nas.yml` file. ## Specific Configuration diff --git a/docs/applications/pyload.md b/docs/applications/pyload.md index c4e537b6..61b7694e 100644 --- a/docs/applications/pyload.md +++ b/docs/applications/pyload.md @@ -6,7 +6,7 @@ Free and Open Source download manager written in Python and designed to be extre . ## Usage -Set `pyload_enabled: true` in your `group_vars/all.yml` file. +Set `pyload_enabled: true` in your `inventories//nas.yml` file. pyLoad's web interface can be found at http://ansible_nas_host_or_ip:8000 diff --git a/docs/applications/thelounge.md b/docs/applications/thelounge.md index 9a25330c..702c7baf 100644 --- a/docs/applications/thelounge.md +++ b/docs/applications/thelounge.md @@ -6,7 +6,7 @@ The Lounge is a self-hosted web IRC client. ## Usage -Set `thelounge_enabled: true` in your `group_vars/all.yml` file. +Set `thelounge_enabled: true` in your `inventories//nas.yml` file. The Lounge web interface can be found at http://ansible_nas_host_or_ip:9000. diff --git a/docs/applications/timemachine.md b/docs/applications/timemachine.md index 202e3ec9..34c9ba98 100644 --- a/docs/applications/timemachine.md +++ b/docs/applications/timemachine.md @@ -9,7 +9,7 @@ Older versions of Time Machine relied on AFP (netatalk) shares. Apple has deprec ## Usage -Set `timemachine_enabled: true` in your `group_vars/all.yml` file. +Set `timemachine_enabled: true` in your `inventories//nas.yml` file. Enabling Time Machine will result in the installation of Avahi on the NAS system (if it is not already installed) and a Time Machine service configuration file for Avahi will be added to the system (at `/etc/avahi/services/timemachine.service`) to allow for Time Machine discovery by Macs on the local network. Avahi runs on the system, rather than in a container, as the same Avahi instance can be used to announce any number of services. diff --git a/docs/applications/traefik.md b/docs/applications/traefik.md index 344aea8f..5ea3ffb6 100644 --- a/docs/applications/traefik.md +++ b/docs/applications/traefik.md @@ -11,7 +11,7 @@ See [External Access](configuration/external_access) for more info. ## Usage -Set `traefik_enabled: true` in your `group_vars/all.yml` file. +Set `traefik_enabled: true` in your `inventories//nas.yml` file. Traefik's web interface can be found at http://ansible_nas_host_or_ip:8083. diff --git a/docs/applications/transmission.md b/docs/applications/transmission.md index 9f2638d2..0db9b461 100644 --- a/docs/applications/transmission.md +++ b/docs/applications/transmission.md @@ -7,7 +7,7 @@ directly. ## Usage -Set `transmission_enabled: true`, or `transmission_with_openvpn_enabled: true` in your `group_vars/all.yml` file. +Set `transmission_enabled: true`, or `transmission_with_openvpn_enabled: true` in your `inventories//nas.yml` file. Transmission's web interface can be found at http://ansible_nas_host_or_ip:9091 (with VPN) or http://ansible_nas_host_or_ip:9092 (without VPN). diff --git a/docs/applications/ubooquity.md b/docs/applications/ubooquity.md index 293d79d1..71afb093 100644 --- a/docs/applications/ubooquity.md +++ b/docs/applications/ubooquity.md @@ -8,7 +8,7 @@ Ubooquity is a free, lightweight and easy-to-use home server for your comics and ## Usage -Set `ubooquity_enabled: true` in your `group_vars/all.yml` file. +Set `ubooquity_enabled: true` in your `inventories//nas.yml` file. Access the webui at http://:2202/ubooquity by default. See specific configuration section below for information on setting up external access. diff --git a/docs/applications/wallabag.md b/docs/applications/wallabag.md index 03ac4f2a..9898aff0 100644 --- a/docs/applications/wallabag.md +++ b/docs/applications/wallabag.md @@ -6,9 +6,9 @@ wallabag is a self-hostable PHP application allowing you to not miss any content ## Usage -Set `wallabag_enabled: true` in your `group_vars/all.yml` file. +Set `wallabag_enabled: true` in your `inventories//nas.yml` file. -If you want to access Wallabag externally, don't forget to set `wallabag_available_externally: "true"` in your `group_vars/all.yml` file. +If you want to access Wallabag externally, don't forget to set `wallabag_available_externally: "true"` in your `inventories//nas.yml` file. I reccomend using the mobile app, which will sync with this installation so you have access to your saved articles even if you don't have signal or wifi access. diff --git a/docs/applications/watchtower.md b/docs/applications/watchtower.md index 516fe30b..61a19809 100644 --- a/docs/applications/watchtower.md +++ b/docs/applications/watchtower.md @@ -6,10 +6,10 @@ A process for watching your Docker containers and automatically updating and res ## Usage -Set `watchtower_enabled: true` in your `group_vars/all.yml` file. +Set `watchtower_enabled: true` in your `inventories//nas.yml` file. ## Specific Configuration By default Watchtower is configured to check daily at 5am for updates. -Various notification options are available, and can be configured by updating `watchtower_command` in your `group_vars/all.yml` file. A few examples are provided. The full set of options can be found at the [Watchtower GitHub project page](https://github.com/v2tec/watchtower). +Various notification options are available, and can be configured by updating `watchtower_command` in your `inventories//nas.yml` file. A few examples are provided. The full set of options can be found at the [Watchtower GitHub project page](https://github.com/v2tec/watchtower).