自建Snapdrop
Snapdrop是一个十分简单的跨平台互传软件,只需要在同一网络中通过浏览器就可以即时共享图像、视频、文件 、文本等信息。无需设置,无需注册。
Docker环境自建
官方提供docker环境自建方案:Local Development
Nodejs+Nginx环境自建
-
克隆仓库
git clone https://github.com/RobinLinus/snapdrop.git
-
安装Nodejs
apt install nodejs npm node -v #查看版本 npm -v #查看版本
-
安装forever
npm install forever -g
-
启动后台服务
cd snapdrop/server/ npm install forever start index.js
默认情况下,服务器侦听端口 3000,修改端口:server/index.js最后一行
-
安装Nginx
apt install nginx
-
Nginx支持SSL
-
配置前台服务
location /snapdrop { alias /home/snapdrop/client/; #静态页面在snapdrop/client index index.html index.htm; } location /snapdrop/server { proxy_connect_timeout 300; proxy_pass http://127.0.0.1:3000; proxy_set_header Connection "upgrade"; proxy_set_header Upgrade $http_upgrade; proxy_set_header X-Forwarded-for $remote_addr; }
-
PWA 相关功能
PWA 要求应用程序的协议必须是安全的(即使用 HTTPS 协议)
根据实际情况修改清单文件 (Manifest):snapdrop/client/manifest.json
{ "name": "Snapdrop", "short_name": "Snapdrop", "icons": [{ "src": "images/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" },{ "src": "images/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" },{ "src": "images/android-chrome-192x192-maskable.png", "sizes": "192x192", "type": "image/png", "purpose": "maskable" },{ "src": "images/android-chrome-512x512-maskable.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" },{ "src": "images/favicon-96x96.png", "sizes": "96x96", "type": "image/png" }], "background_color": "#efefef", "start_url": "/snapdrop/index.html", "display": "minimal-ui", "theme_color": "#3367d6", "share_target": { "method":"GET", "action": "/?share_target", "params": { "title": "title", "text": "text", "url": "url" } } }
name
: 网站应用的全名。short_name
: 显示在主屏上的短名字。description
: 一两句话解释你的应用的用途。icons
: 一串图标信息:源 URL,大小和类型。多包含几个图标,这样就能选中一个最适合用户设备的。start_url
: 启动应用时打开的主页。display
: 应用的显示方式;可以是fullscreen
、standalone
、minimal-ui
或者browser
。theme_color
: UI 主颜色,由操作系统使用。background_color
: 背景色,用于安装和显示启动画面时。
一份网页清单最少需要
name
和一个图标 (带有src
,size
和type
)。最好也要提供description
、short_name
、和start_url
。除了上述字段,还有一些其它的字段供您使用,请查看网页应用清单参考获取详细信息。 -
其他
可以通过此仓库获取中文版:Spandrop,已经修改相关代码解决部署在非根路径下的一些问题。