一句话总结:Pingvin Share 是一套 TypeScript 全栈的自托管文件分享平台源码,可以部署在自己的服务器上,通过链接完成大文件收发,被看作 WeTransfer 的开源替代方案。原版已于 2025 年 6 月归档,作者推荐使用维护中的 Pingvin Share X 分支,下方为项目完整解读。
源码系统概览
文章正文
Pingvin Share 是一套自托管的文件分享平台源码,常被比作 WeTransfer 的开源替代品。
这套源码采用 TypeScript 全栈编写,后端用 NestJS,前端用 Next.js,整体界面简洁轻量。
部署后你可以在自己的服务器上搭建文件分享站点,通过链接把文件发给任何人。
项目默认以 Docker 方式运行,一条 docker compose 命令即可启动,上手成本较低。
需要说明的是,原版项目在 2025 年 6 月 29 日已归档停止维护,作者推荐使用维护中的 Pingvin Share X 分支。
源码简介
本次分享的是 Pingvin Share 的中文汉化版本,版本号为 1.13.0。
原版仓库为 stonith404/pingvin-share,在 GitHub 上获得约 4.7k 星标,累计 52 位贡献者。
源码包含 backend 与 frontend 两大目录,后端提供文件上传、分享、权限等接口,前端提供上传、下载和管理界面。
数据层使用 Prisma ORM,默认数据库为 SQLite,文件可存放在本地磁盘或 S3 对象存储。
项目遵循 BSD 2-Clause 开源协议,可以自由使用和二次开发。
项目还附带基于 Docusaurus 的官方文档,部署和配置说明比较齐全。
适用场景
适合个人或小团队搭建私有文件分享服务,替代公共网盘的传输环节。
设计师、摄影师需要给客户发送大体积文件时,用这个平台比微信和网盘更专业。
企业内网可以部署一套,作为内部资料传递和临时共享的工具。
开发者在学习 Node.js 全栈项目时,这套源码也是不错的学习样本。
功能亮点
链接分享是核心能力,上传文件后系统生成短链接,对方打开即可下载。
文件大小不受平台限制,只受服务器磁盘空间约束,适合大文件传输。
分享时可以设置过期时间,链接到期后自动失效。
支持密码保护和访问次数限制,可控制谁能查看和下载。
内置反向分享功能,允许对方通过你的链接主动上传文件给你。
集成邮件通知,文件被下载或反向分享被使用时,你会收到提醒。
身份认证方式丰富,支持本机账号、LDAP、OIDC 以及 GitHub、Google、Microsoft、Discord 等第三方登录。
可对接 ClamAV 病毒扫描服务,在文件上传时自动检测恶意内容。
前台界面支持深色主题切换,并可作为 PWA 安装到桌面使用。
By the numbers:4.7k GitHub 星标,52 位贡献者,322 个源码文件,v1.13.0 最终版本,4.3MB 仓库体积。
| 维度 | Pingvin Share | WeTransfer | FileBrowser |
|---|---|---|---|
| 部署方式 | 自托管 Docker | 商业云服务 | 自托管 |
| 文件大小限制 | 仅受磁盘限制 | 有套餐上限 | 仅受磁盘限制 |
| 过期时间 | 支持 | 支持 | 不支持 |
| 密码保护 | 支持 | 部分支持 | 不支持 |
| 反向分享 | 支持 | 不支持 | 不支持 |
| 病毒扫描 | 可对接 ClamAV | 内置 | 不支持 |
技术架构与部署指南
技术栈与运行环境
后端采用 NestJS 11 框架,使用 Express 承载接口,通过 Prisma ORM 操作 SQLite 数据库。
前端采用 Next.js 14 与 React 18,组件库为 Mantine,支持 PWA 离线安装。
认证体系包含 JWT、argon2 密码哈希、TOTP 两步验证与多种 OAuth 登录。
文件存储支持本地磁盘与 AWS S3,多实例场景可开启 Redis 缓存。
运行环境需要 Node.js 22 以上版本,推荐直接用 Docker 部署。
安装与部署提示
最简单的部署方式是使用 Docker,下载 docker-compose.yml 后执行 docker compose up -d。
启动后前端页面运行在 3000 端口,后端 API 运行在 8080 端口。
数据默认保存在 ./data 目录,包含数据库与上传文件,升级前记得备份。
配置文件通过 config.example.yaml 提供参考,也可以直接在后台界面调整。
生产环境建议套一层反向代理,开启 HTTPS 并设置 TRUST_PROXY 环境变量。
中文汉化版基于 v1.13.0,如需长期更新建议切换维护中的 Pingvin Share X。
截图与演示说明
以下截图来自 GitHub 原版 stonith404/pingvin-share 仓库,均为无水印原图。

上图展示的是 Pingvin Share 的上传分享界面,拖拽文件后即可生成分享链接。

上图来自项目官方文档,展示 Docker 安装与基本使用说明。
官方 Demo 站点仍在运行,可通过 pingvin-share.dev.eliasschneider.com 在线体验。
截图展示的页面风格与当前版本实际界面一致,部署后即可获得相同的操作体验。
常见问题
问:Pingvin Share 原版还维护吗?
答:原版 stonith404/pingvin-share 已于 2025 年 6 月 29 日归档,作者推荐使用维护中的 Pingvin Share X 分支。
问:这套源码用什么语言和框架写的?
答:全栈 TypeScript,后端 NestJS,前端 Next.js 加 React,Mantine 做界面组件。
问:支持多大的文件上传?
答:平台本身不设文件大小上限,只受服务器磁盘空间约束,可在配置中调整单次分享的最大值。
问:可以限制分享链接的访问吗?
答:可以,支持设置过期时间、访问密码和访问次数限制。
问:部署需要什么环境?
答:推荐 Docker,也可以安装 Node.js 22 用 pm2 独立运行,需要准备数据库和存储目录。
问:文件存在哪里?
答:默认存在本地磁盘,也可以配置 S3 对象存储,比如 AWS S3、MinIO 等。
安全风险提示
原版项目已经归档,2025 年 6 月之后不再发布安全更新,存在新漏洞无人修复的风险。
建议评估后优先选择仍在维护的 Pingvin Share X 分支,或者在私有网络环境中使用本版本。
如果开启了匿名分享和开放注册,文件可能被陌生人上传占用磁盘,需要合理设置权限。
病毒扫描需要额外部署 ClamAV 容器并开启配置,否则上传文件不会经过安全检测。
生产部署时务必启用 HTTPS,并妥善保管管理员账号和 JWT 相关密钥。
下载说明
源码包已经过整理,下载解压后按 README 说明配置即可运行。
部署前建议先阅读文档中的安装指引,确认服务器环境满足要求。
本页提供的是中文汉化版源码包,与原版 v1.13.0 保持一致,适合快速上手体验。
GitHub项目开源地址:https://github.com/stonith404/pingvin-share