### ### Ansible NAS Features ### # Set these options to true or false to toggle specific features # External Access # Traefik will allow access to certain applications externally. To enable this you'll need a domain name that points to your # home static IP address, cloudflare with the cloudflare_ddns dynamic DNS container enabled, or use a dynamic DNS provider like no-ip. # You'll also need to map ports 80 and 443 from your router to your ansible-nas server. traefik_enabled: false # BitTorrent # If you plan to use Transmission with OpenVPN, you'll need to copy group_vars/vpn_credentials.yml.dist # to group_vars/vpn_credentials.yml, then update it with your own settings. transmission_with_openvpn_enabled: false transmission_enabled: false # Plex plex_enabled: false tautulli_enabled: false # Emby emby_enabled: false # Media Sourcing sonarr_enabled: false sickrage_enabled: false couchpotato_enabled: false radarr_enabled: false # Music airsonic_enabled: false # News miniflux_enabled: false # System Management heimdall_enabled: true portainer_enabled: true glances_enabled: true stats_enabled: false guacamole_enabled: false netdata_enabled: false watchtower_enabled: false cloudflare_ddns_enabled: false # Backup & Restore duplicati_enabled: false nextcloud_enabled: false gitea_enabled: false timemachine_enabled: false # IRC bouncer znc_enabled: false ### ### General ### # Sets the hostname of your Ansible NAS ansible_nas_hostname: ansible-nas # Sets the timezone for your Ansible NAS # You can find a list here https://en.wikipedia.org/wiki/List_of_tz_database_time_zones ansible_nas_timezone: Etc/UTC # Update all apt packages when playbook is run keep_packages_updated: false # Will be added to the docker group to give user command line access to docker ansible_nas_user: david # Your email and domain, used for LetsEncrypt SSL certs ansible_nas_email: me@example.com # Applications will have subdomain SSL certificates created, eg ansible-nas., nextcloud. ansible_nas_domain: example.com ### ### Docker ### # Where you want Docker to store images docker_image_directory: "{{ docker_home }}/data" # Where you want Docker to store its container data. docker_home: /mnt/Volume2/docker # Docker storage driver, see https://docs.docker.com/storage/storagedriver/select-storage-driver/#supported-backing-filesystems # You'll need to change this if your docker_home isn't on zfs and Docker won't start (you'll probably want overlay2 instead) docker_storage_driver: zfs ### ### Samba ### # The location where all shares will be created by default. Can be overridden on a per-share basis. # This path will be mounted to backup containers, Duplicati samba_shares_root: /mnt/Volume3 # Where stuff downloaded will be stored downloads_root: "{{ samba_shares_root }}/downloads" # Where your movies are stored movies_root: "{{ samba_shares_root }}/movies" # Where your TV episodes are stored tv_root: "{{ samba_shares_root }}/tv" # Where torrent files are stored (picked up by Transmission for downloading) torrents_root: "{{ samba_shares_root }}/torrents" # Where music is stored music_root: "{{ samba_shares_root }}/music" # Where podcasts are stored podcasts_root: "{{ samba_shares_root }}/podcasts" # The description that'll appear next to your Ansible-NAS box when browsing your network samba_server_string: Ansible NAS # Shares you want published over Samba. samba_shares: - name: downloads comment: 'Stuff downloaded' guest_ok: yes public: yes writable: yes browsable: yes path: "{{ downloads_root }}" - name: movies comment: 'Movies' guest_ok: yes public: yes writable: yes browsable: yes path: "{{ movies_root }}" - name: tv comment: 'TV Episodes' guest_ok: yes public: yes writable: yes browsable: yes path: "{{ tv_root }}" - name: music comment: 'Music' guest_ok: yes public: yes writable: yes browsable: yes path: "{{ samba_shares_root }}/music" - name: podcasts comment: 'Podcasts' guest_ok: yes public: yes writable: yes browsable: yes path: "{{ samba_shares_root }}/podcasts" - name: dump comment: 'File dump' guest_ok: yes public: yes writable: yes browsable: yes path: "{{ samba_shares_root }}/dump" - name: games comment: 'Games' guest_ok: yes public: yes writable: yes browsable: yes path: "{{ samba_shares_root }}/games" - name: photos comment: 'Pictures' guest_ok: yes public: yes writable: yes browsable: yes path: "{{ samba_shares_root }}/photos" ### ### Cloudflare ### # Cloudflare is a great free DNS option for domains. If you use the cloudflare_ddns container then you'll need to # set the options below. # Your domain name cloudflare_zone: awesomedomain.com # The hostname you want the container to update. You shouldn't need to change this. cloudflare_host: "*.{{ cloudflare_zone }}" # Email address used to register for Cloudflare cloudflare_email: dave@awesomedomain.com # Cloudflare 'Global API Key', can be found on the 'My Profile' page cloudflare_api_key: abcdeabcdeabcdeabcde1234512345 ################################################################## ###### You shouldn't need to edit anything below this point ###### ################################################################## ### ### General ### # Extra packages to install ansible_nas_extra_packages: - smartmontools - htop - zfsutils-linux - bonnie++ - unzip - lm-sensors ansible_python_interpreter: /usr/bin/python3 ### ### Samba ### # Seems to break browsing of the \\server-name shares root when enabled samba_mitigate_cve_2017_7494: false # The account used when Samba shares are accessed. Shouldn't need to change this unless you want to # mess with Samba user permissions. samba_guest_account: ansible-nas # How Samba behaves when an unknown user connects, see Samba docs for more info samba_map_to_guest: Bad Password # The Netbios hostname used by Samba on your network samba_netbios_name: "{{ ansible_nas_hostname }}" ### ### Traefik ### traefik_docker_image: traefik:1.7 traefik_data_directory: "{{ docker_home }}/traefik" ### ### Heimdall ### heimdall_docker_image: linuxserver/heimdall:latest heimdall_data_directory: "{{ docker_home }}/heimdall" ### ### Transmission ### 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_local_network: "192.168.1.0/24" ### ### Plex ### plex_config_directory: "{{ docker_home }}/plex/config" plex_movies_directory: "{{ movies_root }}" plex_tv_directory: "{{ tv_root }}" plex_user_id: 0 plex_group_id: 0 ### ### Emby ### emby_config_directory: "{{ docker_home }}/emby/config" emby_movies_directory: "{{ movies_root }}" emby_tv_directory: "{{ tv_root }}" emby_user_id: 0 emby_group_id: 0 ### ### Tautulli ### tautulli_config_directory: "{{ docker_home }}/tautulli/config" tautulli_user_id: 0 tautulli_group_id: 0 ### ### Duplicati ### duplicati_data_directory: "{{ docker_home }}/duplicati/config" ### ### Sonarr ### 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 ### ### Radarr ### radarr_movies_directory: "{{ movies_root }}" radarr_download_directory: "{{ downloads_root }}" radarr_data_directory: "{{ docker_home }}/radarr" radarr_user_id: 0 radarr_group_id: 0 ### ### Couchpotato ### 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 ### ### Sickrage ### sickrage_config_directory: "{{ docker_home }}/sickrage/config" sickrage_tv_directory: "{{ tv_root }}" sickrage_downloads_directory: "{{ downloads_root }}" sickrage_user_id: 0 sickrage_group_id: 0 ### ### OpenVPN ### openvpn_config_directory: "{{ docker_home }}/openvpn" ### ### Portainer ### portainer_data_directory: "{{ docker_home }}/portainer/config" ### ### ZNC ### znc_data_directory: "{{ docker_home }}/znc" znc_user_id: 0 znc_group_id: 0 ### ### Stats ### telegraf_data_directory: "{{ docker_home }}/telegraf" influxdb_data_directory: "{{ docker_home }}/influxdb" grafana_data_directory: "{{ docker_home }}/grafana" stat_collection_interval: 15s ### ### Gitea ### gitea_data_directory: "{{ docker_home }}/gitea" ### ### Nextcloud ### nextcloud_data_directory: "{{ docker_home }}/nextcloud" ### ### nginx ### nginx_data_directory: "{{ docker_home }}/nginx" ### ### Guacamole ### guacamole_docker_image: guacamole/guacamole:0.9.14 guacamole_guacd_docker_image: guacamole/guacd:0.9.14 guacamole_data_directory: "{{ docker_home }}/guacamole" ### ### Miniflux ### miniflux_data_directory: "{{ docker_home }}/miniflux" miniflux_admin_username: admin miniflux_admin_password: supersecure ### ### Airsonic ### airsonic_data_directory: "{{ docker_home }}/airsonic" ### ### Watchtower ### # Sets the 6 field cron schedule to use for checks and updates. This will check at 5am daily. watchtower_cron_schedule: 0 0 5 * * * # Sets the Watchtower Docker start command. Different options can be supplied based on whether you want to receive # notifications or not, some examples are provided below. See https://github.com/v2tec/watchtower for more info. # No notifications watchtower_command: "--schedule '{{ watchtower_cron_schedule }}' --debug" # Email notifications # watchtower_command: "--schedule '{{ watchtower_cron_schedule }}' --notifications 'email' --notification-email-from 'ansible@nas.com' --notification-email-to '{{ ansible_nas_email }}' --notification-email-server 'my.email.server.com' --notification-email-server-port '25' --notification-email-server-user 'email_username' --notification-email-server-password 'top-secret'" # Slack notifications # watchtower_command: "--schedule '{{ watchtower_cron_schedule }}' --notifications 'slack' --notification-slack-hook-url 'https://hooks.slack.com/services/xxx/yyyyyyyyyyyyyyy' --notification-slack-identifier 'ansible-nas'" ### ### Time Machine ### timemachine_data_directory: "{{ docker_home }}/timemachine" timemachine_volume_size_limit: 0 timemachine_password: timemachine timemachine_share_name: TimeMachine timemachine_log_level: error