Merge branch 'master' into mv-miniflux

This commit is contained in:
PurpleNinja225 2021-02-09 16:34:03 -09:00 committed by GitHub
commit f18262e823
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 246 additions and 177 deletions

View file

@ -1,16 +1,21 @@
---
dist: focal
language: python
services: docker
env:
- playbook: nas.yml
distro: ubuntu1804
distro: ubuntu2004
test_syntax: true
test_playbook: false
test_idempotence: false
before_install:
- sudo apt-get -y install ansible
install:
- sudo apt install ansible
- pip install ansible-lint
- pip install mkdocs
- pip install mkdocs-material

View file

@ -15,29 +15,14 @@
### Ansible-NAS Applications
###
# Downloading
nzbget_enabled: false
pyload_enabled: false
# Media Serving
tautulli_enabled: false
# Media Sourcing
get_iplayer_enabled: false
jackett_enabled: false
jellyfin_enabled: false
youtubedlmaterial_enabled: false
# Music
mymediaforalexa_enabled: false
# System Management
glances_enabled: false
stats_enabled: false
guacamole_enabled: false
cloudcmd_enabled: false
virtual_desktop_enabled: false
krusader_enabled: false
@ -48,18 +33,13 @@ timemachine_enabled: false
gitlab_enabled: false
# IRC
znc_enabled: false
thelounge_enabled: false
# Finance
firefly_enabled: false
# Wallabag
wallabag_enabled: false
# Home Automation
mosquitto_enabled: false
homebridge_enabled: false
openhab_enabled: false
# Books
@ -265,16 +245,6 @@ joomla_available_externally: "false"
joomla_database_password: top_secret
joomla_port: "8181"
###
### pyLoad
###
pyload_available_externally: "false"
pyload_config_directory: "{{ docker_home }}/pyload"
pyload_download_directory: "{{ downloads_root }}"
pyload_user_id: "0"
pyload_group_id: "0"
pyload_port: "8000"
###
### PyTivo
###
@ -288,24 +258,6 @@ pytivo_podcasts_directory: "{{ podcasts_root }}"
pytivo_user_id: "0"
pytivo_group_id: "0"
###
### Homebridge
###
homebridge_available_externally: "false"
homebridge_config_directory: "{{ docker_home }}/homebridge/config"
homebridge_user_id: "0"
homebridge_group_id: "0"
homebridge_port: "8087"
###
### Tautulli
###
tautulli_available_externally: "false"
tautulli_config_directory: "{{ docker_home }}/tautulli/config"
tautulli_user_id: "0"
tautulli_group_id: "0"
tautulli_port: "8185"
###
### YouTubeDL-Material
@ -323,17 +275,6 @@ youtubedlmaterial_port_http: "8998"
###
openvpn_config_directory: "{{ docker_home }}/openvpn"
###
### ZNC
###
znc_available_externally: "false"
znc_data_directory: "{{ docker_home }}/znc"
znc_user_id: "0"
znc_group_id: "0"
znc_port: "6677"
###
### Stats
###
@ -362,12 +303,6 @@ glances_available_externally: "false"
glances_port_one: "61208"
glances_port_two: "61209"
###
### nginx
###
nginx_data_directory: "{{ docker_home }}/nginx"
nginx_port_http: "80"
nginx_port_https: "443"
###
### Guacamole
@ -376,16 +311,6 @@ guacamole_available_externally: "false"
guacamole_data_directory: "{{ docker_home }}/guacamole"
guacamole_port: "8090"
###
### CloudCmd
###
cloudcmd_available_externally: "false"
cloudcmd_data_directory: "{{ docker_home }}/cloudcmd/config"
cloudcmd_browse_directory: "/"
cloudcmd_user_id: "0"
cloudcmd_group_id: "0"
cloudcmd_port: "7373"
###
### Krusader
###
@ -409,27 +334,6 @@ timemachine_share_name: Data
timemachine_log_level: error
timemachine_port: "10445"
###
### get_iplayer
###
get_iplayer_config_directory: "{{ docker_home }}/get_iplayer"
get_iplayer_download_directory: "{{ tv_root }}/iplayer_downloads"
get_iplayer_port: "8182"
###
### mymediaforalexa
###
mymediaforalexa_media_directory: "{{ music_root }}"
mymediaforalexa_data_directory: "{{ docker_home }}/mymediaforalexa"
###
### Jackett
###
jackett_available_externally: "false"
jackett_data_directory: "{{ docker_home }}/jackett"
jackett_torrents_root: "{{ torrents_root }}"
jackett_port: "9117"
###
### The Lounge
###
@ -438,23 +342,6 @@ thelounge_data_directory: "{{ docker_home }}/thelounge"
thelounge_port_one: "113"
thelounge_port_two: "9002"
###
### Firefly
###
firefly_available_externally: "false"
firefly_data_directory: "{{ docker_home }}/firefly"
firefly_port: "8066"
###
### Nzbget
###
nzbget_available_externally: "false"
nzbget_data_directory: "{{ docker_home }}/nzbget"
nzbget_download_directory: "{{ downloads_root }}"
nzbget_user_id: "0"
nzbget_group_id: "0"
nzbget_port: "6789"
###
### Wallabag
###

