Open-source и свой сервер 4 мин чтения

Один экран для календарей всех мастеров и залов: Luna

Luna, self-hosted приложение с открытым кодом, собирает календари CalDAV, iCal и Google на одном экране. Разбираем, как это помогает студии, клинике и прокату, как ставится и почему пока рано ставить её в боевую работу: релиза и лицензии нет.

Lunaself-hostedкалендарьрасписание
Коротко. Luna, self-hosted веб-приложение, собирает календари из CalDAV, iCal-ссылок и Google Calendar на одном экране, с учётными записями пользователей. Для студии, клиники или проката это способ увидеть мастеров и залы вместе, не переезжая ни в какую новую систему. Проект живой, но сырой: официального релиза нет, лицензии в репозитории нет, мобильная версия и повторяющиеся события не доделаны. Систему записи с предоплатой и напоминаниями он не заменяет.

Расписание размазано по пяти календарям

В студии работают шесть мастеров. У двоих записи в Google Calendar, у одного календарь на собственном сервере, у администратора ссылка на общий файл. Залы живут в отдельной таблице. Чтобы ответить клиенту «в субботу после обеда есть окно?», администратор открывает пять вкладок и складывает картину в голове.

Ошибка здесь вопрос времени. Один мастер уехал на обучение и отметил это у себя, а в таблице залов этого нет. Двух клиентов записали в одно окно, и один из них узнал об этом на пороге.

Прикидка, помечаю её как оценку: пять календарей по три минуты каждое утро дают около пяти часов в месяц только на сверку. Плюс редкие, но дорогие накладки. Пересобирать всё в одну систему ради этого обычно рано, люди привыкли к своим календарям.

Что такое Luna и как она ставится

Luna, публичный проект Opisek на GitHub: репозиторий Opisek/luna. В описании стоит «Self-Hosted Calendar Aggregator and Frontend». Бэкенд написан на Go, данные хранятся в PostgreSQL 16. На 2 октября 2026 у репозитория 503 звезды и 22 форка, создан он в апреле 2024 года. Последние правки в основной ветке, которые я видел, касались разбора длительностей в iCal и обработки слабых ETag при работе с CalDAV.

Подключаются три типа источников: CalDAV, iCal и Google Calendar. Все они собираются в одном интерфейсе. Есть управление пользователями: в документации по API описаны регистрация, приглашения и административные настройки, а ещё регистрация OAuth-клиентов.

Ставится через Docker Compose, там три контейнера: фронтенд на порту 8080, бэкенд и база. Готовых официальных образов нет. Образы собирают из исходников командой make, а на Docker Hub лежат сторонние сборки, за которые автор не отвечает. Нужен обратный прокси с TLS, пример для nginx в документации есть.

Как это выглядит в студии, клинике и прокате

Мастера и администратор остаются в своих календарях. Luna забирает события оттуда и показывает общей картиной. Администратор видит субботу целиком, клиника видит кабинеты и врачей рядом. В прокате на один экран можно вывести бронь, выдачу и ремонт техники, если каждая из них ведётся в своём календаре.

Для клиники это значит, что регистратор не спрашивает у каждого врача, свободен ли он в четверг. Для студии с залами видно, что в зале на втором этаже в пятницу вечером ничего нет, и его можно предложить под аренду.

Переносить данные никуда не надо. Если завтра Luna перестанет подходить, календари мастеров остались на месте, потерялся только общий экран.

По API у проекта описаны создание, изменение и удаление событий, значит, правка из общего экрана задумана. Как именно это работает для каждого типа источника, я на живом стенде не проверял. Для iCal-ссылки правка невозможна по самой природе формата: это подписка на файл. Поэтому для записи нужны CalDAV или Google.

Что важно учесть

Здесь список длиннее, чем хотелось бы.

Лицензии нет. В корне репозитория лежат только README, Makefile, docker-compose.yml и три папки, файла LICENSE среди них нет, и GitHub лицензию не определяет. Без явного разрешения автора права на использование остаются за ним. Для личного эксперимента это нестрашно, для установки клиенту стоит сначала спросить автора.

Релизов и тегов нет. В документации по установке сказано, что проект официально не выпущен, пользоваться стоит с осторожностью, а до версии 1.0.0 возможны поломки и сброс базы. Автор один, срока выхода 1.0.0 он не называет.

В README прямо перечислено, что не готово: полная поддержка повторяющихся событий и вёрстка под маленький экран. Для салона это существенно: «каждый вторник» у мастера может показываться неверно, а с телефона пользоваться неудобно.

