Merge branch 'master' into Map-ports-to-all.yml

This commit is contained in:
animeai 2020-01-05 22:54:50 +00:00
commit 6237455eaa
12 changed files with 222 additions and 17 deletions

View file

@ -11,4 +11,15 @@ If you're adding a new application:
* Ensure that the new application is disabled by default.
* Add a documentation page to `docs/applications/` - use an existing application as an example.
* Add the frontend port to `docs/configuration/application_ports.md`, ensuring you've not clashed with an existing application.
* Add the frontend port to `docs/configuration/application_ports.md`, ensuring you've not clashed with an existing application.
## Things to bear in mind
* If you break the build with your PR, please fix it :)
* Pull requests that unintentionally touch files, or that show files as removed then re-added will be rejected.
* Please know that your efforts are appreciated, thanks! :+1:
# Development Environment
* Development of Ansible-NAS is carried out in [Visual Studio Code](https://code.visualstudio.com/) - you'll get some nice
recommended extensions and task setups if you do the same.

View file

@ -12,8 +12,9 @@ Ansible config and a bunch of Docker containers.
* Any number of Samba shares or NFS exports for you to store your stuff
* A BitTorrent client
* A Usenet downloader
* Various media management tools - Sonarr, Sickchill, CouchPotato, Radarr, Bazarr
* Media streaming via Plex, Emby or Jellyfin
* Various media management tools - Sonarr, Sickchill, CouchPotato, Radarr, Bazarr, Lidarr
* Media streaming via Plex or Emby
* Music streaming with Airsonic
* An RSS newsfeed reader - Miniflux
* A Dropbox replacement via Nextcloud
@ -28,6 +29,7 @@ Ansible config and a bunch of Docker containers.
* eBook management with calibre-web
* Content management with Joomla
* A dual panel local file manager
* Self-service media request web application
### Docker Containers Used
@ -52,6 +54,7 @@ Ansible config and a bunch of Docker containers.
* [Jackett](https://github.com/Jackett/Jackett) - API Support for your favorite torrent trackers
* [Jellyfin](https://jellyfin.github.io) - The Free Software Media System
* [Joomla](https://www.joomla.org/) - Open source content management system
* [Lidarr](https://github.com/lidarr/Lidarr) - Music collection manager for Usenet and BitTorrent users
* [MiniDlna](https://sourceforge.net/projects/minidlna/) - simple media server which is fully compliant with DLNA/UPnP-AV clients
* [Miniflux](https://miniflux.app/) - An RSS news reader
* [Mosquitto](https://mosquitto.org) - An open source MQTT broker
@ -59,6 +62,7 @@ Ansible config and a bunch of Docker containers.
* [Netdata](https://my-netdata.io/) - An extremely comprehensive system monitoring solution
* [Nextcloud](https://nextcloud.com/) - A self-hosted Dropbox alternative
* [NZBget](https://nzbget.net/) - The most efficient usenet downloader
* [Ombi](https://ombi.io/) - web application that automatically gives your users the ability to request content
* [openHAB](https://www.openhab.org/) - A vendor and technology agnostic open source automation software for your home
* [Plex](https://www.plex.tv/) - Plex Media Server
* [Portainer](https://portainer.io/) - for managing Docker and running custom images
@ -72,6 +76,7 @@ Ansible config and a bunch of Docker containers.
* [TimeMachine](https://github.com/awlx/samba-timemachine) - Samba-based mac backup server
* [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
* [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
@ -143,20 +148,8 @@ Getting help is easy! You can:
## Contributing
Contributions are welcome, please feel free to raise a PR!
Contributions are always welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) first.
* Restrict pull requests to one piece of functionality or bugfix at a time.
* Test your new functionality or bugfix using the included
`tests/test-vagrant.sh` script to spin up a test VM. Note that Ansible-NAS
requires Vagrant version 2.2.2 or later, so for stock Ubuntu 18.04.2, you will
have to download and install the newest version from
https://www.vagrantup.com/downloads.html.
* Run `ansible-lint` against the playbook before committing. (There is a VSCode
task set up to run the right command for you)
* Please know that your efforts are appreciated, thanks! :+1:
Development of Ansible-NAS is carried out in [Visual Studio Code](https://code.visualstudio.com/) - you'll get some nice
recommended extensions and task setups if you do the same.
## Support

View file

@ -0,0 +1,12 @@
# Lidarr music collection manager
Homepage: [https://lidarr.audio/](https://lidarr.audio/)
Lidarr is a music collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new tracks from your favorite artists 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 `lidarr_enabled: true` in your `group_vars/all.yml` file.

12
docs/applications/ombi.md Normal file
View file

@ -0,0 +1,12 @@
# Ombi
Homepage: [https://ombi.io/](https://ombi.io/)
Ombi is a self-hosted web application that automatically gives your shared Plex or Emby users the ability to request content by themselves! Ombi can be linked to multiple TV Show and Movie DVR tools to create a seamless end-to-end experience for your users.
## Usage
Set `ombi_enabled: true` in your `group_vars/all.yml` file.

View file

@ -0,0 +1,24 @@
# Ubooquity Comic and Book Server
Homepage: [https://vaemendis.net/ubooquity/](https://vaemendis.net/ubooquity/)
Documentation: [https://vaemendis.github.io/ubooquity-doc/](https://vaemendis.github.io/ubooquity-doc/)
Docker Image: [https://hub.docker.com/r/linuxserver/ubooquity/](https://hub.docker.com/r/linuxserver/ubooquity/)
Ubooquity is a free, lightweight and easy-to-use home server for your comics and ebooks. Use it to access your files from anywhere, with a tablet, an e-reader, a phone or a computer.
## Usage
Set `ubooquity_enabled: true` in your `group_vars/all.yml` file.
Access the webui at http://<server>:2202/ubooquity by default. See specific configuration section below for information on setting up external access.
## Specific Configuration
Important note: if you want to access Ubooquity externally through Traefik (at ubooquity.yourdomain.tld), you need to go to http://<server>:2203/ubooquity/admin and set the reverse proxy prefix to blank under "Advanced". Otherwise you will need to append "/ubooquity" to the url in order to access.
### Admin login
The admin portal is not exposed through Traefik. You can access the admin portal on port 2203.
Upon your first run, the address is http://<server>:2203/ubooquity/admin. You will be able to set the admin password here.

View file

@ -27,6 +27,7 @@ By default, applications can be found on the ports listed below.
| Jackett | 9117 | |
| Jellyfin | 8896 | HTTP |
| Jellyfin | 8928 | HTTPS |
| Lidarr | 8686 | |
| MiniDLNA | 8201 | |
| Miniflux | 8070 | |
| Mosquitto | 1883 | MQTT |
@ -35,6 +36,7 @@ By default, applications can be found on the ports listed below.
| Netdata | 19999 | |
| Nextcloud | 8080 | |
| NZBGet | 6789 | |
| Ombi | 3579 | |
| openHAB | 7777 | HTTP |
| openHAB | 7778 | HTTPS |
| Plex | 32400 | |
@ -49,5 +51,7 @@ By default, applications can be found on the ports listed below.
| Traefik | 8083 | |
| Transmission | 9091 | with VPN |
| Transmission | 9092 | |
| Ubooquity | 2202 | |
| Ubooquity | 2203 | Admin |
| Wallabag | 7780 | |
| ZNC | 6677 | |

View file

@ -41,6 +41,8 @@ radarr_enabled: false
get_iplayer_enabled: false
jackett_enabled: false
bazarr_enabled: false
ombi_enabled: false
lidarr_enabled: false
# Music
airsonic_enabled: false
@ -88,6 +90,9 @@ openhab_enabled: false
# Calibre
calibre_enabled: false
# Ubooquity
ubooquity_enabled: false
# Joomla
joomla_enabled: false
@ -154,6 +159,9 @@ podcasts_root: "{{ samba_shares_root }}/podcasts"
# Where your books are stored
books_root: "{{ samba_shares_root }}/books"
# Where your books are stored
comics_root: "{{ samba_shares_root }}/comics"
# Where photos are stored
photos_root: "{{ samba_shares_root }}/photos"
@ -234,6 +242,14 @@ samba_shares:
browsable: yes
path: "{{ samba_shares_root }}/books"
- name: comics
comment: 'Comics'
guest_ok: yes
public: yes
writable: yes
browsable: yes
path: "{{ samba_shares_root }}/comics"
###
### NFS
###
@ -405,6 +421,7 @@ tautulli_user_id: "0"
tautulli_group_id: "0"
tautulli_port: "8185"
###
### Duplicati
###
@ -445,6 +462,17 @@ bazarr_user_id: "0"
bazarr_group_id: "0"
bazarr_port: "6767"
###
### lidarr
###
lidarr_available_externally: "false"
lidarr_data_directory: "{{ docker_home }}/lidarr/config"
lidarr_music_directory: "{{ music_root }}"
lidarr_downloads_directory: "{{ downloads_root }}"
lidarr_user_id: "0"
lidarr_group_id: "0"
lidarr_port: "8686"
###
### Couchpotato
###
@ -468,6 +496,15 @@ sickchill_user_id: "0"
sickchill_group_id: "0"
sickchill_port: "8081"
###
### Ombi
###
ombi_available_externally: "false"
ombi_config_directory: "{{ docker_home }}/ombi/config"
ombi_user_id: "0"
ombi_group_id: "0"
###
### Netdata
###
@ -496,6 +533,7 @@ znc_user_id: "0"
znc_group_id: "0"
znc_port: "6677"
###
### Stats
###
@ -726,4 +764,14 @@ jellyfin_tv_permissions: "rw"
jellyfin_user_id: "0"
jellyfin_group_id: "0"
jellyfin_port_http: "8896"
jellyfin_port_https: "8928"
jellyfin_port_https: "8928"
###
### Ubooquity
###
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"

12
nas.yml
View file

@ -203,3 +203,15 @@
- import_tasks: tasks/cloudcmd.yml
when: (cloudcmd_enabled | default(False))
tags: cloudcmd
- import_tasks: tasks/ubooquity.yml
when: (ubooquity_enabled | default(False))
tags: ubooquity
- import_tasks: tasks/ombi.yml
when: (ombi_enabled | default(False))
tags: ombi
- import_tasks: tasks/lidarr.yml
when: (lidarr_enabled | default(False))
tags: lidarr

28
tasks/lidarr.yml Normal file
View file

@ -0,0 +1,28 @@
---
- name: Create lidarr Directory
file:
path: "{{ lidarr_data_directory }}"
state: directory
- name: lidarr
docker_container:
name: lidarr
image: linuxserver/lidarr
pull: true
volumes:
- "{{ lidarr_music_directory }}:/music:rw"
- "{{ lidarr_downloads_directory }}:/downloads:rw"
- "{{ lidarr_data_directory }}:/config:rw"
ports:
- "8686:8686"
env:
TZ: "{{ ansible_nas_timezone }}"
PUID: "{{ lidarr_user_id }}"
PGID: "{{ lidarr_group_id }}"
restart_policy: unless-stopped
memory: 1g
labels:
traefik.backend: "lidarr"
traefik.frontend.rule: "Host:lidarr.{{ ansible_nas_domain }}"
traefik.enable: "{{ lidarr_available_externally }}"
traefik.port: "8686"

26
tasks/ombi.yml Normal file
View file

@ -0,0 +1,26 @@
---
- name: Create ombi Directories
file:
path: "{{ ombi_config_directory }}"
state: directory
- name: ombi
docker_container:
name: ombi
image: linuxserver/ombi
pull: true
volumes:
- "{{ ombi_config_directory }}:/config:rw"
ports:
- "3579:3579"
env:
TZ: "{{ ansible_nas_timezone }}"
PUID: "{{ ombi_user_id }}"
PGID: "{{ ombi_group_id }}"
restart_policy: unless-stopped
memory: 1g
labels:
traefik.backend: "ombi"
traefik.frontend.rule: "Host:ombi.{{ ansible_nas_domain }}"
traefik.enable: "{{ ombi_available_externally }}"
traefik.port: "3579"

32
tasks/ubooquity.yml Normal file
View file

@ -0,0 +1,32 @@
---
- name: Create Ubooquity Directories
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ ubooquity_data_directory }}"
- name: Ubooquity Docker Container
docker_container:
name: ubooquity
image: linuxserver/ubooquity:latest
pull: true
volumes:
- "{{ ubooquity_data_directory }}/config:/config:rw"
- "{{ ubooquity_data_directory }}/files:/files:rw"
- "{{ comics_root }}:/comics"
- "{{ books_root }}:/books"
env:
TZ: "{{ ansible_nas_timezone }}"
PUID: "{{ ubooquity_user_id|quote }}"
PGID: "{{ ubooquity_group_id|quote }}"
MAXMEM: "1024"
ports:
- "2202:2202"
- "2203: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"

View file

@ -197,10 +197,12 @@ onDemand = false # create certificate when container is created
"jackett.{{ ansible_nas_domain }}",
"jellyfin.{{ ansible_nas_domain }}",
"joomla.{{ ansible_nas_domain }}",
"lidarr.{{ ansible_nas_domain }}",
"miniflux.{{ ansible_nas_domain }}",
"netdata.{{ ansible_nas_domain }}",
"nextcloud.{{ ansible_nas_domain }}",
"nzbget.{{ ansible_nas_domain }}",
"ombi.{{ ansible_nas_domain }}",
"openhab.{{ ansible_nas_domain }}",
"plex.{{ ansible_nas_domain }}",
"portainer.{{ ansible_nas_domain }}",
@ -212,5 +214,6 @@ onDemand = false # create certificate when container is created
"thelounge.{{ ansible_nas_domain }}",
"transmission.{{ ansible_nas_domain }}",
"transmission-openvpn.{{ ansible_nas_domain }}",
"ubooquity.{{ ansible_nas_domain }}",
"wallabag.{{ ansible_nas_domain }}",
"znc.{{ ansible_nas_domain }}"]