Initial Setup
Процесс развертывания проекта Сal.com начинается с создания форка официального репозитория и его клонирования на локальный компьютер. После этого необходимо установить все указанные зависимости, выполнив команду установки в корневой директории проекта.
Environment Variables
Следующим важным шагом является настройка переменных окружения. Для этого нужно скопировать файл .env.example и переименовать его в .env. В файле .env среди множества переменных есть ключевые переменные, которые нужно заполнить обязательно для развертывания проекта. Эти значения необходимо также указать в разделе Environment Variables на Vercel.
Значения переменных CALENDSO_ENCRYPTION_KEY и NEXTAUTH_SECRET генерируются с помощью openssl.
CALENDSO_ENCRYPTION_KEY=
NEXTAUTH_SECRET=
Переменная NEXT_PUBLIC_API_V2_URL остается с дефолтным значением.
Переменные DATABASE_URL и DATABASE_DIRECT_URL заполняются значениями из раздела настроек вашей базы данных Supabase. DATABASE_URL соответствует Transaction Mode, а DATABASE_DIRECT_URL – Session Mode.
DATABASE_DIRECT_URL=””
Database
В официальном репозитории cal.com содержится готовая схема Prisma, описывающая структуру базы данных проекта. Чтобы синхронизировать эту схему с Supabase, необходимо выполнить миграцию, которая создаст необходимые таблицы и поля в вашей базе данных.
User
Для подготовки необходимых данных аккаунта используется графический интерфейс Prisma Studio. С его помощью в таблицу User добавляется запись, включающая email, username и пустой объект metadata. В таблице UserPassword создается соответствующая запись с паролем, зашифрованным методом BCrypt.
Deployment
Для сборки проекта требуется подключить на платформе Vercel аккаунт Prо.
При настройке деплоя в Vercel для проекта, в разделе Project Settings задаются пользовательские настройки, которые переопределяют стандартные команды.
Root Directory: apps/web
Настройка указывает Vercel, что корневая директория проекта для деплоя находится в поддиректории apps/web репозитория.
Build command: cd ../.. && yarn build –include-dependencies –no-deps
Команда сборки переходит на два уровня вверх от apps/web, чтобы достичь основной директории проекта. Затем yarn выполняет сборку, включая зависимости.
Install command: YARN_ENABLE_IMMUTABLE_INSTALLS=false yarn install
Команда установки отключает режим “immutable installs” в Yarn, позволяя при необходимости модифицировать файлы yarn.lock и node_modules.
Если после запуска проекта в получаете ошибку This Serverless Function has timed out, то переустановите регион в разделе Function Region. Например, если ваша база данных находится во Франкфурте, то рекомендуется разместить ваши серверлесс-функции в этом же регионе для минимизации задержек.
Подключение календаря
Во вкладке App Store нужно выбрать сервис календаря, например, Zoho. При первой попытке установки приложения возможно появление ошибки валидации.
Введите все необходимые данные в поле keys в таблице App.