Files
compose-anything/apps/paca/README.zh.md
T
Sun-ZhenXing 902627bbc2 feat: add paca
2026-06-23 11:26:44 +08:00

84 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Paca
自托管的项目管理平台,专为人类与 AI 作为 Scrum 团队成员协作而设计。
## 服务
- `paca-postgres`PostgreSQL 16 数据库,用于持久化存储。
- `paca-valkey`:Valkey 8 缓存与发布/订阅事件总线。
- `paca-minio`:兼容 S3 的 MinIO 对象存储,用于文件上传。
- `paca-api`Go 语言 REST API 后端(内部端口 8080)。
- `paca-web`React SPA 前端,通过内部 nginx 提供服务(内部端口 3000)。
- `paca-realtime`Node.js Socket.IO 实时事件中心(内部端口 3001)。
- `paca-gateway`:Nginx 反向代理,将所有流量路由到正确的服务。
## 快速开始
1. 从示例文件创建 `.env` 并设置密钥:
```bash
cp .env.example .env
# 编辑 .env 文件,设置 PACA_JWT_SECRET、PACA_ENCRYPTION_KEY、PACA_ADMIN_PASSWORD 等
```
1. 启动服务栈:
```bash
docker compose up -d
```
1. 在浏览器中打开 `http://localhost`,使用配置的管理员凭据登录。
## 主要环境变量
| 变量 | 说明 | 默认值 |
| -------------------------------- | ---------------------------- | ------------------ |
| `PACA_PORT_OVERRIDE` | 网关主机端口 | `80` |
| `PACA_VERSION` | 应用镜像标签 | `latest` |
| `PACA_POSTGRES_PASSWORD` | PostgreSQL 密码 | `changeme` |
| `PACA_ADMIN_USERNAME` | 初始管理员用户名 | `admin` |
| `PACA_ADMIN_PASSWORD` | 初始管理员密码 | `changeme` |
| `PACA_JWT_SECRET` | JWT 签名密钥(至少 32 字符) | (占位符) |
| `PACA_ENCRYPTION_KEY` | 插件密钥 AES-256 加密密钥 | (空) |
| `PACA_PUBLIC_URL` | 公开访问的基础 URL | `http://localhost` |
| `PACA_STORAGE_PROVIDER` | 对象存储提供商 | `minio` |
| `PACA_STORAGE_ACCESS_KEY_ID` | 存储访问密钥 ID | `minioadmin` |
| `PACA_STORAGE_SECRET_ACCESS_KEY` | 存储访问密钥 | `minioadmin` |
## 存储
| 卷 | 用途 |
| ----------------------- | ----------------------- |
| `paca_postgres_data` | PostgreSQL 数据库文件 |
| `paca_valkey_data` | Valkey 追加日志文件 |
| `paca_minio_data` | MinIO 对象存储数据 |
| `paca_backend_plugins` | WASM 后端插件二进制文件 |
| `paca_frontend_plugins` | 前端插件静态资源 |
| `paca_mcp_plugins` | MCP 插件包 |
## 使用外部服务
- **外部 PostgreSQL**:设置 `PACA_DATABASE_URL`,启动时添加 `--scale paca-postgres=0`
- **AWS S3 替代 MinIO**:设置 `PACA_STORAGE_PROVIDER=s3`,启动时添加 `--scale paca-minio=0`
- **外部 Valkey / Redis**:设置 `PACA_REDIS_URL`,启动时添加 `--scale paca-valkey=0`
## 安全说明
- 使用 `openssl rand -hex 32` 生成强密钥。
- 在生产环境使用前务必修改所有默认密码。
- 通过 HTTPS 提供服务时,设置 `PACA_COOKIE_SECURE=true`
- 网关默认绑定 80 端口;生产环境建议在前方使用带 TLS 的反向代理。
- 本服务栈中多个服务以 root 运行(nginx、postgres);生产环境建议进一步加固。
## 扩缩容
可以按需禁用可选服务:
```bash
# 不使用 MinIO(改用 S3
docker compose up -d --scale paca-minio=0
# 不使用 Web 前端(从 CDN 提供 SPA
docker compose up -d --scale paca-web=0
```