From 35e3902c0f6286ba5799e6c4445680d033234975 Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Thu, 13 Oct 2022 22:01:10 +0200 Subject: [PATCH] app: add qbittorrent --- README.md | 1 + apps/qbittorrent/config.json | 15 ++++++++++++ apps/qbittorrent/data/config/.gitkeep | 0 apps/qbittorrent/docker-compose.yml | 30 +++++++++++++++++++++++ apps/qbittorrent/metadata/description.md | 8 ++++++ apps/qbittorrent/metadata/logo.jpg | Bin 0 -> 24870 bytes 6 files changed, 54 insertions(+) create mode 100644 apps/qbittorrent/config.json create mode 100644 apps/qbittorrent/data/config/.gitkeep create mode 100644 apps/qbittorrent/docker-compose.yml create mode 100644 apps/qbittorrent/metadata/description.md create mode 100644 apps/qbittorrent/metadata/logo.jpg diff --git a/README.md b/README.md index 6b8dd807..bc4b461e 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [PrivateBin](https://github.com/PrivateBin/PrivateBin) - A minimalist, open source online pastebin where the server has zero knowledge of pasted data - [Prowlarr](https://github.com/Prowlarr/Prowlarr/) - A torrent/usenet indexer manager/proxy - [Proxitok](https://github.com/pablouser1/ProxiTok) - Open source alternative frontend for TikTok made using PHP +- [qBittorrent](https://github.com/qbittorrent/qBittorrent) - BitTorrent client - [Radarr](https://github.com/Radarr/Radarr) - Movie collection manager for Usenet and BitTorrent users - [Readarr](https://github.com/Readarr/Readarr) - Book Manager and Automation (Sonarr for Ebooks) - [Resilio Sync](https://github.com/bt-sync) - Fast, reliable, and simple file sync and share solution diff --git a/apps/qbittorrent/config.json b/apps/qbittorrent/config.json new file mode 100644 index 00000000..81586f1e --- /dev/null +++ b/apps/qbittorrent/config.json @@ -0,0 +1,15 @@ +{ + "$schema": "../schema.json", + "name": "qBittorrent", + "available": true, + "port": 8133, + "id": "qbittorrent", + "tipi_version": 1, + "version": "4.4.5", + "categories": ["utilities"], + "description": "qBittorrent is a fast, easy, and free BitTorrent client.", + "short_desc": "Fast, easy, and free BitTorrent client", + "author": "qBittorrent project", + "source": "https://github.com/qbittorrent/qBittorrent", + "form_fields": [] +} diff --git a/apps/qbittorrent/data/config/.gitkeep b/apps/qbittorrent/data/config/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/apps/qbittorrent/docker-compose.yml b/apps/qbittorrent/docker-compose.yml new file mode 100644 index 00000000..b16f8993 --- /dev/null +++ b/apps/qbittorrent/docker-compose.yml @@ -0,0 +1,30 @@ +version: "3.7" +services: + qbittorrent: + image: lscr.io/linuxserver/qbittorrent:4.4.5 + container_name: qbittorrent + dns: + - ${DNS_IP} + environment: + - PUID=1000 + - PGID=1000 + - TZ=${TZ} + - WEBUI_PORT=${APP_PORT} + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${ROOT_FOLDER_HOST}/media/torrents:/downloads + ports: + - ${APP_PORT}:${APP_PORT} + - 6881:6881 + - 6881:6881/udp + restart: unless-stopped + networks: + - tipi_main_network + labels: + traefik.enable: ${APP_EXPOSED} + traefik.http.routers.qbittorrent.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.qbittorrent.entrypoints: websecure + traefik.http.routers.qbittorrent.service: qbittorrent + traefik.http.routers.qbittorrent.tls.certresolver: myresolver + traefik.http.services.qbittorrent.loadbalancer.server.port: 8080 + diff --git a/apps/qbittorrent/metadata/description.md b/apps/qbittorrent/metadata/description.md new file mode 100644 index 00000000..6d97c0f2 --- /dev/null +++ b/apps/qbittorrent/metadata/description.md @@ -0,0 +1,8 @@ +## Fast, easy, and free BitTorrent client + +The [Qbittorrent](https://www.qbittorrent.org/) project aims to provide an open-source software alternative to µTorrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library. + +## Credentials + +Username: admin +Password: adminadmin \ No newline at end of file diff --git a/apps/qbittorrent/metadata/logo.jpg b/apps/qbittorrent/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5a383aca55f931702cb37c1a13518d514187c9df GIT binary patch literal 24870 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