puppyone 开源 Cloud 基础设施,将项目托管为 Git 仓库
puppyone-ai/puppyone-cloud
puppyone 开源了 Cloud 背后的基础设施代码,包含 API、Cloud Web 应用、版本引擎和数据库迁移。每个 Cloud 项目都是真实 Git 仓库,人和智能体可通过 Web 应用、Git、MCP、CLI 或 REST API 访问,所有写入经同一版本引擎发布并可回滚。仓库提供基于 Docker 的自托管方式,但上传、导入、MCP 和智能体运行等需要额外后端进程的功能暂未包含在内。
The cloud infrastructure behind puppyone.
Hosts your projects as Git repositories, keeps them online, and controls which people and agents can reach them.
Get puppyone · Self-host · Docs · Discord
puppyone is the folder your agents live in. It runs on your computer and needs no account. Cloud is the optional part: put a folder on Cloud and you get a cloud project that stays online after you close your laptop, where your team and agents can work together.
Every cloud project is a real Git repository, so each change is recorded and can be rolled back. People and agents reach it through the web app, Git, MCP, the CLI or the REST API.
This repository contains that infrastructure: the API, the Cloud web app, the version engine and the database migrations.
| You want to | Go to |
|---|---|
| Use puppyone | Download the app |
| Use Cloud without running anything | puppyone.ai |
| Drive Cloud from a terminal | npm install --global puppyone |
| Run or change the infrastructure | You are in the right place |
What it does
- Stays on. A cloud project stays available to your team and agents around the clock.
- Speaks real Git. Stock
gitclones, fetches and pushes. No plugin, no special client. - Keeps one history. A push, a web edit and an API write all publish through the same engine, so you can review and roll back any of them.
- Connects your agents. Each MCP, Git or CLI connection has its own credential that you can pause or revoke.
- Brings sources in. GitHub, Gmail, Google Drive, Docs, Sheets, Calendar, Search Console and web pages.
- Works for teams. Organizations, Project roles, invitations and audit logs.
- Runs agents in the cloud. Hosted workspaces keep working when your laptop is closed. Early Access.
Credentials are limited to one Project today. Limiting an agent to part of a Project is being rebuilt for the native version engine and is not available yet.
How it works
Web app ─┐
Git ─────┤
MCP ─────┼──> Access ──> Version Engine ──┬──> PostgreSQL refs, audit
CLI ─────┤ who may the only way └──> S3 immutable Git objects
REST ────┘ do what to publish
Git owns the version facts. puppyone owns the collaboration rules around them. PostgreSQL refs and immutable Git objects in S3 are the only record of what a Project contains, so no entry point can drift from the others. Read the Version Engine architecture.
| Path | Contents |
|---|---|
backend/ |
Python 3.12 and FastAPI: API, version engine, workers, MCP service |
frontend/ |
Next.js web app |
supabase/ |
Schema and data migrations |
docker/ |
Self-hosted stack |
docs/ |
Architecture and operations |
e2e/ |
Tests that need several parts running together |
The CLI is developed separately and published to npm as puppyone.
Self-host
You need Docker.
git clone https://github.com/puppyone-ai/puppyone-cloud.git
cd puppyone-cloud/docker
cp .env.example .env
docker compose up --build -d --waitThe first build takes several minutes. Then open http://localhost:3000. If startup fails, run docker compose ps -a and docker compose logs migrate storage-init api.
Create your first account from the sign-up page with any email address. This stack confirms accounts automatically, so it needs no mail server. The API listens on http://localhost:9090.
To stop the stack, run docker compose down. Your data stays in Docker volumes.
This stack runs the API and the web app with their data services. The features that need another backend process are not part of it yet:
| Feature | In docker compose up |
What it needs |
|---|---|---|
| Accounts, Projects, file reads and writes, history | Yes | Nothing |
| File upload pipeline | No | upload_worker |
| Imports and sources | No | import_worker, synchronize_worker, provider credentials |
| MCP | No | mcp_server, MCP_SERVER_URL |
| Agent runs and hosted workspaces | No | agent_worker, Managed AI, a workspace provider |
Warning
This stack is for local use. It ships with default secrets, and the API container can reach the host Docker daemon.
Existing PostgreSQL 15 volumes need an explicit upgrade. Read installation and upgrade validation before you change the image or delete a volume.
Contributing
Open an issue for larger changes. Pull requests target the qubits branch.
License
Code is licensed under the Apache License 2.0. See NOTICE for third-party components.
The puppyone name and logo are trademarks and are not licensed under Apache 2.0. If you redistribute a fork, use your own name and logo. The hosted service at puppyone.ai has its own Terms of Service.
来源:GitHub · github.com