mirror of
https://github.com/davestephens/ansible-nas
synced 2024-11-15 00:17:10 +00:00
Merge branch 'master' into Map-ports-to-all.yml
This commit is contained in:
commit
6237455eaa
12 changed files with 222 additions and 17 deletions
|
@ -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.
|
23
README.md
23
README.md
|
@ -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
|
||||
|
||||
|
|
12
docs/applications/lidarr.md
Normal file
12
docs/applications/lidarr.md
Normal 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
12
docs/applications/ombi.md
Normal 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.
|
24
docs/applications/ubooquity.md
Normal file
24
docs/applications/ubooquity.md
Normal 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.
|
||||
|
|
@ -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 | |
|
||||
|
|
|
@ -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
12
nas.yml
|
@ -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
28
tasks/lidarr.yml
Normal 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
26
tasks/ombi.yml
Normal 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
32
tasks/ubooquity.yml
Normal 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"
|
|
@ -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 }}"]
|
||||
|
|
Loading…
Reference in a new issue