From a3d530bf31ef740f4b9c611e65228208339f0bcc Mon Sep 17 00:00:00 2001 From: JigSawFr Date: Sun, 13 Aug 2023 19:50:21 +0200 Subject: [PATCH] feat(store): add whisparr app --- apps/whisparr/config.json | 41 +++++++++++++++++++ apps/whisparr/docker-compose.yml | 54 ++++++++++++++++++++++++++ apps/whisparr/metadata/description.md | 31 +++++++++++++++ apps/whisparr/metadata/logo.jpg | Bin 0 -> 26312 bytes 4 files changed, 126 insertions(+) create mode 100644 apps/whisparr/config.json create mode 100644 apps/whisparr/docker-compose.yml create mode 100644 apps/whisparr/metadata/description.md create mode 100644 apps/whisparr/metadata/logo.jpg diff --git a/apps/whisparr/config.json b/apps/whisparr/config.json new file mode 100644 index 00000000..3fa7027f --- /dev/null +++ b/apps/whisparr/config.json @@ -0,0 +1,41 @@ +{ + "$schema": "../schema.json", + "name": "Whisparr", + "available": true, + "exposable": true, + "port": 6969, + "id": "whisparr", + "tipi_version": 1, + "version": "latest", + "categories": [ + "media", + "utilities" + ], + "description": "Whisparr is an adult movie collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new movies and will interface with clients and indexers to grab, sort, and rename them. It can also be configured to automatically upgrade the quality of existing files in the library when a better quality format becomes available. Note that only one type of a given movie is supported. If you want both an 4k version and 1080p version of a given movie you will need multiple instances.", + "short_desc": "Adult movie collection manager.", + "author": "radarr.video", + "source": "https://github.com/Whisparr/Whisparr", + "form_fields": [ + { + "type": "number", + "label": "UID", + "hint": "Ensure any volume directories on the host are owned by the same user you specify", + "placeholder": "1000", + "env_variable": "WHISPARR_PUID" + }, + { + "type": "number", + "label": "GUID", + "hint": "Ensure any volume directories on the host are owned by the same group you specify", + "placeholder": "1000", + "env_variable": "WHISPARR_PGID" + }, + { + "type": "number", + "label": "UMASK", + "hint": "Ability to override the default umask settings for services started within the containers", + "placeholder": "002", + "env_variable": "WHISPARR_UMASK" + } + ] +} diff --git a/apps/whisparr/docker-compose.yml b/apps/whisparr/docker-compose.yml new file mode 100644 index 00000000..b6acaaf4 --- /dev/null +++ b/apps/whisparr/docker-compose.yml @@ -0,0 +1,54 @@ +version: "3.9" +services: + whisparr: + container_name: ${APP_ID} + hostname: ${APP_ID} + image: cr.hotio.dev/hotio/whisparr:nightly + ports: + - "${APP_PORT}:6969" + environment: + - PUID=${WHISPARR_PUID-1000} + - PGID=${WHISPARR_PGID-1000} + - UMASK=${WHISPARR_UMASK-002} + - TZ=${TZ} + dns: + - ${DNS_IP} + volumes: + - /etc/localtime:/etc/localtime:ro + - /etc/timezone:/etc/timezone:ro + - ${APP_DATA_DIR}/data:/config + - ${ROOT_FOLDER_HOST}/media:/media + healthcheck: + test: timeout 5s bash -c ':> /dev/tcp/127.0.0.1/6969' || exit 1 + interval: 10s + timeout: 5s + retries: 5 + start_period: 30s + restart: unless-stopped + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.whisparr-web-redirect.redirectscheme.scheme: https + traefik.http.services.whisparr.loadbalancer.server.port: 6969 + # Web + traefik.http.routers.whisparr-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.whisparr-insecure.entrypoints: web + traefik.http.routers.whisparr-insecure.service: whisparr + traefik.http.routers.whisparr-insecure.middlewares: whisparr-web-redirect + # Websecure + traefik.http.routers.whisparr.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.whisparr.entrypoints: websecure + traefik.http.routers.whisparr.service: whisparr + traefik.http.routers.whisparr.tls.certresolver: myresolver + # Local domain + traefik.http.routers.whisparr-local-insecure.rule: Host(`whisparr.${LOCAL_DOMAIN}`) + traefik.http.routers.whisparr-local-insecure.entrypoints: web + traefik.http.routers.whisparr-local-insecure.service: whisparr + traefik.http.routers.whisparr-local-insecure.middlewares: whisparr-web-redirect + # Local domain secure + traefik.http.routers.whisparr-local.rule: Host(`whisparr.${LOCAL_DOMAIN}`) + traefik.http.routers.whisparr-local.entrypoints: websecure + traefik.http.routers.whisparr-local.service: whisparr + traefik.http.routers.whisparr-local.tls: true diff --git a/apps/whisparr/metadata/description.md b/apps/whisparr/metadata/description.md new file mode 100644 index 00000000..566dfd59 --- /dev/null +++ b/apps/whisparr/metadata/description.md @@ -0,0 +1,31 @@ +## Whisparr + +Whisparr is an adult movie collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new movies and will interface with clients and indexers to grab, sort, and rename them. It can also be configured to automatically upgrade the quality of existing files in the library when a better quality format becomes available. +Note that only one type of a given movie is supported. If you want both an 4k version and 1080p version of a given movie you will need multiple instances. + +## Major Features Include + +* Adding new movies with lots of information, such as trailers, ratings, etc. +* Support for major platforms: Windows, Linux, macOS, Raspberry Pi, etc. +* Can watch for better quality of the movies you have and do an automatic upgrade. *e.g. from DVD to Blu-Ray* +* Automatic failed download handling will try another release if one fails +* Manual search so you can pick any release or to see why a release was not downloaded automatically +* Full integration with SABnzbd and NZBGet +* Automatically searching for releases as well as RSS Sync +* Automatically importing downloaded movies +* Recognizing Special Editions, Director's Cut, etc. +* Identifying releases with hardcoded subs +* Identifying releases with AKA movie names +* SABnzbd, NZBGet, QBittorrent, Deluge, rTorrent, Transmission, uTorrent, and other download clients are supported and integrated +* Full integration with Kodi and Plex (notifications, library updates) +* Importing Metadata such as trailers or subtitles +* Adding metadata such as posters and information for Kodi and others to use +* Advanced customization for profiles, such that Whisparr will always download the copy you want +* A beautiful UI + +## Folder Info + +| Root Folder | Container Folder | +|---------------------------------|------------------| +| /runtipi/app-data/whisparr/data | /config | +| /runtipi/media | /media | \ No newline at end of file diff --git a/apps/whisparr/metadata/logo.jpg b/apps/whisparr/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..25585b02df427188ac3b67d9301ab4ea8101389a GIT binary patch literal 26312 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