跳到主要内容
xzzlog

自建 FileGator,给不同成员分配文件目录

给不同成员交接文件时,在 FileGator 中分别指定目录和权限。两个普通账号实际检查隔离,再对外使用。

文章目录
LisaHost:原生与住宅IP产品,按套餐选择
DMIT:Premium中国大陆优化线路CN2GIA
WorkBuddy:交代任务,交付文件
RackNerd:海外VPS21.99美元每年起
大陆访问,精品线路|搬瓦工 · CN2 GIA / CTGNet 套餐
京东云:AI进入真实业务
Evoxt:最高6.0GHz CPU,2.99美元每月起
云服务器,积分可续期|雨云 · 国内外节点 · 积分兑换权益
BRNCHost:Bursa土耳其游戏服务器,1Gbps端口,DDoS防护
腾讯云:锐驰型200Mbps峰值带宽,中国内地2核2G50元每月
野草云:香港200Mbps峰值带宽,不限月流量,30元每月起
晚安云:香港云服务器2核2G15元每月

给不同人交接文件,只有一个共享目录容易混乱:对方能看到别人的资料,上传后也不知道该放在哪。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 安装文档。

继续阅读 返回顶部