尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Penpot Docker 自托管实战指南:30分钟跑通生产可用实例

Penpot Docker 自托管实战指南:30分钟跑通生产可用实例 Penpot Docker 自托管实战指南30分钟跑通生产可用实例【免费下载链接】penpotPenpot: The open-source design platform for Product teams that need scalable collaboration.项目地址: https://gitcode.com/GitHub_Trending/pe/penpot你是一支需要把设计资产握在自己手里的产品团队不想依赖 SaaS也不想被厂商锁定要在自己的服务器上架设设计协作平台。Penpot 是开源设计平台支持实时协作、设计令牌、插件体系Docker Compose 是官方主推的自托管路径。本指南假设你已安装 Docker 与 Docker Compose并能读懂基础 YAML。30分钟拉通最小可用实例仓库内docker/images/docker-compose.yaml就是官方生产用编排文件包含 frontend、backend、exporter、mcp、postgres、valkey 六个核心容器# 1. 克隆仓库 git clone https://gitcode.com/GitHub_Trending/pe/penpot # 2. 固定版本启动不要使用 latest 标签 cd penpot/docker/images PENPOT_VERSION2.16 docker compose -p penpot -f docker-compose.yaml up -d # 3. 验证返回 HTTP 200 即前端就绪 curl -I http://localhost:9001浏览器访问 http://localhost:9001看到注册页面即部署成功不注册的话也可以直接用下一条命令创建管理员账号。升级与停止同样两行命令# 停止 docker compose -p penpot -f docker-compose.yaml down # 升级到新版本固定好 PENPOT_VERSION 后 PENPOT_VERSION新版本号 docker compose -f docker-compose.yaml pull \ PENPOT_VERSION新版本号 docker compose -p penpot -f docker-compose.yaml up -d⚠️ 官方明确建议小步升级。1.x 升到 2.0 会自动触发 v2 组件迁移数据量大时可能持续数分钟属正常现象。看懂 3 个必须改的核心配置其余变量数据库连接、Redis 地址、对象存储路径保持默认即可改错反而容易踩坑。核心三项如下配置项默认值生产推荐值改错的后果PENPOT_SECRET_KEYchange-this-insecure-keypython3 -c import secrets; print(secrets.token_urlsafe(64))生成它是派生会话密钥的主密钥不改则任何人都能伪造登录态事后更换会使所有已登录会话失效PENPOT_PUBLIC_URIhttp://localhost:9001你的对外域名如https://penpot.example.com图片资产链接、邀请邮件链接都基于它生成不改则换域名后上传图片全部 404PENPOT_FLAGS含disable-email-verification disable-secure-session-cookies移除这两个 flag保留enable-prepl-server enable-mcp enable-smtp前两个 flag 是本地调试用的公网暴露后剪贴板等浏览器 API 在 HTTP 下失效且注册无邮件校验修改方式直接在docker/images/docker-compose.yaml的x-secret-key、x-uri、x-flags锚点处替换然后docker compose -p penpot -f docker-compose.yaml up -d重建容器。完整变量说明见 docs/technical-guide/getting-started/docker.md。生产加固清单安全替换PENPOT_SECRET_KEY主密钥默认值是公开字符串等于裸奔用上一条表格里的命令生成 512 位随机串。反向代理终结 HTTPSHTTP 下剪贴板 API 不可用。NGINX 必须为/ws/notifications与/mcp/ws两个 WebSocket 路径加 Upgrade 头且client_max_body_size 367001600与 compose 中的PENPOT_HTTP_SERVER_MAX_BODY_SIZE保持一致否则大文件上传会被代理层截断server { listen 443 ssl; server_name penpot.example.com; client_max_body_size 367001600; # 与 PENPOT_HTTP_SERVER_MAX_BODY_SIZE 同步 # ssl_certificate / ssl_certificate_key 省略 location /ws/notifications { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_pass http://localhost:9001/ws/notifications; } location / { proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://localhost:9001/; } }用manage.py管理账号关闭注册后只能用它建号依赖enable-prepl-serverflagdocker exec -ti penpot-penpot-backend-1 python3 manage.py create-profile --skip-tutorial --skip-walkthrough容器名以docker ps实际输出为准。性能Valkey 默认--maxmemory 128mb --maxmemory-policy volatile-lfu已覆盖绝大多数实例保持默认即可专用实例建议不超过可用内存 60%。数据库磁盘按官方建议起步50GB~100GB 弹性扩容10 个编辑器以上每个加约 5GB。可观测性用docker compose -p penpot -f docker-compose.yaml logs -f盯日志单服务用logs penpot-backend -f过滤排查方法另见 docs/technical-guide/troubleshooting.md。故障速查表现象大概率原因定位命令页面打开但协作通知不同步代理未透传 WebSocket Upgrade 头docker compose -p penpot -f docker-compose.yaml logs penpot-backend -f图片上传后显示 404PENPOT_PUBLIC_URI未改成实际域名curl -I http://localhost:9001/assets上传大文件返回 413代理client_max_body_size小于 367001600docker compose -p penpot -f docker-compose.yaml logs penpot-frontend -f容器反复重启Postgres 未完成健康检查或数据卷异常docker compose -p penpot -f docker-compose.yaml ps升级后长时间停在迁移阶段1.x→2.0 的 v2 迁移在跑数据量大耗时正常docker logs -f penpot-penpot-backend-1下一步给两个数据卷penpot_postgres_v15、penpot_assets配一条 cron 备份命令并把/readyz健康端点接进监控。【免费下载链接】penpotPenpot: The open-source design platform for Product teams that need scalable collaboration.项目地址: https://gitcode.com/GitHub_Trending/pe/penpot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表