发布时间:2026/8/30 13:19:48
Docker 30分钟自托管 Penpot Docker 30分钟自托管 Penpot【免费下载链接】penpotPenpot: The open-source design platform for Product teams that need scalable collaboration.项目地址: https://gitcode.com/GitHub_Trending/pe/penpot团队的设计文件不想放在别人的 SaaS 上所以我在自己的 VPS 上自托管了一套 Penpot用 Docker Compose 拉起的整个过程 30 分钟中途踩了 2 个坑。它和 Figma 最大的区别文件是标准的 .penpot 格式数据全在自己手里开发者还能直接在图层面板拿到 CSS/SVG。下面按我实际操作的顺序讲。先跑起来最短路径整条路径就两条命令链clone 仓库把官方生产 compose 文件拿出来直接用。git clone https://gitcode.com/GitHub_Trending/pe/penpot cd penpot cp docker/images/docker-compose.yaml ./docker-compose.yaml # 固定版本号别裸用 latest升级时才可控 PENPOT_VERSION2.16 docker compose -p penpot up -dcompose 文件里已经把 frontend、backend、PostgreSQL、Valkey 缓存、临时邮件服务都编排好了第一次跑要拉镜像等几分钟。跑通后验证curl -I http://localhost:9001浏览器打开http://localhost:9001能看到登录页就算活了按需配置只动你要用的官方 compose 文件顶部有全量 flag 清单改之前先翻一眼再对着 docs/technical-guide/configuration.md 查细节。下面四个场景是我真用过的改哪段动哪段。当你需要让团队用 GitHub 账号登录的时候environment: # 追加 login-with-github 到 PENPOT_FLAGS PENPOT_GOOGLE_...: # 换成对应提供商 PENPOT_GITHUB_CLIENT_ID: your_client_id_here PENPOT_GITHUB_CLIENT_SECRET: your_client_secret_here # ... 其余保持不变注意OAuth 应用的回调地址要填https://你的域名/api/rpc/command/oauth-callback填错就登录死循环。当设计资产太多想存到 S3/对象存储的时候environment: PENPOT_OBJECTS_STORAGE_BACKEND: s3 # 默认是 fs数据在 penpot_assets 卷里 PENPOT_OBJECTS_STORAGE_S3_ENDPOINT: https://your_endpoint_here PENPOT_OBJECTS_STORAGE_S3_BUCKET: your_bucket_here AWS_ACCESS_KEY_ID: your_access_key_here AWS_SECRET_ACCESS_KEY: your_secret_key_here # ... 其余保持不变注意桶的 CORS 和公共读权限没配好图片资源会全部加载失败而且只发生在用户上传图片之后启动时看不出来。当你想关掉自助注册、只允许管理员建号的时候environment: # 从 PENPOT_FLAGS 里删掉 registration PENPOT_FLAGS: enable-smtp enable-prepl-server # ... 其余按需保留关掉后唯一建号途径是进 backend 容器执行python3 manage.py create-profile漏掉enable-prepl-server这个 flag 脚本就跑不了。当你要接 CI/CD 自动导出设计稿的时候团队设置里建个访问令牌让流水线直接调导出接口注意令牌等同于账号权限发出去就存进 secrets 里别贴到代码库。上生产前必须做的三件事1. 换掉默认的 PENPOT_SECRET_KEY。它是会话、邀请令牌等所有加密密钥的根默认值change-this-insecure-key是公开的等于谁都能伪造你的登录态。python3 -c import secrets; print(secrets.token_urlsafe(64))把输出填进 compose 的x-secret-key段。不改的后果拿到这份 compose 文件的人可以任意伪造用户会话。2. 配一条真实的 SMTP 通道。compose 内置的 mailcatch 只是临时收件箱验证邮件永远发不到用户手上。environment: PENPOT_SMTP_HOST: smtp.your_provider_here PENPOT_SMTP_PORT: 587 PENPOT_SMTP_USERNAME: your_smtp_user_here PENPOT_SMTP_PASSWORD: your_smtp_pass_here PENPOT_SMTP_TLS: true # ... 其余保持不变不配的后果用户注册验证邮件永远收不到只能靠手动放行团队一多就乱。3. 上 HTTPS反代只给关键行。生产环境别裸奔 9001 端口用 Nginx 或 Traefik 反代到 backend。location /ws/ { proxy_pass http://127.0.0.1:9001; proxy_set_header Upgrade $http_upgrade; # WebSocket 必须多人协作靠它 proxy_set_header Connection upgrade; } client_max_body_size 350M; # 别用 Nginx 默认的 1MB上传必挂/ws/的 Upgrade 头漏掉多人实时协作消息会卡住不刷新body 限制不同步上传大文件 500。我踩过的坑现象frontend 容器反复重启docker compose ps里一直 RESTARTING。原因不是配置错了是启动顺序——backend 等 Postgres 和 Valkey 健康检查通过才起frontend 又依赖 backend首跑要几分钟。解决别急着查日志docker compose ps盯到全绿真卡住了docker compose logs penpot-backend看是否数据库还在初始化。现象第一次部署就栽在这——登录后刷新页面就掉回登录页。原因PENPOT_PUBLIC_URI还停留在http://localhost:9001和你实际的访问地址对不上会话 cookie 写不进去。解决把它改成你的真实域名改完 backend 和 frontend 都要重启。现象上了反代之后大文件上传报 413。原因Nginx 默认client_max_body_size是 1MB看着吓人其实一行配置的事。解决代理层加client_max_body_size 350M;和 Penpot 的PENPOT_HTTP_SERVER_MAX_BODY_SIZE保持一致。日常维护5条命令够用了备份数据库docker exec penpot-penpot-postgres-1 pg_dump -U penpot penpot db_$(date %F).sql备份资产卷docker run --rm -v penpot_penpot_assets:/data alpine tar czf assets_$(date %F).tar.gz -C /data .健康检查docker compose -p penpot ps所有服务都应该是 healthy/Up看日志docker compose -p penpot logs -f penpot-backend升级docker compose -p penpot pull docker compose -p penpot up -d跨大版本别跳小步升官方全量配置项和 flag 清单都在 docs/technical-guide/configuration.md下次升级前翻一遍。现在就去把 compose 里的PENPOT_SECRET_KEY和数据库密码换成自己的值这是上生产前最不值钱也最不能省的一步。【免费下载链接】penpotPenpot: The open-source design platform for Product teams that need scalable collaboration.项目地址: https://gitcode.com/GitHub_Trending/pe/penpot创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/8/30 13:19:48

