From 9a73d01634afeccaeb1e4d8a8a4eb6c18bacf6fc Mon Sep 17 00:00:00 2001 From: DrMxrcy <58747968+DrMxrcy@users.noreply.github.com> Date: Mon, 24 Apr 2023 09:17:59 -0400 Subject: [PATCH] Add Pairdrop (#337) * Add Pairdrop * Update config.json * Update config.json * Update config.json * Update config.json * Update to 1.6.2 --- README.md | 1 + apps/pairdrop/config.json | 18 ++++++++++++++++++ apps/pairdrop/docker-compose.yml | 23 +++++++++++++++++++++++ apps/pairdrop/metadata/description.md | 25 +++++++++++++++++++++++++ apps/pairdrop/metadata/logo.jpg | Bin 0 -> 20419 bytes 5 files changed, 67 insertions(+) create mode 100644 apps/pairdrop/config.json create mode 100644 apps/pairdrop/docker-compose.yml create mode 100644 apps/pairdrop/metadata/description.md create mode 100644 apps/pairdrop/metadata/logo.jpg diff --git a/README.md b/README.md index 196bdf2c..8f1c3bd1 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Openbooks](https://github.com/evan-buss/openbooks) - Search and Download eBooks - [Overseerr](https://github.com/sct/overseerr) - Request management and media discovery tool for the Plex ecosystem - [Owncloud](https://github.com/owncloud/core) - A personal cloud which runs on your own server. +- [PairDrop](https://github.com/schlagmichdoch/PairDrop) - Local file sharing in your browser. Inspired by Apple's AirDrop. - [Peppermint](https://github.com/Peppermint-Lab/peppermint) - An open source ticket management & help desk solution. - [Photoprism](https://github.com/photoprism/photoprism) - AI-Powered Photos App for the Decentralized Web. We are on a mission to protect your freedom and privacy. - [Pihole](https://github.com/pi-hole/pi-hole) - A black hole for Internet advertisements diff --git a/apps/pairdrop/config.json b/apps/pairdrop/config.json new file mode 100644 index 00000000..7aab4144 --- /dev/null +++ b/apps/pairdrop/config.json @@ -0,0 +1,18 @@ +{ + "$schema": "../schema.json", + "name": "PairDrop", + "port": 8182, + "available": true, + "exposable": true, + "force_expose": true, + "id": "pairdrop", + "tipi_version": 1, + "version": "1.6.2", + "categories": ["media", "data", "utilities"], + "description": "Local file sharing in your browser. Inspired by Apple's AirDrop", + "short_desc": "Local file sharing in your browser. Inspired by Apple's AirDrop", + "author": "schlagmichdoch", + "source": "https://github.com/schlagmichdoch/PairDrop", + "website": "https://pairdrop.net/", + "form_fields": [] +} \ No newline at end of file diff --git a/apps/pairdrop/docker-compose.yml b/apps/pairdrop/docker-compose.yml new file mode 100644 index 00000000..b82a790c --- /dev/null +++ b/apps/pairdrop/docker-compose.yml @@ -0,0 +1,23 @@ +version: "3" + +services: + pairdrop: + image: lscr.io/linuxserver/pairdrop:1.6.2 + container_name: pairdrop + environment: + - PUID=1000 + - PGID=1000 + - TZ=${TZ} + - RATE_LIMIT=false] + - WS_FALLBACK=false + ports: + - ${APP_PORT}:3000 + networks: + - tipi_main_network + labels: + traefik.enable: ${APP_EXPOSED} + traefik.http.routers.pairdrop.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.pairdrop.entrypoints: websecure + traefik.http.routers.pairdrop.service: pairdrop + traefik.http.routers.pairdrop.tls.certresolver: myresolver + traefik.http.services.pairdrop.loadbalancer.server.port: 3000 diff --git a/apps/pairdrop/metadata/description.md b/apps/pairdrop/metadata/description.md new file mode 100644 index 00000000..ec60b35c --- /dev/null +++ b/apps/pairdrop/metadata/description.md @@ -0,0 +1,25 @@ +# PairDrop + +Local file sharing in your browser. Inspired by Apple's AirDrop. +[**Explore »**](https://pairdrop.net) + +[Report Bug](https://github.com/schlagmichdoch/PairDrop/issues) · [Request Feature](https://github.com/schlagmichdoch/PairDrop/issues) + +## Features + +[PairDrop](https://pairdrop.net) is a sublime alternative to AirDrop that works on all platforms. + +Send images, documents or text via peer to peer connection to devices in the same local network/Wi-Fi or to paired devices. As it is web based, it runs on all devices. + +You want to quickly send a file from your phone to your laptop? +You want to share photos in original quality with friends that use a mixture of Android and iOS? +You want to share private files peer to peer between Linux systems? +AirDrop is unreliable again? +_Send it with PairDrop!_ + +Developed based on [Snapdrop](https://github.com/RobinLinus/snapdrop) + + +## Screenshots + +[![Pairdrop Preview](https://github.com/schlagmichdoch/PairDrop/raw/master/docs/pairdrop_screenshot_mobile.gif)](https://github.com/schlagmichdoch/PairDrop/blob/master/docs/pairdrop_screenshot_mobile.gif) \ No newline at end of file diff --git a/apps/pairdrop/metadata/logo.jpg b/apps/pairdrop/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e0872b04801e1ed9fe94e76a7975174ecda09e5b GIT binary patch literal 20419 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 L1AzYkbbtTZY^x>i literal 0 HcmV?d00001