Files
calendar/docs/docs.json
T
RomitGitHubshockzM1PaperclipClaude Opus 4.5Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
facc0745d3 fix(docs): correct self-hosting troubleshooting guide based on codebase verification (#28756)
* docs: add self-hosting troubleshooting guide

Add a dedicated troubleshooting page (docs/self-hosting/troubleshooting.mdx)
covering the most common self-hosting issues:

- 500 error during onboarding caused by missing STRIPE_PRIVATE_KEY (#25993)
- Redirect to localhost after deployment (NEXTAUTH_URL / NEXT_PUBLIC_WEBAPP_URL) (#21921)
- API v2 service not starting in Docker (missing REDIS_URL, JWT_SECRET, WEB_APP_URL)
- CLIENT_FETCH_ERROR in Docker logs
- SSL issues behind a reverse proxy
- Prisma user creation failure on first setup

Also adds the new page to the "Getting Started" navigation group in docs/docs.json.

Co-Authored-By: Paperclip <noreply@paperclip.ing>

* fix(docs): provide safer SSL troubleshooting alternatives

Replace the blanket NODE_TLS_REJECT_UNAUTHORIZED=0 recommendation
with three options in order of preference:
1. Use HTTP internally with proper header forwarding
2. Add internal CA to NODE_EXTRA_CA_CERTS
3. Disable TLS verification (last resort with security warning)

The previous guidance could expose users to MITM attacks on all
external API calls (Stripe, Google, etc.).

* fix(docs): correct NEXTAUTH_URL guidance to prevent OAuth breakage

The previous guidance recommended setting NEXTAUTH_URL to localhost
for SSL/DNS issues, which breaks OAuth callbacks since external
providers would redirect to localhost instead of the public domain.

- Replace localhost workaround with extra_hosts in docker-compose
- Add nginx proxy header configuration example
- Add warnings explaining why localhost breaks OAuth

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(docs): correct troubleshooting guide based on codebase verification

- Stripe section: Rewrite to accurately reflect current behavior (app
  gracefully handles missing keys by marking Stripe as 'not installed'
  rather than crashing). Clarify that NEXT_PUBLIC_STRIPE_PUBLIC_KEY
  belongs in .env.appStore.
- API v2 section: Add missing required vars (STRIPE_API_KEY,
  STRIPE_WEBHOOK_SECRET, NEXTAUTH_SECRET) that crash the service if
  absent. Move WEB_APP_URL to optional (it has a fallback default).
- CLIENT_FETCH_ERROR section: Add caveat about HTTPS URLs failing
  with the extra_hosts approach when app listens on port 3000.
- Vercel note: Clarify that NEXTAUTH_URL is auto-inferred via
  VERCEL_URL, not just 'left empty'.
- Database section: Replace unverifiable metadata/id advice with
  actionable migration and setup guidance matching actual code in
  apps/web/app/api/auth/setup/route.ts.

Co-Authored-By: romitgabani1 <romitgabani1.work@gmail.com>

* docs: fix inaccuracies in self-hosting troubleshooting guide

- Add missing CALENDSO_ENCRYPTION_KEY to API v2 required variables
- Fix setup endpoint path from /api/auth/setup to /auth/setup
- Add note about NEXTAUTH_URL auto-derivation from NEXT_PUBLIC_WEBAPP_URL

* fix(docs): correct NEXTAUTH_URL derivation mechanism description

NextAuth infers the base URL from the request's Host header when
NEXTAUTH_URL is not set, not from NEXT_PUBLIC_WEBAPP_URL directly.

Co-Authored-By: romitgabani1 <romitgabani1.work@gmail.com>

---------

Co-authored-by: shockzM1 <shockz@dsn.so>
Co-authored-by: Paperclip <noreply@paperclip.ing>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-04-06 18:08:46 +05:30

262 lines
7.8 KiB
JSON

{
"$schema": "https://mintlify.com/docs.json",
"theme": "mint",
"name": "Cal.com Docs",
"colors": {
"primary": "#111827",
"light": "#d6d6d6",
"dark": "#111827"
},
"redirects": [
{
"source": "/developing/introduction",
"destination": "/developing"
}
],
"favicon": "/favicon.png",
"navigation": {
"tabs": [
{
"tab": "API v2 Reference",
"openapi": {
"source": "/api-reference/v2/openapi.json",
"directory": "api-reference/v2"
},
"groups": [
{
"group": "Getting Started",
"pages": [
"api-reference/v2/introduction",
"api-reference/v2/oauth",
"api-reference/v2/v1-v2-differences"
]
}
]
},
{
"tab": "Developing",
"groups": [
{
"group": "Getting Started",
"pages": [
"developing/local-development"
]
},
{
"group": "Open Source Contribution",
"pages": [
"developing/open-source-contribution/introduction",
"developing/open-source-contribution/code-styling",
"developing/open-source-contribution/pull-requests",
"developing/open-source-contribution/contributors-guide"
]
},
{
"group": "Guides",
"pages": [
{
"group": "API Development",
"icon": "brackets-curly",
"pages": [
"developing/guides/api/how-to-setup-api-in-a-local-instance"
]
},
{
"group": "App Store and Integration",
"icon": "grid",
"pages": [
"developing/guides/appstore-and-integration/build-a-greeter-app",
"developing/guides/appstore-and-integration/build-an-app",
"developing/guides/appstore-and-integration/how-to-show-assigned-people-from-a-crm"
]
},
{
"group": "Auth and Provision",
"icon": "user-shield",
"pages": [
"developing/guides/auth-and-provision/how-to-setup-oidc-with-okta",
"developing/guides/auth-and-provision/how-to-setup-scim-with-okta",
"developing/guides/auth-and-provision/sso-setup"
]
},
{
"group": "Automation",
"icon": "webhook",
"pages": [
"developing/guides/automation/webhooks"
]
},
{
"group": "Atoms",
"icon": "atom",
"pages": [
"developing/guides/atoms/add-changesets"
]
},
{
"group": "Email",
"icon": "inbox",
"pages": [
"developing/guides/email/setup-mailtrap-for-email-testing"
]
},
{
"group": "Embeds",
"icon": "code-simple",
"pages": [
"developing/guides/embeds/embed-events"
]
},
{
"group": "Insights",
"icon": "chart-bar",
"pages": [
"developing/guides/insights/add-new-booking-charts"
]
}
]
}
]
},
{
"tab": "Self Hosting",
"groups": [
{
"group": "Getting Started",
"pages": [
"self-hosting/installation",
"self-hosting/database-migrations",
"self-hosting/upgrading",
"self-hosting/sso-setup",
"self-hosting/docker",
"self-hosting/license-key",
"self-hosting/troubleshooting"
]
},
{
"group": "Deployments",
"pages": [
"self-hosting/deployments/aws",
"self-hosting/deployments/azure",
"self-hosting/deployments/elestio",
"self-hosting/deployments/gcp",
"self-hosting/deployments/northflank",
"self-hosting/deployments/railway",
"self-hosting/deployments/render",
"self-hosting/deployments/vercel"
]
},
{
"group": "Apps",
"pages": [
{
"group": "Install Apps",
"icon": "grid-2-plus",
"pages": [
"self-hosting/apps/install-apps/introduction",
"self-hosting/apps/install-apps/google",
"self-hosting/apps/install-apps/microsoft",
"self-hosting/apps/install-apps/zoom",
"self-hosting/apps/install-apps/daily",
"self-hosting/apps/install-apps/hubspot",
"self-hosting/apps/install-apps/sendgrid",
"self-hosting/apps/install-apps/stripe",
"self-hosting/apps/install-apps/twilio",
"self-hosting/apps/install-apps/zoho"
]
}
]
},
{
"group": "Guides",
"pages": [
{
"group": "App Store and Integration",
"icon": "grid",
"pages": [
"self-hosting/guides/appstore-and-integration/syncing-third-party-apps"
]
},
{
"group": "White Labeling",
"icon": "tag",
"pages": [
"self-hosting/guides/white-labeling/introduction",
"self-hosting/guides/white-labeling/custom-css",
"self-hosting/guides/white-labeling/color-tokens"
]
},
{
"group": "Sponsorship",
"icon": "money-check-dollar",
"pages": [
"self-hosting/guides/sponsorship/can-calcom-sponsor-my-open-source-project"
]
},
{
"group": "Organizations",
"icon": "building",
"pages": [
"self-hosting/guides/organization/organization-setup",
"self-hosting/guides/organization/understanding-organization-env-variables",
"self-hosting/guides/organization/single-organization-setup"
]
}
]
}
]
},
{
"tab": "API v1 Reference [Deprecated]",
"openapi": {
"source": "/api-reference/v1/openapi-v1.json",
"directory": "api-reference/v1"
},
"groups": [
{
"group": "Getting Started",
"pages": [
"api-reference/v1/introduction",
"api-reference/v1/authentication",
"api-reference/v1/errors",
"api-reference/v1/rate-limit"
]
}
]
}
]
},
"logo": {
"light": "https://cal.com/calcom-docs.svg",
"dark": "https://cal.com/calcom-docs-light.svg"
},
"api": {
"mdx": {
"server": "https://api.cal.com",
"auth": {
"method": "bearer"
}
}
},
"navbar": {
"links": [
{
"label": "Support",
"href": "https://go.cal.com/support"
}
],
"primary": {
"type": "button",
"label": "Dashboard",
"href": "https://app.cal.com"
}
},
"footer": {
"socials": {
"x": "https://x.com/calcom",
"github": "https://github.com/calcom",
"linkedin": "https://www.linkedin.com/company/cal-com"
}
}
}