Commit Graph
30 Commits
Author SHA1 Message Date
zeekay a6f444ff83 fix: hanzo-web3 uses universal web-latest image tag
Single universal image with runtime brand detection, not per-brand builds.
2026-02-10 09:01:43 -08:00
zeekay df10ab5f5e fix: runtime API URL resolution and pin Docker base image
- Add apiUrl/wsUrl to brand config for runtime resolution
- Auth and OAuth callback now use brand's apiUrl instead of baked env var
- Pin node:22-alpine to specific digest for supply chain security
2026-02-09 20:48:43 -08:00
zeekay e708a40f4b refactor: replace React.useState/useEffect with destructured imports
Consistent with rest of codebase - use named imports instead of namespace.
2026-02-09 20:36:06 -08:00
zeekay 3da0fa6fb2 feat: white-label branding with Cmd+K, ecosystem footer, and auth fix
- Add runtime brand detection (single Docker image for all brands)
- Add Cmd+K command palette with brand-specific ecosystem links
- Add brand-specific footer ecosystem column with external links
- Fix login page React hook violation (useBrand called after return)
- Use brand IAM URL for auth redirect (all brands → hanzo.id)
- Add Lux Cloud brand logos
- Unify CI to build single universal web image
2026-02-09 20:05:27 -08:00
zeekay 01d528d89f fix: update image references from bootnode/ to ghcr.io/hanzoai/bootnode
Updated all container image references across compose, K8s manifests,
cloud deploy scripts, and tests to use the ghcr.io/hanzoai/bootnode
registry format.
2026-02-06 07:55:58 -08:00
zeekay 3bb6aa7a89 fix: add bootnode brand to metadata, set as default
The layout.tsx was missing bootnode case in brand switch,
causing it to fall through to Hanzo. Added bootnode and
changed default from Hanzo to Bootnode.
2026-02-05 21:06:13 -08:00
zeekay fcda005d20 fix: build separate Docker images per brand
Build distinct images with NEXT_PUBLIC_BRAND baked in at build time:
- web-latest (bootnode brand for bootno.de)
- web-hanzo-latest (hanzo brand for web3.hanzo.ai)

Next.js NEXT_PUBLIC_* vars are embedded at build, not runtime.
2026-02-05 20:55:54 -08:00
zeekay 5c08394e43 fix: use hanzoai/bootnode as shared image registry
Both repos (hanzoai/bootnode and bootnode/bootnode) push to
ghcr.io/hanzoai/bootnode to maintain single source of truth
for container images.
2026-02-05 16:54:37 -08:00
zeekay 7dd0d32527 feat: dual deployment for Hanzo Web3 and Bootnode brands
- Split web deployment into hanzo-web3 and bootnode-web
- hanzo-web3: web3.hanzo.ai, auth via hanzo.id
- bootnode-web: bootno.de, auth via iam.bootno.de
- Updated CI to deploy both frontends
- Changed image registry to ghcr.io/bootnode/bootnode
- Updated ingress for both domains with separate TLS certs
2026-02-05 13:35:33 -08:00
zeekay de0820cf84 fix: use ghcr.io registry for container images
CI pushes to ghcr.io/hanzoai/bootnode, but manifests were
referencing hanzoai/bootnode which defaults to docker.io.
This caused deployments to use stale images from docker.io.
2026-02-04 23:42:08 -08:00
zeekay f8fc5042a9 chore: trigger fresh build 2026-02-04 23:30:31 -08:00
zeekay 58870c4d2a fix: redirect /login to hanzo.id in production
Instead of showing a login page with multiple identity providers,
redirect directly to hanzo.id for a cleaner authentication flow.
2026-02-04 23:09:42 -08:00
zeekay 7f1ba0733f fix: add CDN cache headers to prevent stale content
- Add CDN-Cache-Control header (60s) for HTML pages
- Keep long cache (1 year) for immutable static assets
- Prevents Cloudflare from serving stale branded content
2026-02-04 11:48:10 -08:00
zeekay a127eca83d chore: update bootnode domain to bootno.de
- Change bootnode brand domain from bootnode.dev to bootno.de
- Update status URL and domain detection
2026-02-04 11:37:43 -08:00
zeekay 288b1567a2 fix: set NEXT_PUBLIC_BRAND=hanzo in Dockerfile
Ensures web3.hanzo.ai builds with Hanzo branding:
- Set NEXT_PUBLIC_BRAND=hanzo at build time
- Update client ID to hanzo-web3
2026-02-04 11:28:33 -08:00
zeekay aa4567ecd6 fix: remove unpublished hanzo-kms/iam from optional deps
The hanzo-kms and hanzo-iam packages are not published to PyPI,
causing uv lock to fail. In production K8s, secrets are injected
as env vars directly by the KMS operator.
2026-02-04 11:16:07 -08:00
zeekay f99ded3c30 fix: update branding from bootnode.dev to hanzo.ai
- Fix code-demo.tsx brand name check (Hanzo Web3 vs Hanzo)
- Update RPC domains to rpc.web3.hanzo.ai
- Replace assets.bootnode.dev with assets.web3.hanzo.ai
- Replace ipfs.bootnode.dev with ipfs.web3.hanzo.ai
- Update demo email from [email protected] to [email protected]
2026-02-04 11:14:28 -08:00
zeekay 7a8f79078c feat: add planet-scale caching and omnichain query layer
Cloudflare Edge Caching (near-$0 costs for free tier):
- Multi-tier cache: L0 (in-memory) + L1 (Redis) + L2 (Cloudflare edge)
- Cache shared across ALL accounts (blockchain data is public)
- Aggressive TTLs: immutable data (1yr), finalized blocks (1hr)
- Cloudflare Worker script for edge caching
- Cache bypass only for state-dependent calls (eth_call, eth_getBalance)

