mirror of
https://github.com/hanzoai/calendar.git
synced 2026-09-24 22:42:24 +00:00
hanzo/overlay: overlay README (deploy, white-label, MIT license note)
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
# Hanzo Calendar — cal.hanzo.ai overlay
|
||||
|
||||
Hanzo white-label of [Cal.diy](https://github.com/calcom/cal.diy) (the MIT-licensed
|
||||
cal.com variant), deployed at **cal.hanzo.ai** on
|
||||
`hanzo-k8s` (DOKS do-sfo3), namespace `hanzo-cal`. Linked from lux.fund's
|
||||
"Schedule a call" → `https://cal.hanzo.ai/lux`.
|
||||
|
||||
This directory is the **entire overlay** on top of the upstream fork. cal.com's
|
||||
branding is env-driven (`packages/lib/constants.ts`), so the white-label is
|
||||
config, not a source rewrite. The only source changes on `hanzo/overlay` are
|
||||
three in-place logo SVG swaps under `apps/web/public/`.
|
||||
|
||||
## What's here
|
||||
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `deployment.yaml` | Namespace + Deployment + Service + Ingress (TLS `cal.hanzo.ai`) |
|
||||
| `configmap.yaml` | `cal-env` — non-secret brand + URL env |
|
||||
| `secret.template.yaml` | Documents `cal-secrets` keys. **Template only — never apply with real values.** |
|
||||
| `env.hanzo.example` | Full env surface (brand + secret) for local/dev + reference |
|
||||
| `../../.github/workflows/deploy.yml` | `cal-hanzo-deploy`: build → `ghcr.io/hanzoai/calendar` → rollout |
|
||||
|
||||
## The white-label (no source fork of brand strings)
|
||||
|
||||
cal.com reads brand identity from `NEXT_PUBLIC_*` env with cal.com-only
|
||||
fallbacks. Overriding them is the whole job:
|
||||
|
||||
- `NEXT_PUBLIC_APP_NAME=Hanzo Calendar` (reaches ~74 files: page titles, emails, meta)
|
||||
- `NEXT_PUBLIC_COMPANY_NAME`, `NEXT_PUBLIC_SUPPORT_MAIL_ADDRESS`, `NEXT_PUBLIC_SENDER_ID`
|
||||
- `NEXT_PUBLIC_WEBAPP_URL=https://cal.hanzo.ai` (auth links, embeds, webhooks)
|
||||
- Logos: `apps/web/public/{calcom-logo-white-word,cal-logo-word-black,cal-com-icon-white}.svg`
|
||||
replaced in place with Hanzo text wordmarks (`constants.ts` paths untouched).
|
||||
These are placeholder text wordmarks — swap for real Hanzo brand SVGs when available.
|
||||
|
||||
`NEXT_PUBLIC_*` that affect statically-rendered HTML are baked at image build
|
||||
(workflow `build-args`); `NEXT_PUBLIC_WEBAPP_URL` is baked as a placeholder that
|
||||
the container's `scripts/start.sh` rewrites to the pod's runtime value at boot.
|
||||
|
||||
## Deploy prerequisites (human-gated — see the full checklist in the run report)
|
||||
|
||||
1. Cloudflare DNS: `cal.hanzo.ai` → hanzo-k8s ingress (proxied).
|
||||
2. Postgres provisioned; DSN in `cal-secrets.DATABASE_URL`.
|
||||
3. KMS-populate `cal-secrets`: `NEXTAUTH_SECRET`, `CALENDSO_ENCRYPTION_KEY`,
|
||||
`GOOGLE_API_CREDENTIALS`, SMTP creds.
|
||||
4. Per-founder Google/O365 calendar OAuth consent (in-app, post-deploy).
|
||||
5. GitHub Actions secrets: `ROLLOUT_KUBECONFIG` (scoped ci-rollout SA).
|
||||
|
||||
cal.com runs `prisma migrate deploy` + app-store seed on boot, so a reachable
|
||||
Postgres is a hard start dependency.
|
||||
|
||||
## License
|
||||
|
||||
This fork tracks **Cal.diy**, not upstream cal.com. Cal.diy is **100%
|
||||
MIT-licensed** (root `LICENSE` = MIT; README: "no proprietary Enterprise
|
||||
Edition features"). It removed cal.com's open-core AGPL/EE split, so there is
|
||||
**no AGPL §13 network-use obligation and no cal.com commercial license key**
|
||||
required to run `cal.hanzo.ai` publicly.
|
||||
|
||||
MIT still requires retaining the copyright + permission notice: keep the root
|
||||
`LICENSE` (Cal.com, Inc. + contributors) intact — which this overlay does (it
|
||||
touches only `deploy/hanzo/`, `.github/workflows/deploy.yml`, and three logo
|
||||
SVGs). If Hanzo ever pulls features from **upstream cal.com** (which IS AGPL
|
||||
with a separately-licensed `packages/features/ee` subtree), that code carries
|
||||
its own terms and the AGPL network-source obligation would attach to it — so
|
||||
prefer merging from Cal.diy `main`, not cal.com, to stay MIT-clean.
|
||||
Reference in New Issue
Block a user