ShipKit Access

Учёт рабочего времени для терминалов Hikvision на своём сервере

Турникеты и терминалы ставите вы, а программу учёта поверх них мы уже написали. Терминалы присылают проходы, система считает по ним табель, включая ночные смены и суточные дежурства. Сотрудники видят свои отработанные часы в Telegram. Вы получаете исходный код (Bun, Elysia, Next.js) и разворачиваете систему у себя. Собрано на ShipKit: авторизация, админка и деплой достались от него.

Что умеет

От прохода до табеля

Терминалы сами присылают проходы

Каждый проход терминал отправляет на один адрес API под логином и паролем. Если сеть что-то потеряла, фоновая сверка каждые 15 минут забирает недостающее с самого терминала. Оба пути пишут в одну таблицу без дублей, поэтому повторы и пропуски ничего не ломают.

Устройства за одним интерфейсом

Код системы получает из фабрики объект AccessDevice и работает с терминалом через его методы: список пользователей, добавление или обновление, удаление, события по курсору, разбор push-запроса. Сейчас адаптер для реальных терминалов один: Hikvision ISAPI. Для нового производителя нужны отдельный пакет, новый case в фабрике и строка в union-типе, а общие контрактные тесты покажут, когда адаптер готов.

Графики не только с девяти до шести

Кроме фиксированного графика есть гибкий, сменный с переходом через полночь и суточные дежурства. Дежурство целиком засчитывается в тот день, когда началось. Опоздания, ранние уходы, переработки и неявки считает одна чистая функция, которую можно прочитать за вечер и сверить со своими правилами.

Оператору консоль, сотруднику Telegram

В веб-консоли оператора есть сотрудники, табель, отсутствия, графики, устройства, журнал событий и выгрузка в Excel. Сотрудник открывает мини-приложение в Telegram и видит только своё: день, месяц и итоги. Экраны учёта времени в обоих приложениях есть на русском и английском. Служебные экраны (журнал аудита, вебхуки, настройки) и подписи в выгрузке Excel только на английском.

Ваш сервер и ваша база

Всё работает на одном Linux-сервере: PostgreSQL с TimescaleDB, Redis и четыре юнита systemd за nginx. Облака вендора и телеметрии нет, платы за рабочие места тоже. В инструкции по установке написано, как проверять результат по ходу дела.

До покупки оборудования

Посмотреть можно без турникета

В репозитории есть симулятор терминала. Он реализует тот же интерфейс AccessDevice, что и адаптер Hikvision, и общие контрактные тесты прогоняются на нём в CI. Одна команда создаёт схему базы, заливает историю за три недели и запускает генератор, который по настоящим часам проводит виртуальных сотрудников через виртуальные двери.

bun install
cp .env.example .env            # настройки по умолчанию подходят для docker compose
docker compose up -d --wait     # PostgreSQL и Redis
bun run demo                    # схема, история за три недели, генератор проходов
bun run dev                     # в отдельном окне: консоль на :3023, API на :3021, мини-приложение на :3025

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

Чего система не делает

Где проходит граница

  • Лица система не распознаёт. Это делает сам терминал. Система хранит фото сотрудника, загружает его на все активные терминалы и записывает события, которые они присылают. Про биометрические данные в репозитории есть отдельный документ: что хранится, куда передаётся, когда удаляется и что решает оператор.
  • Сертификатов нет. Это исходный код, который вы разворачиваете сами. Пожарная безопасность, трудовое право и защита персональных данных в вашей стране остаются за вами.
  • Сейчас поддерживается только Hikvision. По ISAPI, плюс симулятор. ZKTeco и других производителей нет. Слой устройств сделан так, чтобы второго производителя можно было добавить пакетом, не переписывая систему. Но адаптер под него придётся написать самим или попросить нас.

Что входит в покупку

Лицензия с разовой оплатой

$249один раз, не за рабочее место
  • Полный исходный код: REST API, консоль оператора, мини-приложение в Telegram, фоновый воркер
  • Слой устройств без привязки к производителю, с адаптером Hikvision ISAPI
  • Симулятор терминала, чтобы оценить систему без оборудования
  • Модель учёта времени: фиксированный, гибкий и сменный графики, суточные дежурства
  • Табель, отсутствия, карточки сотрудников, выгрузка в Excel
  • Экраны учёта времени на русском и английском, плюс инструкция, как добавить другой язык
  • Инструкция по установке на сервер: systemd, nginx, TLS и чек-лист перед запуском
  • AI-скиллы для Claude Code, правила для Cursor и AGENTS.md
  • Доступ к приватному репозиторию на GitHub и все будущие обновления
  • Сколько угодно своих продуктов и приложений, в том числе коммерческих
Купить ShipKit Access за $249

Нужен просто бойлерплейт, без турникетов? ShipKit стоит $149.