Omnichain Query Layer (100+ chains):
- Unified query client for blocks, transactions, addresses, tokens
- PostgreSQL for metadata, ClickHouse for analytics
- Qdrant vector search for semantic queries (similar contracts)
- Meilisearch full-text search (addresses, tokens, contracts)
- GraphQL API with Strawberry (subscriptions for real-time)
- Cross-chain queries (address across all chains)

Infrastructure Updates:
- Added Qdrant and Meilisearch to compose.yml
- ClickHouse schema for omnichain analytics (blocks, txs, DeFi, NFTs)
- Materialized views for hourly/daily aggregates

Integrates with lux/indexer for 100+ chain data.
2026-02-04 11:00:57 -08:00
zeekay a2b59de17d feat: add unified IAM + Commerce billing integration
- Link Hanzo IAM users to Commerce customers via hanzo_id
- Auto-create Commerce customer on first billing access
- New unified billing endpoints:
  - GET /billing/account - unified user with IAM + Commerce data
  - GET /billing/account/subscriptions - all subscriptions
  - GET /billing/account/invoices - all invoices
  - GET /billing/account/payment-methods - payment methods
  - POST /billing/account/sync - sync IAM to Commerce
  - POST /billing/account/subscribe - create subscription
- Support for hanzo.id, zoo.id, lux.id, pars.id orgs
2026-02-04 10:45:09 -08:00
zeekay 3f83c83598 feat: implement Alchemy-style billing and pluggable deployments
Billing System:
- Add compute unit costs for 100+ RPC methods (1-100 CU)
- Implement pricing tiers: Free (30M CU), PAYG ($0.40/M), Enterprise
- Real-time usage tracking with Redis + ClickHouse analytics
- Subscription model with billing cycles
- Billing API endpoints: /usage, /subscription, /invoices, /tiers

Hanzo Commerce Integration:
- HanzoCommerceClient for subscriptions and invoices
- Usage sync worker for PAYG metered billing
- Webhook handler for subscription lifecycle events
- HMAC signature verification for webhooks

Pluggable Deployment Targets:
- Abstract DeployTarget interface
- DockerDeployer - Docker Compose management
- ProcessDeployer - Local dev with subprocesses
- KubernetesDeployer - K8s deployments via python client
- Factory pattern with caching
- Infrastructure API: /services, /scale, /logs

