探索未知,记录点滴

Firefox Send-临时文件分享服务部署

Spread the love

最近火狐的一个项目Firefox Send在TG又火了一把,自从去年开始内测之后,最近Mozilla正式上线了该服务。该服务旨在提供简单、私密的文件分享服务,不登录火狐账户可以上传分享不超过1G的文件,登录火狐之后可以上传分享不超过2.5G的文件。且火狐承诺该服务是端到端的,分享链接可加密,到期即焚,十分安全。

要强调的是Firefox Send下载被分享文件是先在浏览器下载,再拷贝至桌面,通过抓包也能验证其安全性和不可获得直链的事实。

官网地址:https://send.firefox.com

以上是官方提供的网址,刚好我看见其中有github开源的项目,于是开始了自建Firefox Send服务的探索。

交流群:Newlearnerの水群

《Firefox Send-临时文件分享服务部署》

准备工作

What I need

1、一台有公网ip的服务器

2、Node.js 10.0+

3、Redis server(可选)

4、nginx(可选,如果你想要绑定域名)

5、一些依赖

部署

安装Nodejs

可用node -vnpm -v查看安装的版本号

安装Redis

安装Nginx

既然有兴趣做这个网页服务的人我想大都了解lnmp。以下过程也基于lnmp一键的环境,如果对其他并无要求,单独安装nginx即可。

安装其他

Git项目并安装运行

此时通过浏览器访问https://yourserverip:8080即可

绑定域名

绑定域名我觉得是常规操作,毕竟ip难记且不容易被大家接受,所以我们需要用到nginx。

修改Webpack.config.js

因为新版的webpack-dev-server出于安全考虑,默认检查hostname,如果hostname不是配置内的,将中断访问。所以我们要在Git项目并安装运行这一步之前修改webpack.config.js文件的配置参数。

书写nginx配置文件

在修改完上一步配置并成功运行服务之后,我们在相应位置增加相应的nginx配置。以lnmp一键配置https为例,在usr/local/nginx/conf/vhost当中增加一个域名.conf。内容如下:

直接通过443端口访问服务,如果你只想用http,简单修改即可。

其中的坑

因为我自己也是第一次用nodejs,踩坑无数,和大家分享下。

其一就是webpack.config.js,如果不修改参数关闭自动检查,绑定域名之后无法访问。我一度认为是我的nginx配置文件写错了。

其二是文件上传,Firefox Send用websocket传输,并且可以从webpack.config.jsdevserver里面看到端口是8081。我们用nginx之后,如果不配置,会报404错误。也就是网页打得开,文件无法上传。我从伟大的项目Project V获得灵感,在nginx里面加入:

(o゜▽゜)o☆[BINGO!],最后不要忘记开放相关端口~


参考文章:Stackoverflow invaild-host-header

  Send-github

  1. k说道:

    在nginx.conf里面加入了上面的代码,重启了nginx,没报错还是没有上传功能

  2. k说道:

    开放了8081端口

    1. Newlearner365说道:

      几天没见开发者更新了不少版本,我不是很清楚新的版本怎么样
      之前安装的时候用的是3.0.3版本,你可以参考下
      猜测问题可能还是出在nginx配置上面

发表评论

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

Recommended
前面在macOS安装…