Skip to content

Instantly share code, notes, and snippets.

@alekc
Created March 2, 2020 12:08
Show Gist options
  • Save alekc/f7ade8d91969da7169470e5761e5c170 to your computer and use it in GitHub Desktop.
Save alekc/f7ade8d91969da7169470e5761e5c170 to your computer and use it in GitHub Desktop.
nas
---
- hosts:
- xps-desktop
vars:
- docker_data_path: /4t/docker-data
- media_folder: /2t/media
- media_docker_path: /media
- uid: "500"
- gid: "500"
- transmission_web_host: bt.example.com
- jackett_api_key: a7f8gct9ob90aak7nurjsuvz6uowktra
- xps_ip: "192.168.0.29"
- openvpn_username: vvvvvvvvvvvv
- openvpn_password: ccccccccccc
- traefik_docker_network: traefik
# - hosts_entries:
# "jackett.example.com": "{{ xps_ip }}"
# "radarr.example.com": "{{ xps_ip }}"
# "sonarr.example.com": "{{ xps_ip }}"
# "bt.example.com": "{{ xps_ip }}"
- docker_network:
- name: nas-net
- name: traefik
- docker_log_driver: "json-file"
- docker_log_options:
max-size: "10m"
pre_tasks:
- name: Ensure nas-net network exist
docker_network:
name: nas-net
state: present
- name: Prepare media folder
file:
path: "{{ item }}"
owner: "{{ uid }}"
group: "{{ gid }}"
state: directory
loop:
- "{{ media_folder }}"
- "{{ media_folder }}/tv-shows"
- "{{ media_folder }}/movies"
roles:
- role: role-docker-sonarr
vars:
- sonarr_data_path: "{{ docker_data_path }}/sonarr/"
- sonarr_docker_labels:
traefik.enable: "true"
traefik.docker.network: "{{ traefik_docker_network }}"
traefik.http.routers.sonarr.rule: Host(`sonarr-nas.example.com`)
- sonarr_uid: "{{ uid }}"
- sonarr_gid: "{{ gid }}"
- sonarr_docker_volumes:
- "{{ media_folder }}:{{ media_docker_path }}"
# - sonarr_docker_etc_hosts: "{{ hosts_entries }}"
- sonarr_docker_networks: "{{ docker_network }}"
- sonarr_purge_networks: yes
- sonarr_docker_log_options: "{{ docker_log_options }}"
- sonarr_docker_log_driver: "{{ docker_log_driver }}"
- role: role-docker-radarr
vars:
- radarr_data_path: "{{ docker_data_path }}/radarr/"
- radarr_docker_labels:
traefik.enable: "true"
traefik.docker.network: "{{ traefik_docker_network }}"
traefik.http.routers.radarr.rule: Host(`radarr-nas.example.com`)
- radarr_uid: "{{ uid }}"
- radarr_gid: "{{ gid }}"
- radarr_docker_volumes:
- "{{ media_folder }}:{{ media_docker_path }}"
# - radarr_docker_etc_hosts: "{{ hosts_entries }}"
- radarr_docker_networks: "{{ docker_network }}"
- radarr_purge_networks: yes
- radarr_docker_log_options: "{{ docker_log_options }}"
- radarr_docker_log_driver: "{{ docker_log_driver }}"
- role: role-docker-jackett
vars:
- jackett_data_path: "{{ docker_data_path }}/jackett/"
- jackett_docker_labels:
traefik.enable: "true"
traefik.docker.network: "{{ traefik_docker_network }}"
traefik.http.routers.jackett.rule: Host(`jackett.example.com`)
- jackett_docker_networks: "{{ docker_network }}"
- jackett_docker_purge_networks: yes
- jackett_docker_log_options: "{{ docker_log_options }}"
- jackett_docker_log_driver: "{{ docker_log_driver }}"
- role: role-docker-plex
vars:
- plex_docker_uid: "{{ uid }}"
- plex_docker_gid: "{{ gid }}"
- plex_claim_token: "claim-myznP-8RNyz7dDGnhcNF"
- plex_data_dir: "{{ docker_data_path }}/plex/"
- plex_docker_labels:
traefik.enable: "true"
traefik.docker.network: "{{ traefik_docker_network }}"
traefik.http.routers.plex.rule: Host(`plex-nas.example.com`)
# - plex_docker_networks: "{{ docker_network }}"
# - plex_docker_purge_networks: yes
- plex_docker_log_options: "{{ docker_log_options }}"
- plex_docker_log_driver: "{{ docker_log_driver }}"
- plex_docker_runtime: "nvidia"
- plex_transcode_dir: /tmp/
- plex_docker_env:
NVIDIA_VISIBLE_DEVICES: all
NVIDIA_DRIVER_CAPABILITIES: compute,video,utility
- plex_docker_volumes:
- "{{ media_folder }}/tv-shows:/data/tvshows"
- "{{ media_folder }}/movies:/data/movies"
- role: role-docker-transmission-openvpn
vars:
- transmission_openvpn_docker_env:
"OPENVPN_PROVIDER": "WINDSCRIBE"
"OPENVPN_CONFIG": "Sweden-udp"
"OPENVPN_USERNAME": "{{ openvpn_username }}"
"OPENVPN_PASSWORD": "{{ openvpn_password }}"
"TRANSMISSION_RPC_USERNAME": "admin"
"TRANSMISSION_RPC_PASSWORD": "ccccccccccccccccccccccccc"
"TRANSMISSION_PREALLOCATION": "1"
"TRANSMISSION_INCOMPLETE_DIR": "{{ media_docker_path }}/torrents/incomplete"
"TRANSMISSION_DOWNLOAD_DIR": "{{ media_docker_path }}/torrents/completed"
"TRANSMISSION_INCOMPLETE_DIR_ENABLED": "true"
# "LOCAL_NETWORK": "172.18.0.0/24"
"WEBPROXY_ENABLED": "true"
"WEBPROXY_PORT": "8888"
- transmission_openvpn_puid: "{{ uid }}"
- transmission_openvpn_pgid: "{{ gid }}"
- transmission_openvpn_download_folder: /sharedfolders/AppData/transmission/data
- transmission_openvpn_docker_volumes:
- "{{ media_folder }}:{{ media_docker_path }}"
- "{{ docker_data_path }}/transmission/config:/config"
- transmission_openvpn_docker_ports:
- "8888:8888"
- transmission_openvpn_docker_labels:
traefik.enable: "true"
traefik.docker.network: "{{ traefik_docker_network }}"
traefik.http.routers.transmission.rule: "Host(`{{ transmission_web_host }}`)"
traefik.http.services.transmission.loadbalancer.server.port: "9091"
- transmission_openvpn_docker_restart: true
- transmission_openvpn_docker_healthcheck:
interval: 60s
test: ["CMD-SHELL", "/etc/scripts/healthcheck.sh"]
- transmission_openvpn_docker_networks: "{{ docker_network }}"
- transmission_openvpn_docker_purge_networks: "yes"
- transmission_openvpn_docker_log_options: "{{ docker_log_options }}"
- transmission_openvpn_docker_log_driver: "{{ docker_log_driver }}"
@alekc
Copy link
Author

alekc commented Mar 2, 2020

Requirements.yml

- src: git+https://gitlab.com/alexander-chernov/ansible/role-docker-radarr.git
  version: master
- src: git+https://gitlab.com/alexander-chernov/ansible/role-docker-sonarr.git
  version: master
- src: git+https://gitlab.com/alexander-chernov/ansible/role-docker-jackett.git
  version: master
- src: git+https://gitlab.com/alexander-chernov/ansible/role-docker-plex.git
  version: master
- src: git+https://gitlab.com/alexander-chernov/ansible/role-docker-transmission-openvpn.git
  version: master

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment