Merge branch 'master' into Fix-tautulli-so-it-can-see-plex-logs

This commit is contained in:
David Stephens 2020-01-29 23:56:08 +00:00 committed by GitHub
commit ef78fb9bab
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
87 changed files with 447 additions and 156 deletions

View file

@ -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:**

View file

@ -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
@ -76,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

View file

@ -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/<your_inventory>/nas.yml` file.
The Airsonic web interface can be found at http://ansible_nas_host_or_ip:4040.

View file

@ -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/<your_inventory>/nas.yml` file.
## Specific Configuration

View file

@ -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/<your_inventory>/nas.yml` file.
## Specific Configuration

View file

@ -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/<your_inventory>/nas.yml` file.
## Specific Configuration

View file

@ -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/<your_inventory>/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/<your_inventory>/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).

View file

@ -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/<your_inventory>/nas.yml` file.
## Specific Configuration
Make sure you set your Cloudflare login, domain and API key details within your `group_vars/all.yml` file.
Make sure you set your Cloudflare login, domain and API key details within your `inventories/<your_inventory>/nas.yml` file.

View file

@ -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/<your_inventory>/nas.yml` file. There are further
parameters you can edit such as `movies_root` and `tv_root` lower down.
## Specific Configuration

View file

@ -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/<your_inventory>/nas.yml` file.
The Firefly III web interface can be found at http://ansible_nas_host_or_ip:8066.

View file

@ -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/<your_inventory>/nas.yml` file.
The get_iplayer web interface can be found at http://ansible_nas_host_or_ip:8182.

View file

@ -0,0 +1,17 @@
# Guacamole
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/<your_inventory>/nas.yml` file.
## Specific Configuration
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 [Virtual Desktop docs](virtual_desktop.md).

View file

@ -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/<your_inventory>/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/<your_inventory>/nas.yml` file.
The Home Assistant web interface can be found at http://ansible_nas_host_or_ip:8123.

View file

@ -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/<your_inventory>/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!

View file

@ -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/<your_inventory>/nas.yml` file.
The Jackett web interface can be found at http://ansible_nas_host_or_ip:9117.

View file

@ -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/<your_inventory>/nas.yml` file. There are further
parameters you can edit such as `movies_root` and `tv_root` lower down.
## Specific Configuration

View file

@ -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/<your_inventory>/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/<your_inventory>/nas.yml` file.
The Joomla web interface can be found at http://ansible_nas_host_or_ip:8181.

View file

@ -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/<your_inventory>/nas.yml` file.

View file

@ -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/<your_inventory>/nas.yml` file.
The very basic MiniDLNA web interface can be found at http://ansible_nas_host_or_ip:8201.

View file

@ -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/<your_inventory>/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`.

View file

@ -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/<your_inventory>/nas.yml` file.

View file

@ -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/<your_inventory>/nas.yml` file.
The My Media for Alexa web interface can be found at http://ansible_nas_host_or_ip:52051.

View file

@ -5,6 +5,8 @@ Homepage: [https://nextcloud.com](https://nextcloud.com)
## Usage
Set `nextcloud_enabled: true` in your `inventories/<your_inventory>/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.

View file

@ -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/<your_inventory>/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!

View file

@ -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/<your_inventory>/nas.yml` file.

View file

@ -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/<your_inventory>/nas.yml` file.
## Specific Configuration

View file

@ -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/<your_inventory>/nas.yml` file.
pyLoad's web interface can be found at http://ansible_nas_host_or_ip:8000

View file

@ -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)

View file

@ -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/<your_inventory>/nas.yml` file.
The Serposcope web interface can be found at http://ansible_nas_host_or_ip:7134.

View file

@ -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)

View file

@ -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/<your_inventory>/nas.yml` file.
The Lounge web interface can be found at http://ansible_nas_host_or_ip:9000.

View file

@ -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/<your_inventory>/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.

View file

@ -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/<your_inventory>/nas.yml` file.
Traefik's web interface can be found at http://ansible_nas_host_or_ip:8083.

View file

@ -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/<your_inventory>/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).

View file

@ -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/<your_inventory>/nas.yml` file.
Access the webui at http://<server>:2202/ubooquity by default. See specific configuration section below for information on setting up external access.

View file

@ -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/<your_inventory>/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.md).

View file

@ -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/<your_inventory>/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/<your_inventory>/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.

View file

@ -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/<your_inventory>/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/<your_inventory>/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).

View file

@ -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 | |

View file

@ -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.
8. Run the playbook - something like `ansible-playbook -i inventories/my-ansible-nas/inventory nas.yml -b -K` should do you nicely.

View file

@ -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
@ -93,13 +94,18 @@ 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.
# 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
###
@ -284,7 +290,6 @@ cloudflare_email: "{{ ansible_nas_email }}"
# Cloudflare 'Global API Key', can be found on the 'My Profile' page
cloudflare_api_key: abcdeabcdeabcdeabcde1234512345
###
### General
###
@ -332,6 +337,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
@ -344,6 +351,10 @@ transmission_watch_directory: "{{ torrents_root }}"
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"
# Transmission VPN Credentials
# If you're using Transmission with a VPN, you'll need to set these credentials.
@ -359,6 +370,7 @@ openvpn_config: United-Kingdom
joomla_data_directory: "{{ docker_home }}/joomla"
joomla_available_externally: "false"
joomla_database_password: top_secret
joomla_port: "8181"
###
### pyLoad
@ -368,6 +380,7 @@ pyload_config_directory: "{{ docker_home }}/pyload"
pyload_download_directory: "{{ downloads_root }}"
pyload_user_id: "0"
pyload_group_id: "0"
pyload_port: "8000"
###
### Plex
@ -387,6 +400,7 @@ plex_music_directory: "{{ music_root }}"
plex_music_permissions: "rw"
plex_user_id: "0"
plex_group_id: "0"
plex_port: "32400"
###
### Homebridge
@ -395,6 +409,7 @@ homebridge_available_externally: "false"
homebridge_config_directory: "{{ docker_home }}/homebridge/config"
homebridge_user_id: "0"
homebridge_group_id: "0"
homebridge_port: "8087"
###
### Emby
@ -409,6 +424,8 @@ emby_tv_directory: "{{ tv_root }}"
emby_tv_permissions: "rw"
emby_user_id: "0"
emby_group_id: "0"
emby_port_http: "8096"
emby_port_https: "8920"
###
### Tautulli
@ -417,6 +434,7 @@ tautulli_available_externally: "false"
tautulli_config_directory: "{{ docker_home }}/tautulli/config"
tautulli_user_id: "0"
tautulli_group_id: "0"
tautulli_port: "8185"
###
@ -424,7 +442,7 @@ tautulli_group_id: "0"
###
duplicati_available_externally: "false"
duplicati_data_directory: "{{ docker_home }}/duplicati/config"
duplicati_port: "8200"
###
### Sonarr
@ -435,7 +453,7 @@ sonarr_tv_directory: "{{ tv_root }}"
sonarr_download_directory: "{{ downloads_root }}"
sonarr_user_id: "0"
sonarr_group_id: "0"
sonarr_port: "8989"
###
### Radarr
@ -446,6 +464,7 @@ radarr_download_directory: "{{ downloads_root }}"
radarr_data_directory: "{{ docker_home }}/radarr"
radarr_user_id: "0"
radarr_group_id: "0"
radarr_port: "7878"
###
### Bazarr
@ -456,6 +475,7 @@ bazarr_tv_directory: "{{ tv_root }}"
bazarr_movies_directory: "{{ movies_root }}"
bazarr_user_id: "0"
bazarr_group_id: "0"
bazarr_port: "6767"
###
### lidarr
@ -466,7 +486,7 @@ lidarr_music_directory: "{{ music_root }}"
lidarr_downloads_directory: "{{ downloads_root }}"
lidarr_user_id: "0"
lidarr_group_id: "0"
lidarr_port: "8686"
###
### Couchpotato
@ -478,7 +498,7 @@ couchpotato_downloads_directory: "{{ downloads_root }}"
couchpotato_torrents_directory: "{{ torrents_root }}"
couchpotato_user_id: "0"
couchpotato_group_id: "0"
couchpotato_port: "5050"
###
### Sickchill
@ -489,6 +509,8 @@ sickchill_tv_directory: "{{ tv_root }}"
sickchill_downloads_directory: "{{ downloads_root }}/completed"
sickchill_user_id: "0"
sickchill_group_id: "0"
sickchill_port: "8081"
###
### Ombi
@ -502,6 +524,7 @@ ombi_group_id: "0"
### Netdata
###
netdata_available_externally: "false"
netdata_port: "19999"
###
### OpenVPN
@ -514,7 +537,7 @@ openvpn_config_directory: "{{ docker_home }}/openvpn"
###
portainer_available_externally: "false"
portainer_data_directory: "{{ docker_home }}/portainer/config"
portainer_port: "9000"
###
### ZNC
@ -523,6 +546,7 @@ znc_available_externally: "false"
znc_data_directory: "{{ docker_home }}/znc"
znc_user_id: "0"
znc_group_id: "0"
znc_port: "6677"
###
@ -533,36 +557,44 @@ 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
###
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
@ -571,12 +603,17 @@ 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_music_directory: "{{ music_root }}"
airsonic_podcasts_directory: "{{ podcasts_root }}"
airsonic_port: "4040"
###
### CloudCmd
@ -586,6 +623,7 @@ cloudcmd_data_directory: "{{ docker_home }}/cloudcmd/config"
cloudcmd_browse_directory: "/"
cloudcmd_user_id: "0"
cloudcmd_group_id: "0"
cloudcmd_port: "7373"
###
### Watchtower
@ -621,12 +659,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
@ -639,18 +679,24 @@ mymediaforalexa_data_directory: "{{ docker_home }}/mymediaforalexa"
###
jackett_available_externally: "false"
jackett_data_directory: "{{ docker_home }}/jackett"
jackett_torrents_root: "{{ torrents_root }}"
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,
@ -667,6 +713,7 @@ bitwarden_allow_signups: false
###
firefly_available_externally: "false"
firefly_data_directory: "{{ docker_home }}/firefly"
firefly_port: "8066"
###
### Nzbget
@ -676,18 +723,22 @@ nzbget_data_directory: "{{ docker_home }}/nzbget"
nzbget_download_directory: "{{ downloads_root }}"
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
@ -696,6 +747,8 @@ calibre_available_externally: "false"
calibre_data_directory: "{{ docker_home }}/calibre"
calibre_user_id: "0"
calibre_group_id: "0"
calibre_books_root: "{{ books_root }}"
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"
@ -704,6 +757,7 @@ calibre_ebook_conversion: "linuxserver/calibre-web:calibre"
###
homeassistant_available_externally: "false"
homeassistant_data_directory: "{{ docker_home }}/homeassistant"
homeassistant_port: "8123"
###
### openHAB
@ -711,6 +765,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
@ -725,6 +781,8 @@ 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"
###
### Ubooquity
@ -733,3 +791,23 @@ ubooquity_available_externally: "false"
ubooquity_data_directory: "{{ docker_home }}/ubooquity"
ubooquity_user_id: "0"
ubooquity_group_id: "0"
ubooquity_port_webui: "2202"
ubooquity_port_admin: "2203"
###
### Serposcope
###
serposcope_data_directory: "{{ docker_home }}/serposcope"
serposcope_port: 7134
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

View file

@ -215,3 +215,11 @@
- import_tasks: tasks/lidarr.yml
when: (lidarr_enabled | default(False))
tags: lidarr
- 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

View file

@ -16,10 +16,10 @@
volumes:
- "{{ airsonic_data_directory }}/data:/airsonic/data:rw"
- "{{ airsonic_data_directory }}/playlists:/airsonic/playlists:rw"
- "{{ samba_shares_root }}/music:/airsonic/music:rw"
- "{{ samba_shares_root }}/podcasts:/airsonic/podcasts:rw"
- "{{ airsonic_music_directory }}:/airsonic/music:rw"
- "{{ airsonic_podcasts_directory }}:/airsonic/podcasts:rw"
ports:
- "4040:4040"
- "{{ airsonic_port }}:4040"
restart_policy: unless-stopped
memory: 1g
labels:

View file

@ -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 }}"

View file

@ -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:
@ -25,7 +25,7 @@
traefik.enable: "{{ bitwarden_available_externally }}"
traefik.web.port: "80"
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

View file

@ -12,14 +12,14 @@
pull: true
volumes:
- "{{ calibre_data_directory }}/config:/config"
- "{{ books_root }}:/books"
- "{{ calibre_books_root }}:/books"
env:
TZ: "{{ ansible_nas_timezone }}"
PUID: "{{ calibre_user_id }}"
PGID: "{{ calibre_group_id }}"
DOCKER_MODS: "{{ calibre_ebook_conversion }}"
ports:
- "8084:8083"
- "{{ calibre_port }}:8083"
restart_policy: unless-stopped
labels:
traefik.backend: "calibre"

View file

@ -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 }}"

View file

@ -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 }}"

View file

@ -6,9 +6,16 @@
register: result
until: result is succeeded
- name: 'Install docker-py'
- 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
state: present
register: result
until: result is succeeded
@ -37,4 +44,4 @@
state: restarted
when: docker_config.changed
tags:
- skip_ansible_lint
- skip_ansible_lint

View file

@ -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"

View file

@ -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: "8096"

View file

@ -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: "80"

View file

@ -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

View file

@ -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

View file

@ -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: "61208"

View file

@ -4,51 +4,39 @@
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:
- "8090:8080"
env:
MYSQL_DATABASE: "guacamole"
MYSQL_USER: "guacamole-user"
MYSQL_PASSWORD: "guacamole-pass"
- "{{ guacamole_port }}:8080"
restart_policy: unless-stopped
memory: 1g
labels:
@ -56,3 +44,9 @@
traefik.frontend.rule: "Host:guacamole.{{ ansible_nas_domain }}"
traefik.enable: "{{ guacamole_available_externally }}"
traefik.port: "8080"
- name: Restart Guacamole Container
docker_container:
name: guacamole
image: "oznu/guacamole"
restart: true

View file

@ -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: "80"

View file

@ -19,7 +19,7 @@
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:

View file

@ -13,9 +13,9 @@
volumes:
- "{{ jackett_data_directory }}:/config:rw"
- "/etc/localtime:/etc/localtime:ro"
- "{{ torrents_root }}:/downloads"
- "{{ jackett_torrents_root }}:/downloads"
ports:
- "9117:9117"
- "{{ jackett_port }}:9117"
env:
TZ: "{{ ansible_nas_timezone }}"
restart_policy: unless-stopped

View file

@ -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: "8096"

View file

@ -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: "80"

View file

@ -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 }}"

View file

@ -7,7 +7,7 @@
- "{{ 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"

View file

@ -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: "8080"

View file

@ -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

View file

@ -12,7 +12,7 @@
state: started
pull: true
ports:
- "19999:19999"
- "{{ netdata_port }}:19999"
volumes:
- "/proc:/host/proc:ro"
- "/sys:/host/sys:ro"

View file

@ -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: "80"

View file

@ -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"

View file

@ -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 }}"

View file

@ -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: "7777"

View file

@ -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: "9000"

View file

@ -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 }}"

View file

@ -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 }}"

44
tasks/serposcope.yml Normal file
View file

@ -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"

View file

@ -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 }}"

View file

@ -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 }}"

View file

@ -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,7 +64,7 @@
- "{{ 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:

View file

@ -15,7 +15,8 @@
volumes:
- "{{ tautulli_config_directory }}:/config:rw"
- "{{ plex_logs }}:/logs:ro"
network_mode: "host"
ports:
- "{{ tautulli_port }}:8181"
env:
TZ: "{{ ansible_nas_timezone }}"
PUID: "{{ tautulli_user_id }}"

View file

@ -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"

View file

@ -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 }}"

View file

@ -21,8 +21,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"

View file

@ -22,8 +22,8 @@
PGID: "{{ ubooquity_group_id|quote }}"
MAXMEM: "1024"
ports:
- "2202:2202"
- "2203:2203"
- "{{ ubooquity_port_webui }}:2202"
- "{{ ubooquity_port_admin }}:2203"
restart_policy: unless-stopped
labels:
traefik.backend: "ubooquity"

30
tasks/virtual_desktop.yml Normal file
View file

@ -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

View file

@ -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

View file

@ -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 }}"

View file

@ -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
@ -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 }}",

View file

@ -0,0 +1 @@
{% for user in vd_users %}{{ user.username }}:{{ user.password }}:{{ user.sudo }}{% endfor %}