# 架构概述

> Piglet 里有什么，怎么组织

---

LLMS 索引： [llms.txt](/zh/llms.txt)

---

## Piglet 是什么

**Piglet 是专为 AI 辅助编程设计的 Agentic Postgres 运行时。**

它不只是一个数据库，而是一个完整的云端开发环境：从一台 0.64 元的裸 VM，到完整的生产级网站，开箱即用。

### 产品本质

Piglet 是一个"**缝合怪**"——它集成了：

| 能力 | 对标产品 | Piglet 提供 |
|------|---------|------------|
| 数据库即服务 | Neon, Supabase | PostgreSQL + PITR 时间旅行 |
| 云端 IDE | GitHub Codespaces | VS Code Server + Jupyter |
| AI 编程 | Cursor, Windsurf | Claude Code 原生支持 |
| 应用托管 | Vercel, Railway | Nginx + Node.js + Python |
| 监控可观测 | Datadog | Grafana + VictoriaMetrics |

**核心价值**：由生产级方案（Pigsty）改造成的个人级方案——降维打击。

---

## 核心组件

```
┌─────────────────────────────────────────────────────────────────┐
│                         Piglet Runtime                          │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   ┌─────────┐   ┌─────────┐   ┌─────────┐   ┌─────────┐        │
│   │ VS Code │   │ Jupyter │   │ Claude  │   │  Your   │        │
│   │ Server  │   │   Lab   │   │  Code   │   │  App    │        │
│   └────┬────┘   └────┬────┘   └────┬────┘   └────┬────┘        │
│        │             │             │             │              │
│        └─────────────┴─────────────┴─────────────┘              │
│                          │                                      │
│                    ┌─────┴─────┐                                │
│                    │   Nginx   │  反向代理 + SSL                │
│                    └─────┬─────┘                                │
│                          │                                      │
├──────────────────────────┼──────────────────────────────────────┤
│                          │                                      │
│   ┌──────────────────────┴──────────────────────┐               │
│   │              PostgreSQL 17                   │               │
│   │         生产级数据库 + PITR 时间旅行          │               │
│   └──────────────────────┬──────────────────────┘               │
│                          │                                      │
│   ┌──────────────────────┴──────────────────────┐               │
│   │               JuiceFS (PITRFS)               │               │
│   │        文件系统也能时间旅行的秘密武器          │               │
│   └─────────────────────────────────────────────┘               │
│                                                                 │
├─────────────────────────────────────────────────────────────────┤
│   ┌─────────────┐   ┌─────────────┐   ┌─────────────┐          │
│   │  Grafana    │   │ Victoria    │   │   Loki      │          │
│   │  监控面板    │   │  Metrics    │   │   日志      │          │
│   └─────────────┘   └─────────────┘   └─────────────┘          │
└─────────────────────────────────────────────────────────────────┘
```

### 组件清单

| 组件 | 角色 | 访问方式 |
|------|------|---------|
| **Nginx** | 反向代理，SSL 终止，静态文件托管 | :80, :443 |
| **VS Code Server** | 网页版 IDE，支持远程 SSH | /code |
| **JupyterLab** | 数据科学笔记本 | /jupyter |
| **PostgreSQL 17** | 主数据库，带 340+ 扩展 | :5432 |
| **JuiceFS** | 分布式文件系统（PITRFS） | ~/data |
| **VictoriaMetrics** | 时序指标存储 | :8428 |
| **Grafana** | 监控仪表盘 | /grafana |
| **Loki** | 日志聚合 | - |

---

## Agentic 设计

Piglet 的核心设计理念是 **Human-Agent Parity**（人机对等）：

> 人看到的 = Agent 看到的，同一套工具、同一个视角。

### 人机分工

| 角色 | 职责 |
|------|------|
| **你（人类）** | 提出需求、派活、验收 |
| **Agent（AI）** | 利用环境里的工具实现需求 |

Agent 可能比很多用户更懂环境里有什么能用，但最终还是人类说了算。

### 用户画像

| 用户类型 | 他们想要什么 | Agent 扮演的角色 |
|---------|-------------|-----------------|
| **DBA/专家** | 利用 Agent 自动化专业任务 | 执行助手 |
| **普通开发者** | 快速上线 Web 应用 | 懂行的队友 |
| **小白** | 只说"我要一个 XX" | 全能代理 |

### Claude.md

Piglet 提供 `CLAUDE.md` 文件，告诉 AI Agent 环境里有什么、能做什么：

- 可用的数据库和连接方式
- 可用的命令行工具
- 文件系统结构
- 部署和发布方式

---

## 存储架构

Piglet 的杀手锏是 **PITRFS**——文件系统也能像数据库一样任意时间点回滚。

```
┌─────────────────────────────────────┐
│          你的代码和数据              │
│         ~/data/workspace            │
└──────────────┬──────────────────────┘
               │
               ▼
┌─────────────────────────────────────┐
│            JuiceFS                  │
│     POSIX 兼容 + 时间旅行能力        │
└──────────────┬──────────────────────┘
               │
               ▼
┌─────────────────────────────────────┐
│          PostgreSQL                 │
│     元数据 + 数据块 + WAL 归档       │
└─────────────────────────────────────┘
               │
               ▼
        任意时间点恢复 (PITR)
```

这意味着：
- **数据库可以回滚**：标准 PostgreSQL PITR
- **文件系统也可以回滚**：基于 JuiceFS + PostgreSQL 的 PITRFS
- **搞砸了也不怕**：误删代码？回到 10 分钟前。Agent 把数据库搞崩了？一条命令恢复。

---

## 网络架构

所有服务通过 Nginx 统一暴露，支持 HTTPS：

```
Internet
    │
    ▼
┌─────────────────────────────────────┐
│  Nginx (:80, :443)                  │
│  - SSL 终止                          │
│  - 反向代理                          │
│  - 静态文件托管                       │
└────┬────────┬────────┬────────┬─────┘
     │        │        │        │
     ▼        ▼        ▼        ▼
  /code   /jupyter  /grafana   /*
 VS Code  Jupyter   Grafana   你的应用
```

---

## 与 Pigsty 的关系

| 维度 | Pigsty | Piglet |
|------|--------|--------|
| **定位** | 企业级 PostgreSQL 发行版 | 个人级 Agentic 运行时 |
| **目标用户** | DBA、运维、企业 | 个人开发者、AI 编程者 |
| **规模** | 多节点集群 | 单节点 |
| **复杂度** | 功能完整、配置丰富 | 开箱即用、极简配置 |
| **调性** | 专业、严谨、可靠 | 方便、灵活、好玩 |

**Piglet 是 Pigsty 的精简版**，继承了生产级的可靠性，但去掉了企业级的复杂性。

---

## 下一步

- [快速开始](/docs/tutorial/quickstart/) - 10 分钟上手
- [PITRFS 原理](/docs/concept/snapshot/) - 理解时间旅行
- [Agentic 设计](/docs/concept/overview/) - 深入人机协作