86
nas.yml
View file

@ -58,6 +58,11 @@
- bitwarden
when: (bitwarden_enabled | default(False))
- role: cloudcmd
tags:
- cloudcmd
when: (cloudcmd_enabled | default(False))
- role: cloudflare_ddns
tags:
- cloudflare_ddns
@ -83,11 +88,21 @@
- emby
when: (emby_enabled | default(False))
- role: firefly
tags:
- firefly
when: (firefly_enabled | default(False))
- role: gitea
tags:
- gitea
when: (gitea_enabled | default(False))
- role: get_iplayer
tags:
- get_iplayer
when: (get_iplayer_enabled | default(False))
- role: heimdall
tags:
- heimdall
@ -98,6 +113,16 @@
- homeassistant
when: (homeassistant_enabled | default(False))
- role: homebridge
tags:
- homebridge
when: (homebridge_enabled | default(False))
- role: jackett
tags:
- jackettfalse
when: (jackett_enabled | default(False))
- role: lidarr
tags:
- lidarr
@ -118,6 +143,11 @@
- mylar
when: (mylar_enabled | default(False))
- role: mymediaforalexa
tags:
- mymediaforalexa
when: (mymediaforalexa_enabled | default(False))
- role: n8n
tags:
- n8n_enabled
@ -133,6 +163,11 @@
- nextcloud
when: (nextcloud_enabled | default(False))
- role: nzbget
tags:
- nzbget
when: (nzbget_enabled | default(False))
- role: organizr
tags:
- organizr
@ -143,6 +178,11 @@
- portainer
when: (portainer_enabled | default(False))
- role: pyload
tags:
- pyload
when: (pyload_enabled | default(False))
- role: ombi
tags:
- ombi
@ -178,6 +218,11 @@
- syncthing
when: (syncthing_enabled | default(False))
- role: tautulli
tags:
- tautulli
when: (tautulli_enabled | default(False))
- role: transmission
tags:
- transmission
@ -203,19 +248,12 @@
- watchtower
when: (watchtower_enabled | default(False))
- role: znc
tags:
- znc
when: (znc_enabled | default(False))
tasks:
- import_tasks: tasks/firefly.yml
when: (firefly_enabled | default(False))
tags: firefly
- import_tasks: tasks/tautulli.yml
when: (tautulli_enabled | default(False))
tags: tautulli
- import_tasks: tasks/pyload.yml
when: (pyload_enabled | default(False))
tags: pyload
- import_tasks: tasks/thelounge.yml
when: (thelounge_enabled | default(False))
tags: thelounge
@ -224,10 +262,6 @@
when: (glances_enabled | default(False))
tags: glances
- import_tasks: tasks/znc.yml
when: (znc_enabled | default(False))
tags: znc
- import_tasks: tasks/gitlab.yml
when: (gitlab_enabled | default(False))
tags: gitlab
@ -244,26 +278,14 @@
when: (guacamole_enabled | default(False))
tags: guacamole
- import_tasks: tasks/get_iplayer.yml
when: (get_iplayer_enabled | default(False))
tags: get_iplayer
- import_tasks: tasks/mymediaforalexa.yml
when: (mymediaforalexa_enabled | default(False))
tags: mymediaforalexa
- import_tasks: tasks/jackett.yml
when: (jackett_enabled | default(False))
tags: jackett
- import_tasks: tasks/joomla.yml
when: (joomla_enabled | default(False))
tags: joomla
- import_tasks: tasks/nzbget.yml
when: (nzbget_enabled | default(False))
tags: nzbget
- import_tasks: tasks/wallabag.yml
when: (wallabag_enabled | default(False))
tags: wallabag
@ -272,10 +294,6 @@
when: (mosquitto_enabled | default(False))
tags: mosquitto
- import_tasks: tasks/homebridge.yml
when: (homebridge_enabled | default(False))
tags: homebridge
- import_tasks: tasks/calibre.yml
when: (calibre_enabled | default(False))
tags: calibre
@ -288,10 +306,6 @@
when: (jellyfin_enabled | default(False))
tags: jellyfin
- import_tasks: tasks/cloudcmd.yml
when: (cloudcmd_enabled | default(False))
tags: cloudcmd
- import_tasks: tasks/krusader.yml
when: (krusader_enabled | default(False))
tags: krusader

