Plane
Открытый менеджер проектов уровня Jira на своем сервере: issues с приоритетами и статусами, циклы и модули (спринты и эпики), роадмапы, представления (список, канбан, календарь, таблица) и вики-страницы. Полноценная замена Jira/Linear без облачной подписки: проекты и данные лежат в вашей базе на вашем сервере. Мы развернули Plane Community Edition в Docker на сервере Fatmetal, прошли настройку инстанса и онбординг и замерили стек.
Вердикт
- нужен полноценный трекер уровня Jira на своем сервере: issues, циклы (спринты), модули (эпики), роадмапы, разные представления
- команда переросла легкую доску, а Jira/Linear в облаке - это чужой сервер, оплата в валюте и данные у вендора
- важно держать задачи и вложения под контролем: своя база PostgreSQL и хранилище MinIO на вашем сервере
- команде хватает простой доски на 2-3 человека без спринтов и модулей - тогда легче и дешевле Kaneo (в разы меньше ест)
- сервер маломощный: Plane - тяжелый стек из ~13 контейнеров, на CPU2-RAM4 индексатору и воркерам тесно
- нужен просто личный список задач, а не командный трекер проектов - это другой класс инструментов (например Vikunja)
Что это и какую задачу решает
С трекерами задач вечная развилка: либо тяжелая Jira, где на настройку уходит больше времени, чем экономится, либо облачные Linear/Trello - просто, но данные и подписка у чужого сервиса. Plane целится в середину сверху: это открытый менеджер проектов, по функционалу близкий к Jira (issues, циклы, модули, роадмапы), но который вы ставите на свой сервер и не платите за место и пользователей.
В отличие от минималистичной доски, Plane - это именно «взрослый» трекер: приоритеты и статусы задач, лейблы, циклы под спринты, модули под эпики, роадмапы по срокам, несколько представлений одного проекта (доска, список, календарь, таблица) и вики-страницы. Проект открытый (AGPL-3.0), Community Edition ставится через docker compose. Мы развернули CE v1.4.1 и прошли весь путь от настройки инстанса до создания рабочего пространства.
Чем отличается от Jira, Kaneo и Vikunja
Jira - мощная, но это чужое облако с оплатой за пользователей, а self-managed-версия тяжела в администрировании. Plane дает близкий набор возможностей (спринты, эпики, роадмапы), но на вашем сервере и с открытым кодом.
Kaneo (тоже разобран у нас) - легкая канбан-доска «минимум, но по делу»: ставится в разы легче и ест ~145 МиБ, но без спринтов, модулей и роадмапов. Plane тяжелее (~1.2 ГиБ в простое), зато это полноценный трекер, а не только доска.
Vikunja - это про личные задачи и списки, другой класс. Plane - командный трекер проектов уровня Jira. Втроем (Kaneo, Plane, Vikunja) они закрывают лестницу «доска -> полноценный Jira -> личный планировщик».
Если хватает доски со статусами и не нужны спринты/модули - берите Kaneo, он значительно легче и проще в эксплуатации. Plane оправдан, когда команде реально нужны циклы, эпики и роадмапы.
Сравниваете варианты? В разборе-сравнении «Вместо Jira: Kaneo, Plane и Vikunja» разложили, какой трекер под какую задачу. Соседи по нише: Kaneo - легкая канбан-доска, Vikunja - списки задач в духе Todoist.
Онбординг: инстанс, рабочее пространство, проект
Первый вход в Plane - двухступенчатый. Сначала настройка инстанса в разделе god-mode: создаете администратора инстанса (имя, email, пароль), задаете имя инстанса и параметры телеметрии. Это уровень всей инсталляции, а не отдельной команды. Затем входите в приложение и создаете рабочее пространство: имя, URL-слаг и размер команды.
Внутри рабочего пространства создаются проекты, а в них - issues с приоритетами, статусами и лейблами. Один проект смотрится несколькими представлениями (доска, список, календарь, таблица), сверху - циклы (спринты), модули (эпики), роадмап и вики-страницы. Аутентификация встроенная (email и пароль; при желании настраивается OAuth), вложения складываются в MinIO.
Из чего собран стек
Plane - это не один контейнер, а система из примерно 13 сервисов. Отсюда и вес, и требования к серверу. Что поднимается docker compose (CE, ветка deployments/cli/community):
| Фронтенд | web, space, admin, live (интерфейсы приложения и live-обновления) |
| Бэкенд | api (Django + gunicorn), worker и beat-worker (Celery), migrator (разовые миграции) |
| База | plane-db - PostgreSQL 15 |
| Очереди / кэш | plane-redis (Valkey 7.2), plane-mq (RabbitMQ 3.13) |
| Хранилище | plane-minio - S3-совместимое хранилище вложений |
| Вход / TLS | proxy (plane-proxy на Caddy) - reverse-proxy и авто-TLS Let's Encrypt |
Наружу торчит только proxy на портах 80/443, все остальное - в приватной docker-сети. TLS Plane выпускает сам: свой plane-proxy на Caddy получает сертификат Let's Encrypt по домену - отдельный веб-сервер поднимать не нужно.
В маркетплейсе Fatmetal
Рекомендуемая конфигурация:
4 vCPU · 8 ГБ RAM · 100 ГБ NVMe от 990 ₽/мес
Развертывание на Fatmetal
Минимальная рабочая конфигурация - CPU4-RAM8-DISK100, Ubuntu 24.04. На меньшем тарифе индексатору, очереди и воркерам тесно. Установка сводится к docker compose: ставим Docker, забираем официальные compose и variables (тег v1.4.1), прописываем домен и секреты, поднимаем стек.
Сервер и Docker
Заказываете VM (CPU4-RAM8-DISK100, Ubuntu 24.04), ставите Docker. Порты 80/443 открыты - под вход и авто-TLS.
Стек Plane
Забираете официальные
docker-compose.yamlиvariables.envтега v1.4.1, прописываете домен (APP_DOMAIN,WEB_URL,SITE_ADDRESS) и генерируетеSECRET_KEY/LIVE_SERVER_SECRET_KEY.Запуск
docker compose up -dтянет образы и поднимает стек. Первый старт ждет миграций базы (пара минут) - api отвечает не сразу.Настройка инстанса
Открываете
/god-mode, создаете администратора инстанса, затем на корне заводите рабочее пространство и первый проект.
На нашем стенде плановый деплой (pull образов + миграции) занял около 3-4 минут, после чего интерфейс и API отдавали 200 с валидным TLS. Автоматизированную установку одним скриптом мы обкатали на карточке маркетплейса.
Сколько ест на нашем стенде
Замеры сняты на CPU4-RAM8-DISK100 (Ubuntu 24.04) сразу после первичных миграций, без пользовательской нагрузки:
| RAM, система в простое | ~1.8 ГБ занято из 8 ГБ |
| RAM, сумма по контейнерам | ~1.2 ГиБ (главные едоки: worker ~374 МиБ, api/beat/live ~145 МиБ каждый, rabbitmq ~137 МиБ) |
| Образы на диске | ~4.7 ГБ (10 образов) |
| Диск после установки | ~6.8 ГБ из 100 ГБ |
| Готовность | api отвечает 200 к ~2-й минуте после старта (ждет миграций) |
Для сравнения: легкая доска Kaneo в простое держится около 145 МиБ. Разница - плата за полноценный трекер: JVM тут нет, но восемь app-сервисов плюс PostgreSQL, RabbitMQ и MinIO набирают свой объем.
Где может сломаться
Первый старт: api не сразу
api ждет, пока migrator прогонит миграции базы. До этого запросы к API отдают 502 - это нормально пару минут, а не ошибка. Не перезапускайте стек в панике.
Внутренние пароли и DATABASE_URL
В compose у api есть дефолт DATABASE_URL=postgresql://plane:plane@plane-db/plane. Если менять POSTGRES_PASSWORD, не трогая DATABASE_URL, api уйдет в ошибку авторизации к базе. Либо меняйте оба согласованно, либо оставляйте внутренние пароли по умолчанию (сервисы в приватной сети, наружу не торчат).
Let's Encrypt: лимит на домен
plane-proxy сам берет сертификат Let's Encrypt. У LE лимит - 5 сертификатов на один и тот же домен за неделю. Если многократно передеплоивать на один и тот же адрес, упретесь в rate-limit и TLS временно не выпустится. На реальной установке это неактуально, но при тестовых передеплоях держите в уме.
Тяжелый стек
На тарифе меньше CPU4-RAM8 индексатору/воркерам не хватает памяти, возможен OOM. Не экономьте на сервере под Plane.
Когда это НЕ ваш выбор
- Нужна простая доска для 2-3 человек - Plane избыточен и прожорлив. Берите Kaneo: легче в разы, ставится проще.
- Маломощный сервер - на CPU2-RAM4 стеку тесно. Либо тариф выше, либо более легкий трекер.
- Личный список задач, а не командный трекер - это другой инструмент (Vikunja и подобные).
- Не готовы обслуживать - 13 контейнеров, база, очередь и хранилище требуют обновлений и бэкапов. Если некому этим заниматься, облачный SaaS проще.
Частые вопросы
Это бесплатно?
Community Edition - открытый код (AGPL-3.0), бесплатна. Платите только за сервер. Есть и коммерческие редакции Plane с платными планами, но CE самодостаточна.
Чем Plane отличается от Kaneo?
Kaneo - легкая канбан-доска без спринтов и модулей (~145 МиБ). Plane - полноценный трекер уровня Jira (циклы, модули, роадмапы), но тяжелее (~1.2 ГиБ). Выбор по потребности команды.
Какой тариф нужен?
Рабочий минимум - CPU4-RAM8-DISK100. На меньшем стеку из 13 контейнеров тесно.
Где хранятся данные?
Проекты и задачи - в PostgreSQL, вложения - в MinIO, оба на вашем сервере. Бэкап - дамп базы и том MinIO.
Есть мобильное приложение?
Веб-интерфейс адаптивен; основной сценарий - браузер. Мобильные клиенты у проекта развиваются отдельно.
Итог
Plane - это self-hosted трекер уровня Jira для команд, которые переросли простую доску, но не хотят чужого облака и оплаты за пользователей. Циклы, модули, роадмапы и несколько представлений проекта - на вашем сервере, с данными в своей базе. Плата за это - вес: стек из ~13 контейнеров и ~1.2 ГиБ RAM в простое, комфортный тариф CPU4-RAM8-DISK100. Если команде хватает доски без спринтов - легче и дешевле Kaneo. А если нужен именно полноценный Jira без облака - Plane закрывает задачу, и развернуть его у нас можно за пару минут.
Рекомендуемая конфигурация для установки:
4 vCPU · 8 ГБ RAM · 100 ГБ NVMe
Не хотите устанавливать вручную?
Запустите Plane на этой конфигурации автоматически - от 990 ₽/мес.
Этот стек мы развернули на сервере Fatmetal (CPU4-RAM8-DISK100, Ubuntu 24.04) и замеряли руками. Нашли неточность - напишите, поправим в течение дня.