综合 Pier:单个 15MB Rust 二进制做自托管 PaaS,空闲 20–40MB,512MB VPS 能跑三四个应用

2026-09-29 20:02:45

Pier:单个 15MB Rust 二进制做自托管 PaaS,空闲 20–40MB,512MB VPS 能跑三四个应用

想在自己的服务器上做部署,又不想先给平台本身腾出内存——Coolify 在部署第一个应用之前,就要跑起 Laravel、PostgreSQL、Redis、Soketi、Horizon、Traefik 六个以上的支持容器,空闲占用 750 MB–1.2 GB。Pier 是另一种选法:单个约 15 MB 的 Rust 二进制,空闲占 20–40 MB,把容器管理、Docker Compose、自动 HTTPS 反向代理、Git-to-deploy、告警通知、多服务器 agent、计划 S3 备份和 35+ 一键模板打包进同一个进程。项目以 AGPL-3.0 开源。

项目信息

  • 官网:
  • GitHub:
  • 安装文档:

环境要求

任何装了 Docker 的 Linux 服务器都能跑。最低 512 MB 内存 + 1 vCPU,活跃部署推荐 1 GB + 1 vCPU。分发形式是单个静态 musl 二进制,支持 x86_64 和 aarch64。

安装

A. 一键脚本

curl -fsSL https://pier.team/install | sudo bash

脚本会做四件事:机器上缺 Docker 就装上;下载最新的 Pier 二进制;创建 pier 系统用户;安装 systemd unit 并在 8443 端口启动 Pier。官网给出的输出大致如下:

→ Downloading pier-1.0.0 (14.8 MB)
→ Detecting arch: x86_64-linux
→ Configuring systemd · TLS · ports 80, 443
→ ✓ Pier v1.0.0 running on https://localhost:8443

B. 源码构建

git clone https://github.com/joveptesg/pier.git
cd pier
cargo build --release
sudo bash scripts/install.sh --binary target/release/pier

需要 Rust 1.93+ 工具链。strip 之后的二进制大约 15 MB。

C. Docker

docker run -d --name pier -p 8443:8443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v pier-data:/app/data \
ghcr.io/joveptesg/pier:latest

Docker 是本地机器上试 Pier 最快的方式。生产环境建议改用原生二进制——它省掉了把 Pier 自身也当容器运行的那层开销。

预编译二进制 + sha256 校验

# 1. 下载二进制和校验文件(linux/amd64)
curl -fL https://github.com/joveptesg/pier/releases/download/latest/pier-linux-amd64 -o pier-linux-amd64
curl -fL https://github.com/joveptesg/pier/releases/download/latest/pier-linux-amd64.sha256 -o pier-linux-amd64.sha256
sha256sum -c pier-linux-amd64.sha256          # verify integrity

# 2. 拉取安装脚本并执行
curl -fL https://raw.githubusercontent.com/joveptesg/pier/main/scripts/install.sh -o install.sh
chmod +x pier-linux-amd64
sudo bash install.sh --binary ./pier-linux-amd64

两个前提:机器上已有 Docker + Compose;二进制文件名必须保持为 pier-linux-amd64,否则 sha256sum -c 对不上。

与 Coolify 的差异

CoolifyPier
Idle RAM750 MB – 1.2 GB20–40 MB (+Traefik)
Disk~1 GB~15–30 MB
Running containers6+(Laravel、PostgreSQL、Redis、Soketi、Horizon、Traefik)1 binary + Traefik
Minimum VPS2 GB RAM, 2 vCPU512 MB RAM, 1 vCPU
DatabaseExternal PostgreSQLEmbedded SQLite
LanguagePHP / LaravelRust
Frontend JS~300 KB+~30 KB (HTMX + Alpine.js)

以上数据来自官方对比,仅供参考,实际占用取决于部署内容和负载。

同类的 Dokku / Kamal 以 CLI 为主,大致假设每个项目一台机器;CapRover 是较重的 Docker Swarm UI。Pier 落在两者之间:单个 Rust 二进制加完整 Web UI、多服务器 agent、告警、加密机密、镜像仓库认证、计划备份和模板目录,不引入 Postgres、Redis 或 PHP 运行时作为硬依赖。

技术栈

组件用途
Rust性能与安全,单二进制
AxumAsync API + WebSocket
TokioAsync runtime / I/O
BollardDocker Engine API
SQLiteEmbedded persistence(WAL)
MiniJinjaServer-side rendering
HTMX + Alpine.js最小前端 JS,约 30 KB
Tailwind CSS样式
Traefik反向代理 + Let's Encrypt
JWT + bcrypt无状态认证
AES-256-GCMSecrets at rest
AWS S3备份存储
AGPL-3.0许可证