View file

@ -0,0 +1,19 @@
---
# enable or disable the application
cloudcmd_enabled: false
cloudcmd_available_externally: "false"
# directories
cloudcmd_data_directory: "{{ docker_home }}/cloudcmd/config"
cloudcmd_browse_directory: "/"
# uid / gid
cloudcmd_user_id: "0"
cloudcmd_group_id: "0"
# network
cloudcmd_hostname: "cloudcmd"
cloudcmd_port: "7373"
# specs
cloudcmd_memory: "1g"

View file

@ -1,12 +1,12 @@
---
- name: Create CloudCmd Directories
- name: Create Cloudcmd Directories
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ cloudcmd_data_directory }}"
- name: CloudCmd
- name: Create Cloudcmd Docker Container
docker_container:
name: cloudcmd
image: coderaiser/cloudcmd
@ -21,10 +21,10 @@
PUID: "{{ cloudcmd_user_id }}"
PGID: "{{ cloudcmd_group_id }}"
restart_policy: unless-stopped
memory: 1g
memory: "{{ cloudcmd_memory }}"
labels:
traefik.enable: "{{ cloudcmd_available_externally }}"
traefik.http.routers.cloudcmd.rule: "Host(`cloudcmd.{{ ansible_nas_domain }}`)"
traefik.http.routers.cloudcmd.rule: "Host(`{{ cloudcmd_hostname }}.{{ ansible_nas_domain }}`)"
traefik.http.routers.cloudcmd.tls.certresolver: "letsencrypt"
traefik.http.routers.cloudcmd.tls.domains[0].main: "{{ ansible_nas_domain }}"
traefik.http.routers.cloudcmd.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"

View file

@ -0,0 +1,14 @@
---
# enable or disable the application
firefly_enabled: false
firefly_available_externally: "false"
# directories
firefly_data_directory: "{{ docker_home }}/firefly"
# network
firefly_hostname: "firefly"
firefly_port: "8066"
# specs
firefly_memory: "1g"

View file

@ -1,3 +1,4 @@
---
- name: Create Firefly III Directories
file:
path: "{{ item }}"
@ -49,10 +50,10 @@
DB_PASSWORD: "firefly"
TZ: "{{ ansible_nas_timezone }}"
restart_policy: unless-stopped
memory: 1g
memory: "{{ firefly_memory }}"
labels:
traefik.enable: "{{ firefly_available_externally }}"
traefik.http.routers.firefly.rule: "Host(`firefly.{{ ansible_nas_domain }}`)"
traefik.http.routers.firefly.rule: "Host(`{{ firefly_hostname }}.{{ ansible_nas_domain }}`)"
traefik.http.routers.firefly.tls.certresolver: "letsencrypt"
traefik.http.routers.firefly.tls.domains[0].main: "{{ ansible_nas_domain }}"
traefik.http.routers.firefly.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"

View file

@ -0,0 +1,12 @@
---
get_iplayer_enabled: false
# directories
get_iplayer_config_directory: "{{ docker_home }}/get_iplayer"
get_iplayer_download_directory: "{{ tv_root }}/iplayer_downloads"
# network
get_iplayer_port: "8182"
# specs
get_iplayer_memory: "1g"

View file

@ -17,5 +17,5 @@
ports:
- "{{ get_iplayer_port }}:8181"
restart_policy: unless-stopped
memory: 1g
memory: "{{ get_iplayer_memory }}"

View file

