【Docker项目实战】使用Docker部署Palmr开源文件共享工具
一、Palmr介绍
1.1 Palmr简介
Palmr.是一个专注于隐私与安全的开源文件共享平台,旨在为用户提供完全可控、无追踪、无限制的文件上传与共享体验。它支持自托管部署,适用于个人、团队或企业构建私有化文件服务,所有数据掌握在自己手中,无需依赖第三方云存储。
1.2 Palmr主要特点
- 自托管部署:可在您自己的服务器或VPS上安装运行,完全掌控数据和环境。
- 隐私与安全优先:无用户行为跟踪,确保所有文件传输和存储过程安全可靠。
- 密码保护共享:支持为共享链接设置密码,防止未授权访问。
- 自定义分享链接:可自定义文件或文件夹的访问链接,便于管理和传播。
- 细粒度访问控制:灵活配置文件和文件夹的访问权限,实现精准共享。
- 无使用限制:不限制文件数量、大小或下载次数,真正做到自由分享。
- 文件夹组织功能:支持创建和管理文件夹,方便分类和批量共享文件。
- 简单易部署:基于 SQLite 和本地文件系统存储,开箱即用,部署门槛低。
- 可扩展存储支持:可选集成 S3 兼容对象存储,满足企业级大容量存储需求。
1.3 注意事项
⚠️ 当前为测试版本:项目尚处于开发测试阶段,功能和API可能不稳定。
🚫 不建议用于生产环境:可能存在未发现的漏洞或数据兼容性问题,正式使用前请充分评估风险。
🔧 需自行维护更新:作为自托管服务,用户需负责服务器安全、备份与版本升级。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。
| hostname | IP地址 | 操作系统版本 | Docker版本 | 部署项目 | 备注 |
|---|---|---|---|---|---|
| jeven | 192.168.3.88 | Ubuntu 24.04.2 LTS | 28.5.0 | Palmr | —— |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署Palmr开源文件传输工具。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
Active: active (running) since Sat 2025-10-04 13:29:05 UTC; 2 days ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 888 (dockerd)
Tasks: 65
Memory: 1.2G (peak: 1.4G)
CPU: 3min 23.296s
CGroup: /system.slice/docker.service
3.2 检查Docker版本
检查Docker版本
root@jeven:~# docker -v
Docker version 28.5.0, build 887030f
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven:~# docker compose version
Docker Compose version v2.39.4
四、拉取Palmr镜像
下载Palmr容器镜像,当前最新镜像版本为
v3.2.3-beta。
docker pull kyantech/palmr:v3.2.3-beta

五、部署Palmr服务
5.1 创建部署目录
- 创建部署目录
mkdir -p /data/palmr/data && cd /data/palmr/
5.2 编辑部署文件
在部署目录下,创建docker-compose.yaml文件,内容如下所示:
vim docker-compose.yaml
version: '3.8'
services:
palmr:
image: kyantech/palmr:v3.2.3-beta
container_name: palmr
environment:
- ENABLE_S3=false
- ENCRYPTION_KEY=ENCRYPTION_KEY=k3Yl9mQx8vR7wN2pZ6sT4uV5cX1nB0oL # 必须修改为至少32字符的安全密钥
- PALMR_UID=0 # 使用root用户运行容器进程(UID为0)
- PALMR_GID=0 # 使用root组运行容器进程(GID为0)
- SECURE_SITE=false # 如果使用反向代理,则设置为true
ports:
- "5487:5487" # Web界面端口映射
- "3333:3333" # API端口映射(可选暴露)
volumes:
- /data/palmr/data:/app/server # 数据持久化挂载点
restart: unless-stopped # 容器异常退出时自动重启
- Palmr 环境变量说明
| 环境变量 | 默认值 | 是否必需 | 说明 |
|---|---|---|---|
ENABLE_S3 |
false |
否 | 是否启用 S3 兼容对象存储。设为 true 时需额外配置 S3 连接参数;false 表示使用本地文件系统存储(推荐初学者使用)。 |
ENCRYPTION_KEY |
(无默认安全值) | 是 | 数据加密主密钥,必须设置且长度不少于 32 个字符。用于加密数据库中的敏感信息(如用户会话、文件元数据等)。使用弱密钥或默认值将导致严重安全风险。建议使用 openssl rand -base64 32 生成高强度密钥。 |
PALMR_UID |
1001 |
否 | 指定容器内运行进程的用户 ID(UID)。建议设置为宿主机上数据目录(如 /data/palmr/data)所属用户的 UID,以避免权限问题。本例中设为 0 表示以 root 用户运行。 |
PALMR_GID |
1001 |
否 | 指定容器内运行进程的组 ID(GID)。应与 PALMR_UID 对应的用户组一致。设为 0 表示以 root 组运行。 |
SECURE_SITE |
false |
否 | 是否启用安全站点模式。若通过 HTTPS 反向代理(如 Nginx、Caddy)访问 Palmr,应设为 true,以确保会话 Cookie 被标记为 Secure,防止在非 HTTPS 连接中传输。直接通过 HTTP 访问时保持 false。 |
5.3 创建Palmr容器
执行以下命令,创建Palmr容器。
docker compose up -d

5.4 查看Palmr容器状态
检查Palmr容器运行状态,确保Palmr容器正常启动。
root@jeven:/data/palmr# docker compose ps
WARN[0000] /data/palmr/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
palmr kyantech/palmr:v3.2.3-beta "docker-entrypoint.s…" palmr About a minute ago Up About a minute (healthy) 0.0.0.0:3333->3333/tcp, [::]:3333->3333/tcp, 0.0.0.0:5487->5487/tcp, [::]:5487->5487/tcp

5.5 检查Palmr容器日志
检查容器运行日志,确保Palmr服务正常运行。
docker compose logs

六、访问Palmr服务
6.1 访问Palmr初始页
浏览器地址:
http://<个人的服务器IP>:5478,访问Palmr初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

6.2 注册账号
点击“Login”选项,进入账号注册页面。

自定义设置账号密码后,确定创建即可。


七、Palmr基本使用
7.1 设置中文语言
在Palmr主页右上角的语言设置选项中,我们选择系统语言为中文。


7.2 上传文件
点击“上传文件”,将本地文件上传到Palmr。


7.3 分享文件
选择刚才上传的文件,点击分享选项。
创建分享:可设置分享名称、过期时间、最大查看次数、密码保护等。

生成分享链接,如下所示:


7.4 分享效果
在局域网内其余终端浏览器,打开分享链接,效果如下:


八、总结
通过本次实践,我们成功使用Docker部署了Palmr开源文件共享工具,整个过程简洁高效,体现了容器化部署的优势。Palmr界面友好,功能实用,支持文件加密分享、访问控制和密码保护,满足了私有化文件共享的安全需求。自托管模式让用户完全掌控数据,无使用限制,非常适合个人或团队内部使用。未来可在反向代理和持久化存储方面进一步优化,提升访问安全性和扩展性。
- 点赞
- 收藏
- 关注作者

评论(0)