Pricing Page:
- Updated to match Alchemy pricing structure
- Three tiers with feature comparison table
- FAQ section with compute unit explanation

ClickHouse Schema:
- billing_usage_daily with SummingMergeTree
- billing_usage_monthly materialized view
- cu_by_method for analytics dashboard
- rate_limit_events tracking
2026-02-04 09:44:50 -08:00
zeekay 0549865535 fix: update branding to Hanzo for production deployment
- Update layout.tsx with brand-aware metadata (title, OG, icons)
- Change default brand from bootnode to hanzo in brand.ts
- Update homepage, product pages with brand-aware text
- Replace api.bootnode.dev URLs with api.hanzo.ai
- Update llms.txt route to use brand system
- Update security, privacy pages with Hanzo branding
- Update code-demo, unified-navigation with brand logos
- Update footer status link to status.hanzo.ai
2026-02-03 22:34:09 -08:00
zeekay 065df40807 fix: remove embedded repo references (separate projects) 2026-02-03 12:48:47 -08:00
zeekay e6ffd5bc87 feat: comprehensive bootnode platform updates
- Add brand assets and logos
- Add KMS integration for secure key management
- Add infrastructure configs (cloud providers, monitoring)
- Add indexer service with documentation
- Update K8s deployments and ingress
- Enhance dashboard pages (analytics, assets, infrastructure)
- Update auth and API components
- Add .gitignore for embedded repos
2026-02-03 12:48:01 -08:00
zeekay 38f6b31d44 fix: add e2e test script 2026-02-02 16:48:18 -08:00
zeekay 42a4d28986 fix: export init_db from db module 2026-02-02 16:45:11 -08:00
zeekay bcee659321 fix: use asyncpg URL and add redis service in e2e tests 2026-02-02 16:42:23 -08:00
zeekay 73a3d23053 feat: production deployment with shared Hanzo infrastructure
- Add k8s configs for production deployment
- Use shared postgres/datastore in hanzo namespace
- Fix image registry to ghcr.io/hanzoai/bootnode
- Add deploy script with shared infra support
- Simplify compose.yml for local development
2026-02-02 16:39:52 -08:00
zeekay 79c1af1c24 feat: add complete Hanzo stack to bootnode infrastructure
Added the following Hanzo services to compose.yml:
- IAM: Multi-tenant identity (hanzo.id, lux.id, zoo.id, pars.id)
- KMS: Secrets management and encryption
- Platform: Service orchestration and deployment
- Console: Admin dashboard with AI backend
- Console Worker: Background job processor
- Commerce: Multi-tenant e-commerce platform
- Analytics: Multi-tenant analytics platform

All services share the existing infrastructure:
- PostgreSQL for operational data
- Redis for caching and queues
- ClickHouse (datastore) for analytics

To start Hanzo services:
  docker compose --profile hanzo up -d
2026-01-29 14:30:38 -08:00
zeekay 0905335a78 feat: add Hanzo IAM service to bootnode infrastructure
Added IAM service to the compose stack:
- Uses ghcr.io/hanzoai/iam:latest image
- Shares PostgreSQL and Redis with other services
- Available on port 8001
- Multi-tenant support for hanzo.id, lux.id, zoo.id, pars.id
- Use profile 'hanzo' to enable: docker compose --profile hanzo up
2026-01-29 14:25:46 -08:00
zeekay 1dfd7a2e26 feat: initial Hanzo Nodes API
Modern blockchain infrastructure platform with:
- Multi-chain RPC endpoints (100+ chains)
- Token & NFT APIs (ERC-20, ERC-721, ERC-1155)
- Wallet API with portfolio tracking
- ERC-4337 Bundler for account abstraction
- WebSocket subscriptions
- Webhooks for chain events
- Hanzo IAM integration for multi-tenant auth (hanzo.id, zoo.id, lux.id, pars.id)
- ClickHouse datastore for analytics
- Redis MQ for background jobs

Pricing: $0.45/M CUs (Alchemy-competitive)
- Free: 300M CUs/month
- Growth: 400M CUs/month ($49/mo)
- Scale: 1.5B CUs/month ($199/mo)
2026-01-26 10:20:42 -08:00