Два года я делал трекер для своего агентства. Сегодня выкладываю его в открытый доступ
Долго не решался написать этот пост. Честно, сомневался до последнего: выкладывать или нет. Система, которую я пилил почти два года, это не пет-проект на выходные и не штука «чтобы было». Это инструмент, на котором реально живёт моё агентство каждый день. И отдать такое в открытый доступ, бесплатно, любому, кто захочет, рука не сразу поднялась.
Но я решился. Поэтому рассказываю, что это, что оно умеет и зачем я это делаю.
Почему я вообще полез это делать
Знаете это чувство, когда у команды зоопарк сервисов? Задачи в одном, время в другом, чаты в третьем, база знаний в четвёртом, почта вообще отдельно, а на стыке всего этого постоянно что-то теряется. Мы прошли через это по полной. Перепробовали кучу трекеров, и каждый закрывал процентов семьдесят, а на оставшихся тридцати начинались костыли, интеграции и боль. А ещё за все эти подписки в сумме уходит ощутимо, особенно когда команда растёт.
В какой-то момент я просто устал и начал делать своё. Не на продажу, не чтобы стать стартапом, а чтобы закрыть наши собственные агентские боли: видеть загрузку людей, считать время по проектам и бюджетам, не терять переписку, держать всё в одном месте. Делал для себя. Поэтому, как мне кажется, и получилось по-настоящему хорошо. Эту систему не рисовали маркетологи под лендинг, её выстрадали на живых проектах, на реальных дедлайнах и реальных факапах.
Что внутри
За два года оно обросло почти всем, что нужно агентству и продуктовой команде. Это полноценная система управления проектами и задачами, а не просто доска с карточками:
Задачи и проекты. Канбан и список, приоритеты, сторипоинты, дедлайны, подзадачи, связи между задачами, гибкие фильтры и сохранённые представления. Всё, на чём реально ведёшь работу.
Тайм-трекинг. Таймеры со стартом и паузой прямо в карточке задачи, ручной учёт часов, статусы записей. Видно, сколько времени съел проект.
Планирование загрузки. Недельные аллокации план и факт по людям и проектам. Видно перегруз и видно простой, можно ровнять нагрузку заранее.
Отчёты и бюджеты. Сводки по времени и задачам в разрезе проектов и сотрудников, выработка по бюджету проекта, выгрузка в XLSX.
Чаты и звонки. Личные и групповые чаты с вложениями, голосовые и видео-комнаты на каждый проект с демонстрацией экрана. Всё реалтайм.
База знаний. Вики с деревом страниц, нормальным редактором, таблицами, кодом, картинками. Регламенты, онбординг, доступы, всё рядом с задачами.
Встроенная почта. Приём и отправка писем, несколько ящиков, привязка писем к задачам. Переписка с клиентом не теряется в личной почте.
Свой git-хостинг. Репозитории, ветки, коммиты, диффы и просмотр кода прямо внутри трекера.
Роли, права и аудит. Кто что может, журнал действий, мониторинг сервисов.
И всё это в одном приложении, в одном интерфейсе, без прыжков между вкладками.
По сути это полноценная замена Jira, YouTrack, Trello и Confluence разом, плюс то, чего в них из коробки нет: чаты со звонками, встроенная почта и git. Только не в десяти разных подписках, а в одном self-hosted приложении, которое стоит на вашем сервере. Если коротко, российский аналог Jira, который не отключат и за который не надо платить в валюте.
Почему я отдаю это бесплатно
Потому что система реально классная, и мне хочется, чтобы ей пользовались. Звучит наивно, но так и есть. Я вложил в неё два года и кусок нервов, и видеть, что она просто стоит и работает на нас, это хорошо, но как-то жалко держать её только для себя.
Поэтому я выложил её в open source. Зовётся Нервион, сайт проекта nervion.ru. Лицензия AGPLv3: разворачиваете у себя на сервере, без лимита по числу пользователей, данные остаются у вас. Хотите потыкать, не разворачивая, есть живое демо, заходите одной кнопкой, без регистрации, внутри уже всё наполнено примерами. Хотите поставить себе навсегда, забирайте с GitHub.
Как поставить себе
Я специально сделал так, чтобы развернуть было не больно. Один docker-compose, и поднимается весь комплект: база, бэкенд и веб-приложение. Секрет для подписи токенов генерится сам при первом старте, миграции базы накатываются автоматически, заполнять кучу переменных окружения не нужно, работает из коробки. Нужен только сервер и Docker. Под капотом NestJS и PostgreSQL на бэкенде, Nuxt и Vue на фронте, WebRTC для звонков, и весь API задокументирован через Swagger.
Коротко по частым вопросам
Это правда бесплатно?
Да. Self-hosted-версия под AGPLv3 бесплатна и без лимита по числу пользователей. Платная только опциональная коммерческая лицензия для закрытых продуктов и наше внедрение под ключ, если не хотите возиться сами.
Это замена Jira?
Да, Нервион закрывает типовые сценарии Jira, YouTrack, Trello и Confluence в одном месте, плюс чаты со звонками, встроенную почту и git, которых там из коробки нет.
Данные точно остаются у меня?
Да, это и был весь смысл. Self-hosted на вашем сервере, ничего не уходит наружу. Никаких валютных платежей и риска, что сервис однажды перестанет работать.
Что нужно для запуска?
Сервер и Docker. Для голосовых и видео-комнат используется WebRTC, для файлов S3-совместимое хранилище. Разворачивается одной командой.
О чём прошу
Мне правда важна ваша поддержка. Если зайдёт, поставьте звезду на GitHub, попробуйте на своём проекте, напишите, чего не хватает. Это та история, где обратная связь и пара добрых слов стоят дороже денег. Система выстрадана на своём опыте, делалась для себя, и теперь я делюсь ей открыто. Пользуйтесь.
Сайт проекта: nervion.ru. Посмотреть вживую: демо Нервиона. Забрать и поставить у себя: GitHub.