From 91909e32dbccb67d6def6485ea6f4bd4c15a9c44 Mon Sep 17 00:00:00 2001 From: porroe Date: Fri, 25 Aug 2023 14:48:40 -0700 Subject: [PATCH 1/7] added audiobookshelf --- apps/audiobookshelf/config.json | 19 ++++++++++ apps/audiobookshelf/docker-compose.yml | 40 ++++++++++++++++++++ apps/audiobookshelf/metadata/description.md | 2 + apps/audiobookshelf/metadata/logo.jpg | Bin 0 -> 22197 bytes 4 files changed, 61 insertions(+) create mode 100644 apps/audiobookshelf/config.json create mode 100644 apps/audiobookshelf/docker-compose.yml create mode 100644 apps/audiobookshelf/metadata/description.md create mode 100644 apps/audiobookshelf/metadata/logo.jpg diff --git a/apps/audiobookshelf/config.json b/apps/audiobookshelf/config.json new file mode 100644 index 00000000..6e6a2a76 --- /dev/null +++ b/apps/audiobookshelf/config.json @@ -0,0 +1,19 @@ +{ + "$schema": "../schema.json", + "name": "Audiobookshelf", + "available": true, + "exposable": true, + "port": 8003, + "id": "audiobookshelf", + "tipi_version": 1, + "version": "latest", + "categories": [ + "books", + "media" + ], + "description": "Audiobookshelf is a self-hosted audiobook server for managing and playing your audiobooks. Audiobookshelf has a clean, accessible design that's loaded with features but not overly complicated.", + "short_desc": "Audiobookshelf is a self-hosted audiobook and podcast server.", + "author": "advplyr", + "source": "https://github.com/advplyr/audiobookshelf", + "form_fields": [] +} diff --git a/apps/audiobookshelf/docker-compose.yml b/apps/audiobookshelf/docker-compose.yml new file mode 100644 index 00000000..30dcacc4 --- /dev/null +++ b/apps/audiobookshelf/docker-compose.yml @@ -0,0 +1,40 @@ +version: "3.7" +services: + audiobookshelf: + container_name: audiobookshelf + image: ghcr.io/advplyr/audiobookshelf:latest + restart: unless-stopped + ports: + - ${APP_PORT}:80 + volumes: + - ${ROOT_FOLDER_HOST}/media/data/books/spoken:/audiobooks + - ${ROOT_FOLDER_HOST}/media/data/podcasts:/podcasts + - ${APP_DATA_DIR}/config:/config + - ${APP_DATA_DIR}/metadata:/metadata + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.audiobookshelf-web-redirect.redirectscheme.scheme: https + traefik.http.services.audiobookshelf.loadbalancer.server.port: 80 + # Web + traefik.http.routers.audiobookshelf-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.audiobookshelf-insecure.entrypoints: web + traefik.http.routers.audiobookshelf-insecure.service: audiobookshelf + traefik.http.routers.audiobookshelf-insecure.middlewares: audiobookshelf-web-redirect + # Websecure + traefik.http.routers.audiobookshelf.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.audiobookshelf.entrypoints: websecure + traefik.http.routers.audiobookshelf.service: audiobookshelf + traefik.http.routers.audiobookshelf.tls.certresolver: myresolver + # Local domain + traefik.http.routers.audiobookshelf-local-insecure.rule: Host(`audiobookshelf.${LOCAL_DOMAIN}`) + traefik.http.routers.audiobookshelf-local-insecure.entrypoints: web + traefik.http.routers.audiobookshelf-local-insecure.service: audiobookshelf + traefik.http.routers.audiobookshelf-local-insecure.middlewares: audiobookshelf-web-redirect + # Local domain secure + traefik.http.routers.audiobookshelf-local.rule: Host(`audiobookshelf.${LOCAL_DOMAIN}`) + traefik.http.routers.audiobookshelf-local.entrypoints: websecure + traefik.http.routers.audiobookshelf-local.service: audiobookshelf + traefik.http.routers.audiobookshelf-local.tls: true diff --git a/apps/audiobookshelf/metadata/description.md b/apps/audiobookshelf/metadata/description.md new file mode 100644 index 00000000..b19a366f --- /dev/null +++ b/apps/audiobookshelf/metadata/description.md @@ -0,0 +1,2 @@ +# AudiobookShelf +Audiobookshelf is a self-hosted audiobook and podcast server. \ No newline at end of file diff --git a/apps/audiobookshelf/metadata/logo.jpg b/apps/audiobookshelf/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c2ae8a3c95b53f717d0047d95cef4f67262bd1ca GIT binary patch literal 22197 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 literal 0 HcmV?d00001 From 3af96105a20162faef5e41995a550e6a64c6979a Mon Sep 17 00:00:00 2001 From: porroe Date: Fri, 25 Aug 2023 15:02:24 -0700 Subject: [PATCH 2/7] updated port and version --- apps/audiobookshelf/config.json | 4 ++-- apps/audiobookshelf/docker-compose.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/audiobookshelf/config.json b/apps/audiobookshelf/config.json index 6e6a2a76..6f99dca9 100644 --- a/apps/audiobookshelf/config.json +++ b/apps/audiobookshelf/config.json @@ -3,10 +3,10 @@ "name": "Audiobookshelf", "available": true, "exposable": true, - "port": 8003, + "port": 13378, "id": "audiobookshelf", "tipi_version": 1, - "version": "latest", + "version": "v2.3.3", "categories": [ "books", "media" diff --git a/apps/audiobookshelf/docker-compose.yml b/apps/audiobookshelf/docker-compose.yml index 30dcacc4..82dd3e5e 100644 --- a/apps/audiobookshelf/docker-compose.yml +++ b/apps/audiobookshelf/docker-compose.yml @@ -1,4 +1,4 @@ -version: "3.7" +version: "v2.3.3" services: audiobookshelf: container_name: audiobookshelf From 6bc43a447eee1feb4d56641268b101320f7da113 Mon Sep 17 00:00:00 2001 From: porroe Date: Fri, 25 Aug 2023 15:25:40 -0700 Subject: [PATCH 3/7] updated description --- apps/audiobookshelf/metadata/description.md | 23 ++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/apps/audiobookshelf/metadata/description.md b/apps/audiobookshelf/metadata/description.md index b19a366f..f0ef3409 100644 --- a/apps/audiobookshelf/metadata/description.md +++ b/apps/audiobookshelf/metadata/description.md @@ -1,2 +1,23 @@ # AudiobookShelf -Audiobookshelf is a self-hosted audiobook and podcast server. \ No newline at end of file +Audiobookshelf is a self-hosted audiobook and podcast server. + +### Features + +* Fully **open-source**, including the [android & iOS app](https://github.com/advplyr/audiobookshelf-app) *(in beta)* +* Stream all audio formats on the fly +* Search and add podcasts to download episodes w/ auto-download +* Multi-user support w/ custom permissions +* Keeps progress per user and syncs across devices +* Auto-detects library updates, no need to re-scan +* Upload books and podcasts w/ bulk upload drag and drop folders +* Backup your metadata + automated daily backups +* Progressive Web App (PWA) +* Chromecast support on the web app and android app +* Fetch metadata and cover art from several sources +* Chapter editor and chapter lookup (using [Audnexus API](https://audnex.us/)) +* Merge your audio files into a single m4b +* Embed metadata and cover image into your audio files (using [Tone](https://github.com/sandreas/tone)) +* Basic ebook support and ereader + * Epub, pdf, cbr, cbz + * Send ebook to device (i.e. Kindle) +* Open RSS feeds for podcasts and audiobooks \ No newline at end of file From ef0ce6b3b92eed4d53cb640e56592fd0a67b194e Mon Sep 17 00:00:00 2001 From: porroe Date: Fri, 25 Aug 2023 15:52:03 -0700 Subject: [PATCH 4/7] fixed version in docker tag --- apps/audiobookshelf/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/audiobookshelf/docker-compose.yml b/apps/audiobookshelf/docker-compose.yml index 82dd3e5e..047ccbba 100644 --- a/apps/audiobookshelf/docker-compose.yml +++ b/apps/audiobookshelf/docker-compose.yml @@ -2,7 +2,7 @@ version: "v2.3.3" services: audiobookshelf: container_name: audiobookshelf - image: ghcr.io/advplyr/audiobookshelf:latest + image: ghcr.io/advplyr/audiobookshelf:v2.3.3 restart: unless-stopped ports: - ${APP_PORT}:80 From 352addfd12276e98ef114dac18d53b32aaffb26c Mon Sep 17 00:00:00 2001 From: porroe Date: Fri, 25 Aug 2023 15:56:13 -0700 Subject: [PATCH 5/7] fixed wrong versions in config and docker-compose --- apps/audiobookshelf/config.json | 2 +- apps/audiobookshelf/docker-compose.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/audiobookshelf/config.json b/apps/audiobookshelf/config.json index 6f99dca9..a2b6fe13 100644 --- a/apps/audiobookshelf/config.json +++ b/apps/audiobookshelf/config.json @@ -6,7 +6,7 @@ "port": 13378, "id": "audiobookshelf", "tipi_version": 1, - "version": "v2.3.3", + "version": "2.3.3", "categories": [ "books", "media" diff --git a/apps/audiobookshelf/docker-compose.yml b/apps/audiobookshelf/docker-compose.yml index 047ccbba..a9404858 100644 --- a/apps/audiobookshelf/docker-compose.yml +++ b/apps/audiobookshelf/docker-compose.yml @@ -1,8 +1,8 @@ -version: "v2.3.3" +version: "3.7" services: audiobookshelf: container_name: audiobookshelf - image: ghcr.io/advplyr/audiobookshelf:v2.3.3 + image: ghcr.io/advplyr/audiobookshelf:2.3.3 restart: unless-stopped ports: - ${APP_PORT}:80 From 63f4f481af636e34de531a525dcfc771797ef521 Mon Sep 17 00:00:00 2001 From: porroe Date: Fri, 25 Aug 2023 16:16:14 -0700 Subject: [PATCH 6/7] Added folder info --- apps/audiobookshelf/metadata/description.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/apps/audiobookshelf/metadata/description.md b/apps/audiobookshelf/metadata/description.md index f0ef3409..500c643e 100644 --- a/apps/audiobookshelf/metadata/description.md +++ b/apps/audiobookshelf/metadata/description.md @@ -20,4 +20,13 @@ Audiobookshelf is a self-hosted audiobook and podcast server. * Basic ebook support and ereader * Epub, pdf, cbr, cbz * Send ebook to device (i.e. Kindle) -* Open RSS feeds for podcasts and audiobooks \ No newline at end of file +* Open RSS feeds for podcasts and audiobooks + +# Folder Info + +| Root Folder | Container Folder | +|-------------------------------------|------------------| +| /runtipi/app-data/audiobookshelf/config | /config | +| /runtipi/app-data/audiobookshelf/metadata | /metadata | +| /runtipi/media/data/books/spoken | /audiobooks | +| /runtipi/media/data/podcasts | /podcasts | \ No newline at end of file From 41318933406077435c74415c339ce34efa0c2caa Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Sat, 26 Aug 2023 11:51:59 +0200 Subject: [PATCH 7/7] chore: update logo readme and data folder location --- README.md | 1 + apps/audiobookshelf/docker-compose.yml | 6 +++--- apps/audiobookshelf/metadata/logo.jpg | Bin 22197 -> 20626 bytes 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2998eda3..132128bc 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Actual Budget](https://github.com/actualbudget/actual-server) - Local-first OpenSource Budget tool - [Adguard Home](https://github.com/AdguardTeam/AdGuardHome) - Adguard Home DNS adblocker +- [Audiobookshelf](https://github.com/advplyr/audiobookshelf) - Audiobookshelf is a self-hosted audiobook and podcast server. - [autobrr](https://github.com/autobrr/autobrr) - Automation for downloads. - [Barrage](https://github.com/maulik9898/barrage) - Minimal Deluge WebUI with full mobile support - [Bazarr](https://github.com/morpheus65535/bazarr) - A companion application to Sonarr and Radarr that manages and downloads subtitles diff --git a/apps/audiobookshelf/docker-compose.yml b/apps/audiobookshelf/docker-compose.yml index a9404858..cc77cae8 100644 --- a/apps/audiobookshelf/docker-compose.yml +++ b/apps/audiobookshelf/docker-compose.yml @@ -1,4 +1,4 @@ -version: "3.7" +version: '3.7' services: audiobookshelf: container_name: audiobookshelf @@ -9,8 +9,8 @@ services: volumes: - ${ROOT_FOLDER_HOST}/media/data/books/spoken:/audiobooks - ${ROOT_FOLDER_HOST}/media/data/podcasts:/podcasts - - ${APP_DATA_DIR}/config:/config - - ${APP_DATA_DIR}/metadata:/metadata + - ${APP_DATA_DIR}/data/config:/config + - ${APP_DATA_DIR}/data/metadata:/metadata networks: - tipi_main_network labels: diff --git a/apps/audiobookshelf/metadata/logo.jpg b/apps/audiobookshelf/metadata/logo.jpg index c2ae8a3c95b53f717d0047d95cef4f67262bd1ca..c342dcfbde4bef5991952f78041002a3364982fb 100644 GIT binary patch literal 20626 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 literal 22197 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