sharedrop README

The project's README from github.com/ShareDropio/sharedrop. As one markdown file: README.md.

ShareDrop

ShareDrop is now LimeWire

Dear ShareDrop community, ShareDrop has been acquired by LimeWire, a leading file sharing platform with integrated AI tools. You can continue to share any files between devices, while benefitting from:

Visit sharedrop.io or limewire.com

The Github repository will stay as-is and you can still go ahead and download and run the classic ShareDrop on your own infrastructure.

ShareDrop Classic

ShareDrop is a web application inspired by Apple AirDrop service. It allows you to transfer files directly between devices, without having to upload them to any server first. It uses WebRTC for secure peer-to-peer file transfer and Firebase for presence management and WebRTC signaling.

ShareDrop allows you to send files to other devices in the same local network (i.e. devices with the same public IP address) without any configuration - simply open https://www.sharedrop.io on all devices and they will see each other. It also allows you to send files between networks - just click the + button in the top right corner of the page to create a room with a unique URL and share this URL with other people you want to send a file to. Once they open this page in a browser on their devices, you'll see each other's avatars.

The main difference between ShareDrop and AirDrop is that ShareDrop requires Internet connection to discover other devices, while AirDrop doesn't need one, as it creates ad-hoc wireless network between them. On the other hand, ShareDrop allows you to share files between mobile (Android and iOS) and desktop devices and even between networks.

Supported browsers

Local development

  1. Setup Firebase:
    1. Sign up for a Firebase account and create a database.
    2. Go to "Security Rules" tab, click "Load Rules" button and select firebase_rules.json file.
    3. Take note of your database URL and its secret, which can be found in "Secrets" tab.
  2. Run npm install -g ember-cli to install Ember CLI.
  3. Run yarn to install app dependencies.
  4. Run cp .env{.sample,} to create .env file. This file will be used by Foreman to set environment variables when running the app locally.
    • SECRET key is used to encrypt cookies and generate room name based on public IP address for / route. It can be any random string - you can generate one using e.g. date | md5sum
    • NEW_RELIC_* keys are only necessary in production
  5. Run yarn develop to start the app.

Deployment

Heroku

Create a new Heroku app:

heroku create <app-name>

and push the app to Heroku repo:

git push heroku master

sharedrop (ShareDropio/sharedrop)

Searching Database…

10.8K ·GitHub
这是什么?ShareDrop 是一款网页应用,借鉴了苹果的 AirDrop,通过 WebRTC 在设备之间直接传输文件,全程无需上传到服务器。
这是托管服务,还是需要我自己运行的程序?最初的托管服务 ShareDrop.io 已被 LimeWire 收购,但本仓库是“ShareDrop Classic”,也就是你可以下载并部署在自己基础设施上运行的同一套开源代码。
我怎样才能在本地运行它?创建一个 Firebase 项目,并将 firebaserules.json 加载为其安全规则;全局安装 Ember CLI;运行 yarn 安装依赖;将 .env.sample 复制为 .env;然后运行 yarn develop 启动应用。
运行之前需要准备什么?一个用于在线状态检测和 WebRTC 信令的 Firebase 账号及数据库、Node ^14.0.0、Ember CLI 和 Yarn;NEWRELIC 密钥仅在生产环境部署时需要。
它能像 AirDrop 一样在没有网络的情况下工作吗?不能。ShareDrop 需要联网,通过 Firebase 信令来发现其他设备;而 AirDrop 则是直接在设备之间组建临时无线网络。
它支持哪些浏览器?Chrome、Edge(基于 Chromium)、Firefox、Opera 以及 Safari 13 及更高版本。
我能把文件发给不在同一网络中的人吗?可以。点击 + 按钮创建一个带有唯一网址的房间,把这个网址分享出去,任何在自己设备上打开它的人都会以头像形式出现,可以与之互传文件,不受网络限制。
我能在手机和笔记本电脑之间共享文件吗?可以。移动端(Android 和 iOS)与桌面设备之间均可使用,因为所有操作都在浏览器中通过同一房间或本地网络完成。
最初的 ShareDrop.io 服务怎么样了?它已被 LimeWire 收购,后者现在运营托管版本,并提供端到端加密和免费存储等额外功能;本仓库中的开源 ShareDrop Classic 代码仍可用于自行部署。
在家庭网络中使用它,需要做任何配置吗?不需要。只要在共享同一公网 IP 地址的每台设备上用浏览器打开 ShareDrop,它们就会自动互相发现。
Size
2.3 MB
Stars
10.8K
Updated
CommitFeb 10
Age
12y
Commits · 90 Days