这份详细的部署教程将指引您安装和运行 Penpot——一个开源的、基于 Web 的设计与原型协作平台。它的核心优势在于使用 SVG、CSS 等开放标准,让设计和开发团队的协作更顺畅,并且您可以完全自主掌控部署环境。

Penpot 的部署方式非常灵活,支持 Docker、Kubernetes 等多种方式。对于大多数用户,使用 Docker Compose 是最快、最推荐的入门方法。以下是基于 Docker 的详细步骤:

📥 部署前准备

  1. 服务器要求:一台运行 Linux(如 Ubuntu)的服务器或本地机器,至少 4GB 内存和 10GB 可用存储空间。
  2. 软件依赖:确保系统已安装 DockerDocker Compose
  3. 域名与网络(可选但推荐用于生产):准备一个域名并解析到您的服务器 IP,以便启用 HTTPS。如果仅在本地网络使用,可跳过此步。

🐳 使用 Docker Compose 部署(推荐)

这是最标准的部署方式,适合大多数场景。

第一步:获取并准备配置文件

在服务器上创建项目目录并下载官方 docker-compose.yaml 文件:

1
2
mkdir -p ~/penpot && cd ~/penpot
wget https://raw.githubusercontent.com/penpot/penpot/main/docker/images/docker-compose.yaml

此文件定义了 Penpot 所需的所有服务(前端、后端、数据库、缓存等)。

第二步:配置关键参数

编辑 docker-compose.yaml 文件,至少设置 PENPOT_PUBLIC_URI,这是用户访问 Penpot 的 URL。

1
2
# 在 docker-compose.yaml 的环境变量部分添加或修改
PENPOT_PUBLIC_URI: https://penpot.your-domain.com # 替换为您的实际域名或 IP

对于生产环境,建议进一步配置:

  • SMTP 邮件服务:用于用户注册验证和密码重置。取消 enable-smtp 注释,并填写 PENPOT_SMTP_* 相关变量。
  • 认证方式:支持 Google、GitHub、OIDC、LDAP 等。通过添加 enable-login-with-* 标志和对应的客户端 ID、密钥来启用。
  • 注册控制:可限制注册邮箱域名 (PENPOT_REGISTRATION_DOMAIN_WHITELIST)。

第三步:启动 Penpot

~/penpot 目录下执行以下命令,启动所有服务:

1
docker compose -p penpot -f docker-compose.yaml up -d

此命令会以后台模式运行,并自动创建所需的数据卷。首次启动需要拉取镜像,可能需要几分钟。

第四步:创建管理员账户

服务启动后,在浏览器中访问您设置的 PENPOT_PUBLIC_URI。首次访问会进入注册页面,创建您的第一个用户,该用户将自动成为管理员。

第五步(可选):配置反向代理与 HTTPS

如果您的 Penpot 需要对外网提供服务,强烈建议配置 HTTPS。可以使用 Nginx 作为反向代理,并使用 Let’s Encrypt 自动获取 SSL 证书。

  1. 安装 Nginx 和 Certbot

    1
    apt update && apt install nginx python3-certbot-nginx
  2. 配置 Nginx:创建一个虚拟主机配置,将请求代理到本地的 Penpot 服务(默认端口 9001)。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    server {
    listen 80;
    server_name penpot.your-domain.com;
    location / {
    proxy_pass http://127.0.0.1:9001/;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    # ... 其他 proxy 设置
    }
    }
  3. 运行 Certbot 获取证书

    1
    certbot --nginx -d penpot.your-domain.com

    按照提示完成证书签发和自动配置。

🔧 运维与管理

  • 停止服务docker compose -p penpot -f docker-compose.yaml down

  • 查看日志docker compose -p penpot -f docker-compose.yaml logs -f

  • 更新版本:推荐使用特定版本标签而非 latest,以实现可控升级。先拉取新镜像,再重启服务。

    1
    2
    3
    export PENPOT_VERSION=2.4.3 # 替换为具体版本号
    docker compose -p penpot -f docker-compose.yaml pull
    docker compose -p penpot -f docker-compose.yaml up -d

📚 其他部署选项

  • Docker Desktop 扩展:如果使用 Docker Desktop,可以通过 Penpot Docker Extension 进行一键部署和管理。
  • Unraid 系统:社区提供了 jsonbored/penpot-aio 镜像,专为 Unraid 优化,是一个几乎开箱即用的单容器方案。
  • Kubernetes:对于大规模生产环境,Penpot 提供了 Helm Chart,便于在 K8s 集群中部署。

💡 关键提示

  • 数据持久化:Docker Compose 方式默认使用命名卷存储数据库和上传文件,停止或删除容器不会丢失数据。
  • 性能规划:数据库增长取决于实际设计活动,而非单纯用户数。建议从较保守的资源配置开始,并根据使用情况监控调整。