部署与构建

Git-to-deploy 支持 GitHub、GitLab、Bitbucket,走 webhook、GitHub App flow 和 deploy keys。构建来源可以是 Dockerfile、现成镜像或 Compose,push 后自动部署,并保留部署历史用于回滚。

Auto-build 走 Railpack:直接从 Git 仓库零配置构建,覆盖 Node、Python、Go、Rust、PHP、Java、Ruby、Vite/Astro/CRA 等,不需要写 Dockerfile,也不需要 buildpack 配置。底层是 Railpack——Railway 的开源构建器,Nixpacks 的后继者——运行在本地 moby/buildkit daemon 上,两者都由 install.sh 自动准备。

一键模板目录包含 35+ 服务:PostgreSQL、Redis、ClickHouse、Cassandra、ScyllaDB、Qdrant、Grafana、Gitea、Supabase、Matrix、Minecraft 等。Docker 容器本身支持创建、启动、停止、重启、删除,实时日志和统计通过 Bollard 从 Docker Engine API 取。Compose stack 可以直接贴任意 Docker Compose 文件,内置 YAML 编辑器,容器自动注入 pier-net。反向代理用 Traefik + Let's Encrypt,支持自定义域名、按路径路由和自动生成的服务 URL。

运行时与运维

单进程架构。 一个二进制、一个数据库、一个进程。API server、UI、Docker 控制面、联邦都在同一个 Rust 进程里。

嵌入式存储。 SQLite 以 WAL 模式运行,支持并发读,无外部数据库。数据库和加密密钥每日随配置一起备份到数据目录。环境变量和镜像仓库凭据用 AES-256-GCM 静态加密,密钥存放在数据库之外。

多服务器。 在远程服务器上通过 curl | sh 安装轻量 agent,控制面板跟踪心跳、系统指标(CPU、内存、磁盘、Docker 版本)和服务器位置,从一个 UI 分发部署和负载均衡副本。

负载均衡与副本。 任意服务可以从 1 个副本扩到 N 个,三种策略:轮询、加权、Cookie 粘性会话。副本跨多台服务器分布,Traefik 按健康检查透明路由。

告警。 10 条预设规则,覆盖高 CPU、高内存、高磁盘、容器崩溃、部署失败、备份失败、代理离线、SSL 即将过期等,阈值和冷却窗口可配置,可路由到 Telegram、Discord、Slack 和邮件,每条规则支持多渠道。

计划备份。 原生 pg_dump / mysqldump / mongodump / Redis BGSAVE,按 cron 执行,可投递到任意兼容 S3 的桶。

认证。 bcrypt 密码哈希、TOTP 双因素、可撤销的 JWT 会话令牌和 bearer API 令牌。当前是单管理员模式,基于角色的访问在路线图上。

镜像仓库。 支持 Docker Hub、GHCR、GitLab CR、AWS ECR 或自建 Harbor 的项目级与全局凭据,AES-256-GCM 加密,拉取时注入,UI 从不回显。

npm 仓库。 私有包加透明的 npmjs.org 镜像,集成在同一个二进制里。npm 7–11、yarn 1/2/3/4、pnpm 和 bun 共用同一个 URL,作为 Verdaccio 的替代,不额外起容器。

自更新。 从 UI 检查新构建,原子替换二进制;新版本启动失败则回滚。

许可与商标

AGPL-3.0 只覆盖 Pier 自身的源代码,不涉及你部署在上面的应用。你的代码、容器、SaaS 完全归你,可以选任何许可证,包括闭源专有。只有当你修改了 Pier 本身,并把修改版作为网络服务提供时,才产生 AGPL 义务——需要以相同许可证共享修改。

名称和徽标是商标。你可以为自己和客户运行 Pier、声明「由 Pier 提供支持」、fork 代码;未经商标许可,不能销售以 Pier 为品牌的托管服务,不能发布仍叫 Pier 的修改版,也不能以暗示官方认可的方式使用名称或徽标。

选 AGPL-3.0 而不是 MIT / Apache 的原因:宽松许可证允许任何人——包括云服务商——把代码拿走闭源转售而不回馈。AGPL 保证即使作为托管服务提供,Pier 及其改进也保持开放,与 Grafana、Nextcloud 的模式相同。对自托管用户没有限制:自己跑 Pier、部署自己的应用完全免费,应用仍然归你。商业许可证可按需申请。

复制全文 生成海报 自托管 PaaS Rust Docker 运维

推荐文章

程序员茄子在线接单