前言:众所周知,在日常工作、学习中经常会遇到想要向自己手机或电脑发送文件,必须打开文件管理器、微信、图库等等,手忙脚乱,需要好几步才能完成。这里介绍一个开源的项目Snapdrop,只要在同一个局域网中,双方都打开网页就可以非常优雅的一步完成。

1. 项目地址,请大家加♥:

https://github.com/RobinLinus/snapdrop

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";
    }

}

以上完成后,请输入网址,即可进入。在同一局域网下,任意机器、手机可以互相发送文件了。


Avatar photo

sontjer

For the amatuer tech nerds & life maniacs.

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用*标注