libtiff 4.2.0深度解析:ABI变更、编译陷阱与生产级部署

简介:本资源为libtiff 4.2.0版本的VS2017预编译源码包,面向C/C图像处理开发者及底层库研究者,解决TIFF格式读写、编解码与定制扩展等核心需求,适用于医疗影像、地理信息、文档扫描等需高兼容性TIFF支持的工业级应用。压缩包共61个…

2026/8/30 13:19:48

Strix AI 安全测试实战指南:5分钟完成首次 AI 漏洞扫描

Strix AI 安全测试实战指南:5分钟完成首次 AI 漏洞扫描 【免费下载链接】strix Open-source AI penetration testing tool to find and fix your app’s vulnerabilities. 项目地址: https://gitcode.com/GitHub_Trending/strix/strix 上线前等人工渗透报告要…

2026/8/30 13:19:48

设计协作里的令牌,怎样从表格落到产品里

设计协作里的令牌,怎样从表格落到产品里设计令牌常被理解为一份颜色、字号和圆角的表。表格本身并不难做,难的是它如何进入设计稿、组件库和业务页面,又如何在改版时不把旧页面一起带崩。如果令牌只是设计师交付的附件,开发仍在代…

2026/8/30 13:29:51

ESP32驱动双VL53L8CX:长线缆I²C与TCA9548A实战避坑指南

最近在折腾一套用 ESP32 同时驱动两个 VL53L8CX 传感器的小项目,传感器是一对 8x8 区域的 ToF 测距模组,主控和模组之间用 50cm 的 IC 线缆连接。上电以后遇到的情况非常典型:两个传感器要么一起失联,要么其中一个初始化到一半就挂…

2026/8/30 13:29:51

雌激素雄性化神经通路与性别特异性行为的机制解析

激素类论文标题不容易在一句话里看懂,这次我们来看这个比较典型的神经科学方向选题:“Estrogen masculinizes neural pathways and sex-specific behaviors”。直译过来就是“雌激素使神经通路和性别特异性行为雄性化”。 这个标题传递的信息密度不低&a…

2026/8/30 13:29:50

基于Spark Structured Streaming的新闻网实时分析系统设计与实践

简介:本资源是一套面向计算机专业本科生的毕业设计与课程设计实践项目,聚焦大数据实时分析场景,基于Spark 2.2构建新闻网数据流式处理与智能推荐系统。项目涵盖数据采集、实时清洗、热点统计、用户行为分析及个性化推荐等核心模块&#xff0c…

2026/8/30 13:24:48

滴滴校招测试开发工程师笔试题全解析:从用例设计到编程思路

每年秋招季总有几个公司的笔试让人印象特别深,2018年滴滴出行的校园招聘测试开发工程师笔试就是其中之一。那会儿网约车大战刚消停没多久,滴滴的岗位热度极高,测试开发工程师这个方向更是吸引了大批计算机、软件工程专业的应届生。我后来在面…

2026/8/30 0:03:35

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/8/30 0:03:35

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/8/30 0:03:35

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/8/30 0:03:35

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/8/30 0:03:35

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/8/30 0:03:35

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/8/28 16:16:48

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/28 16:16:50

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/28 11:06:45

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…