文件管理和分发软件ProjectSend

这篇文章起头于今年的 2 月,大概完成于 4 月。当时的 ProjectSend 的版本为 r1070,现在的版本为 r1295。老苏已重新验证过,虽然在界面上已经存在细节上的差异,但并不会影响对本文的理解

什么是 ProjectSend ?

ProjectSend 是一款免费的开源软件,可让您与客户共享文件,注重易用性和隐私性。它支持客户端组、系统用户角色、统计、多语言、详细日志等等!

简单的说就是有点像发邮件,只有指定的收件人才能收到发件人发送的文件,但又不依赖于邮件

安装

建数据库

ProjectSend 需要至少具有 php 7.1MySQL 5 或更高版本才能运行该软件。

所以数据库这块我直接用的群晖的 MariaDB 5,在 phpMyAdmin 中创建了表名为 projectsend 的空表

安装镜像

在群晖上以 Docker 方式安装。

在注册表中搜索 projectsend ,选择第一个 linuxserver/projectsend,版本选择 latest

title

docker 文件夹中,创建一个新文件夹,并将其命名为 projectsend,然后在 projectsend 文件夹中再创建两个新的子文件夹,分别命名为 configdata

title

文件夹 装载路径 说明
docker/projectsend/config /config 存放设置
docker/projectsend/data /data 存放数据

title

端口

默认的端口 80 不能用,换成了不冲突的 8222443 用不上,所以老苏给删了

本地端口 容器端口
8222 80

老版

环境

可变
TZ 设置为 Asia/Shanghai
PGID <gid> 设为 1000
PUID <uid> 设为 1000

PUID 为什么默认设置为 1000,请看老苏写的『如何获取PUID和PGID

title

初始化设置

在浏览器中输入 http://群晖IP:8222,就能看到主界面了,第一次需要设置

默认情况下数据库右侧是红色的感叹号,必须全部变绿

注意:下图中密码被我隐藏了,不是为空

拉到底部,按钮从 check 变成了 Check againWrite config file

Write config file

Continue to installation

项目地址和数据库地址不同是因为:100 开头的是 tailscale 的地址,对应的局域网 IP192.168.0.199,实际上这两个地址是同一台机器,当然数据库也可以安装在另外一台机器上

填写站点名称和管理员信息

继续 install,到这里就设置完成了

高级设置

增加上传的文件大小限制

有三个地方可以修改,第一种是在初始化的时候设置,第二种是设置全局参数,第三种是给每个账户单独设置

初始化设置

全局设置

找到 sys.config.php 文件

修改前需要先修改 sys.config.php 文件的权限,需勾选 写入 权限

找到 MAX_FILESIZE,默认是 2048MB,也就是 2GB,可以将 2048 更改为所需的任何内容,但必须是整数。

单独设置

在新建用户时,单独设置 Max. upload filesize,如果保留为空或将其设置为0,它将使用全局值。

汉化

目前已经支持 71 种语言,需要在 https://www.projectsend.org/translations/ 页面下载

将下载的 zh_CN.zip 文件解压到 projectsend 目录中

语言包目录中包含了 zh_CN.mozh_CN.po 的文件

  • POPortable Object(可移植对象)的缩写形式,它是面向翻译人员的、提取于源代码的一种资源文件。
  • MOMachine Object(机器对象)的缩写形式,它是面向计算机的、由 .po 文件通过 GNU gettext 工具包编译而成的二进制文件,应用程序通过读取 .mo 文件使自身的界面转换成用户使用的语言,如简体中文。

可以在 http://www.dayanzai.me/poedit-pro.html 下载 Poedit 文件,用于将 .po 文件编译为 .mo 文件

语言包在容器中的路径对应下表

模块 路径
主程序 /app/projectsend/lang
模板 Default /app/projectsend/templates/default/lang
模板 Gallery /app/projectsend/templates/gallery/lang
模板 Pinboxes /app/projectsend/templates/pinboxes/lang

SSH 连接到群晖,执行下面的拷贝命令

【注意】:

  • /volume2/docker/projectsend/zh_CN/. 是群晖上汉化包解压出来的目录
  • linuxserver-projectsend1 为容器名称
  • /app/projectsend 容器内的目录
1
2
# 从群晖拷贝到容器linuxserver-projectsend1内
docker cp /volume2/docker/projectsend/zh_CN/. linuxserver-projectsend1:/app/projectsend

修改 sys.config.php 文件,将 define('SITE_LANG','en') 改为 define('SITE_LANG','zh_CN')

保存后 logout ,登录界面 语言 默认就是中文了

运行

回到 http://群晖IP:8222,会看到登录页面,用刚才创建的管理员账号和密码登录

使用还是很简单的,简单介绍下流程:

为了开始上传文件并与客户共享,首先,您需要添加客户

邮件没设置,而且用户的邮箱地址也是乱填的,报错信息不用管

然后单击文件栏,然后从下拉菜单中选择“上传”按钮以添加添加,然后上传文件。

上传文件后,您可以选择要共享的特定客户

分配完成后

要检查状态并管理上传的文件,请点击文件栏下方的 管理文件 选项

客户登录后,就能看到分享给自己的文档了

参考文档

projectsend/projectsend: ProjectSend is a free, open source software that lets you share files with your clients, focused on ease of use and privacy. It supports clients groups, system users roles, statistics, multiple languages, detailed logs… and much more!
地址:https://github.com/projectsend/projectsend

ProjectSend - Share files with your clients from your own server. Open source, free software.
地址:https://www.projectsend.org/