【Docker项目实战】使用Docker部署Palmr开源文件共享工具

举报
江湖有缘 发表于 2025/10/22 13:57:03 2025/10/22
【摘要】 【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界面友好,功能实用,支持文件加密分享、访问控制和密码保护,满足了私有化文件共享的安全需求。自托管模式让用户完全掌控数据,无使用限制,非常适合个人或团队内部使用。未来可在反向代理和持久化存储方面进一步优化,提升访问安全性和扩展性。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。