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 00000000..c2ae8a3c Binary files /dev/null and b/apps/audiobookshelf/metadata/logo.jpg differ