From 418ecd3d7b5cc9e08e129db80dbaff7ca2171932 Mon Sep 17 00:00:00 2001 From: raiper34 Date: Sun, 24 Nov 2024 22:58:27 +0100 Subject: [PATCH] Add pyLoad --- apps/pyload/config.json | 18 +++++++++++ apps/pyload/data/config/.gitkeep | 0 apps/pyload/docker-compose.yml | 45 ++++++++++++++++++++++++++++ apps/pyload/metadata/description.md | 22 ++++++++++++++ apps/pyload/metadata/logo.jpg | Bin 0 -> 17645 bytes 5 files changed, 85 insertions(+) create mode 100644 apps/pyload/config.json create mode 100644 apps/pyload/data/config/.gitkeep create mode 100644 apps/pyload/docker-compose.yml create mode 100644 apps/pyload/metadata/description.md create mode 100644 apps/pyload/metadata/logo.jpg diff --git a/apps/pyload/config.json b/apps/pyload/config.json new file mode 100644 index 0000000000..2f4e920cf7 --- /dev/null +++ b/apps/pyload/config.json @@ -0,0 +1,18 @@ +{ + "name": "pyLoad", + "id": "pyload", + "available": true, + "short_desc": "Download Manager.", + "author": "pyLoad team", + "port": 37691, + "categories": ["utilities"], + "description": "The free and open-source Download Manager written in pure Python.", + "tipi_version": 1, + "version": "v0.5.0", + "source": "https://github.com/pyload/pyload", + "website": "https://pyload.net/", + "exposable": true, + "supported_architectures": ["arm64", "amd64"], + "created_at": 1732485414207, + "updated_at": 1732485414207 +} \ No newline at end of file diff --git a/apps/pyload/data/config/.gitkeep b/apps/pyload/data/config/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/pyload/docker-compose.yml b/apps/pyload/docker-compose.yml new file mode 100644 index 0000000000..6463df1fac --- /dev/null +++ b/apps/pyload/docker-compose.yml @@ -0,0 +1,45 @@ +version: '3.9' +services: + pyload: + image: linuxserver/pyload-ng:0.5.0 + # build: + container_name: pyload + environment: + - PUID=1000 + - PGID=1000 + - TZ=${TZ} + volumes: + - ${APP_DATA_DIR}/data/config:/config + - ${ROOT_FOLDER_HOST}/media/downloads:/downloads + ports: + - ${APP_PORT}:8000 # Webinterface + # - 9666:9666 # Click 'N' Load + restart: unless-stopped + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.pyload-web-redirect.redirectscheme.scheme: https + traefik.http.services.pyload.loadbalancer.server.port: 8000 + # Web + traefik.http.routers.pyload-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.pyload-insecure.entrypoints: web + traefik.http.routers.pyload-insecure.service: pyload + traefik.http.routers.pyload-insecure.middlewares: pyload-web-redirect + # Websecure + traefik.http.routers.pyload.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.pyload.entrypoints: websecure + traefik.http.routers.pyload.service: pyload + traefik.http.routers.pyload.tls.certresolver: myresolver + # Local domain + traefik.http.routers.pyload-local-insecure.rule: Host(`pyload.${LOCAL_DOMAIN}`) + traefik.http.routers.pyload-local-insecure.entrypoints: web + traefik.http.routers.pyload-local-insecure.service: pyload + traefik.http.routers.pyload-local-insecure.middlewares: pyload-web-redirect + # Local domain secure + traefik.http.routers.pyload-local.rule: Host(`pyload.${LOCAL_DOMAIN}`) + traefik.http.routers.pyload-local.entrypoints: websecure + traefik.http.routers.pyload-local.service: pyload + traefik.http.routers.pyload-local.tls: true + runtipi.managed: true \ No newline at end of file diff --git a/apps/pyload/metadata/description.md b/apps/pyload/metadata/description.md new file mode 100644 index 0000000000..08020caf02 --- /dev/null +++ b/apps/pyload/metadata/description.md @@ -0,0 +1,22 @@ +

+ pyLoad +

+ +## The free and open-source Download Manager written in pure Python + +pyLoad was developed to run on NAS, next-gen routers and headless home servers, whatever device able to connect to internet and supporting the Python programming language, so it's available for all kind of operating systems and a wide range of hardware platforms; you can even install on your PC or Mac if you want and control it entirely by web in the same way. + +Its friendly Web User Interface allows full managing and easily remote access from anywhere! + +All common video-sites, one-click-hosters, container formats and well known web standards are supported to allow you to download your files. Additionally, pyLoad has a great variety of plugins to automate common tasks and make unattended running possible. + +## Credentials + +Access the web interface the default login is: username - `pyload` password - `pyload` + +## Folder Info + +| Root Folder | Container Folder | +|--------------------------------------|------------------| +| /runtipi/app-data/pyload/data/config | /config | +| /runtipi/media/downloads | /downloads | \ No newline at end of file diff --git a/apps/pyload/metadata/logo.jpg b/apps/pyload/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5c0d8ec0a0c00e4b84519b78670e5a5e6c494b40 GIT binary patch literal 17645 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 RS+Yla=vI8?LI1P%e*pAXLYe>o literal 0 HcmV?d00001