ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Penpot 自托管部署完整指南:5 条命令跑通开源设计协作平台

2026/8/30 8:28:50 拓冰建站 浏览量
Penpot 自托管部署完整指南:5 条命令跑通开源设计协作平台 Penpot 自托管部署完整指南5 条命令跑通开源设计协作平台【免费下载链接】penpotPenpot: The open-source design platform for Product teams that need scalable collaboration.项目地址: https://gitcode.com/GitHub_Trending/pe/penpotPenpot 是一个开源的设计协作平台实时协作、组件、Design Tokens、Inspect 取码一个不少。这篇 Penpot 自托管部署指南只讲一条路用官方 Docker Compose 文件在一台普通 Linux 机器上把它跑起来、加固、备份。自托管值不值先花一分钟做决策。三条路线的收益和代价如下路线收益代价自托管本文设计数据完全自己掌控满足合规要求免费使用全部功能自己管 HTTPS、备份、升级出问题时自己排障官方 SaaS零运维注册即用数据在别人的服务器上部分高级能力受套餐限制一键部署如 Elestio 托管介于两者之间有 SLA按服务付费定制灵活度最低结论如果你把设计文件当成公司资产或者团队规模需要内网隔离自托管值得如果只是个人试用SaaS 更省事。 部署前检查清单这一步解决机器和版本能不能跑的问题。做完后你会知道服务器是否达标、要开放哪些端口、钉死哪个版本。已安装docker和docker composev2 插件版服务器资源官方建议 4 CPU / 16GB 内存足够支撑数千用户小团队 2C4G 起步可用磁盘数据库卷至少留 50GB之后每增加 10 个左右的编辑者加 50GB 左右端口9001前端服务必须可达1080是临时邮件收件箱mailcatcher生产可不暴露域名有域名则解析到服务器只在内网用则可用 IP 直连版本仓库CHANGES.md中最新已发布版本为2.17.1compose 文件默认拉取 2.16建议显式钉住版本docker --version docker compose version两个命令都能打印版本号就说明环境就绪缺哪个装哪个。 最小部署路径目标是看到http://localhost:9001的登录页。全程 4 步。克隆仓库拿到官方 compose 文件git clone https://gitcode.com/GitHub_Trending/pe/penpot克隆完成后compose 文件位于docker/images/docker-compose.yaml后文所有命令都以它为操作对象。钉住版本并启动全部服务PENPOT_VERSION2.17.1 docker compose -p penpot \ -f docker/images/docker-compose.yaml up -d首次运行会拉取 frontend、backend、postgres、valkey 等镜像完成后 5 个容器在后台运行。确认容器状态docker compose -p penpot -f docker/images/docker-compose.yaml ps docker compose -p penpot -f docker/images/docker-compose.yaml logs -f看到所有服务状态为 running 即正常logs -f里出现 websocket 监听信息说明后端已就绪CtrlC 退出。访问验证curl -I http://localhost:9001返回HTTP/1.1 200就成功了浏览器打开同一地址能看到 Penpot 登录页。首次登录与初始化默认 compose 关闭了注册开关所以第一个账号要用仓库自带的管理脚本 manage.py 在 backend 容器里创建docker exec -ti penpot-penpot-backend-1 python3 manage.py create-profile按提示输入姓名、邮箱、密码完成后用这个账号登录即为管理员。⚠️ 首启必踩两个坑一是默认的PENPOT_SECRET_KEY是change-this-insecure-key上生产前务必换成python3 -c import secrets; print(secrets.token_urlsafe(64))生成的随机串二是默认 flags 带了disable-email-verification和disable-secure-session-cookies方便内网体验但暴露到公网前要去掉否则邮箱邀请和会话安全都形同虚设。生产加固三件套域名与 HTTPSPenpot 的剪贴板等浏览器 API 只在 HTTPS 下可用公网部署必须上证书。以 nginx 为例代理到 9001 并透传 WebSocketserver { listen 443 ssl; server_name penpot.example.com; ssl_certificate /path/to/fullchain; ssl_certificate_key /path/to/privkey; client_max_body_size 367001600; # 与 compose 中 PENPOT_HTTP_SERVER_MAX_BODY_SIZE 保持一致 location /ws/notifications { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_pass http://localhost:9001/ws/notifications; } location /mcp/ws { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_pass http://localhost:9001/mcp/ws; } location / { proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://localhost:9001/; } }保存后nginx -t systemctl reload nginx用域名打开应能看到 https 锁标且多人协作时通知能实时到达。数据备份持久数据只有两块卷Postgres 数据库卷penpot_postgres_v15和资源卷penpot_assets用户上传的图片、SVG。用临时容器打包即可卷名以docker volume ls实际显示为准docker run --rm -v penpot_penpot_postgres_v15:/volume -v $(pwd):/backup \ alpine tar czf /backup/penpot-db.tgz -C /volume . docker run --rm -v penpot_penpot_assets:/volume -v $(pwd):/backup \ alpine tar czf /backup/penpot-assets.tgz -C /volume .备份完成后当前目录会出现两个 tgz 文件把它们定期同步到异地即可实现一键可恢复。资源与性能官方口径4CPU/16GB 可支撑数千用户Valkey 默认限 128MB 内存volatile-lfu淘汰策略这个默认值对绝大多数实例够用。真正的瓶颈通常在客户端——Penpot 重度依赖浏览器渲染让设计同事用最新稳定版 Chrome。磁盘按前文 50GB 起步、弹性扩容即可不用为性能提前加机器。日常运维速查操作命令效果停止docker compose -p penpot -f docker/images/docker-compose.yaml down停掉全部容器卷数据保留启动PENPOT_VERSION2.17.1 docker compose -p penpot -f docker/images/docker-compose.yaml up -d原样拉起数据不丢升级先... compose ... pull再执行上面的启动命令拉新镜像并重建容器查日志docker compose -p penpot -f docker/images/docker-compose.yaml logs -f penpot-backend只看后端服务的滚动日志备份上文数据备份的两个 tar 命令生成数据库与资源包注意升级建议小步走跨大版本直接跳会触发额外迁移。从 1.x 升到 2.0 时应用启动会自动执行 v2 组件迁移大团队实例可能要等几分钟属正常现象不要中途 kill。高频坑 FAQQ1manage.py提示找不到容器容器名随 docker 版本可能是penpot-penpot-backend-1或penpot_penpot-backend-1。先跑docker ps确认真实名字再 exec。Q2manage.py 的 create-profile 不生效该脚本依赖enable-prepl-serverflag。官方 compose 默认已开启若你换过 flags检查PENPOT_FLAGS里是否还包含它。Q3登录成功但剪贴板、部分功能异常你在用 HTTP。这类浏览器 API 只在安全上下文HTTPS 或 localhost下工作给域名配上证书即可。Q4收不到注册/邀请邮件默认 SMTP 指向容器内的 mailcatcher邮件都发进了临时收件箱访问http://服务器IP:1080可以查看。生产环境应把PENPOT_SMTP_HOST等变量换成真实邮件服务商。Q5升级后页面打不开日志报错按 troubleshooting.md 的路径走先docker compose ps确认容器存活再logs -f看具体服务最后看浏览器 F12 的 Network 里哪个请求 5xx定位到对应服务再查。到这里一套可上线的 Penpot 自托管环境就完成了版本钉死、HTTPS 就位、备份可恢复、运维有速查表。日常唯一要记住的习惯就是先备份再升级。想深入更多配置项S3 存储、OIDC 登录、Kubernetes继续读仓库里的 docker 部署文档 和 配置总览那是全部开关的权威来源。【免费下载链接】penpotPenpot: The open-source design platform for Product teams that need scalable collaboration.项目地址: https://gitcode.com/GitHub_Trending/pe/penpot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考