做产品、运营、前端的人,常常要在 Figma 上画原型、标注释、和团队评审。Figma 好用但是闭源、数据在云端,团队图稿涉及未公开方案时不便外泄。Penpot 是开源的设计协作平台,文件、组件库、原型都存你自己服务器,界面和 Figma 高度相似,迁移成本低。本文记录在雨云 VPS 上用 Docker 部署 Penpot 的过程。
一、Penpot 解决什么
核心能力:
- 矢量设计+原型:画板、组件、交互原型一站搞定,前端评审不用另开工具;
- 实时协作:多人同开一个文件,光标可见;
- 开放格式:基于 SVG,导出的东西不被单一厂商锁死;
- 自托管:数据全在你服务器,适合内部未公开方案。
和前面写过的 HedgeDoc(见 12352)不同,HedgeDoc 是「写文字协作」,Penpot 是「画图协作」,一个是文档一个是设计,正好搭档。
二、环境准备
Penpot 依赖 Postgres 和 Redis,比轻量应用重一些,建议 2 核 2G 起步。系统 Ubuntu 22.04,装好 Docker(入门见 12235)。雨云国内节点延迟低,团队多人协作体验更顺。
新用户用优惠码 admin01 可享 五折优惠,雨云支持 7 天无理由退款。入口:雨云官网。
三、部署要点与坑
官方 docker-compose.yml 已把前端、后端、Postgres、Redis 打包,关键项:
- 必须配 SMTP:邀请成员、找回密码都依赖邮件,没 SMTP 新用户收不到邀请;
PENPOT_FLAGS:控制是否允许公开注册、是否启用注册,团队内用建议关掉公开注册;- 存储挂卷:设计文件元数据在 Postgres,资源走对象存储或本地卷,记得备份。
踩坑提醒:
- 不配 SMTP 没法邀请:很多人在没 SMTP 时卡在「邀请发不出去」,先准备好发信服务;
- 公开注册要关:默认可能开放注册,外网实例建议设
disable-register或仅邀请制; - 反向代理加 body 大小限制:大文件上传需要 Nginx 调大
client_max_body_size,否则上传被截断。
担心后台暴露可用 Authelia(见 12340)给管理入口加登录保护;容器编排用 Portainer(见 12310)统一管。
四、和 HedgeDoc 怎么分工
简单记:要写方案文字、会议纪要用 HedgeDoc;要画原型、标交互用 Penpot。两者都自托管,团队的内容数据都不出自己服务器。设计稿定稿后可导出 SVG/PDF 贴进 HedgeDoc 归档。
五、典型场景
- 产品团队画原型:需求评审前先把交互稿拉出来,多人标注;
- 运营做图:简单 banner、活动页结构在 Penpot 画,不必开重型设计软件;
- 前端对接:把标注和切图直接给开发,减少来回传文件。
合规提醒
设计文件可能包含未公开的商业方案或他人素材,运营方需履行《网络安全法》信息内容管理责任,提示用户不得上传侵权或违规内容,并妥善保管账号防止图稿泄露。






