From 0dad53a7109785e086f917101206ae20286fa9c3 Mon Sep 17 00:00:00 2001 From: DrMxrcy Date: Tue, 28 Feb 2023 01:35:34 -0500 Subject: [PATCH] Barrage --- README.md | 1 + apps/barrage/config.json | 43 +++++++++++++++++++++++ apps/barrage/docker-compose.yml | 23 ++++++++++++ apps/barrage/metadata/description.md | 50 +++++++++++++++++++++++++++ apps/barrage/metadata/logo.jpg | Bin 0 -> 29238 bytes 5 files changed, 117 insertions(+) create mode 100644 apps/barrage/config.json create mode 100644 apps/barrage/docker-compose.yml create mode 100644 apps/barrage/metadata/description.md create mode 100644 apps/barrage/metadata/logo.jpg diff --git a/README.md b/README.md index 91f89f1d..62d1cfca 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ This is the official repository for the Tipi App Store. It contains all the apps ## Apps available - [Adguard Home](https://github.com/AdguardTeam/AdGuardHome) - Adguard Home DNS adblocker +- [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 - [Booksonic](https://github.com/popeen) - A server for streaming your audiobooks - [Bookstack](https://github.com/BookStackApp/BookStack) - Simple, easy-to-use platform for organising and storing information. diff --git a/apps/barrage/config.json b/apps/barrage/config.json new file mode 100644 index 00000000..88360b45 --- /dev/null +++ b/apps/barrage/config.json @@ -0,0 +1,43 @@ +{ + "$schema": "../schema.json", + "name": "Barrage", + "port": 8145, + "available": true, + "exposable": true, + "id": "barrage", + "tipi_version": 1, + "version": "0.3.0", + "categories": ["utilities"], + "description": "Minimal Deluge WebUI with full mobile support", + "short_desc": "Minimal Deluge WebUI with full mobile support", + "author": "https://github.com/maulik9898", + "source": "https://github.com/maulik9898/barrage", + "form_fields": [ + { + "type": "random", + "label": "NEXTAUTH_SECRET", + "min": 32, + "env_variable": "NEXTAUTH_SECRET" + }, + { + "type": "text", + "label": "DELUGE_URL", + "required": true, + "env_variable": "DELUGE_URL" + }, + { + "type": "text", + "label": "DELUGE_PASSWORD", + "required": true, + "env_variable": "DELUGE_PASSWORD" + }, + { + "type": "password", + "label": "BARRAGE_PASSWORD", + "max": 50, + "min": 3, + "required": true, + "env_variable": "BARRAGE_PASSWORD" + } + ] +} diff --git a/apps/barrage/docker-compose.yml b/apps/barrage/docker-compose.yml new file mode 100644 index 00000000..d5f4e974 --- /dev/null +++ b/apps/barrage/docker-compose.yml @@ -0,0 +1,23 @@ +version: "3.7" + +services: + barrage: + image: maulik9898/barrage:0.3.0 + container_name: barrage + environment: + - NEXTAUTH_SECRET=${NEXTAUTH_SECRET} + - DELUGE_URL=${DELUGE_URL} + - DELUGE_PASSWORD=${DELUGE_PASSWORD} + - BARRAGE_PASSWORD=${BARRAGE_PASSWORD} + ports: + - ${APP_PORT}:80 + restart: unless-stopped + networks: + - tipi_main_network + labels: + traefik.enable: ${APP_EXPOSED} + traefik.http.routers.barrage.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.barrage.entrypoints: websecure + traefik.http.routers.barrage.service: barrage + traefik.http.routers.barrage.tls.certresolver: myresolver + traefik.http.services.barrage.loadbalancer.server.port: 80 diff --git a/apps/barrage/metadata/description.md b/apps/barrage/metadata/description.md new file mode 100644 index 00000000..1da85bba --- /dev/null +++ b/apps/barrage/metadata/description.md @@ -0,0 +1,50 @@ +# Barrage + + + +[![](https://github.com/maulik9898/barrage/raw/main/public/logo.png)](https://github.com/maulik9898/barrage/blob/main/public/logo.png) + +> Introducing Barrage +> +> Minimal Deluge WebUI with full mobile support + + + +## [](https://github.com/maulik9898/barrage/blob/main/README.md#features)Features + +- Responsive mobile first design +- Add torrent by URL or magnet +- Sort and Filter Torrents +- Global upload and Download speed limits +- Change File Priority +- Change Torrent options + +## [](https://github.com/maulik9898/barrage/blob/main/README.md#screenshots)Screenshots + +Click me   + +[![](https://github.com/maulik9898/barrage/raw/main/_docs/home.jpg)](https://github.com/maulik9898/barrage/blob/main/_docs/home.jpg)     [![](https://github.com/maulik9898/barrage/raw/main/_docs/add.jpg)](https://github.com/maulik9898/barrage/blob/main/_docs/add.jpg)     [![](https://github.com/maulik9898/barrage/raw/main/_docs/add_torrent.jpg)](https://github.com/maulik9898/barrage/blob/main/_docs/add_torrent.jpg)     [![](https://github.com/maulik9898/barrage/raw/main/_docs/sort.jpg)](https://github.com/maulik9898/barrage/blob/main/_docs/sort.jpg)     [![](https://github.com/maulik9898/barrage/raw/main/_docs/filter.jpg)](https://github.com/maulik9898/barrage/blob/main/_docs/filter.jpg)     [![](https://github.com/maulik9898/barrage/raw/main/_docs/menu.jpg)](https://github.com/maulik9898/barrage/blob/main/_docs/menu.jpg)     [![](https://github.com/maulik9898/barrage/raw/main/_docs/globalup.jpg)](https://github.com/maulik9898/barrage/blob/main/_docs/globalup.jpg)     [![](https://github.com/maulik9898/barrage/raw/main/_docs/detail.jpg)](https://github.com/maulik9898/barrage/blob/main/_docs/detail.jpg)     [![](https://github.com/maulik9898/barrage/raw/main/_docs/files.jpg)](https://github.com/maulik9898/barrage/blob/main/_docs/files.jpg)     [![](https://github.com/maulik9898/barrage/raw/main/_docs/options.jpg)](https://github.com/maulik9898/barrage/blob/main/_docs/options.jpg)     [![](https://github.com/maulik9898/barrage/raw/main/_docs/pagination.jpg)](https://github.com/maulik9898/barrage/blob/main/_docs/pagination.jpg)                                           + +## [](https://github.com/maulik9898/barrage/blob/main/README.md#deploy)Deploy + +You can deploy barrage with docker. + +``` +docker run --name barrage \ + -p 3000:3000 \ + -e NEXTAUTH_SECRET=secret \ + -e DELUGE_URL=http://localhost:8112 \ + -e DELUGE_PASSWORD=password \ + -e BARRAGE_PASSWORD=password \ + maulik9898/barrage + +``` + +Then you can use the following environment variables to configure Barrage + +| Environment | Description | +| --- | --- | +| `NEXTAUTH_SECRET` | Used to encrypt the NextAuth.js JWT | +| `DELUGE_URL` | The Deluge WebUI URL | +| `DELUGE_PASSWORD` | The password from deluge WebUI | +| `BARRAGE_PASSWORD` | The password for accessing Barrage | \ No newline at end of file diff --git a/apps/barrage/metadata/logo.jpg b/apps/barrage/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f9b262ada4c69b8940ab7aa1cedeb2be785a17a7 GIT binary patch literal 29238 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