From 62f6413192375e2e4a6aa346d272b5c7c6161092 Mon Sep 17 00:00:00 2001 From: Fabio Tea Date: Tue, 31 Oct 2023 09:02:14 +0100 Subject: [PATCH] [New App] Threadfin (#308) ### App Information Name: Threadfin Short Description: M3U Proxy for Plex DVR and Emby/Jellyfin Live TV. Based on xTeVe Official Website: https://github.com/Threadfin/Threadfin Docker Image: https://hub.docker.com/r/fyb3roptik/threadfin Closes #210 --- Apps/Threadfin/docker-compose.yml | 56 ++++++++++++++++++++++++++++++ Apps/Threadfin/icon.png | Bin 0 -> 20018 bytes 2 files changed, 56 insertions(+) create mode 100644 Apps/Threadfin/docker-compose.yml create mode 100644 Apps/Threadfin/icon.png diff --git a/Apps/Threadfin/docker-compose.yml b/Apps/Threadfin/docker-compose.yml new file mode 100644 index 0000000..9e6e7c1 --- /dev/null +++ b/Apps/Threadfin/docker-compose.yml @@ -0,0 +1,56 @@ +name: threadfin +services: + threadfin: + image: fyb3roptik/threadfin:latest + restart: unless-stopped + x-casaos: + volumes: + - container: /home/threadfin/conf/data + description: + en_us: Data + - container: /home/threadfin/conf/backup + description: + en_us: Backup + envs: + - container: THREADFIN_BRANCH + description: + en_us: "Set Threadfin git branch [ main, beta, dev ] Default: beta" + - container: THREADFIN_DEBUG + description: + en_us: "Set Threadfin debug level [ 0-3 ] Default: 0=OFF" + ports: + - container: "34400" + description: + en_us: Port to access the application's GUI via the web interface. + environment: + - THREADFIN_BRANCH=$THREADFIN_BRANCH + - THREADFIN_DEBUG=$THREADFIN_DEBUG + ports: + - target: 34400 + published: "34400" + protocol: tcp + volumes: + - type: bind + source: /DATA/AppData/threadfin/config + target: /home/threadfin/conf/data + - type: bind + source: /DATA/AppData/threadfin/backup + target: /home/threadfin/conf/backup + container_name: threadfin +x-casaos: + architectures: + - amd64 + - arm64 + main: threadfin + description: + en_us: M3U Proxy for Plex DVR and Emby/Jellyfin Live TV. Based on xTeVe. + developer: jdownloader + icon: https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/Threadfin/icon.png + author: Fabio Tea + category: Utility + index: /web/ + port_map: "34400" + scheme: http + store_app_id: threadfin + title: + en_us: Threadfin diff --git a/Apps/Threadfin/icon.png b/Apps/Threadfin/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3bda04eb20eb2475d59b639d518543b626c64409 GIT binary patch literal 20018 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 MPgg&ebxsLQ05jM{4gdfE literal 0 HcmV?d00001