Как запустить свой сервис бронирования без лицензионных ключей и корпоративного кода
Знакомая история: вы находите классный open-source проект, начинаете его изучать и вдруг натыкаетесь на надпись «Enterprise Edition». Хотите командные функции? Платите. Нужна интеграция с SSO? Покупайте лицензию. Это классическая модель Open Core, по которой живет и популярный сервис Cal.com. Но недавно ребята из этой же команды выложили нечто особенное — репозиторий cal.diy.
Я наткнулся на него случайно и сначала не понял, зачем делать форк собственного проекта. Оказалось, это ответ на запросы тех, кто хочет просто планировщик встреч «для себя» или своей небольшой команды, без маркетингового шума и платных функций, зашитых в код.
Что это за проект
Cal.diy — это полностью открытая версия Cal.com, из которой вырезали все проприетарные куски. Здесь нет модулей для огромных корпораций, нет аналитики для HR-департаментов и, самое главное, нет проверки лицензионного ключа. Весь код идет под лицензией MIT.
Проект ориентирован на self-hosting. Если вы любите держать свои данные под полным контролем, не хотите зависеть от облачных подписок и готовы потратить полчаса на настройку сервера, это ваш вариант. По сути, это скелет мощной системы бронирования, который можно докрутить под любые задачи.
В чем отличия от основной версии
Главное изменение — в философии. В оригинальном Cal.com вы постоянно упираетесь в платные функции. В версии DIY их просто удалили, чтобы они не мешались.
- Никаких Enterprise-фич. Команды, организации, сложные воркфлоу и SSO ушли под нож. Остался чистый функционал для индивидуального использования.
- Никаких ключей. Приложение работает сразу после установки. Вам не нужно регистрировать аккаунт на официальном сайте, чтобы получить доступ к админке.
- Полный MIT. Весь код в репозитории открыт. Вы можете менять его как угодно, форкать и использовать в своих проектах без оглядки на коммерческие ограничения «старшего брата».
Технический стек
Под капотом здесь всё, что любят современные фулстек-разработчики. Если вы работаете с React, разобраться в коде будет несложно.
- Next.js для фронтенда и API-роутов.
- tRPC для типизированного взаимодействия между клиентом и сервером.
- Prisma в качестве ORM для работы с базой.
- Tailwind CSS для стилизации.
- PostgreSQL как основное хранилище.
Интересно, что проект поддерживает Docker из коробки. Для тех, кто не хочет возиться с установкой Node.js и настройкой базы вручную, есть готовый docker-compose файл.
Как это пощупать
Разработчики добавили отличную команду для быстрого старта. Если у вас установлен Docker, достаточно выполнить:
yarn dx
Эта команда поднимет локальный Postgres и само приложение с набором тестовых пользователей. Вы сразу получите доступ к админке (например, под логином admin@example.com с паролем ADMINadmin2022!) и сможете посмотреть, как устроены типы событий и календарь.
Если планируете разворачивать проект всерьез, придется повозиться с переменными окружения. Нужно сгенерировать секреты для NextAuth и ключи шифрования. В README есть подробные инструкции, как это сделать через openssl.
Интеграции и возможности
Несмотря на статус «DIY», проект поддерживает кучу внешних сервисов. Вы можете подключить:
- Google Calendar и Outlook для синхронизации встреч.
- Zoom, Webex или Daily.co для видеозвонков.
- HubSpot или Zoho CRM для ведения клиентов.
Для каждой интеграции придется создать свое приложение в консоли разработчика соответствующего сервиса (например, в Google Cloud Console), получить Client ID и прописать их в .env. Процесс не самый быстрый, но документация в репозитории довольно подробная.
Кому это пригодится
Я вижу несколько сценариев, где Cal.diy будет полезнее оригинала.
Во-первых, это идеальное решение для фрилансеров и независимых специалистов. Вам не нужно платить ежемесячную подписку за сервис бронирования, если у вас есть копеечный VPS. Вы получаете профессиональный интерфейс для записи клиентов, который выглядит не хуже Calendly.
Во-вторых, это отличная база для пет-проектов. Если вы строите какой-то сервис, где нужна функция записи (например, CRM для парикмахерских или платформа для репетиторов), можно взять Cal.diy за основу и не изобретать велосипед с логикой календарей.
В-третьих, это просто хороший пример качественной архитектуры на Next.js и tRPC. Изучение кода такого проекта — отличный способ подтянуть свои навыки в веб-разработке.
Cal.diy — это честный open-source. Авторы сразу предупреждают: используйте на свой страх и риск, это комьюнити-версия. Здесь нет техподдержки 24/7, и за безопасность данных на вашем сервере отвечаете только вы. Но для тех, кто ценит свободу от лицензий и хочет иметь полный контроль над своим софтом, это, пожалуй, лучший инструмент для управления временем на сегодняшний день.
Если вам надоело, что за каждую удобную кнопку в планировщике просят денег, попробуйте развернуть этот проект. Возможно, это именно то, что вы искали.
