From afb80f46f86be278fff14e883423c69b2a2a71ff Mon Sep 17 00:00:00 2001 From: Luc Timmerman Date: Wed, 23 Nov 2022 19:54:28 +0100 Subject: [PATCH] Added support for Audiobookshelf --- README.md | 1 + container_configs.py | 18 ++++++++++++++++++ docker-compose.yml | 14 ++++++++++++++ main.py | 2 ++ setup.sh | 4 ++-- users_groups_setup.py | 8 ++++++++ 6 files changed, 45 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 15ef104..98acfd3 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ crash*. It doesn't necessarily mean it will run well on your system ;) It featur tricky to set up, so do so at your own risk. In order to connect this to your Prowlarr container, the process within Prowlarr is the same as for the other containers (add app). You'll have to add an API key within Mylar3, yourself. +- [Audiobookshelf](https://www.audiobookshelf.org/) is a self-hosted audiobook and podcast server. - [Prowlarr](https://wiki.servarr.com/prowlarr) can keep track of indexers, which are services that keep track of Torrent or UseNet links. One can search an indexer for certain content and find a where to download this. **Note**: when adding an indexer, please do not set the "seed ratio" to diff --git a/container_configs.py b/container_configs.py index 4e050db..d62a6ca 100644 --- a/container_configs.py +++ b/container_configs.py @@ -157,6 +157,24 @@ class ContainerConfig: ' restart: unless-stopped\n\n' ) + def audiobookshelf(self): + return ( + ' audiobookshelf:\n' + ' image: ghcr.io/advplyr/audiobookshelf:latest\n' + ' container_name: audiobookshelf\n' + ' environment:\n' + ' - AUDIOBOOKSHELF_UID=13009\n' + ' - AUDIOBOOKSHELF_GID=13000\n' + ' volumes:\n' + ' - ' + self.config_dir + '/audiobookshelf:/config\n' + ' - ' + self.root_dir + '/data/audiobooks:/audiobooks\n' + ' - ' + self.root_dir + '/data/podcasts:/podcasts\n' + ' - ' + self.root_dir + '/data/metadata:/metadata\n' + ' ports:\n' + ' - "13378:80"\n' + ' restart: unless-stopped\n\n' + ) + def prowlarr(self): return ( ' prowlarr:\n' diff --git a/docker-compose.yml b/docker-compose.yml index 38d664a..c5415b1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -75,6 +75,20 @@ services: - "8090:8090" restart: unless-stopped + audiobookshelf: + image: ghcr.io/advplyr/audiobookshelf:latest + container_name: audiobookshelf + environment: + - AUDIOBOOKSHELF_UID=13009 + - AUDIOBOOKSHELF_GID=13000 + ports: + - "13378:80" + volumes: + - /home/user/ezarr/data/audiobooks:/audiobooks + - /home/user/ezarr/data/podcasts:/podcasts + - /home/user/ezarr/config/audiobookshelf:/config + - /home/user/ezarr/data/audiobookshelf-metadata:/metadata + prowlarr: image: lscr.io/linuxserver/prowlarr:develop container_name: prowlarr diff --git a/main.py b/main.py index 360269c..6df23e1 100644 --- a/main.py +++ b/main.py @@ -50,6 +50,8 @@ print('Use Readarr? [Y/n]', end=" ") take_input('readarr', 'servarr') print('Use Mylar3? [Y/n]', end=" ") take_input('mylar3', 'servarr') +print('Use Audiobookshelf? [Y/n]', end=" ") +take_input('audiobookshelf', 'servarr') if len(services_classed['servarr']) == 0: print('Warning: no media management services selected.') diff --git a/setup.sh b/setup.sh index 8b449eb..3aa7be3 100755 --- a/setup.sh +++ b/setup.sh @@ -20,8 +20,8 @@ sudo usermod -a -G mediacenter qbittorrent sudo usermod -a -G mediacenter jackett # Make directories -sudo mkdir -pv docker/{sonarr,radarr,lidarr,readarr,mylar,prowlarr,qbittorrent,jackett}-config -sudo mkdir -pv data/{torrents,media}/{tv,movies,music,books,comics} +sudo mkdir -pv docker/{sonarr,radarr,lidarr,readarr,mylar,prowlarr,qbittorrent,jackett,audiobookshelf}-config +sudo mkdir -pv data/{torrents,media}/{tv,movies,music,books,comics,audiobooks,podcasts,audiobookshelf-metadata} # Set permissions sudo chmod -R 775 data/ diff --git a/users_groups_setup.py b/users_groups_setup.py index 70a6592..4ac6ebc 100644 --- a/users_groups_setup.py +++ b/users_groups_setup.py @@ -52,6 +52,14 @@ class UserGroupSetup: self.create_config_dir('mylar') os.system('sudo usermod -a -G mediacenter mylar') + def audiobookshelf(self): + os.system( + 'sudo useradd audiobookshelf -u 13009' + ' && sudo mkdir -pv ' + self.root_dir + 'data/{media,torrents}/audiobooks -m 775' + ) + self.create_config_dir('audiobookshelf') + os.system('sudo usermod -a -G mediacenter audiobookshelf') + def prowlarr(self): os.system('sudo useradd prowlarr -u 13006') self.create_config_dir('prowlarr')