@ -0,0 +1,18 @@
---
# enable or disable the application
homebridge_enabled: false
homebridge_available_externally: "false"
# directories
homebridge_config_directory: "{{ docker_home }}/homebridge/config"
# uid / gid
homebridge_user_id: "0"
homebridge_group_id: "0"
# network
homebridge_hostname: "homebridge"
homebridge_port: "8087"
# specs
homebridge_memory: "1g"

View file

@ -3,17 +3,18 @@
file:
path: "{{ item }}"
state: directory
# mode: 0755
with_items:
- "{{ homebridge_config_directory }}"
- name: Homebridge Docker Container
- name: Create Homebridge Docker Container
docker_container:
name: homebridge
image: oznu/homebridge
pull: true
volumes:
- "{{ homebridge_config_directory }}:/homebridge"
network_mode: host
network_mode: "host"
env:
TZ: "{{ ansible_nas_timezone }}"
PGID: "{{ homebridge_group_id }}"
@ -21,10 +22,10 @@
HOMEBRIDGE_CONFIG_UI: "1"
HOMEBRIDGE_CONFIG_UI_PORT: "{{ homebridge_port }}"
restart_policy: unless-stopped
memory: 1g
memory: "{{ homebridge_memory }}"
labels:
traefik.enable: "{{ homebridge_available_externally }}"
traefik.http.routers.homebridge.rule: "Host(`homebridge.{{ ansible_nas_domain }}`)"
traefik.http.routers.homebridge.rule: "Host(`{{ homebridge_hostname }}.{{ ansible_nas_domain }}`)"
traefik.http.routers.homebridge.tls.certresolver: "letsencrypt"
traefik.http.routers.homebridge.tls.domains[0].main: "{{ ansible_nas_domain }}"
traefik.http.routers.homebridge.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"

View file

@ -0,0 +1,15 @@
---
# enable or disable the application
jackett_enabled: false
jackett_available_externally: "false"
# directories
jackett_data_directory: "{{ docker_home }}/jackett"
jackett_torrents_root: "{{ torrents_root }}"
# network
jackett_hostname: "jackett"
jackett_port: "9117"
# specs
jackett_memory: "1g"

View file

@ -21,7 +21,7 @@
restart_policy: unless-stopped
labels:
traefik.enable: "{{ jackett_available_externally }}"
traefik.http.routers.jackett.rule: "Host(`jackett.{{ ansible_nas_domain }}`)"
traefik.http.routers.jackett.rule: "Host(`{{ jackett_hostname }}.{{ ansible_nas_domain }}`)"
traefik.http.routers.jackett.tls.certresolver: "letsencrypt"
traefik.http.routers.jackett.tls.domains[0].main: "{{ ansible_nas_domain }}"
traefik.http.routers.jackett.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"

View file

@ -0,0 +1,10 @@
---
# enable or disable the application
mymediaforalexa_enabled: false
# directories
mymediaforalexa_media_directory: "{{ music_root }}"
mymediaforalexa_data_directory: "{{ docker_home }}/mymediaforalexa"
# specs
mymediaforalexa_memory: "1g"

View file

@ -1,4 +1,5 @@
- name: Create mymedia for alexa Directories
---
- name: Create Mymediaforalexa Directories
file:
path: "{{ item }}"
state: directory
@ -6,7 +7,7 @@
- "{{ mymediaforalexa_media_directory }}"
- "{{ mymediaforalexa_data_directory }}"
- name: mymedia for alexa Docker Container
- name: mymediaforalexa Docker Container
docker_container:
name: mymediaforalexa
image: bizmodeller/mymediaforalexa
@ -16,5 +17,4 @@
- "{{ mymediaforalexa_data_directory }}:/datadir:rw"
network_mode: host
restart_policy: unless-stopped
memory: 1g
memory: "{{ mymediaforalexa_memory }}"

View file

@ -0,0 +1,18 @@
---
nzbget_enabled: false
nzbget_available_externally: "false"
# directories
nzbget_data_directory: "{{ docker_home }}/nzbget"
nzbget_download_directory: "{{ downloads_root }}"
# uid / gid
nzbget_user_id: "0"
nzbget_group_id: "0"
# network
nzbget_port: "6789"
nzbget_hostname: "nzbget"
# specs
nzbget_app_memory: "1g"

View file

