6.5 KiB
Zoo Cloud
White-label of Hanzo platform, branded as Zoo (Zoo Labs Foundation, 501c3).
Domains: zoo.cloud, zoo.ngo, zoo.network.
Scope
DeAI + DeSci. Four buckets:
- Decentralized AI research and model serving
- Decentralized Science (DeSci) research chains
- ZIPs governance (Zoo Improvement Proposals)
- Node hosting for research chains (validators, RPC)
Key rules
- Use
luxfi/*packages, nevergo-ethereumorava-labs(Zoo uses Lux blockchain infra). - Build on Hanzo infra (
@hanzo/iam,@hanzo/kms,@hanzo/commerce,@hanzo/gateway,@hanzo/ingress,@hanzo/insights). - Images push to GHCR only:
ghcr.io/zooai/cloud:v{semver}. Never GAR. - Secrets via
@hanzo/kms. Never K8s secrets for app secrets. - Hash passwords. Argon2id preferred.
- White-label via hostname:
zoo.cloud/zoo.ngo/zoo.network=> Zoo brand. - Non-profit mission: free tier for research/academic use.
Layout
apps/web— Next.js dashboard (zoo.cloud)apps/api— backend APIapps/billing— Hanzo Commerce integrationapps/docs— docs site (docs.zoo.cloud)packages/brand— Zoo tokenspackages/config— shared configspackages/ui— Zoo UI over@hanzo/uik8s/— manifests
Zoo-unique pages
/research— DeSci research chain dashboards/zips— Zoo Improvement Proposals/community— governance + community coordination
Dev
pnpm install
pnpm dev
Additional notes (merged from LLM.md)
Zoo Cloud — LLM Context
Purpose
Zoo Cloud is the DeAI + DeSci platform for the Zoo Labs Foundation (501c3 non-profit). It is a white-label deployment of the Hanzo platform, branded for the Zoo community.
Domains:
zoo.cloud— main platformzoo.ngo— foundation sitezoo.network— chain RPC + network info
Scope
Unlike Hanzo (general AI infra) or Lux Cloud (AI + Web3 commercial), Zoo Cloud focuses on:
- DeAI — decentralized AI research, open experiments, community-driven model development
- DeSci — decentralized science research chains, funding, peer review on-chain
- ZIPs governance — Zoo Improvement Proposals (zips.zoo.ngo) for community direction
- Research nodes — hosting for research chains, validator + RPC endpoints
- Community coordination — Discord, Twitter/X, open research network
Architecture
Zoo Cloud is a thin orchestration layer over existing OSS services (shared with Hanzo and Lux):
zoo.cloud (apps/web)
|
apps/api
|
+-----------+-------+---------+-----------+-----------+
| | | | |
@hanzo/iam @hanzo/kms @hanzo/commerce @hanzo/gateway @hanzo/insights
(zoo.ngo) (secrets) (non-profit) (api.zoo.cloud) (analytics)
| | | |
+-----------+-----------------+-----------+
|
Lux OSS services (Zoo uses Lux blockchain)
+-----------+-------+---------+-----------+-----------+
| | | | |
broker cex dex mpc bank
(routing) (exchange) (orderbook) (custody) (fiat rails)
Apps
apps/web
Next.js 14 dashboard. Renders at zoo.cloud. Pages:
/— marketing / landing/dashboard— logged-in user home/research— research chain dashboards (DeSci experiments)/web3— Web3 infrastructure powered by Bootnode (~/work/bootnode)/zips— Zoo Improvement Proposals (governance)/community— governance + community coordination/billing— subscription + usage (via@hanzo/commerce)/account— profile, teams, API keys (via@hanzo/iam)
Bootnode integration
Web3 node hosting (validators, RPC, snapshots) is powered by Bootnode at
~/work/bootnode. Bootnode runs as a white-label deployment at web3.zoo.ngo
with brand=zoo. Zoo Cloud's /web3 page calls the Bootnode HTTP API via
apps/web/src/lib/bootnode.ts:
- Env:
BOOTNODE_URL(server) /NEXT_PUBLIC_BOOTNODE_URL(client) - Default:
https://web3.zoo.ngo - All requests carry
X-Brand: zoo - SSO via Zoo IAM (
id.zoo.ngo/zoo.id); shared OIDC client - Bootnode endpoints used:
/v1/chains,/v1/chains/{id}/nodes
apps/api
Backend. Thin proxy to Hanzo services + Lux OSS services via gateway.
apps/billing
Server-side billing workflows. Imports @hanzo/commerce for subscription lifecycle, metering, credits. Non-profit tier available for research/academic use.
apps/docs
Docs site at docs.zoo.cloud. Fumadocs or similar.
Packages
packages/brand— Zoo design tokens (greens, science-oriented palette, logo SVGs)packages/config— sharedtsconfig.json, eslint rulespackages/ui— Zoo-branded React components re-exporting@hanzo/ui
Auth Flow
OIDC authorization_code + PKCE against id.zoo.ngo (a Hanzo IAM deployment).
- Client IDs:
zoo-cloud-web,zoo-cloud-api - Claims:
sub(user id),owner(org id),roles - Gateway injects:
X-User-Id,X-Org-Id,X-Roles
Zoo-Specific Features
ZIPs (Zoo Improvement Proposals)
- Hosted at
zips.zoo.ngo(separate repo integrated via iframe or API) - On-chain voting via Zoo governance contracts
- Community-driven roadmap
Research Chains
- Experimental L1/L2 chains for DeSci research
- One-click provisioning via
lux/nodebinary - Research data stored in @hanzo/kms + IPFS
- Funding via @hanzo/commerce non-profit tier
Non-Profit Tier
- Zoo Labs Foundation is a 501c3 non-profit
- Free research tier for academic + open-source use
- Billing via @hanzo/commerce with discount flags
Clusters
| Env | Cluster context | Purpose |
|---|---|---|
| mainnet | do-sfo3-zoo-k8s |
Production Zoo Cloud |
| testnet | do-sfo3-zoo-test-k8s |
Public testnet |
| devnet | do-sfo3-zoo-dev-k8s |
Internal dev |
Image
ghcr.io/zooai/cloud:v{semver} — multi-arch (amd64 + arm64), no QEMU, native runners.
CI/CD
Push to main → GHA runs lint + typecheck + build → auto-bump semver → push image to GHCR → dispatch to operator for progressive rollout (dev → test → main).
Rules
- Never push to GAR (that's Liquidity's registry).
- Use
luxfi/*packages, nevergo-ethereumorava-labs. - Hanzo services are dependencies; do not fork them here.
- Secrets always via
@hanzo/kms. Never env files in prod. - White-label: hostname-based brand detection (
zoo.cloud/zoo.ngo/zoo.network→ Zoo brand). - Non-profit mission: open research, community governance, science first.