自建 FileGator,给不同成员分配文件目录
给不同成员交接文件时,在 FileGator 中分别指定目录和权限。两个普通账号实际检查隔离,再对外使用。
文章目录
给不同人交接文件,只有一个共享目录容易混乱:对方能看到别人的资料,上传后也不知道该放在哪。FileGator 提供网页文件管理,可以给账号分配目录与权限。
本文先通过 SSH 隧道完成账号设置,再决定是否开放 HTTPS。它适合有限成员的文件交接,不等于给服务器所有目录都加一个公网管理入口。
保留文件仓库和用户数据
以下命令在 Linux VPS 上执行,需要有 Docker 操作权限。先运行 docker version 和 docker compose version,确认引擎与 Compose v2 都能工作。没有安装 Docker 时,按 Docker 官方安装说明选择对应发行版;不要把其他发行版的仓库配置直接复制过来。
示例工作目录为 /opt/filegator,所有相对路径都以这个目录为基准。VPS_IP、SSH 用户和示例域名需要换成自己的值。端口 8086 若已被占用,只改映射左侧的宿主机端口,并同步修改访问地址。
sudo install -d -m 0750 -o "$(id -u)" -g "$(id -g)" /opt/filegator
cd /opt/filegator
umask 077
使用命名卷让镜像初次创建卷时初始化必要文件,避免空绑定目录遮住用户配置。这里显式命名两个卷,同一宿主机部署第二套实例时必须换卷名,不能把两套站点挂到同一份数据。
初次登录账号为 admin,密码为 admin123,立即修改。未完成设置前保持回环绑定,不发布公网入口。
将下面内容保存为 compose.yaml:
services:
filegator:
image: filegator/filegator:latest
restart: unless-stopped
ports:
- "127.0.0.1:8086:8080"
volumes:
- repository:/var/www/filegator/repository
- private:/var/www/filegator/private
volumes:
repository:
name: filegator_repository
private:
name: filegator_private
在工作目录启动并检查日志:
docker compose config --quiet
docker compose pull
docker compose up -d
docker compose ps
docker compose logs --tail=80
启动后按下面的步骤试用。遇到目录不可写的报错,先核对 UID 和挂载路径,不要直接改成 chmod 777。
用 SSH 隧道打开界面
示例仅把应用端口发布到 VPS 的 127.0.0.1。在自己的电脑上运行以下命令,保留终端窗口,再打开 http://127.0.0.1:8086:
ssh -N -L 8086:127.0.0.1:8086 your_ssh_user@VPS_IP
浏览器里的回环地址是自己的电脑,SSH 把请求转到 VPS。若本地同号端口被占用,可换隧道左侧端口;涉及应用外部 URL 的项目也要一起调整。管理界面无需因此开放公网端口。
用两个普通账号验证文件隔离
管理员创建两个交接目录,建立两个普通账号,分别指定根目录和必要的上传下载权限。账号 A 上传测试文件,账号 B 应看不到 A 的目录,也不能通过修改 URL 下载它。
复制测试文件的下载地址,在未登录窗口打开,核对是否需要认证。禁止上传、删除等权限也要分别实际测试,不能只看设置页勾选了什么。
上传较大文件失败时检查应用、PHP 和反向代理的请求限制及剩余空间。先逐层定位,别把所有限额都放大后仍不知道故障在哪。
需要多人远程访问时添加宿主机反向代理到 127.0.0.1:8086,配置独立域名与 HTTPS,保持应用端口不直接公开。删除临时账号前先确认是否还有未交接的文件。
文件仓库和用户配置都要备份
repository 存放文件,private 包含用户等私有数据。先停止应用,再对两个命名卷分别打包。示例在 VPS 执行:
docker compose stop
sudo install -d -m 0700 /var/backups/filegator
docker run --rm --user 0 -v filegator_repository:/source:ro -v /var/backups/filegator:/backup alpine:3.22 tar -czpf /backup/repository.tar.gz -C /source .
docker run --rm --user 0 -v filegator_private:/source:ro -v /var/backups/filegator:/backup alpine:3.22 tar -czpf /backup/private.tar.gz -C /source .
sudo chmod 0600 /var/backups/filegator/*.tar.gz
docker compose start
这两个固定文件名会覆盖同名旧备份,实际长期使用应每次放进新的时间目录。另存 Compose、镜像摘要和自定义 configuration.php;如果没有单独持久化后者,不能以为它已在两个卷里。
在测试实例的新卷中解包,使用原镜像,检查两个账号和文件隔离,再验证下载校验值。不要对正在使用的卷执行恢复。
安装参数和数据路径可对照FileGator 安装文档。











