尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Penpot Docker自托管部署完整指南:3条命令跑起设计协作平台

Penpot Docker自托管部署完整指南:3条命令跑起设计协作平台 Penpot Docker自托管部署完整指南3条命令跑起设计协作平台【免费下载链接】penpotPenpot: The open-source design platform for Product teams that need scalable collaboration.项目地址: https://gitcode.com/GitHub_Trending/pe/penpot设计文件散落在云端 SaaS、数据不能出内网、开发和设计之间靠截图来回拉扯——遇到这类问题时用 Docker 自托管一个 Penpot 是最直接的解法。Penpot 是业内少数完全开源的设计协作平台这条路径下它免费、可完全掌控而且设计稿能直接转成 CSS 和 SVG 代码。本文带你走完从零部署到生产环境的全过程最快启动只需 3 条命令再讲清楚必须改的参数和最容易踩的坑。 项目速写一句话定位Penpot 是面向产品团队的开源设计与代码协作平台浏览器里实时协作部署在自己服务器上。项目说明许可证MPL 2.0免费商用、可自由修改技术栈Clojure 后端 PostgreSQL ValkeyRedis 兼容 ClojureScript 前端部署形态官方 Docker Compose / Kubernetes Helm Chart开箱即用适用对象有数据合规要求的企业、设计 开发混合团队硬件门槛4 核 16GB 可支撑数千用户小团队 4GB 内存起步即可服务端源码在 backend/src/app/部署配置集中在 docker/images/docker-compose.yaml所有环境变量与开关的说明见 官方配置文档。 最小可行运行3 条命令跑起来环境要求Docker 20.10、Docker Compose 2.0、4GB 可用内存、10GB 磁盘。git clone https://gitcode.com/GitHub_Trending/pe/penpot cd penpot cp docker/images/docker-compose.yaml . docker compose -p penpot up -d打开 http://localhost:9001 就能注册账号、建团队、开始画图。这个 compose 文件一次性拉起 frontend、backend、PostgreSQL 15、Valkey、exporter、MCP 六个容器外加一个测试用的 MailCatcher。想锁定版本就在启动时加PENPOT_VERSION2.16不确定用哪个版本就直接用默认的 latest 镜像。 核心能力拆解代码模式设计稿直接变 CSSPenpot 用开放标准SVG、CSS、HTML、JSON存储设计所以 Inspect 面板里每个图层都能一键取到现成的 CSS、SVG、HTML不存在设计导出再人工翻译的环节。实时协作与评论多人同时在同一个文件里编辑光标和改动即时同步可以在画布上贴评论、指派、解决配合 WebSocket 通知走 Valkey 中转适合评审会直接开在文件里。设计系统组件、变体与 Design Tokens组件支持变体和覆盖overrideDesign Tokens 是原生能力——颜色、间距、圆角、字体都能定义 token、别名和主题是设计和开发之间单一的事实来源可批量导出对接前端工程。访问令牌与开放 API个人可以在账号设置里生成访问令牌配合 RPC API 做自动化导出文件、批量操作团队层还支持 Webhooksenable-webhooks开关文件更新可以触发外部流水线。插件与 MCP插件系统可以把工作区可编程化示例插件在 plugins/apps/内置的 MCP 服务compose 里默认开启enable-mcp则让 AI 工具能双向读写设计文件。⚙️ 生产化改造改哪几个参数、为什么改默认配置面向本机体验暴露到公网前按下面的顺序改一遍即可全部改在docker-compose.yaml的 environment 段PENPOT_SECRET_KEY必改。默认值是change-this-insecure-key所有会话密钥都从它派生。用python3 -c import secrets; print(secrets.token_urlsafe(64))生成一个替换掉。PENPOT_PUBLIC_URI。默认指向http://localhost:9001改成你的实际域名否则回调和通知链接都是错的。功能开关PENPOT_FLAGS。默认带了disable-email-verification和disable-secure-session-cookies官方注释明确写了暴露到公网必须移除这两个。PostgreSQL。内网用默认库没问题密码是penpot/penpot若复用外部数据库改PENPOT_DATABASE_URI/USERNAME/PASSWORD三行。对象存储。默认fs后端把用户上传的图片、SVG 存在penpot_assets卷里够用规模大了换成 S3 兼容存储PENPOT_OBJECTS_STORAGE_BACKENDs3加 endpoint、bucket、AK/SK 四个变量。SMTP。把PENPOT_SMTP_HOST/PORT/USERNAME/PASSWORD指向真实邮件服务配合enable-smtp注册验证和邀请邮件才真正发得出去。HTTPS 反向代理。Nginx 示例官方文档里给全了要点三条反代到localhost:9001、client_max_body_size设为 350M 与应用层一致、/ws/notifications和/mcp/ws两个路径做 WebSocket 升级。不想自己配证书的话compose 文件里内置了 Traefik Lets Encrypt 的注释模板解开即用。登录方式。内网可以只开邮箱注册并用PENPOT_REGISTRATION_DOMAIN_WHITELIST锁域名接公司账号则开enable-login-with-google/-github/-gitlab/-ldap之一填对应 client 信息。更细的 HA、内网隔离air-gapped方案见 推荐配置文档。️ 高频踩坑现象、原因与解法坑 1浏览器打开 9001 端口连不上或白屏后端在启动时会等 PostgreSQL 和 Valkey 的健康检查通过才就绪冷启动慢几秒很正常。先用docker compose ps确认 6 个容器都 healthy再看docker compose logs -f penpot-backend有没有迁移报错。坑 2上传大图直接 413应用层默认允许 350MBPENPOT_HTTP_SERVER_MAX_BODY_SIZE: 367001600但 Nginx 默认的client_max_body_size只有 1M。代理层必须显式调到 367001600两边保持一致。坑 3注册邮件收不到默认 SMTP 指向的是内置的 MailCatcher邮件被它截胡了。测试环境可访问http://localhost:1080查看收到的信生产环境按上一节配置真实 SMTP。坑 4HTTP 下复制粘贴、剪贴板功能失效浏览器在明文 HTTP 下会禁用部分 Web API这不是 Penpot 的 bug。挂上域名和证书走 HTTPS 即可这也是官方推荐生产必上 HTTPS 的原因。坑 5从 1.x 直升 2.x 启动特别慢2.0 引入 v2 组件迁移文件多的实例要跑几分钟属预期行为。官方建议升级走小步版本递进别跨大版本跳若自动迁移卡住可用disable-v2-migration关闭后手动执行详见 Docker 部署文档。 自动化与生态点到为止备份持久化只有两处——penpot_postgres_v15卷pg_dump导出 SQL和penpot_assets卷用临时容器打包 tar 即可挂到 cron 里就是完整的备份方案。升级docker compose pull docker compose up -d升完用docker compose logs --tail100 penpot-backend确认迁移日志。CI/CD 联动团队开启 webhooks 后文件更新事件可推给 Jenkins / GitHub Actions访问令牌 RPC API 也能做定时导出。监控日志用docker compose logs -f 服务名按服务查看配合 Docker 的 json-file 轮转max-size / max-file防止磁盘写满。✅ 上线前核对清单日常docker compose ps全部 healthy磁盘余量 20%日志无新增严重错误每周备份文件能实际恢复一次PENPOT_SECRET_KEY、数据库密码、SMTP 凭据无泄露每月按 磁盘规划建议 核对容量10 名编辑以上每增 1 人约加 5GB检查新版本小步升级收尾到这里一个数据完全可控、设计开发同源的 Penpot 实例已经在你的服务器上跑起来了。下一步建议先把PENPOT_SECRET_KEY和 HTTPS 这两项落实再挑一个真实项目把组件库和 Design Tokens 迁进来跑一周再谈扩容。【免费下载链接】penpotPenpot: The open-source design platform for Product teams that need scalable collaboration.项目地址: https://gitcode.com/GitHub_Trending/pe/penpot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表