如何在ubuntu上使用FireFox Send搭建临时文件分享服务

最近了解到一个炒鸡强大的匿名文件分享服务Firefox Send,本文的内容就是Firefox Send展开。

一、开始之前先了解一下firefox send是什么?

FireFox Send 是由firefox推出的一项全新的“阅后即焚”临时文件分享服务。它可以让用户上传最大 1GB 的文件,并分享给他人下载。 与传统的网盘不同,FireFox Send 的下载链接仅能使用有限的次数,并且 24 小时后也会自动过期,一旦链接过期或者链接下载次数超过设定次数,文件将被彻底删除,无法再被恢复,再加上所有数据均会被加密再传输,因此较为适合用于共享较为私密的文件。

二、准备工作

1、FireFox Send是通过js编写的一套服务,所以在正式安装使用他之前我们需要先安装nodejs环境。nodejs的安装方式网上已经有很多了,这里不再累述,如果你的系统是ubuntu,可以参考后面的链接。https://www.jianshu.com/p/c8929bea5fba

2、由于我们是想将我们最终搭建的服务时刻运行在服务器上,而不是每次敲命令去启动,所以我们还需安装pm2,PM2是具有内置负载均衡器的Node.js应用程序的生产运行时和进程管理器。 它允许您永久保持应用程序活跃,无需停机即可重新加载它们,并促进常见的Devops任务。在上面安装了nodejs之后我们安装pm2就很简单了。

npm install pm2 -g

npm是nodejs自带的包管理工具,在我们安装好了nodejs后,npm命令就可以使用了,如果不能通过npm来安装pm2,也可以尝试其他方式:

yarn global add pm2
 apt update && apt install sudo curl && curl -sL https://raw.githubusercontent.com/Unitech/pm2/master/packager/setup.deb.sh | sudo -E bash -

三、正式安装

1、在线安装

先将FireFox Send项目代码从github拉下来,你可以通过git来克隆,也可以下载压缩包后传到服务器后解压,这里使用git来复制。

git clone https://github.com/mozilla/send.git

将代码拉到服务器后先进入send目录,然后运行命令npm i或者npm install来安装项目所需要的依赖,在所有依赖安装完成之后我们运行命令
npm run build 来构建生产环境,其实这一步就是通过webpack编译生成相关的页面和文件,但是这一步webpack编译时容易出错。如果webpack顺利编译了相关文件,那么我们可以运行命令npm run prod来开启服务,然后打开任意一个非IE的浏览器(firefox send不兼容IE)浏览地址:http://服务器ip:1443/或者绑定到你服务器上的任意一个域名带上端口号1443,不出意外,你会看到下面界面:

2、离线安装

上面说到webpack编译时可能会报错,问题的根源肯定是某些依赖不能很好的配合工作,或者说我们想将firefox send服务安装到内网环境这个时候我们怎么办呢?下面就介绍如何离线安装:

离线安装的前提是我们先在一台有网的电脑上将所有的依赖都安装好将所有需要的资源文件或者说页面都编译好,其实说白了就是现在一台有网的电脑上先走在线安装的的流程正常安装好编译好,然后将整个send目录拷贝到待离线安装服务的机器上(包括node_modules目录)。然后直接运行命令npm run prod来启动服务,这里需要的资源文件因为已经在别的电脑上通过npm run build命令编译好了,所以我们这边不需要再重复编译。

四、上线项目

上面我们有通过npm run prod命令来暂时体验服务,但是如果控制台关闭之后我们发现再也访问不到该服务了,这是因为在控制台关闭的时候该命令已经中断,那么我们如何让该node写的程序一直运行,就算控制台关闭也不会断开呢?答案就是pm2,当然这不是唯一的办法,但却是一个很好的解决方案,我们通过pm2启动服务后该服务就运行到后台了,就算控制台断开也不会中断,这样我们任何时候都可以访问到我们的node程序了,但是这里需要注意的是我们之前启动服务是运行了命令npm run prod,但是如果要使用pm2来启动,我们需要知道启动服务的入口文件,对于npm有所了解的很容易知道像npm run prod这种命令肯定是定义在package.json的的自定义脚本中的,我们只需要查看该文件就可以发现入口文件是/server/bin/prod.js,然后运行命令:

pm2 start server/bin/prod.js  --watch --name send

启动服务,这样就算你断开控制台,我们依然可以访问到我们搭建firefox send服务。

五、其他问题

1、共享文件下载后没有按照预期删除掉,而是一直可以下载,永不过期。
这个问题是我在自己服务器搭建时发现的,在我们工作使用的电脑上搭建并没有发现此问题,最后追踪到是一段代码的问题,如果有朋友搭建时遇到了同样的问题,可以私信我。

2、不带端口类似于send.firefox.com这种方式访问,
这个主要是通过端口转发来实现。

此篇文章仅供学习交流,请勿将搭建后的服务用到一些不好的地方。

最后的最后,本站提供FireFox Send有偿带搭建服务,有需要的朋友欢迎随时联系站长。

  • 支付宝二维码 支付宝
  • 微信二维码 微信
相关文章