4faad64978
* Seed GCal test credentials * Set yml .env to secrets * Switch to vars * Add error messages * Set error message * Error messages * Change .env to secrets * Run db-seed even with cache * Add with DATABASE_URL * Set DB URL * Set DB URL * Inputs DB URL * Move database URL to with block * Create env under yarn db-studio * Fix typo * WIP * WIP * WIP * WIP * WIP * Add credential console log * Hit cache * Add logs * Remove echo * Run on ubuntu latest * Don't cache db * Uncache * WIP * WIP * Change back to buildjet * Seed GCal keys in test * Test uses GCal keys * Parse keys * WIP * WIP * WIP * WIP * WIP * WIP * WIP * WIP * WIP * WIP * WIP * WIP * WIP * WIP * WIP * WIP * WIP * WIP * WIP * WIP * WIP * WIP * WIP * Clean up * Type fix * Clean up * Clean up
325 lines
13 KiB
Plaintext
325 lines
13 KiB
Plaintext
# ********** INDEX **********
|
|
#
|
|
# - LICENSE (DEPRECATED)
|
|
# - DATABASE
|
|
# - SHARED
|
|
# - NEXTAUTH
|
|
# - E-MAIL SETTINGS
|
|
# - ORGANIZATIONS
|
|
|
|
# - LICENSE (DEPRECATED) ************************************************************************************
|
|
# https://github.com/calcom/cal.com/blob/main/LICENSE
|
|
#
|
|
# Summary of terms:
|
|
# - The codebase has to stay open source, whether it was modified or not
|
|
# - You can not repackage or sell the codebase
|
|
# - Acquire a commercial license to remove these terms by visiting: cal.com/sales
|
|
#
|
|
# To enable enterprise-only features, as an admin, go to /auth/setup to select your license and follow
|
|
# instructions. This environment variable is deprecated although still supported for backward compatibility.
|
|
# @see https://console.cal.com
|
|
CALCOM_LICENSE_KEY=
|
|
# ***********************************************************************************************************
|
|
|
|
# - DATABASE ************************************************************************************************
|
|
DATABASE_URL="postgresql://postgres:@localhost:5450/calendso"
|
|
UPSTASH_REDIS_REST_URL=
|
|
UPSTASH_REDIS_REST_TOKEN=
|
|
INSIGHTS_DATABASE_URL=
|
|
|
|
# Uncomment to enable a dedicated connection pool for Prisma using Prisma Data Proxy
|
|
# Cold boots will be faster and you'll be able to scale your DB independently of your app.
|
|
# @see https://www.prisma.io/docs/data-platform/data-proxy/use-data-proxy
|
|
# PRISMA_GENERATE_DATAPROXY=true
|
|
PRISMA_GENERATE_DATAPROXY=
|
|
|
|
# ***********************************************************************************************************
|
|
|
|
# - SHARED **************************************************************************************************
|
|
# Set this to http://app.cal.local:3000 if you want to enable organizations, and
|
|
# check variable ORGANIZATIONS_ENABLED at the bottom of this file
|
|
NEXT_PUBLIC_WEBAPP_URL='http://localhost:3000'
|
|
# Change to 'http://localhost:3001' if running the website simultaneously
|
|
NEXT_PUBLIC_WEBSITE_URL='http://localhost:3000'
|
|
NEXT_PUBLIC_CONSOLE_URL='http://localhost:3004'
|
|
NEXT_PUBLIC_EMBED_LIB_URL='http://localhost:3000/embed/embed.js'
|
|
|
|
# To enable SAML login, set both these variables
|
|
# @see https://github.com/calcom/cal.com/tree/main/packages/features/ee#setting-up-saml-login
|
|
# SAML_DATABASE_URL="postgresql://postgres:@localhost:5450/cal-saml"
|
|
SAML_DATABASE_URL=
|
|
# SAML_ADMINS='pro@example.com'
|
|
SAML_ADMINS=
|
|
# NEXT_PUBLIC_HOSTED_CAL_FEATURES=1
|
|
NEXT_PUBLIC_HOSTED_CAL_FEATURES=
|
|
# For additional security set to a random secret and use that value as the client_secret during the OAuth 2.0 flow.
|
|
SAML_CLIENT_SECRET_VERIFIER=
|
|
|
|
# If you use Heroku to deploy Postgres (or use self-signed certs for Postgres) then uncomment the follow line.
|
|
# @see https://devcenter.heroku.com/articles/connecting-heroku-postgres#connecting-in-node-js
|
|
# PGSSLMODE='no-verify'
|
|
PGSSLMODE=
|
|
|
|
# Define which hostnames are expected for the app to work on
|
|
ALLOWED_HOSTNAMES='"cal.com","cal.dev","cal-staging.com","cal.community","cal.local:3000","localhost:3000"'
|
|
# Reserved orgs subdomains for our own usage
|
|
RESERVED_SUBDOMAINS='"app","auth","docs","design","console","go","status","api","saml","www","matrix","developer","cal","my","team","support","security","blog","learn","admin"'
|
|
|
|
# - NEXTAUTH
|
|
# @see: https://github.com/calendso/calendso/issues/263
|
|
# @see: https://next-auth.js.org/configuration/options#nextauth_url
|
|
# Required for Vercel hosting - set NEXTAUTH_URL to equal your NEXT_PUBLIC_WEBAPP_URL
|
|
NEXTAUTH_URL='http://localhost:3000'
|
|
# @see: https://next-auth.js.org/configuration/options#nextauth_secret
|
|
# You can use: `openssl rand -base64 32` to generate one
|
|
NEXTAUTH_SECRET=
|
|
# Used for cross-domain cookie authentication
|
|
NEXTAUTH_COOKIE_DOMAIN=
|
|
|
|
# Set this to '1' if you don't want Cal to collect anonymous usage
|
|
CALCOM_TELEMETRY_DISABLED=
|
|
|
|
# ApiKey for cronjobs
|
|
CRON_API_KEY='0cc0e6c35519bba620c9360cfe3e68d0'
|
|
|
|
# Whether to automatically keep app metadata in the database in sync with the metadata/config files. When disabled, the
|
|
# sync runs in a reporting-only dry-run mode.
|
|
CRON_ENABLE_APP_SYNC=false
|
|
|
|
# Application Key for symmetric encryption and decryption
|
|
# must be 32 bytes for AES256 encryption algorithm
|
|
# You can use: `openssl rand -base64 32` to generate one
|
|
CALENDSO_ENCRYPTION_KEY=
|
|
|
|
# Intercom Config
|
|
NEXT_PUBLIC_INTERCOM_APP_ID=
|
|
|
|
# Secret to enable Intercom Identity Verification
|
|
INTERCOM_SECRET=
|
|
|
|
# Zendesk Config
|
|
NEXT_PUBLIC_ZENDESK_KEY=
|
|
|
|
# Help Scout Config
|
|
NEXT_PUBLIC_HELPSCOUT_KEY=
|
|
|
|
# Fresh Chat Config
|
|
NEXT_PUBLIC_FRESHCHAT_TOKEN=
|
|
NEXT_PUBLIC_FRESHCHAT_HOST=
|
|
|
|
# Google OAuth credentials
|
|
# To enable Login with Google you need to:
|
|
# 1. Set `GOOGLE_API_CREDENTIALS` above
|
|
# 2. Set `GOOGLE_LOGIN_ENABLED` to `true`
|
|
# When self-hosting please ensure you configure the Google integration as an Internal app so no one else can login to your instance
|
|
# @see https://support.google.com/cloud/answer/6158849#public-and-internal&zippy=%2Cpublic-and-internal-applications
|
|
GOOGLE_LOGIN_ENABLED=false
|
|
|
|
# - GOOGLE CALENDAR/MEET/LOGIN
|
|
# Needed to enable Google Calendar integration and Login with Google
|
|
# @see https://github.com/calcom/cal.com#obtaining-the-google-api-credentials
|
|
GOOGLE_API_CREDENTIALS=
|
|
|
|
# Inbox to send user feedback
|
|
SEND_FEEDBACK_EMAIL=
|
|
|
|
# Sengrid
|
|
# Used for email reminders in workflows and internal sync services
|
|
SENDGRID_API_KEY=
|
|
SENDGRID_EMAIL=
|
|
NEXT_PUBLIC_SENDGRID_SENDER_NAME=
|
|
|
|
# Sentry
|
|
# Used for capturing exceptions and logging messages
|
|
NEXT_PUBLIC_SENTRY_DSN=
|
|
|
|
# Twilio
|
|
# Used to send SMS reminders in workflows
|
|
TWILIO_SID=
|
|
TWILIO_TOKEN=
|
|
TWILIO_MESSAGING_SID=
|
|
TWILIO_PHONE_NUMBER=
|
|
TWILIO_WHATSAPP_PHONE_NUMBER=
|
|
# For NEXT_PUBLIC_SENDER_ID only letters, numbers and spaces are allowed (max. 11 characters)
|
|
NEXT_PUBLIC_SENDER_ID=
|
|
TWILIO_VERIFY_SID=
|
|
|
|
# Set it to "1" if you need to run E2E tests locally.
|
|
NEXT_PUBLIC_IS_E2E=
|
|
|
|
# Used for internal billing system
|
|
NEXT_PUBLIC_STRIPE_PRO_PLAN_PRICE=
|
|
NEXT_PUBLIC_STRIPE_PREMIUM_PLAN_PRICE=
|
|
NEXT_PUBLIC_IS_PREMIUM_NEW_PLAN=0
|
|
NEXT_PUBLIC_STRIPE_PREMIUM_NEW_PLAN_PRICE=
|
|
STRIPE_TEAM_MONTHLY_PRICE_ID=
|
|
STRIPE_ORG_MONTHLY_PRICE_ID=
|
|
STRIPE_WEBHOOK_SECRET=
|
|
STRIPE_WEBHOOK_SECRET_APPS=
|
|
STRIPE_PRIVATE_KEY=
|
|
STRIPE_CLIENT_ID=
|
|
PAYMENT_FEE_FIXED=
|
|
PAYMENT_FEE_PERCENTAGE=
|
|
|
|
# Use for internal Public API Keys and optional
|
|
API_KEY_PREFIX=cal_
|
|
# ***********************************************************************************************************
|
|
|
|
# - E-MAIL SETTINGS *****************************************************************************************
|
|
# Cal uses nodemailer (@see https://nodemailer.com/about/) to provide email sending. As such we are trying to
|
|
# allow access to the nodemailer transports from the .env file. E-mail templates are accessible within lib/emails/
|
|
# Configures the global From: header whilst sending emails.
|
|
EMAIL_FROM='notifications@yourselfhostedcal.com'
|
|
|
|
# Configure SMTP settings (@see https://nodemailer.com/smtp/).
|
|
# Configuration to receive emails locally (mailhog)
|
|
EMAIL_SERVER_HOST='localhost'
|
|
EMAIL_SERVER_PORT=1025
|
|
|
|
# Note: The below configuration for Office 365 has been verified to work.
|
|
# EMAIL_SERVER_HOST='smtp.office365.com'
|
|
# EMAIL_SERVER_PORT=587
|
|
# EMAIL_SERVER_USER='<office365_emailAddress>'
|
|
# Keep in mind that if you have 2FA enabled, you will need to provision an App Password.
|
|
# EMAIL_SERVER_PASSWORD='<office365_password>'
|
|
|
|
# The following configuration for Gmail has been verified to work.
|
|
# EMAIL_SERVER_HOST='smtp.gmail.com'
|
|
# EMAIL_SERVER_PORT=465
|
|
# EMAIL_SERVER_USER='<gmail_emailAddress>'
|
|
## You will need to provision an App Password.
|
|
## @see https://support.google.com/accounts/answer/185833
|
|
# EMAIL_SERVER_PASSWORD='<gmail_app_password>'
|
|
|
|
# Used for E2E for email testing
|
|
# Set it to "1" if you need to email checks in E2E tests locally
|
|
# Make sure to run mailhog container manually or with `yarn dx`
|
|
E2E_TEST_MAILHOG_ENABLED=
|
|
|
|
# Resend
|
|
# Send transactional email using resend
|
|
# RESEND_API_KEY=
|
|
|
|
# **********************************************************************************************************
|
|
|
|
# Set the following value to true if you wish to enable Team Impersonation
|
|
NEXT_PUBLIC_TEAM_IMPERSONATION=false
|
|
|
|
# Close.com internal CRM
|
|
CLOSECOM_API_KEY=
|
|
|
|
# Sendgrid internal sync service
|
|
SENDGRID_SYNC_API_KEY=
|
|
|
|
# Change your Brand
|
|
NEXT_PUBLIC_APP_NAME="Cal.com"
|
|
NEXT_PUBLIC_SUPPORT_MAIL_ADDRESS="help@cal.com"
|
|
NEXT_PUBLIC_COMPANY_NAME="Cal.com, Inc."
|
|
# Set this to true in to disable new signups
|
|
# NEXT_PUBLIC_DISABLE_SIGNUP=true
|
|
NEXT_PUBLIC_DISABLE_SIGNUP=
|
|
|
|
# Content Security Policy
|
|
CSP_POLICY=
|
|
|
|
# Vercel Edge Config
|
|
EDGE_CONFIG=
|
|
|
|
NEXT_PUBLIC_MINUTES_TO_BOOK=5 # Minutes
|
|
# Control time intervals on a user's Schedule availability
|
|
NEXT_PUBLIC_AVAILABILITY_SCHEDULE_INTERVAL=
|
|
|
|
# - ORGANIZATIONS *******************************************************************************************
|
|
# Enable Organizations non-prod domain setup, works in combination with organizations feature flag
|
|
# This is mainly needed locally, because for orgs to work a full domain name needs to point
|
|
# to the app, i.e. app.cal.local instead of using localhost, which is very disruptive
|
|
#
|
|
# This variable should only be set to 1 or true if you are in a non-prod environment and you want to
|
|
# use organizations
|
|
ORGANIZATIONS_ENABLED=
|
|
|
|
# This variable should only be set to 1 or true if you want to autolink external provider sing-ups with
|
|
# existing organizations based on email domain address
|
|
ORGANIZATIONS_AUTOLINK=
|
|
|
|
# Vercel Config to create subdomains for organizations
|
|
# Get it from https://vercel.com/<TEAM_OR_USER_NAME>/<PROJECT_SLUG>/settings
|
|
PROJECT_ID_VERCEL=
|
|
# Get it from: https://vercel.com/teams/<TEAM_SLUG>/settings
|
|
TEAM_ID_VERCEL=
|
|
# Get it from: https://vercel.com/account/tokens
|
|
AUTH_BEARER_TOKEN_VERCEL=
|
|
# Add the main domain that you want to use for testing vercel domain management for organizations. This is necessary because WEBAPP_URL of local isn't a valid public domain
|
|
# Would create org1.example.com for an org with slug org1
|
|
# LOCAL_TESTING_DOMAIN_VERCEL="example.com"
|
|
|
|
## Set it to 1 if you use cloudflare to manage your DNS and would like us to manage the DNS for you for organizations
|
|
# CLOUDFLARE_DNS=1
|
|
## Get it from: https://dash.cloudflare.com/profile/api-tokens. Select Edit Zone template and choose a zone(your domain)
|
|
# AUTH_BEARER_TOKEN_CLOUDFLARE=
|
|
## Zone ID can be found in the Overview tab of your domain in Cloudflare
|
|
# CLOUDFLARE_ZONE_ID=
|
|
## It should usually work with the default value. This is the DNS CNAME record content to point to Vercel domain
|
|
# CLOUDFLARE_VERCEL_CNAME=cname.vercel-dns.com
|
|
|
|
# - APPLE CALENDAR
|
|
# Used for E2E tests on Apple Calendar
|
|
E2E_TEST_APPLE_CALENDAR_EMAIL=""
|
|
E2E_TEST_APPLE_CALENDAR_PASSWORD=""
|
|
|
|
# - CALCOM QA ACCOUNT
|
|
# Used for E2E tests on Cal.com that require 3rd party integrations
|
|
E2E_TEST_CALCOM_QA_EMAIL="qa@example.com"
|
|
# Replace with your own password
|
|
E2E_TEST_CALCOM_QA_PASSWORD="password"
|
|
E2E_TEST_CALCOM_QA_GCAL_CREDENTIALS=
|
|
E2E_TEST_CALCOM_GCAL_KEYS=
|
|
|
|
# - APP CREDENTIAL SYNC ***********************************************************************************
|
|
# Used for self-hosters that are implementing Cal.com into their applications that already have certain integrations
|
|
# Under settings/admin/apps ensure that all app secrets are set the same as the parent application
|
|
# You can use: `openssl rand -base64 32` to generate one
|
|
CALCOM_WEBHOOK_SECRET=""
|
|
# This is the header name that will be used to verify the webhook secret. Should be in lowercase
|
|
CALCOM_WEBHOOK_HEADER_NAME="calcom-webhook-secret"
|
|
CALCOM_CREDENTIAL_SYNC_ENDPOINT=""
|
|
# Key should match on Cal.com and your application
|
|
# must be 24 bytes for AES256 encryption algorithm
|
|
# You can use: `openssl rand -base64 24` to generate one
|
|
CALCOM_APP_CREDENTIAL_ENCRYPTION_KEY=""
|
|
|
|
# - OIDC E2E TEST *******************************************************************************************
|
|
|
|
# Ensure this ADMIN EMAIL is present in the SAML_ADMINS list
|
|
E2E_TEST_SAML_ADMIN_EMAIL=
|
|
E2E_TEST_SAML_ADMIN_PASSWORD=
|
|
|
|
E2E_TEST_OIDC_CLIENT_ID=
|
|
E2E_TEST_OIDC_CLIENT_SECRET=
|
|
E2E_TEST_OIDC_PROVIDER_DOMAIN=
|
|
|
|
E2E_TEST_OIDC_USER_EMAIL=
|
|
E2E_TEST_OIDC_USER_PASSWORD=
|
|
|
|
# ***********************************************************************************************************
|
|
|
|
# provide a value between 0 and 100 to ensure the percentage of traffic
|
|
# redirected from the legacy to the future pages
|
|
AB_TEST_BUCKET_PROBABILITY=50
|
|
# whether we redirect to the future/event-types from event-types or not
|
|
APP_ROUTER_EVENT_TYPES_ENABLED=0
|
|
APP_ROUTER_SETTINGS_ADMIN_ENABLED=0
|
|
APP_ROUTER_APPS_INSTALLED_CATEGORY_ENABLED=0
|
|
APP_ROUTER_APPS_SLUG_ENABLED=0
|
|
APP_ROUTER_APPS_SLUG_SETUP_ENABLED=0
|
|
# whether we redirect to the future/apps/categories from /apps/categories or not
|
|
APP_ROUTER_APPS_CATEGORIES_ENABLED=0
|
|
# whether we redirect to the future/apps/categories/[category] from /apps/categories/[category] or not
|
|
APP_ROUTER_APPS_CATEGORIES_CATEGORY_ENABLED=0
|
|
APP_ROUTER_BOOKINGS_STATUS_ENABLED=0
|
|
APP_ROUTER_WORKFLOWS_ENABLED=0
|
|
APP_ROUTER_SETTINGS_TEAMS_ENABLED=0
|
|
APP_ROUTER_GETTING_STARTED_STEP_ENABLED=0
|
|
APP_ROUTER_APPS_ENABLED=0
|
|
APP_ROUTER_VIDEO_ENABLED=0
|