@ -24,7 +24,7 @@
memory: 1g
labels:
traefik.enable: "{{ nzbget_available_externally }}"
traefik.http.routers.nzbget.rule: "Host(`nzbget.{{ ansible_nas_domain }}`)"
traefik.http.routers.nzbget.rule: "Host(`{{ nzbget_hostname }}.{{ ansible_nas_domain }}`)"
traefik.http.routers.nzbget.tls.certresolver: "letsencrypt"
traefik.http.routers.nzbget.tls.domains[0].main: "{{ ansible_nas_domain }}"
traefik.http.routers.nzbget.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"

View file

@ -0,0 +1,19 @@
---
pyload_enabled: false
pyload_available_externally: "false"
# directories
pyload_config_directory: "{{ docker_home }}/pyload"
pyload_download_directory: "{{ downloads_root }}"
# uid / gid
pyload_user_id: "0"
pyload_group_id: "0"
# network
pyload_hostname: "pyload"
pyload_port: "8000"
# specs
pyload_memory: "1g"

View file

@ -23,10 +23,10 @@
UID: "{{ pyload_user_id }}"
GID: "{{ pyload_group_id }}"
restart_policy: unless-stopped
memory: 1g
memory: "{{ pyload_memory }}"
labels:
traefik.enable: "{{ pyload_available_externally }}"
traefik.http.routers.pyload.rule: "Host(`pyload.{{ ansible_nas_domain }}`)"
traefik.http.routers.pyload.rule: "Host(`{{ pyload_hostname }}.{{ ansible_nas_domain }}`)"
traefik.http.routers.pyload.tls.certresolver: "letsencrypt"
traefik.http.routers.pyload.tls.domains[0].main: "{{ ansible_nas_domain }}"
traefik.http.routers.pyload.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"

View file

@ -0,0 +1,17 @@
---
tautulli_enabled: false
tautulli_available_externally: "false"
# directories
tautulli_config_directory: "{{ docker_home }}/tautulli/config"
# uid / gid
tautulli_user_id: "0"
tautulli_group_id: "0"
# network
tautulli_hostname: "tautulli"
tautulli_port: "8185"
# specs
tautulli_memory: "1g"

View file

@ -22,10 +22,10 @@
PUID: "{{ tautulli_user_id }}"
PGID: "{{ tautulli_group_id }}"
restart_policy: unless-stopped
memory: 1g
memory: "{{ tautulli_memory }}"
labels:
traefik.enable: "{{ tautulli_available_externally }}"
traefik.http.routers.tautulli.rule: "Host(`tautulli.{{ ansible_nas_domain }}`)"
traefik.http.routers.tautulli.rule: "Host(`{{ tautulli_hostname }}.{{ ansible_nas_domain }}`)"
traefik.http.routers.tautulli.tls.certresolver: "letsencrypt"
traefik.http.routers.tautulli.tls.domains[0].main: "{{ ansible_nas_domain }}"
traefik.http.routers.tautulli.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"

View file

@ -0,0 +1,18 @@
---
# enable or disable the application
znc_enabled: false
znc_available_externally: "false"
# directories
znc_data_directory: "{{ docker_home }}/znc"
# uid / gid
znc_user_id: "0"
znc_group_id: "0"
# network
znc_hostname: "znc"
znc_port: "6677"
# specs
znc_memory: "1g"

View file

@ -3,10 +3,11 @@
file:
path: "{{ item }}"
state: directory
# mode: 0755
with_items:
- "{{ znc_data_directory }}"
- name: ZNC
- name: Create ZNC Docker Container
docker_container:
name: znc
image: znc
@ -20,10 +21,10 @@
PUID: "{{ znc_user_id }}"
PGID: "{{ znc_group_id }}"
restart_policy: unless-stopped
memory: 1g
memory: "{{ znc_memory }}"
labels:
traefik.enable: "{{ znc_available_externally }}"
traefik.http.routers.znc.rule: "Host(`znc.{{ ansible_nas_domain }}`)"
traefik.http.routers.znc.rule: "Host(`{{ znc_hostname }}.{{ ansible_nas_domain }}`)"
traefik.http.routers.znc.tls.certresolver: "letsencrypt"
traefik.http.routers.znc.tls.domains[0].main: "{{ ansible_nas_domain }}"
traefik.http.routers.znc.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"