Docker部署Send阅后即焚云盘(Ubuntu、威联通NAS)
一次性下载、到期销毁、链接分享、服务端加密
官网:GitHub - timvisee/send: 📬 Simple, private file sharing. Mirror of https://gitlab.com/timvisee/send
Docker项目:send/docs/docker.md at master · timvisee/send · GitHub

Linux通用安装
创建文件夹
此文件夹用于存放Send上传文件,作为缓存区,Send会自动删除。
# 确保目录被创建,-p 会自动创建所有父级目录
sudo mkdir -p /opt/docker-stacks/Send/uploads
# 赋予 777 (rwxrwxrwx) 权限
sudo chmod 777 /opt/docker-stacks/Send/uploads
使用yaml安装
可以使用portainer.io面板安装,通过堆栈创建。
使用命令安装
使用 docker-compose up -d 命令启动 docker-compose。
威联通NAS
推送到私有仓库(可以直接访问可跳过)
步骤 C: 打标签 (Tag)
在 Ubuntu Server 上执行:
# 格式: docker tag [源镜像名] [NAS_IP:端口/镜像名]
docker pull registry.gitlab.com/timvisee/send:latest
docker tag registry.gitlab.com/timvisee/send:latest 你的私有仓库地址:端口/timvisee/send:latest
docker pull redis:6-alpine
docker tag redis:6-alpine 你的私有仓库地址:端口/redis:6-alpine
步骤 D: 推送 (Push) 到私有仓库
Bash
docker push 你的私有仓库地址:端口/timvisee/send:latest
docker push 你的私有仓库地址:端口/redis:6-alpine
创建应用
通过Docker-compose创建
注意,创建以后是对挂载文件是没有读写权的!
需要通过ssh进行修改
sudo chmod 777 /Custom_program/docker_data/Send/uploads
创建以后在fileStation中是看不见文件更改的,实际上成功了。

通过Container Station分别创建容器
完全绕开了“堆栈(Stack)”和“SSH 权限”这两个最大的障碍。
- 关于权限(第1点): 如果通过 QNAP 的图形界面 (GUI) 去创建容器,并在“存储”那里指定挂载目录,QNAP 的 GUI 会在后台自动帮你处理好读写权限 (RW)。这完美绕过了 SSH。
- 关于网络(第2点): 把
Redis的端口暴露(映射) 到 NAS 主机上,然后让Send容器去连接 NAS 的局域网 IP 注意,主机地址要固定!
第 1 步:创建 Redis 容器 (GUI)
-
应用名称:
send-redis -
镜像:
127.0.0.1:57080/redis:6-alpine -
高级设置 -> 端口转发:
-
点击“添加”
-
主机端口:
57081自定义 -
容器端口:
6379(这是 Redis 默认端口)
-
-
高级设置 -> 存储 (卷):
-
(推荐) 添加一个挂载,让 Redis 数据持久化。
-
主机路径:
/Custom_program/docker_data/Send/redis_data -
容器路径:
/data
-
-
创建并启动。


第 2 步:创建 Send 容器 (GUI)
-
应用名称:
send-send -
镜像:
127.0.0.1:57080/timvisee/send:latest -
高级设置 -> 端口转发:
-
点击“添加”
-
主机端口:
9010(或者你喜欢的) -
容器端口:
8080
-
-
高级设置 -> 存储 (卷):
-
点击“添加”
-
主机路径:
/Custom_program/docker_data/Send/uploads( 重点:用 GUI 的文件浏览器去选择这个目录,QNAP 会自动处理 RW 权限) -
容器路径:
/uploads
-
-
高级设置 -> 环境变量:
-
点击“添加”,添加以下所有变量:
-
DETECT_BASE_URL=true -
PORT=8080 -
FILE_DIR=/uploads -
REDIS_HOST=192.168.50.201( 关键! 必须是你 NAS 的局域网 IP) -
REDIS_PORT=57081( 关键! 必须是你在第1步中映射的主机端口)
-
-
创建并启动。

图中的1443可以删掉。


现在,send 容器会通过 192.168.50.201:57081 成功连接到 redis 容器,并且 uploads 目录的读写权限也由 QNAP GUI 自动解决了。
docker-compose
version: '3.8'
services:
# 1. Send 主程序
send:
image: registry.gitlab.com/timvisee/send:latest
container_name: send
restart: unless-stopped
ports:
# 格式: [主机端口]:[容器端口]
# 启动后,你的局域网访问地址就是 http://[你服务器的IP]:9010
- "9010:8080"
volumes:
# 将 /opt/docker-stacks/Send/uploads 目录挂载到容器的 /uploads 目录
# !! 你需要在 docker-compose.yml 旁边创建一个 uploads 目录
- /opt/docker-stacks/Send/uploads:/uploads
environment:
# !! 关键配置:自动检测访问URL !!
# 这将自动使用你访问时的域名(局域网IP或FRP地址)来生成分享链接
- DETECT_BASE_URL=true
# 告诉 Send 容器内的端口是 8080
- PORT=8080
# 告诉 Send 文件存储在 /uploads 目录
- FILE_DIR=/uploads
# 连接到下面的 Redis 服务
- REDIS_HOST=redis
# --- 其他可选配置 (保持注释即可) ---
# - MAX_FILE_SIZE=5368709120 # 最大 5GB
# - DEFAULT_EXPIRE_SECONDS=3600 # 默认 1 小时
# 2. Redis 数据库
redis:
image: redis:6-alpine
container_name: send-redis
restart: unless-stopped
volumes:
# 持久化 Redis 数据
- redis_data:/data
volumes:
# Docker 自动创建的持久化数据卷
redis_data:
本文来自博客园,作者:舟清颺,转载请注明原文链接:https://www.cnblogs.com/zqingyang/p/19207750

本文在Ubuntu和威联通NAS演示了Docker部署Send阅后即焚云盘的方法
浙公网安备 33010602011771号