前言:众所周知,在日常工作、学习中经常会遇到想要向自己手机或电脑发送文件,必须打开文件管理器、微信、图库等等,手忙脚乱,需要好几步才能完成。这里介绍一个开源的项目Snapdrop,只要在同一个局域网中,双方都打开网页就可以非常优雅的一步完成。
1. 项目地址,请大家加♥:
2. docker compose部署
2.1 前期工作
git clone https://github.com/RobinLinus/snapdrop.git
cd snapdrop
vim docker-compose.yml
将项目clone到本地,进入目录,修改docker-compose.yml
,只需要将两处端口设置换成你所需要的且在本地不重复的监听端口。比如:
version: "3"
services:
node:
image: "node:lts-alpine"
user: "node"
working_dir: /home/node/app
volumes:
- ./server/:/home/node/app
command: ash -c "npm i && node index.js"
nginx:
build:
context: ./docker/
dockerfile: nginx-with-openssl.Dockerfile
image: "nginx-with-openssl"
volumes:
- ./client:/usr/share/nginx/html
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
- ./docker/certs:/etc/ssl/certs
- ./docker/openssl:/mnt/openssl
ports:
- "8083:80"
- "1443:443"
env_file: ./docker/fqdn.env
entrypoint: /mnt/openssl/create.sh
command: ["nginx", "-g", "daemon off;"]
2.2 运行docker
一句,让容器在后台运行:docker-composed up -d
3. 反代运行
3.1 首先建立域名解析
进入你的域名解析商配置页面,将你需要的网址进行解析,如果不会,这一步请自行搜索相关网上教程。
3.2 通过宝塔设置反向代理
3.2.1 设置网站
新建网站,网址设为刚刚在域名解析服务商已经解析成功的网址。PHP版本选择静态。
3.2.2 设置SSL
这一步请自行搜索相关网上教程,建议用Cloudflare的通配符域名SSL,时效性非常长,覆盖所有下级域名。
3.2.3 修改配置文件
设置反向代理,Snapdrop需要websocket支持,所以必须自行修改配置文件。修改好后保存退出,即可。参考如下:
server {
listen 443 http2 ssl;
server_name xxx.yyy.com;
charset utf-8;
# SSL 配置省略
# 默认代理到 18080
location / {
proxy_pass http://localhost:18080;
}
# Websocket 需要协议升级
location /server {
proxy_pass http://localhost:18080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
以上完成后,请输入网址,即可进入。在同一局域网下,任意机器、手机可以互相发送文件了。
0 条评论