Права. Отдельных ролей вроде «администратор видит всё, мастер только своё» в документации я не нашёл. Известно, что глобальные настройки, приглашения и OAuth-клиенты доступны только администратору. Тонкую матрицу доступа придётся проверять руками.

Безопасность. Пароли к источникам хранятся в базе в зашифрованном виде, ключи лежат в каталоге данных бэкенда. В документации честно сказано: тот, кто получил и базу, и ключи (в том числе недобросовестный администратор сервера), сможет их расшифровать.

Русский язык. Файлов переводов в репозитории я не нашёл, поэтому русский интерфейс не заявляю. Что именно показывает интерфейс, проверяйте на тестовом стенде.

И последнее. Luna только показывает расписание. Предоплата, напоминания, лист ожидания и запись из мессенджера в ней не появятся. Об этом мы писали в материале про неявки, предоплату и напоминания.

Что можно сделать уже сейчас

Первое. Выпишите, где у вас живёт расписание: чьи календари, какой тип, кто их ведёт. Часто выясняется, что три из пяти уже в Google или поддерживают CalDAV, и подключать нечего.

Второе. Поднимите Luna на тестовом сервере и подключите два-три реальных календаря. Неделя наблюдения покажет, хватает ли вам повторяющихся событий и удобно ли администратору.

Третье. Если общий экран прижился, а записи клиентов всё ещё идут вручную, настройте запись отдельно. Для выездных бригад у нас есть разбор, как не записать мастера на два адреса, а для записи на своём домене подойдёт Cal.com.

Четвёртое. Если хотите без возни, мы разворачиваем такой стенд и связываем его с вашей записью под ключ. Это входит в автоматизацию бизнеса. Условия лицензии и вопрос, брать ли Luna в рабочую схему или подождать 1.0.0, обсуждаем до начала работ.

Частые вопросы

Нужно ли переносить календари в Luna?

Нет. Календари остаются там, где были, Luna подключается к ним как к источникам. Это главное отличие от внедрения новой системы записи.

Можно ли показывать расписание клиентам?

Для этого проект не предназначен. Это внутренний экран для персонала с входом по учётной записи. Клиентская запись с выбором времени и предоплатой делается отдельно.

Можно ли сейчас ставить Luna в боевую работу?

Осторожно. Автор сам называет проект невыпущенным, возможны поломки и сброс базы, лицензия не указана. Разумный вариант: тест на копии расписания, пока исходные календари остаются главными.

Коротко о главном

Luna решает узкую задачу: показать календари разных мастеров, залов и техники одним экраном, не трогая сами календари. Проект активный и с понятной документацией, но без релиза, без лицензии, с недоделанной вёрсткой под телефон и повторяющимися событиями.

Расписание разбросано по календарям, а записи клиентов идут вручную или через мессенджер? Напишите мне в Telegram слово «КАЛЕНДАРЬ». Посмотрим, где у вас живут календари, что можно собрать на одном экране и что связать с вашей записью.

Ещё open-source для бизнеса

Эта статья — часть каталога бесплатных решений, которые я разворачиваю на вашем сервере под ключ: CRM, аналитика, документы, почта, безопасность, магазины, AI.

Услуги по теме

Что я делаю для бизнеса

  • Боты в Telegram, MAX, VK
  • Автоматизация процессов и CRM
  • Аналитика и дашборды
  • Сайты и лендинги под ключ

Бесплатно: чек-лист «Готов ли ваш бизнес к 152-ФЗ»

12 пунктов, которые проверяют готовность за час: данные, согласия, уведомление в РКН, локализация, защита. Отметьте, что уже сделано, и увидите дыры, за которые сейчас штрафуют.

Готовы обсудить вашу задачу?

Бесплатная консультация — разберём, как внедрить это в вашем бизнесе под ключ. Без форм, пишите напрямую.

Пишу о разработке, ИИ и законах для бизнеса

Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.

Готовые решения под ключTurnkey solutionsSoluciones llave en mano交钥匙解决方案Түлхүүр гардуулах шийдэл 451 готовых IT-решений для бизнеса451 ready-made IT solutions for business451 soluciones IT listas para empresas451 个面向企业的现成 IT 解决方案Бизнест зориулсан 451 бэлэн IT шийдэл Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультацияAutomation, bots, AI, data privacy and platforms · free consultationAutomatización, bots, IA, privacidad de datos y plataformas · consulta gratis自动化、机器人、AI、数据合规与平台 · 免费咨询Автоматжуулалт, бот, AI, өгөгдлийн хамгаалалт ба платформ · үнэгүй зөвлөгөө Смотреть каталогView catalogVer catálogo查看目录Каталог үзэх