docs: improve self-hosting contents (#28888)

This commit is contained in:
Benny Joo
2026-04-15 01:18:24 +09:00
committed by GitHub
parent c0d105e7b3
commit c28d647a0d
43 changed files with 4214 additions and 35 deletions
+28
View File
@@ -0,0 +1,28 @@
import { generateStaticParamsFor, importPage } from "nextra/pages";
import { useMDXComponents as getMDXComponents } from "../../mdx-components";
export const generateStaticParams = generateStaticParamsFor("mdxPath");
export async function generateMetadata(props: {
params: Promise<{ mdxPath?: string[] }>;
}) {
const params = await props.params;
const { metadata } = await importPage(params.mdxPath);
return metadata;
}
const Wrapper = getMDXComponents().wrapper;
export default async function Page(props: {
params: Promise<{ mdxPath?: string[] }>;
}) {
const params = await props.params;
const { default: MDXContent, toc, metadata } = await importPage(
params.mdxPath,
);
return (
<Wrapper toc={toc} metadata={metadata}>
<MDXContent {...props} params={params} />
</Wrapper>
);
}
+17
View File
@@ -0,0 +1,17 @@
/* Cal Sans for headlines */
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: var(--font-cal), sans-serif;
font-weight: 400;
letter-spacing: 0;
font-feature-settings: normal;
}
/* Cal Sans UI for body text */
body {
font-family: var(--font-cal-ui), sans-serif;
}
+90
View File
@@ -0,0 +1,90 @@
import { Footer, Layout, Navbar } from "nextra-theme-docs";
import { Head } from "nextra/components";
import { getPageMap } from "nextra/page-map";
import localFont from "next/font/local";
import "nextra-theme-docs/style.css";
import "./logo.css";
import "./fonts.css";
const calSans = localFont({
src: "../fonts/CalSans-Regular.woff2",
variable: "--font-cal",
display: "swap",
weight: "400",
});
const calSansUI = localFont({
src: [
{ path: "../fonts/CalSansUI-UILight.woff2", weight: "300" },
{ path: "../fonts/CalSansUI-UIRegular.woff2", weight: "400" },
{ path: "../fonts/CalSansUI-UIMedium.woff2", weight: "500" },
{ path: "../fonts/CalSansUI-UISemiBold.woff2", weight: "600" },
{ path: "../fonts/CalSansUI-UIBold.woff2", weight: "700" },
],
variable: "--font-cal-ui",
display: "swap",
});
const navbar: React.ReactElement = (
<Navbar
logo={
<>
<img
src="/cal-docs-logo.svg"
alt="Cal.diy Docs"
height={26}
className="logo-light"
style={{ height: 26 }}
/>
<img
src="/cal-docs-logo-white.svg"
alt="Cal.diy Docs"
height={26}
className="logo-dark"
style={{ height: 26 }}
/>
</>
}
/>
);
const footer: React.ReactElement = (
<Footer>
<small>
Cal.diy is the open source community edition of Cal.com. Cal.com® and Cal®
are a registered trademark by Cal.com, Inc. All rights reserved.
</small>
</Footer>
);
export const metadata: { title: string; description: string } = {
title: "Cal.com Docs",
description: "Cal.com self-hosting documentation",
};
export default async function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html
lang="en"
dir="ltr"
suppressHydrationWarning
className={`${calSans.variable} ${calSansUI.variable}`}
>
<Head />
<body>
<Layout
navbar={navbar}
pageMap={await getPageMap()}
docsRepositoryBase="https://github.com/calcom/cal.com/tree/main/apps/docs"
footer={footer}
>
{children}
</Layout>
</body>
</html>
);
}
+11
View File
@@ -0,0 +1,11 @@
.logo-dark {
display: none;
}
html.dark .logo-light {
display: none;
}
html.dark .logo-dark {
display: block;
}
+17
View File
@@ -0,0 +1,17 @@
export default {
index: "Introduction",
"-- getting-started": {
type: "separator",
title: "Getting Started",
},
installation: "Installation",
"database-migrations": "Database Migrations",
upgrading: "Upgrading",
docker: "Docker",
apps: "Apps",
"-- deployments": {
type: "separator",
title: "Deployments",
},
deployments: "Deployments",
};
+11
View File
@@ -0,0 +1,11 @@
export default {
google: "Google",
microsoft: "Microsoft",
zoom: "Zoom",
daily: "Daily",
hubspot: "HubSpot",
sendgrid: "Sendgrid",
stripe: "Stripe",
twilio: "Twilio",
zoho: "Zoho",
};
+13
View File
@@ -0,0 +1,13 @@
# Daily
#### Obtaining Daily API Credentials
1. **Open Daily and sign into your account** - Go to [Daily](https://daily.co) and sign into your account.
2. **Navigate to the Developers tab** - From within your dashboard, go to the developers tab.
3. **Copy your API key** - Copy the API key provided in the developers tab.
4. **Paste the API key into the .env file** - Now paste the API key into the `DAILY_API_KEY` field in your `.env` file.
5. **Set the DAILY_SCALE_PLAN variable (optional)** - If you have the Daily Scale Plan, set the `DAILY_SCALE_PLAN` variable to `true` in the `.env` file to use features like video recording.
+44
View File
@@ -0,0 +1,44 @@
# Google
#### Obtaining the Google API Credentials
1. **Open Google API Console** - Go to [Google API Console](https://console.cloud.google.com/apis/dashboard). If you don't have a project in your Google Cloud subscription, create one before proceeding. Under the Dashboard pane, select "Enable APIs and Services".
2. **Search for the Google Calendar API** - In the search box, type "calendar" and select the Google Calendar API search result.
3. **Enable the Google Calendar API** - Enable the selected API to proceed.
4. **Configure the OAuth Consent Screen** - Go to the [OAuth consent screen](https://console.cloud.google.com/apis/credentials/consent) from the side pane. Select the app type (Internal or External) and enter the basic app details on the first page.
5. **Add Calendar Scopes** - On the Scopes page, select "Add or Remove Scopes". Search for Calendar.event and select the scopes with values `.../auth/calendar.events`, `.../auth/calendar.readonly`, and then click "Update".
6. **Add Test Users** - On the Test Users page, add the Google account(s) you'll be using. Verify details on the last page to complete the consent screen configuration.
7. **Create OAuth Credentials** - From the side pane, select [Credentials](https://console.cloud.google.com/apis/credentials) and then "Create Credentials". Choose "OAuth Client ID".
8. **Select Web Application as the Application Type** - Choose "Web Application" as the Application Type.
9. **Add Authorized Redirect URIs** - Under Authorized redirect URI's, add the URIs:
```
<Cal.com URL>/api/integrations/googlecalendar/callback
<Cal.com URL>/api/auth/callback/google
```
Replace `<Cal.com URL>` with the URL where your application runs.
10. **Download the OAuth Client ID JSON** - The key will be created, redirecting you back to the Credentials page. Select the new client ID under "OAuth 2.0 Client IDs", then click "Download JSON". Copy the JSON file contents and paste the entire string into the `.env` and `.env.appStore` files under the `GOOGLE_API_CREDENTIALS` key.
11. **Set the Google Integration as Internal** - In the `.env` file, set the following environment variable:
```
GOOGLE_LOGIN_ENABLED=false
```
This will configure the Google integration as an Internal app, restricting login access.
### Adding Google Calendar to Cal.com App Store
After adding Google credentials, you can now add the Google Calendar App to the app store. Repopulate the App store by running:
1. **Repopulate App Store** - Run `pnpm db-seed` to update the app store and include the newly added Google Calendar integration.
+34
View File
@@ -0,0 +1,34 @@
# HubSpot
### Obtaining HubSpot Client ID and Secret
1. **Sign into HubSpot Developer** - Go to [HubSpot Developer](https://developers.hubspot.com/) and sign into your account, or create a new one.
2. **Navigate to Manage Apps** - From the Developer account home page, go to "Manage apps".
3. **Create a new app** - Click the "Create app" button located at the top right corner of the page.
4. **Fill in App Information** - In the "App info" tab, fill in any information you want for your app.
5. **Go to the Auth tab** - Navigate to the "Auth" tab to set up authentication for the app.
6. **Copy Client ID and Client Secret** - Copy the Client ID and Client Secret and add them to your `.env` file under the fields:
```
HUBSPOT_CLIENT_ID
HUBSPOT_CLIENT_SECRET
```
7. **Set the Redirect URL for OAuth** - Set the Redirect URL for OAuth to:
```
<Cal.com URL>/api/integrations/hubspot/callback
```
Replace `<Cal.com URL>` with the URL where your application is hosted.
8. **Select Required Scopes** - In the "Scopes" section, select "Read" and "Write" for the scope called `crm.objects.contacts`.
9. **Save the Application** - Click the "Save" button at the bottom of the page.
10. **Complete HubSpot Integration** - You're all set! Any booking in Cal.com will now be created as a meeting in HubSpot for your contacts.
+21
View File
@@ -0,0 +1,21 @@
# Microsoft
#### Obtaining Microsoft Graph Client ID and Secret
1. **Open Azure App Registration** - Go to [Azure App Registration](https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade) and select "New registration".
2. **Name your application** - Provide a name for your application to proceed with the registration.
3. **Set who can use this application** - Set "Who can use this application or access this API?" to "Accounts in any organizational directory (Any Azure AD directory - Multitenant)".
4. **Configure the Web redirect URI** - Set the Web redirect URI to:
```
<Cal.com URL>/api/integrations/office365calendar/callback
```
Replace `<Cal.com URL>` with the URL where your application runs.
5. **Obtain and set the MS_GRAPH_CLIENT_ID** - Use the Application (client) ID as the value for `MS_GRAPH_CLIENT_ID` in your `.env` file.
6. **Create a client secret and set MS_GRAPH_CLIENT_SECRET** - Click on "Certificates & secrets", create a new client secret, and use the generated value as the `MS_GRAPH_CLIENT_SECRET` in your `.env` file.
+21
View File
@@ -0,0 +1,21 @@
# Sendgrid
1. **Create a SendGrid account** - Go to [https://signup.sendgrid.com/](https://signup.sendgrid.com/) and create a new SendGrid account.
2. **Generate an API key** - Navigate to **Settings** -> **API Keys** and create a new API key.
3. **Add API key to .env** - Copy the generated API key and add it to your `.env` file under the field:
```
SENDGRID_API_KEY
```
4. **Verify a sender email** - Go to **Settings** -> **Sender Authentication** and verify a single sender.
5. **Add verified email to .env** - Copy the verified email address and add it to your `.env` file under the field:
```
SENDGRID_EMAIL
```
> This app is **required** for Workflows
+29
View File
@@ -0,0 +1,29 @@
# Stripe
### Setting up Stripe
1. **Create or log into a Stripe account** - Go to [Stripe](https://stripe.com) and either create a new account or log into an existing one. For testing, activate the Test-Mode toggle in the top right of the Stripe dashboard.
2. **Save API keys** - Open [Stripe API Keys](https://dashboard.stripe.com/apikeys), then save the token starting with `pk_...` to `NEXT_PUBLIC_STRIPE_PUBLIC_KEY` and `sk_...` to `STRIPE_PRIVATE_KEY` in the `.env` file.
3. **Activate OAuth for Standard Accounts** - Go to [Stripe Connect Settings](https://dashboard.stripe.com/settings/connect) and activate OAuth for Standard Accounts.
4. **Add the redirect URL** - Add the following redirect URL, replacing `<Cal.com URL>` with your application's URL:
```
<Cal.com URL>/api/integrations/stripepayment/callback
```
5. **Save the Stripe Client ID** - Copy your client ID (`ca_...`) to `STRIPE_CLIENT_ID` in the `.env` file.
6. **Set up a Stripe webhook** - Open [Stripe Webhooks](https://dashboard.stripe.com/webhooks) and add:
```
<Cal.com URL>/api/integrations/stripepayment/webhook
```
as the webhook for connected applications.
7. **Select webhook events** - Select all `payment_intent` and `setup_intent` events for the webhook.
8. **Save the webhook secret** - Copy the webhook secret (`whsec_...`) to `STRIPE_WEBHOOK_SECRET` in the `.env` file.
+57
View File
@@ -0,0 +1,57 @@
# Twilio
1. **Create a Twilio account** - Go to [Twilio](https://www.twilio.com/) and create a new account.
2. **Get a Twilio phone number** - Click on 'Get a Twilio phone number' to obtain a phone number for your account.
3. **Save the Account SID** - Copy the Account SID and add it to your `.env` file under the field:
```
TWILIO_SID
```
4. **Save the Auth Token** - Copy the Auth Token and add it to your `.env` file under the field:
```
TWILIO_TOKEN
```
5. **Save the Twilio phone number** - Copy your Twilio phone number and add it to your `.env` file under the field:
```
TWILIO_PHONE_NUMBER
```
6. **Set the Sender ID** - Add your own sender ID to the `.env` file under the field:
```
NEXT_PUBLIC_SENDER_ID
```
(The fallback is set to "Cal" if not specified.)
7. **Create a Messaging Service** - Navigate to **Develop** -> **Messaging** -> **Services**, then create a new messaging service.
8. **Name the Messaging Service** - Choose a name for the messaging service. This can be anything you like.
9. **Add Senders to the Messaging Service** - Click 'Add Senders' and select 'Phone number' as the sender type.
10. **Add your Twilio phone number as a sender** - Add the listed phone number to the messaging service.
11. **Complete the Messaging Service setup** - Leave all other fields as they are, then complete the setup by clicking 'View my new Messaging Service'.
12. **Save the Messaging Service SID** - Copy the Messaging Service SID and add it to your `.env` file under the field:
```
TWILIO_MESSAGING_SID
```
13. **Create a Verify Service** - Go to the Twilio dashboard, create a new Verify Service, and name it as you wish.
14. **Save the Verify Service SID** - Copy the Verify Service SID and add it to your `.env` file under the field:
```
TWILIO_VERIFY_SID
```
> This app is **required** for Workflows
+97
View File
@@ -0,0 +1,97 @@
# Zoho
#### Obtaining ZohoCRM Client ID and Secret
1. **Sign into Zoho API Console** - Go to [Zoho API Console](https://api-console.zoho.com/) and sign into your account, or create a new one.
2. **Go to Applications** - From the API console page, navigate to "Applications".
3. **Add a New Client** - Click the "ADD CLIENT" button at the top right and select "Server-based Applications".
4. **Fill in Client Details** - Enter any desired information in the "Client Details" tab.
5. **Go to the Client Secret tab** - Navigate to the "Client Secret" tab.
6. **Save Client ID and Secret to .env** - Copy the Client ID and Client Secret into your `.env` file under:
```
ZOHOCRM_CLIENT_ID
ZOHOCRM_CLIENT_SECRET
```
7. **Set the Redirect URL for OAuth** - Set the Redirect URL for OAuth to:
```
<Cal.com URL>/api/integrations/zohocrm/callback
```
Replace `<Cal.com URL>` with your application URL.
8. **Enable Multi-DC Option** - In the "Settings" section, check the "Multi-DC" option if you wish to use the same OAuth credentials for all data centers.
9. **Save your settings** - Click "Save" or "UPDATE" at the bottom of the page.
10. **Integration is Ready** - Your ZohoCRM integration can now be easily added in the Cal.com settings.
#### Obtaining Zoho Calendar Client ID and Secret
1. **Sign into Zoho API Console** - Go to [Zoho API Console](https://api-console.zoho.com/) and sign into your account, or create a new one.
2. **Create a New Server-based Application** - Choose "Server-based Applications" and set the Redirect URL for OAuth to:
```
<Cal.com URL>/api/integrations/zohocalendar/callback
```
Replace `<Cal.com URL>` with your application URL.
3. **Fill in Client Details** - Enter any information you want in the "Client Details" tab.
4. **Go to the Client Secret tab** - Navigate to the "Client Secret" tab.
5. **Save Credentials in Cal.com Admin Panel** - Copy the Client ID and Client Secret to your app keys in the Cal.com admin panel at:
```
<Cal.com>/settings/admin/apps
```
6. **Enable Multi-DC Option** - In the "Settings" section of Zoho API Console, check the "Multi-DC" option if you wish to use the same OAuth credentials across data centers.
7. **Save Settings** - Click "Save" or "UPDATE" at the bottom of the page.
8. **Complete Zoho Calendar Integration** - Your Zoho Calendar integration is now ready and can be managed at:
```
/settings/my-account/calendars
```
9. **Access Zoho Calendar** - You can access your Zoho calendar at [https://calendar.zoho.com/](https://calendar.zoho.com/).
> If you use multiple calendars with Cal, make sure to enable the toggle to prevent double-bookings across calendars. This setting can be found at `/settings/my-account/calendars`.
#### Obtaining Zoho Bigin Client ID and Secret
1. **Sign into Zoho API Console** - Go to [Zoho API Console](https://api-console.zoho.com/) and sign into your account, or create a new one.
2. **Add a New Client for Zoho Bigin** - Click the "ADD CLIENT" button at the top right, and select "Server-based Applications".
3. **Set the Redirect URL for OAuth** - Set the Redirect URL for OAuth to:
```
<Cal.com URL>/api/integrations/zoho-bigin/callback
```
Replace `<Cal.com URL>` with your application URL.
4. **Go to the Client Secret tab** - Navigate to the "Client Secret" tab.
5. **Save Client ID and Secret to .env.appStore** - Copy the Client ID and Client Secret into the `.env.appStore` file under:
```
ZOHO_BIGIN_CLIENT_ID
ZOHO_BIGIN_CLIENT_SECRET
```
6. **Enable Multi-DC Option** - In the "Settings" section, check the "Multi-DC" option if you wish to use the same OAuth credentials across data centers.
7. **Complete Zoho Bigin Integration** - Your Zoho Bigin integration is now ready and can be added from the Cal.com app store.
+40
View File
@@ -0,0 +1,40 @@
# Zoom
### Obtaining Zoom Client ID and Secret
1. **Sign into Zoom Marketplace** - Go to [Zoom Marketplace](https://marketplace.zoom.us/) and sign in with your Zoom account.
2. **Build a New App** - In the upper right, click "Develop" and then "Build App".
3. **Create an OAuth App** - Under "OAuth", select "Create".
4. **Name Your App** - Provide a name for your app.
5. **Choose User-managed App Type** - Select "User-managed app" as the app type.
6. **Set Marketplace Visibility** - De-select the option to publish the app on the Zoom App Marketplace.
7. **Create the App** - Click "Create" to proceed.
8. **Save Client ID and Secret** - Copy the Client ID and Client Secret and add them to your `.env` file under the fields:
```
ZOOM_CLIENT_ID
ZOOM_CLIENT_SECRET
```
9. **Set the Redirect URL for OAuth** - Set the Redirect URL for OAuth to:
```
<Cal.com URL>/api/integrations/zoomvideo/callback
```
Replace `<Cal.com URL>` with your application URL.
10. **Configure Allow List and Subdomain Check** - Add the redirect URL to the allow list and enable "Subdomain check". Ensure it displays "saved" below the form.
11. **Skip Basic Information and Add Scopes** - You don't need to provide basic information about your app. Instead, go to "Scopes", click "+ Add Scopes", then select the category "Meeting" on the left, and check the scope `meeting:write`.
12. **Save the Scope** - Click "Done" to save the scope settings.
13. **Complete Zoom Integration** - Your Zoom integration is now ready and can be easily added in the Cal.com settings.
+60
View File
@@ -0,0 +1,60 @@
# Database Migrations
As described in the upgrade guide, you should use the
```bash
yarn workspace @calcom/prisma db-migrate
```
or
```bash
yarn workspace @calcom/prisma db-deploy
```
command to update the database. We use database migrations in order to handle changes to the database schema in a more secure and stable way. This is actually very common. The thing is that when just changing the schema in `schema.prisma` without creating migrations, the update to the newer database schema can damage or delete all data in production mode, since the system sometimes doesn't know how to transform the data from A to B. Using migrations, each step is reproducible, transparent and can be undone in a simple way.
### Creating migrations
If you are modifying the codebase and make a change to the `schema.prisma` file, you must create a migration. To create a migration for your previously changed `schema.prisma`, simply run the following:
```bash
yarn workspace @calcom/prisma db-migrate
```
Now, you must create a short name for your migration to describe what changed (for example, "user_add_email_verified"). Then just add and commit it with the corresponding code that uses your new database schema.
**Always keep an eye on what migrations Prisma is generating.** Prisma often happily will drop entire columns of data because it can't figure out what to do.
### Error: The database schema is not empty
Prisma uses a database called `_prisma_migrations` to keep track of which migrations have been applied and which haven't. If your local migrations database doesn't match up with what's in the actual database, then Prisma will throw the following error:
```
Error: P3005
The database schema for `localhost:5432` is not empty. Read more about how to baseline an existing production database: https://pris.ly/d/migrate-baseline
```
In order to fix this, we need to tell Prisma which migrations have already been applied. This can be done by running the following command, replacing `migration_name` with each migration that you have already applied:
```bash
yarn prisma migrate resolve --applied migration_name
```
You will need to run the command for each migration that you want to mark as applied.
### Resetting Prisma migrate
When your local Prisma database runs out of sync with migrations on local and you are tearing your hair out, I've been there, so you don't have to: PostgreSQL
```sql
DELETE FROM "_prisma_migrations";
```
Quickly re-index
```bash
# Run the following to easily apply all migrations in the prisma/migrations directory
ls -1a prisma/migrations/ | grep 2021 | xargs -I{} prisma migrate resolve --applied {}
```
+10
View File
@@ -0,0 +1,10 @@
export default {
aws: "AWS",
azure: "Azure",
elestio: "Elestio",
gcp: "GCP",
northflank: "Northflank",
railway: "Railway",
render: "Render",
vercel: "Vercel",
};
+46
View File
@@ -0,0 +1,46 @@
# AWS
Deploying Cal.diy on AWS
## Manual Deployment
### 1. Prerequisites
1. Amazon Web Services account
2. Familiarity with AWS services and management console
3. Access to the Cal.diy source code
### 2. AWS Environment Setup
1. **Create an AWS Account:** If not already set up, create an account on AWS.
2. **Management Console:** Log in to the AWS Management Console.
### 3. Creating AWS Resources
1. **Create a New IAM User:** Set up an IAM user with the necessary permissions for deploying and managing the application.
2. **Set Up Required Services:** Establish services like Amazon EC2, RDS for PostgreSQL, etc., as needed for your application.
### 4. Configuring Cal.diy
1. **Clone the Repository:** Get the Cal.diy repository onto your local environment.
2. **Update Configuration:** Modify the .env file to include your AWS resource details (like database endpoints).
### 5. Deploying on AWS
1. **Deploy Application:** Utilize AWS services such as EC2 or Elastic Beanstalk to deploy the Cal.diy application.
2. **Database Configuration:** Set up and connect the RDS instance to your application.
3. **Verify Deployment:** Ensure the application is operational and accessible.
### 6. Post-Deployment Steps
1. **DNS Setup:** Update your DNS settings to point to your AWS deployment.
2. **Monitoring and Scaling:** Leverage AWS monitoring tools to keep track of your application's performance and scale resources accordingly.
### Best Practices
1. Regularly update your deployment with the latest Cal.diy releases.
2. Adhere to AWS's recommended security practices.
### Additional Resources
[https://docs.aws.amazon.com/](https://docs.aws.amazon.com/)
+47
View File
@@ -0,0 +1,47 @@
# Azure
Deploying Cal.diy on Azure
## One Click Deployment
[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template)
## Manual Deployment
### 1. Prerequisites
1. Microsoft Azure account
2. Basic knowledge of Azure services
3. Access to Cal.diy source code
### 2. Azure Setup
1. **Create an Azure Account**
2. **Azure Portal:** Familiarize yourself with the Azure Portal.
### 3. Creating Azure Resources
1. **Creating Azure Resources:** In the Azure Portal, create a new resource group for your Cal.diy project.
2. **Create Azure Services:** Set up required services such as Azure App Service, Azure Database for PostgreSQL, etc.
#### Create Web App
#### Setup Database, Networking
#### Setup Monitoring
### 4. Configuring Cal.diy
1. **Clone Repository:** Clone the Cal.diy repository to your local machine.
2. **Configuration Files:** Update the .env file with necessary Azure configurations (e.g., database connection strings).
### 5. Deploying on Azure
1. **Deploying Web App:** Use Azure App Service to deploy the Cal.diy web application.
2. **Database Setup:** Deploy and configure the Azure Database for PostgreSQL with Cal.diy.
3. **Deployment Verification:** Ensure that the application is running smoothly post-deployment.
### 6. Post-Deployment Steps
1. **DNS Configuration:** Configure your DNS settings to point to the Azure deployment.
2. **Monitor and Scale:** Utilize Azure monitoring tools to keep track of performance and scale resources as needed.
@@ -0,0 +1,7 @@
# Elestio
You can deploy Cal.diy on Elestio using the button below.
## One Click Deployment
[![Deploy on Elestio](https://elest.io/images/logos/deploy-to-elestio-btn.png)](https://dash.elest.io/deploy?soft=Cal&id=347)
+102
View File
@@ -0,0 +1,102 @@
# GCP
Deploying Cal.diy on Google Cloud Platform (GCP). In this guide, we will go over the steps to deploy Cal.diy on Google Cloud Platform (GCP). We will cover how to create a virtual machine, configure it, install Docker, and finally deploy the Cal.diy application.
## One Click Deployment
[![Run on Google Cloud](https://storage.googleapis.com/gweb-cloudblog-publish/images/run_on_google_cloud.max-300x300.png)](https://deploy.cloud.run/?git_repo=https://github.com/calcom/cal.diy)
## Manual Deployment
### 1. Creating a Virtual Machine
#### Go to the GCP Console
First, open the Google Cloud Platform console by visiting [https://console.cloud.google.com/](https://console.cloud.google.com/).
#### Create a New Project
If you haven't already, create a new project by clicking on the "Select a project" dropdown menu and selecting "New Project". Enter a name for your project and click on the "Create" button.
#### Create a New VM Instance
Click on the navigation menu icon (three horizontal lines) and select "Compute Engine" from the list. Then, click on "VM instances" in the sub-menu. Click on the "Create" button to create a new virtual machine.
#### Select the Machine Type
Choose the machine type that best suits your needs. Ideally, 2 vCPUs and 2-4GB RAM is enough.
#### Set Up Networking
Make sure the "Networking" tab is selected and click on the "Add network" button. Choose the "Default" network and click on the "Add" button.
#### Create the Instance
Review the details of your virtual machine and click on the "Create" button to create the instance. Note the public IP of the VM.
### 2. Configuring the Virtual Machine
Once your virtual machine is created, you need to configure it to allow traffic on port 80.
#### Open Port 80
Click on the navigation menu icon (three horizontal lines) and select "Compute Engine" from the list. Then, click on "VM instances" in the sub-menu. Find your newly created instance and click on its name to enter its details page. Click on the "Firewalls" tab and then click on the "Add firewall rule" button. Select "Allow all" as the source and destination, set the protocol to "tcp" and the ports to "80". Click on the "Add" button to save the changes.
### 3. Installing Docker
Now that your virtual machine is configured, you need to install Docker on it.
#### Connect to Your Instance
Open a terminal window on your local machine and use SSH to connect to your virtual machine. You can find the external IP address or DNS name of your instance in the GCP console. Use the following command to connect to your instance:
```bash
gcloud ssh --project=[PROJECT_ID] --zone=[ZONE] [INSTANCE_NAME]
```
Replace `[PROJECT_ID]` with your project ID, `[ZONE]` with the zone where your instance is located, and `[INSTANCE_NAME]` with the name of your instance. You can also use web based SSH.
#### Install Docker
Once connected, update the package list and install Docker using the following commands:
```bash
sudo apt-get update
sudo apt-get install docker.io
```
#### Start the Docker Service
Start the Docker service using the following command:
```bash
sudo systemctl start docker
```
### 4. Deploying Cal.diy
Now that Docker is installed and running, you can deploy Cal.diy on your virtual machine.
#### Pull the Docker Image
Use the following command to pull the Cal.diy Docker image from Docker Hub:
```bash
docker pull cal/calcom
```
#### Run the Docker Container
Run the Docker container using the following command:
```bash
docker run -d -p 80:80 cal/cal.com
```
This command maps port 80 on your local machine to port 80 inside the container, so you can access Cal.diy from outside the container.
#### Access Cal.diy
Open a web browser and navigate to `http://localhost`. You should now be able to access the Cal.diy homepage.
Congratulations! You have successfully deployed Cal.diy on Google Cloud Platform.
@@ -0,0 +1,9 @@
# Northflank
You can deploy Cal.diy on Northflank using the button below.
The team at Northflank also have a [detailed blog post](https://northflank.com/guides/deploy-calcom-with-northflank) on deploying Cal.diy on their platform.
## One Click Deployment
[![Deploy on Northflank](https://northflank.com/button.svg)](https://app.northflank.com/s/account/stack-templates/deploy-calcom)
@@ -0,0 +1,9 @@
# Railway
You can deploy Cal.diy on Railway using the button below.
The team at Railway also have a [detailed blog post](https://blog.railway.app/p/calcom) on deploying Cal.diy on their platform.
## One Click Deployment
[![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/new/template/calcom)
+7
View File
@@ -0,0 +1,7 @@
# Render
You can deploy Cal.diy on Render using the button below.
## One Click Deployment
[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/calcom/docker)
+75
View File
@@ -0,0 +1,75 @@
# Vercel
## Requirements
Currently Vercel Pro Plan is required to be able to Deploy this application with Vercel, due to limitations on the number of serverless functions on the free plan.
You need a PostgresDB database hosted somewhere. [Supabase](https://supabase.com) offer a great free option while [Heroku](https://heroku.com) offers a low-cost option.
## One Click Deployment
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/calcom/cal.com)
## Manual Deployment
### Local settings
1. **Fork and clone the repository**
```bash
git clone https://github.com/<<your-fork>>/cal.com.git
```
2. **Set environment variables**
Copy the `.env.example` file in `apps/web`, rename it to `.env` and fill it with your settings (See [manual setup](/installation) and Obtaining the Google API Credentials)
3. **Install packages with yarn**
```bash
yarn install
```
4. **Set up the database using the Prisma schema**
Schema is located in at `packages/prisma/schema.prisma`.
```bash
yarn workspace @calcom/prisma db-deploy
```
5. **Open Prisma Studio**
To look at or modify the database content
```bash
yarn db-studio
```
6. **Open User model**
Click on the `User` model to add a new user record.
7. **Create new user**
Fill out the fields (remembering to encrypt your password with [BCrypt](https://bcrypt-generator.com/)) and click `Save 1 Record` to create your first user.
8. **Login**
Open a browser to port 3000 on your localhost and login with your just created, first user.
> Sometimes, yarn install might fail during deployment on Vercel, in which case, you can use `YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn install` as the install command instead.
#### Deployment
1. Create a new project on Vercel
2. Import from your forked repository
3. Set the Environment Variables
4. Set the root directory to `apps/web`
5. Override the build command to:
```bash
cd ../.. && yarn build --include-dependencies --no-deps
```
6. Hit Deploy
+114
View File
@@ -0,0 +1,114 @@
# Docker
### Introduction
This image can be found on DockerHub at [https://hub.docker.com/r/calcom/cal.diy](https://hub.docker.com/r/calcom/cal.diy). Note for ARM Users: Use the `-arm` suffix for pulling images. Example: `docker pull calcom/cal.diy:v5.6.19-arm`.
### Contributing
The Docker configuration for Cal.diy is officially maintained in the main Cal.diy repository. The Dockerfile and docker-compose.yml are located in the root of the calcom/cal.diy repository. If you want to contribute to the Docker setup, please open an issue or pull request in the main Cal.diy repository.
### Requirements
Make sure you have `docker` & `docker compose` installed on the server / system. Note: `docker compose` without the hyphen is now the primary method of using docker-compose, per the Docker documentation.
### Getting Started
Clone the Cal.diy repository
```bash
git clone https://github.com/calcom/cal.diy.git
```
Change into the directory
```bash
cd cal.diy
```
Prepare your configuration: Rename .env.example to .env and then update .env
```bash
cp .env.example .env
```
(optional) Pre-Pull the images by running the following command
```bash
docker compose pull
```
Start Cal.diy via docker compose (Most basic users, and for First Run) To run the complete stack, which includes a local Postgres database, Cal.diy web app, and Prisma Studio:
```bash
docker compose up -d
```
To run Cal.diy web app and Prisma Studio against a remote database, ensure that DATABASE_URL is configured for an available database and run:
```bash
docker compose up -d calcom studio
```
To run only the Cal.diy web app, ensure that DATABASE_URL is configured for an available database and run:
```bash
docker compose up -d calcom
```
1. Most configurations can be left as-is, but for configuration options see Important Run-time variables below. Update the appropriate values in your .env file, then proceed.
2. Open a browser to http://localhost:3000, or your defined NEXT_PUBLIC_WEBAPP_URL. The first time you run Cal.diy, a setup wizard will initialize. Define your first user, and you're ready to go!
### Update Calcom Instance
Stop the Cal.diy stack
```bash
docker compose down
```
Pull the latest changes
```bash
docker compose pull
```
Re-start the Cal.diy stack
```bash
docker compose up -d
```
1. Update environment variables as necessary.
### Configuration
#### Build-time variables
These variables must be provided at the time of the docker build, and can be provided by updating the .env file. Changing these is not required for evaluation, but may be required for running in production. Currently, if you require changes to these variables, you must follow the instructions to build and publish your own image.
- `NEXT_PUBLIC_TELEMETRY_KEY`
- `NEXT_PUBLIC_LICENSE_CONSENT`
- `NEXT_PUBLIC_WEBAPP_URL`
#### Important Run-time variables
- `NEXTAUTH_SECRET`
## Advanced Users - Building and Configuring
For more detailed instructions on how to build and configure your own Docker image, refer to the Dockerfile and docker-compose.yml in the root of the Cal.diy repository.
## Troubleshooting
- **Failed to commit changes: Invalid 'prisma.user.create()'**: Certain versions may have trouble creating a user if the field `metadata` is empty. Using an empty json object `{}` as the field value should resolve this issue. Also, the `id` field will autoincrement, so you may also try leaving the value of `id` as empty.
- **SSL edge termination**: If running behind a load balancer which handles SSL certificates, you will need to add the environmental variable `NODE_TLS_REJECT_UNAUTHORIZED=0` to prevent requests from being rejected. Only do this if you know what you are doing and trust the services/load-balancers directing traffic to your service.
### CLIENT_FETCH_ERROR
If you experience this error, it may be the way the default Auth callback in the server is using the WEBAPP_URL as a base url. The container does not necessarily have access to the same DNS as your local machine, and therefore needs to be configured to resolve to itself. You may be able to correct this by configuring `NEXTAUTH_URL=http://localhost:3000/api/auth`, to help the backend loop back to itself.
```
docker-calcom-1 | @calcom/web:start: [next-auth][error][CLIENT_FETCH_ERROR]
docker-calcom-1 | @calcom/web:start: https://next-auth.js.org/errors#client_fetch_error request to http://testing.localhost:3000/api/auth/session failed, reason: getaddrinfo ENOTFOUND testing.localhost
```
+124
View File
@@ -0,0 +1,124 @@
import { Callout } from "nextra/components";
# Cal.diy Self-Hosting Documentation
<Callout type="warning">
**Use at your own risk.** Cal.diy is the open source community edition of
Cal.com and it is intended for users who want to self-host their own Cal.diy
instance. **It is strictly recommended for personal, non-production use.**
Please review all installation and configuration steps carefully. Self-hosting
requires advanced knowledge of server administration, database management, and
securing sensitive data. Proceed only if you are comfortable with these
responsibilities.
</Callout>
<Callout type="important">
**For any commercial and enterprise-ready scheduling infrastructure, use
Cal.com**, not Cal.diy; hosted by us or get invited to on-prem enterprise
access here: https://cal.com/sales
</Callout>
## Getting Started
- [Installation](/installation) - Learn how to install and set up Cal.com
- [Database Migrations](/database-migrations) - Manage database schema changes
- [Upgrading](/upgrading) - Keep your instance up to date
- [Docker](/docker) - Deploy with Docker
- [Apps](/apps/google) - Set up third-party integrations
## Deployments
Deploy Cal.com on your preferred platform:
- [AWS](/deployments/aws)
- [Azure](/deployments/azure)
- [Elestio](/deployments/elestio)
- [GCP](/deployments/gcp)
- [Northflank](/deployments/northflank)
- [Railway](/deployments/railway)
- [Render](/deployments/render)
- [Vercel](/deployments/vercel)
## Differences between Cal.diy and Cal.com
Cal.com is the commercial application running on app.cal.com. It's free to sign up and battle-tested with millions
of monthly bookings by large organizations. Cal.diy is the new open source community edition which was spun out of Cal.com.
Like any diy project, Cal.com, Inc. does not guarantee security and safety of the open source project. Cal.diy is
community maintained and strictly recommended for personal, non-production use. Please use at your own risk.
For any commerical usage, please visit Cal.com or request enterprise access to our on-prem hosting: https://cal.com/sales.
Find all differences in features below (summarized):
| Feature | Cal.diy | Cal.com |
|--------------------------------------------------------------- |:-------:|:-------:|
| **SCHEDULING & BOOKINGS** | | |
| Event Types | ✅ | ✅ |
| Recurring Event Types | ✅ | ✅ |
| Seated Events | ✅ | ✅ |
| Paid Events (Stripe/PayPal) | ✅ | ✅ |
| Private Links (Hashed URLs) | ✅ | ✅ |
| Booking Management | ✅ | ✅ |
| Teams | ❌ | ✅ |
| Team Event Types (Round-Robin) | ❌ | ✅ |
| Team Event Types (Collective) | ❌ | ✅ |
| Managed Event Types | ❌ | ✅ |
| Instant Meeting | ❌ | ✅ |
| Organizations | ❌ | ✅ |
| **AVAILABILITY** | | |
| Availability Schedules | ✅ | ✅ |
| Date Overrides | ✅ | ✅ |
| Buffer Times | ✅ | ✅ |
| Minimum Notice / Booking Limits | ✅ | ✅ |
| Travel Schedules | ✅ | ✅ |
| Out-of-Office (OOO) | ✅ | ✅ |
| **CALENDAR INTEGRATIONS** | | |
| Google Calendar | ✅ | ✅ |
| Outlook / Office 365 Calendar | ✅ | ✅ |
| Apple Calendar | ✅ | ✅ |
| CalDAV | ✅ | ✅ |
| Lark Calendar | ✅ | ✅ |
| Feishu Calendar | ✅ | ✅ |
| Zoho Calendar | ✅ | ✅ |
| Exchange Calendar | ✅ | ✅ |
| ICS Feed Calendar | ✅ | ✅ |
| **VIDEO & CONFERENCING** | | |
| Cal Video (Daily.co) | ✅ | ✅ |
| Zoom | ✅ | ✅ |
| Google Meet | ✅ | ✅ |
| Microsoft Teams | ✅ | ✅ |
| Webex | ✅ | ✅ |
| Jitsi | ✅ | ✅ |
| Other conferencing (Whereby, Huddle01, etc.) | ✅ | ✅ |
| Cal.com Video Recordings | ❌ | ✅ |
| **AUTHENTICATION** | | |
| Email / Password Login | ✅ | ✅ |
| Google OAuth | ✅ | ✅ |
| Azure AD / Microsoft OAuth | ✅ | ✅ |
| SAML SSO | ❌ | ✅ |
| SCIM Directory Sync | ❌ | ✅ |
| Impersonation | ❌ | ✅ |
| **AUTOMATION & INTEGRATIONS** | | |
| Webhooks | ✅ | ✅ |
| Zapier | ✅ | ✅ |
| n8n / Make / Pipedream | ✅ | ✅ |
| CRM (HubSpot / Salesforce / Close, etc.) | ✅ | ✅ |
| Messaging (Discord, Telegram, WhatsApp, etc.) | ✅ | ✅ |
| AI Agents (Retell AI, ElevenLabs, Synthflow, etc.) | ✅ | ✅ |
| Analytics (GA4, GTM, PostHog, Fathom, etc.) | ✅ | ✅ |
| Workflows (Automations) | ❌ | ✅ |
| Routing Forms | ❌ | ✅ |
| **EMBED & API** | | |
| Embed (Inline, Popup, Floating Button) | ✅ | ✅ |
| API v2 (REST) | ✅ | ✅ |
| API Keys | ✅ | ✅ |
| Platform / OAuth Clients | ✅ | ✅ |
| API v1 (Legacy) | ❌ | ✅ |
| **ANALYTICS** | | |
| Insights Dashboard | ❌ | ✅ |
| **ADVANCED / ENTERPRISE** | | |
| Attributes & Segments | ❌ | ✅ |
| Delegation | ❌ | ✅ |
| Workspace Platform | ❌ | ✅ |
| Admin Panel | ❌ | ✅ |
| | [Install](/installation) |[Sign up](https://cal.com/signup)|
+142
View File
@@ -0,0 +1,142 @@
# Installation
There are multiple ways in which you can deploy Cal.diy, providing support for customers who want to implement Cal.diy within their existing infrastructure stack. Let's go through them one-by-one. You can find the instructions for deployment in our README file, which is the section you see when you scroll down in our GitHub repository, or if you've got a copy of Cal.diy downloaded already, you can open the file contained in the downloaded repository called `README.md`.
## Requirements
Cal.diy runs with pretty minimal hardware requirements by itself. The most intensive part for the software is when you actually build the software, but once it's running it's relatively lightweight.
Cal.diy works with a very large range of operating systems, as it only requires JavaScript execution to run. **Cal.diy is known to work well with Windows, Mac, Linux and BSD.** Although they do work well on all of them, for production deployments we would suggest Linux as the ideal platform. Any operating system that runs Node.js should be able to work too, but these are some of the common operating systems that we know work well.
To run Cal.diy, you need to install a few things. **Node.js, yarn, Git and PostgreSQL**. We use **Prisma** for database maintenance, and is one of the dependencies. We won't publish installation guides for these as they have their own resources available on the internet. If you're on Linux/BSD, all of these things should be readily available on your package manager. Your best bet is searching for something like **Debian 12 PostgreSQL**, which will give you a guide to installing and configuring PostgreSQL on Debian Linux 12.
> To ensure optimal performance and compatibility, we highly recommend using Node.js version 18 for your development environment. This version provides the best balance of stability, features, and security for this project. Please make sure to update your Node.js installation if necessary.
## Production Build
1. First, you git clone the repository with the following command, so you have a copy of the code.
```bash
git clone https://github.com/calcom/cal.diy.git
```
> If you are on windows, you would need to use the following command when cloning, with **admin privileges**:
>
> ```bash
> git clone -c core.symlinks=true https://github.com/calcom/cal.diy.git
> ```
2. Then, go into the directory you just cloned with
```bash
cd cal.diy
```
and run
```bash
yarn
```
to install all of the dependencies. Essentially, dependencies are just things that Cal.diy needs to install to be able to work.
3. Then, you just need to set up a couple of things. For that, we use a `.env` file. We just need to copy and paste the `.env.example` file and rename the copy to `.env`. Here you'll have a template with comments showing you the settings you need/might want to set.
> For preview deployments on **Vercel**, please leave the following environment variables empty:
>
> - **NEXTAUTH_URL**
> - **NEXT_PUBLIC_WEBSITE_URL**
> - **NEXT_PUBLIC_WEBAPP_URL**
4. Next, use the command
```bash
openssl rand -base64 32
```
(or another secret generator tool if you prefer) to generate a key and add it under `NEXTAUTH_SECRET` in the .env file.
5. You'll also want to fill out the `.env.appStore` file similar to the `.env` file as this includes keys to enable apps.
#### Production Build
For a production build, **please make sure** to set up [E2E testing](/docs/developing/local-development#e2e-testing) and [Upgrading](/upgrading) the database from earlier version, and the proceed to build as follows:
```bash
yarn build
yarn start
```
> **Warning:** Please make sure to upgrade your database before you build for production
## Cron Jobs
There are a few features which require cron job setup. When self-hosting, you would probably need to set up cron jobs according to the hosting platform you are using. For instance, if you are hosting on Vercel, you would need to set up cron jobs by following [this document](https://vercel.com/guides/how-to-setup-cron-jobs).
At cal.diy, the cron jobs are found in the following directory:
```
/apps/web/app/api/cron
```
## App store seeder
> We recommend using the admin UI/wizard instead of the seeder to enable app store apps
## API
#### Step 1
Copy the .env files from their respective example files:
```bash
cp apps/api/v2/.env.example apps/api/v2/.env
cp .env.example .env
```
#### Step 2
Install packages with yarn:
```bash
yarn
```
### Running API server
Build & Run the API V2 with yarn:
```bash
yarn workspace @calcom/api-v2 build
yarn workspace @calcom/api-v2 start
```
## One Click Deployments
### Azure
[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template)
### GCP
[![Run on Google Cloud](https://storage.googleapis.com/gweb-cloudblog-publish/images/run_on_google_cloud.max-300x300.png)](https://deploy.cloud.run/?git_repo=https://github.com/calcom/docker)
### Railway
[![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/new/template/calcom)
### Render
[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/calcom/docker)
### Vercel
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/calcom/cal.diy)
## Elestio
[![Deploy on Elestio](https://elest.io/images/logos/deploy-to-elestio-btn.png)](https://elest.io/open-source/cal.diy)
## Other environments
Cal.diy effectively is just a Next.js application, so any possible solution you find online pertaining to Next.js applications should work. One example is Netlify, which is pretty similar to Vercel. It says it supports Next.js, so you can deploy Cal.diy on Netlify. Refer to Netlify's docs on Next.js projects for more info. Another example is on a self hosted instance people may want to configure complex reverse proxies, SSL gateways and all sorts of other stuff. We can't officially support every configuration, but for any edge case where you may want to deploy Cal.diy with X, just refer to X's docs on Next.js applications and you should be fine. That's it. Your new self hosted Cal.diy instance should now be up and running.
+50
View File
@@ -0,0 +1,50 @@
# Upgrading
Pull the current version:
```bash
git pull
```
Check if dependencies got added/updated/removed
```bash
yarn
```
Apply database migrations by running **one of** the following commands:
In a development environment, run:
```bash
yarn workspace @calcom/prisma db-migrate
```
(this can clear your development database in some cases)
In a production environment, run:
```bash
yarn workspace @calcom/prisma db-deploy
```
Check for `.env` variables changes
```bash
yarn predev
```
Start the server. In a development environment, just do:
```bash
yarn dev
```
For a production build, run for example:
```bash
yarn build
yarn start
```
Enjoy the new version.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
export { useMDXComponents } from "nextra-theme-docs";
+6
View File
@@ -0,0 +1,6 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
/// <reference path="./.next/types/routes.d.ts" />
// NOTE: This file should not be edited
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
+7
View File
@@ -0,0 +1,7 @@
import nextra from "nextra";
const withNextra = nextra({});
export default withNextra({
reactStrictMode: true,
});
+21
View File
@@ -0,0 +1,21 @@
{
"name": "@calcom/docs",
"version": "0.0.1",
"private": true,
"scripts": {
"dev": "next --turbopack",
"build": "next build",
"start": "next start"
},
"dependencies": {
"next": "^15.1.0",
"nextra": "^4.2.0",
"nextra-theme-docs": "^4.2.0",
"react": "^19.0.0",
"react-dom": "^19.0.0"
},
"devDependencies": {
"@types/react": "^19.0.0",
"typescript": "^5.0.0"
}
}
+13
View File
@@ -0,0 +1,13 @@
<svg width="152" height="26" viewBox="0 0 152 26" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M71.0387 25.9982C70.0052 25.9982 69.1747 25.9059 68.5471 25.7214L69.1008 22.1501C69.6176 22.2793 70.1805 22.3439 70.7896 22.3439C71.4724 22.3439 72.0446 22.1409 72.506 21.7348C72.9858 21.3472 73.3365 20.8212 73.558 20.1568L73.7518 19.5478L68.0488 5.81641H72.5614L75.3575 14.0386C75.6158 14.7399 75.8189 15.5059 75.9665 16.3364C76.1142 15.5059 76.3172 14.7399 76.5756 14.0386L79.3717 5.81641H83.8011L77.4338 21.1258C76.7694 22.6945 75.9296 23.8942 74.9145 24.7247C73.9179 25.5737 72.626 25.9982 71.0387 25.9982Z" fill="white"/>
<path d="M63.6239 5.81487H67.3613V20.2107H63.6239V5.81487ZM63.2363 2.40971C63.2363 1.80066 63.4486 1.28388 63.8731 0.859393C64.316 0.434902 64.8512 0.222656 65.4787 0.222656C66.1247 0.222656 66.6599 0.434902 67.0844 0.859393C67.5089 1.28388 67.7212 1.80066 67.7212 2.40971C67.7212 3.03722 67.5089 3.56322 67.0844 3.98771C66.6599 4.4122 66.1247 4.62445 65.4787 4.62445C64.8512 4.62445 64.316 4.4122 63.8731 3.98771C63.4486 3.54476 63.2363 3.01876 63.2363 2.40971Z" fill="white"/>
<path d="M53.1266 20.5694C51.8346 20.5694 50.6442 20.2372 49.5553 19.5727C48.4664 18.8899 47.5989 17.9763 46.953 16.832C46.3255 15.6877 46.0117 14.4327 46.0117 13.0669C46.0117 11.7012 46.3255 10.4462 46.953 9.30189C47.5989 8.13916 48.4664 7.21635 49.5553 6.53347C50.6442 5.8506 51.8346 5.50916 53.1266 5.50916C54.3078 5.50916 55.2582 5.73063 55.978 6.17358C56.6978 6.59807 57.2607 7.21635 57.6668 8.02842V0H61.4041V20.2095H57.7775V17.8563C57.353 18.7238 56.7716 19.3974 56.0334 19.8773C55.3136 20.3387 54.3447 20.5694 53.1266 20.5694ZM49.7491 13.0393C49.7491 13.7775 49.9152 14.4696 50.2474 15.1156C50.5981 15.7431 51.0687 16.2506 51.6593 16.6382C52.2683 17.0073 52.9605 17.1919 53.7356 17.1919C54.5292 17.1919 55.2306 17.0073 55.8396 16.6382C56.4671 16.2691 56.947 15.7708 57.2792 15.1433C57.6114 14.5158 57.7775 13.8236 57.7775 13.0669C57.7775 12.3102 57.6114 11.6181 57.2792 10.9906C56.947 10.3447 56.4671 9.83712 55.8396 9.468C55.2306 9.08042 54.5292 8.88663 53.7356 8.88663C52.9605 8.88663 52.2683 9.08042 51.6593 9.468C51.0502 9.83712 50.5796 10.3354 50.2474 10.9629C49.9152 11.5905 49.7491 12.2826 49.7491 13.0393Z" fill="white"/>
<path d="M42.9349 20.5713C42.2336 20.5713 41.643 20.3314 41.1631 19.8515C40.6833 19.3717 40.4434 18.7995 40.4434 18.1351C40.4434 17.4707 40.6833 16.9078 41.1631 16.4464C41.643 15.9665 42.2336 15.7266 42.9349 15.7266C43.6363 15.7266 44.2176 15.9665 44.679 16.4464C45.1589 16.9078 45.3988 17.4707 45.3988 18.1351C45.3988 18.818 45.1589 19.3993 44.679 19.8792C44.2176 20.3406 43.6363 20.5713 42.9349 20.5713Z" fill="white"/>
<path d="M34.9941 0H38.7315V20.2095H34.9941V0Z" fill="white"/>
<path d="M24.4967 20.5719C23.2047 20.5719 22.0143 20.2397 20.9254 19.5753C19.8365 18.8924 18.9691 17.9788 18.3231 16.8346C17.6956 15.6903 17.3818 14.4353 17.3818 13.0695C17.3818 11.7038 17.6956 10.4487 18.3231 9.30446C18.9691 8.14172 19.8365 7.21891 20.9254 6.53603C22.0143 5.85316 23.2047 5.51172 24.4967 5.51172C25.6779 5.51172 26.6284 5.73319 27.3482 6.17614C28.0864 6.61909 28.6585 7.25582 29.0646 8.08635V5.81624H32.7743V20.212H29.1476V17.8589C28.7231 18.7263 28.1418 19.4 27.4035 19.8798C26.6837 20.3412 25.7148 20.5719 24.4967 20.5719ZM21.1192 13.0418C21.1192 13.7801 21.2853 14.4722 21.6175 15.1181C21.9682 15.7456 22.4388 16.2532 23.0294 16.6408C23.6385 17.0099 24.3306 17.1945 25.1057 17.1945C25.8993 17.1945 26.6007 17.0099 27.2097 16.6408C27.8372 16.2716 28.3171 15.7733 28.6493 15.1458C28.9815 14.5183 29.1476 13.8262 29.1476 13.0695C29.1476 12.3128 28.9815 11.6207 28.6493 10.9932C28.3171 10.3472 27.8372 9.83968 27.2097 9.47056C26.6007 9.08298 25.8993 8.88919 25.1057 8.88919C24.3306 8.88919 23.6385 9.08298 23.0294 9.47056C22.4204 9.83968 21.9497 10.338 21.6175 10.9655C21.2853 11.593 21.1192 12.2851 21.1192 13.0418Z" fill="white"/>
<path d="M10.1047 20.5753C8.22221 20.5753 6.50579 20.1323 4.95547 19.2465C3.42361 18.3421 2.21474 17.124 1.32884 15.5921C0.442947 14.0603 0 12.3808 0 10.5536C0 8.708 0.424491 7.01926 1.27347 5.4874C2.14091 3.93709 3.34056 2.71898 4.87242 1.83309C6.40428 0.928737 8.14838 0.476562 10.1047 0.476562C11.6735 0.476562 13.0208 0.72572 14.1466 1.22404C15.2909 1.7039 16.306 2.46983 17.1919 3.52183L14.4512 5.90267C13.2884 4.68456 11.8396 4.07551 10.1047 4.07551C8.88663 4.07551 7.81617 4.37081 6.89337 4.96141C5.97056 5.53354 5.26 6.31793 4.76168 7.31456C4.26337 8.29274 4.01421 9.37242 4.01421 10.5536C4.01421 11.7348 4.26337 12.8145 4.76168 13.7927C5.27846 14.7708 5.99824 15.546 6.92105 16.1181C7.86231 16.6903 8.95123 16.9763 10.1878 16.9763C11.9965 16.9763 13.473 16.3488 14.6173 15.0938L17.4411 17.5023C16.6659 18.4436 15.6508 19.1911 14.3958 19.7448C13.1592 20.2985 11.7289 20.5753 10.1047 20.5753Z" fill="white"/>
<path d="M146.354 20.6554C143.926 20.6554 141.924 19.8121 140.349 18.1256L142.879 15.8182C143.935 17.0043 145.066 17.5974 146.271 17.5974C146.901 17.5974 147.392 17.4584 147.744 17.1804C148.096 16.9024 148.272 16.541 148.272 16.0962C148.272 15.6884 148.096 15.3734 147.744 15.151C147.41 14.91 146.706 14.6598 145.631 14.4004C143.87 13.9741 142.684 13.3903 142.073 12.649C141.48 11.9076 141.183 10.9902 141.183 9.8968C141.183 8.5994 141.665 7.543 142.629 6.7276C143.592 5.89356 144.908 5.47656 146.576 5.47656C147.781 5.47656 148.791 5.6619 149.607 6.0326C150.441 6.4032 151.219 7.0519 151.942 7.9786L149.217 10.0636C148.569 9.0257 147.716 8.5068 146.66 8.5068C146.122 8.5068 145.687 8.618 145.353 8.8404C145.02 9.0442 144.853 9.3593 144.853 9.7856C144.853 10.0821 144.973 10.3416 145.214 10.564C145.474 10.7678 146.002 10.9717 146.799 11.1756C148.782 11.6945 150.135 12.3339 150.858 13.0938C151.599 13.8536 151.97 14.8174 151.97 15.985C151.97 16.856 151.719 17.653 151.219 18.3758C150.737 19.08 150.07 19.636 149.217 20.0438C148.365 20.4515 147.41 20.6554 146.354 20.6554Z" fill="#575757"/>
<path d="M133.721 20.6554C132.368 20.6554 131.118 20.3218 129.968 19.6546C128.838 18.9688 127.938 18.0422 127.271 16.8746C126.604 15.707 126.271 14.4374 126.271 13.066C126.271 11.676 126.604 10.4064 127.271 9.2574C127.938 8.0898 128.866 7.1724 130.052 6.5052C131.238 5.81943 132.563 5.47656 134.027 5.47656C135.306 5.47656 136.455 5.7175 137.474 6.1994C138.494 6.6627 139.309 7.3206 139.921 8.1732L137.03 10.5362C136.696 10.0358 136.26 9.6373 135.723 9.3408C135.186 9.0442 134.602 8.896 133.972 8.896C133.193 8.896 132.508 9.0906 131.914 9.4798C131.321 9.8504 130.858 10.3508 130.524 10.981C130.191 11.6111 130.024 12.3061 130.024 13.066C130.024 13.8073 130.191 14.5023 130.524 15.151C130.877 15.7811 131.358 16.2908 131.97 16.68C132.582 17.0506 133.277 17.236 134.055 17.236C134.741 17.236 135.334 17.0877 135.834 16.7912C136.335 16.4946 136.789 16.0684 137.196 15.5124L139.921 17.8754C138.475 19.7287 136.409 20.6554 133.721 20.6554Z" fill="#575757"/>
<path d="M117.6 20.6549C116.135 20.6549 114.82 20.3213 113.652 19.6541C112.484 18.9684 111.567 18.051 110.9 16.9019C110.233 15.7343 109.899 14.4648 109.899 13.0933C109.899 11.7218 110.233 10.4523 110.9 9.2847C111.567 8.1171 112.484 7.1997 113.652 6.5325C114.82 5.84677 116.135 5.50391 117.6 5.50391C119.064 5.50391 120.38 5.84677 121.547 6.5325C122.715 7.1997 123.632 8.1171 124.299 9.2847C124.967 10.4523 125.3 11.7218 125.3 13.0933C125.3 14.4648 124.967 15.7343 124.299 16.9019C123.632 18.051 122.715 18.9684 121.547 19.6541C120.38 20.3213 119.064 20.6549 117.6 20.6549ZM113.652 13.0933C113.652 13.8532 113.809 14.5482 114.125 15.1783C114.458 15.8084 114.921 16.3088 115.515 16.6795C116.126 17.0502 116.821 17.2355 117.6 17.2355C118.378 17.2355 119.064 17.0502 119.657 16.6795C120.268 16.3088 120.732 15.8084 121.047 15.1783C121.38 14.5482 121.547 13.8532 121.547 13.0933C121.547 12.3334 121.38 11.6384 121.047 11.0083C120.713 10.3782 120.25 9.8778 119.657 9.5071C119.064 9.1179 118.378 8.9233 117.6 8.9233C116.821 8.9233 116.135 9.1179 115.542 9.5071C114.949 9.8778 114.486 10.3782 114.152 11.0083C113.819 11.6384 113.652 12.3334 113.652 13.0933Z" fill="#575757"/>
<path d="M92 0.832031H98.95C101.137 0.832031 102.972 1.24903 104.455 2.08303C105.956 2.91703 107.077 4.0661 107.819 5.53023C108.56 6.9944 108.931 8.6809 108.931 10.5898C108.931 12.4802 108.56 14.1575 107.819 15.6216C107.077 17.0858 105.956 18.2348 104.455 19.0688C102.972 19.8843 101.137 20.292 98.95 20.292H92V0.832031ZM98.478 16.7892C100.665 16.7892 102.277 16.2332 103.315 15.1212C104.371 13.9907 104.9 12.4802 104.9 10.5898C104.9 8.6994 104.371 7.189 103.315 6.0584C102.277 4.90937 100.665 4.33483 98.478 4.33483H95.892V16.7892H98.478Z" fill="#575757"/>
</svg>

After

Width:  |  Height:  |  Size: 8.4 KiB

+13
View File
@@ -0,0 +1,13 @@
<svg width="152" height="26" viewBox="0 0 152 26" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M71.0387 25.9982C70.0052 25.9982 69.1747 25.9059 68.5471 25.7214L69.1008 22.1501C69.6176 22.2793 70.1805 22.3439 70.7896 22.3439C71.4724 22.3439 72.0446 22.1409 72.506 21.7348C72.9858 21.3472 73.3365 20.8212 73.558 20.1568L73.7518 19.5478L68.0488 5.81641H72.5614L75.3575 14.0386C75.6158 14.7399 75.8189 15.5059 75.9665 16.3364C76.1142 15.5059 76.3172 14.7399 76.5756 14.0386L79.3717 5.81641H83.8011L77.4338 21.1258C76.7694 22.6945 75.9296 23.8942 74.9145 24.7247C73.9179 25.5737 72.626 25.9982 71.0387 25.9982Z" fill="#292929"/>
<path d="M63.6239 5.81487H67.3613V20.2107H63.6239V5.81487ZM63.2363 2.40971C63.2363 1.80066 63.4486 1.28388 63.8731 0.859393C64.316 0.434902 64.8512 0.222656 65.4787 0.222656C66.1247 0.222656 66.6599 0.434902 67.0844 0.859393C67.5089 1.28388 67.7212 1.80066 67.7212 2.40971C67.7212 3.03722 67.5089 3.56322 67.0844 3.98771C66.6599 4.4122 66.1247 4.62445 65.4787 4.62445C64.8512 4.62445 64.316 4.4122 63.8731 3.98771C63.4486 3.54476 63.2363 3.01876 63.2363 2.40971Z" fill="#292929"/>
<path d="M53.1266 20.5694C51.8346 20.5694 50.6442 20.2372 49.5553 19.5727C48.4664 18.8899 47.5989 17.9763 46.953 16.832C46.3255 15.6877 46.0117 14.4327 46.0117 13.0669C46.0117 11.7012 46.3255 10.4462 46.953 9.30189C47.5989 8.13916 48.4664 7.21635 49.5553 6.53347C50.6442 5.8506 51.8346 5.50916 53.1266 5.50916C54.3078 5.50916 55.2582 5.73063 55.978 6.17358C56.6978 6.59807 57.2607 7.21635 57.6668 8.02842V0H61.4041V20.2095H57.7775V17.8563C57.353 18.7238 56.7716 19.3974 56.0334 19.8773C55.3136 20.3387 54.3447 20.5694 53.1266 20.5694ZM49.7491 13.0393C49.7491 13.7775 49.9152 14.4696 50.2474 15.1156C50.5981 15.7431 51.0687 16.2506 51.6593 16.6382C52.2683 17.0073 52.9605 17.1919 53.7356 17.1919C54.5292 17.1919 55.2306 17.0073 55.8396 16.6382C56.4671 16.2691 56.947 15.7708 57.2792 15.1433C57.6114 14.5158 57.7775 13.8236 57.7775 13.0669C57.7775 12.3102 57.6114 11.6181 57.2792 10.9906C56.947 10.3447 56.4671 9.83712 55.8396 9.468C55.2306 9.08042 54.5292 8.88663 53.7356 8.88663C52.9605 8.88663 52.2683 9.08042 51.6593 9.468C51.0502 9.83712 50.5796 10.3354 50.2474 10.9629C49.9152 11.5905 49.7491 12.2826 49.7491 13.0393Z" fill="#292929"/>
<path d="M42.9349 20.5713C42.2336 20.5713 41.643 20.3314 41.1631 19.8515C40.6833 19.3717 40.4434 18.7995 40.4434 18.1351C40.4434 17.4707 40.6833 16.9078 41.1631 16.4464C41.643 15.9665 42.2336 15.7266 42.9349 15.7266C43.6363 15.7266 44.2176 15.9665 44.679 16.4464C45.1589 16.9078 45.3988 17.4707 45.3988 18.1351C45.3988 18.818 45.1589 19.3993 44.679 19.8792C44.2176 20.3406 43.6363 20.5713 42.9349 20.5713Z" fill="#292929"/>
<path d="M34.9941 0H38.7315V20.2095H34.9941V0Z" fill="#292929"/>
<path d="M24.4967 20.5719C23.2047 20.5719 22.0143 20.2397 20.9254 19.5753C19.8365 18.8924 18.9691 17.9788 18.3231 16.8346C17.6956 15.6903 17.3818 14.4353 17.3818 13.0695C17.3818 11.7038 17.6956 10.4487 18.3231 9.30446C18.9691 8.14172 19.8365 7.21891 20.9254 6.53603C22.0143 5.85316 23.2047 5.51172 24.4967 5.51172C25.6779 5.51172 26.6284 5.73319 27.3482 6.17614C28.0864 6.61909 28.6585 7.25582 29.0646 8.08635V5.81624H32.7743V20.212H29.1476V17.8589C28.7231 18.7263 28.1418 19.4 27.4035 19.8798C26.6837 20.3412 25.7148 20.5719 24.4967 20.5719ZM21.1192 13.0418C21.1192 13.7801 21.2853 14.4722 21.6175 15.1181C21.9682 15.7456 22.4388 16.2532 23.0294 16.6408C23.6385 17.0099 24.3306 17.1945 25.1057 17.1945C25.8993 17.1945 26.6007 17.0099 27.2097 16.6408C27.8372 16.2716 28.3171 15.7733 28.6493 15.1458C28.9815 14.5183 29.1476 13.8262 29.1476 13.0695C29.1476 12.3128 28.9815 11.6207 28.6493 10.9932C28.3171 10.3472 27.8372 9.83968 27.2097 9.47056C26.6007 9.08298 25.8993 8.88919 25.1057 8.88919C24.3306 8.88919 23.6385 9.08298 23.0294 9.47056C22.4204 9.83968 21.9497 10.338 21.6175 10.9655C21.2853 11.593 21.1192 12.2851 21.1192 13.0418Z" fill="#292929"/>
<path d="M10.1047 20.5753C8.22221 20.5753 6.50579 20.1323 4.95547 19.2465C3.42361 18.3421 2.21474 17.124 1.32884 15.5921C0.442947 14.0603 0 12.3808 0 10.5536C0 8.708 0.424491 7.01926 1.27347 5.4874C2.14091 3.93709 3.34056 2.71898 4.87242 1.83309C6.40428 0.928737 8.14838 0.476562 10.1047 0.476562C11.6735 0.476562 13.0208 0.72572 14.1466 1.22404C15.2909 1.7039 16.306 2.46983 17.1919 3.52183L14.4512 5.90267C13.2884 4.68456 11.8396 4.07551 10.1047 4.07551C8.88663 4.07551 7.81617 4.37081 6.89337 4.96141C5.97056 5.53354 5.26 6.31793 4.76168 7.31456C4.26337 8.29274 4.01421 9.37242 4.01421 10.5536C4.01421 11.7348 4.26337 12.8145 4.76168 13.7927C5.27846 14.7708 5.99824 15.546 6.92105 16.1181C7.86231 16.6903 8.95123 16.9763 10.1878 16.9763C11.9965 16.9763 13.473 16.3488 14.6173 15.0938L17.4411 17.5023C16.6659 18.4436 15.6508 19.1911 14.3958 19.7448C13.1592 20.2985 11.7289 20.5753 10.1047 20.5753Z" fill="#292929"/>
<path d="M146.354 20.6554C143.926 20.6554 141.924 19.8121 140.349 18.1256L142.879 15.8182C143.935 17.0043 145.066 17.5974 146.271 17.5974C146.901 17.5974 147.392 17.4584 147.744 17.1804C148.096 16.9024 148.272 16.541 148.272 16.0962C148.272 15.6884 148.096 15.3734 147.744 15.151C147.41 14.91 146.706 14.6598 145.631 14.4004C143.87 13.9741 142.684 13.3903 142.073 12.649C141.48 11.9076 141.183 10.9902 141.183 9.8968C141.183 8.5994 141.665 7.543 142.629 6.7276C143.592 5.89356 144.908 5.47656 146.576 5.47656C147.781 5.47656 148.791 5.6619 149.607 6.0326C150.441 6.4032 151.219 7.0519 151.942 7.9786L149.217 10.0636C148.569 9.0257 147.716 8.5068 146.66 8.5068C146.122 8.5068 145.687 8.618 145.353 8.8404C145.02 9.0442 144.853 9.3593 144.853 9.7856C144.853 10.0821 144.973 10.3416 145.214 10.564C145.474 10.7678 146.002 10.9717 146.799 11.1756C148.782 11.6945 150.135 12.3339 150.858 13.0938C151.599 13.8536 151.97 14.8174 151.97 15.985C151.97 16.856 151.719 17.653 151.219 18.3758C150.737 19.08 150.07 19.636 149.217 20.0438C148.365 20.4515 147.41 20.6554 146.354 20.6554Z" fill="#575757"/>
<path d="M133.721 20.6554C132.368 20.6554 131.118 20.3218 129.968 19.6546C128.838 18.9688 127.938 18.0422 127.271 16.8746C126.604 15.707 126.271 14.4374 126.271 13.066C126.271 11.676 126.604 10.4064 127.271 9.2574C127.938 8.0898 128.866 7.1724 130.052 6.5052C131.238 5.81943 132.563 5.47656 134.027 5.47656C135.306 5.47656 136.455 5.7175 137.474 6.1994C138.494 6.6627 139.309 7.3206 139.921 8.1732L137.03 10.5362C136.696 10.0358 136.26 9.6373 135.723 9.3408C135.186 9.0442 134.602 8.896 133.972 8.896C133.193 8.896 132.508 9.0906 131.914 9.4798C131.321 9.8504 130.858 10.3508 130.524 10.981C130.191 11.6111 130.024 12.3061 130.024 13.066C130.024 13.8073 130.191 14.5023 130.524 15.151C130.877 15.7811 131.358 16.2908 131.97 16.68C132.582 17.0506 133.277 17.236 134.055 17.236C134.741 17.236 135.334 17.0877 135.834 16.7912C136.335 16.4946 136.789 16.0684 137.196 15.5124L139.921 17.8754C138.475 19.7287 136.409 20.6554 133.721 20.6554Z" fill="#575757"/>
<path d="M117.6 20.6549C116.135 20.6549 114.82 20.3213 113.652 19.6541C112.484 18.9684 111.567 18.051 110.9 16.9019C110.233 15.7343 109.899 14.4648 109.899 13.0933C109.899 11.7218 110.233 10.4523 110.9 9.2847C111.567 8.1171 112.484 7.1997 113.652 6.5325C114.82 5.84677 116.135 5.50391 117.6 5.50391C119.064 5.50391 120.38 5.84677 121.547 6.5325C122.715 7.1997 123.632 8.1171 124.299 9.2847C124.967 10.4523 125.3 11.7218 125.3 13.0933C125.3 14.4648 124.967 15.7343 124.299 16.9019C123.632 18.051 122.715 18.9684 121.547 19.6541C120.38 20.3213 119.064 20.6549 117.6 20.6549ZM113.652 13.0933C113.652 13.8532 113.809 14.5482 114.125 15.1783C114.458 15.8084 114.921 16.3088 115.515 16.6795C116.126 17.0502 116.821 17.2355 117.6 17.2355C118.378 17.2355 119.064 17.0502 119.657 16.6795C120.268 16.3088 120.732 15.8084 121.047 15.1783C121.38 14.5482 121.547 13.8532 121.547 13.0933C121.547 12.3334 121.38 11.6384 121.047 11.0083C120.713 10.3782 120.25 9.8778 119.657 9.5071C119.064 9.1179 118.378 8.9233 117.6 8.9233C116.821 8.9233 116.135 9.1179 115.542 9.5071C114.949 9.8778 114.486 10.3782 114.152 11.0083C113.819 11.6384 113.652 12.3334 113.652 13.0933Z" fill="#575757"/>
<path d="M92 0.832031H98.95C101.137 0.832031 102.972 1.24903 104.455 2.08303C105.956 2.91703 107.077 4.0661 107.819 5.53023C108.56 6.9944 108.931 8.6809 108.931 10.5898C108.931 12.4802 108.56 14.1575 107.819 15.6216C107.077 17.0858 105.956 18.2348 104.455 19.0688C102.972 19.8843 101.137 20.292 98.95 20.292H92V0.832031ZM98.478 16.7892C100.665 16.7892 102.277 16.2332 103.315 15.1212C104.371 13.9907 104.9 12.4802 104.9 10.5898C104.9 8.6994 104.371 7.189 103.315 6.0584C102.277 4.90937 100.665 4.33483 98.478 4.33483H95.892V16.7892H98.478Z" fill="#575757"/>
</svg>

After

Width:  |  Height:  |  Size: 8.4 KiB

+36
View File
@@ -0,0 +1,36 @@
{
"compilerOptions": {
"target": "ES2017",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": false,
"noEmit": true,
"incremental": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"plugins": [
{
"name": "next"
}
]
},
"include": [
"**/*.mdx",
"**/*.ts",
"**/*.tsx",
"next-env.d.ts",
".next/types/**/*.ts"
],
"exclude": [
"node_modules"
]
}
+2785 -35
View File
File diff suppressed because it is too large Load Diff