Порівняння self-hosted альтернатив Trello
Planka, Vikunja, Focalboard, Wekan і Kanboard: RAM, база даних, SSO, імпорт із Trello та статус підтримки, перевірені 5 серпня 2026 року.
Яку self-hosted альтернативу Trello варто вибрати?
Варто розглянути три self-hosted альтернативи Trello: Planka, якщо вам потрібна така сама дошка, як у Trello, і його файл імпорту; Vikunja, якщо команді потрібен єдиний вхід і функції, що виходять за межі дошки; Kanboard, якщо VPS (virtual private server) має мало ресурсів. Не починайте новий проєкт на Focalboard. Його standalone server не отримував релізів протягом 783 днів, а в README тепер шукають мейнтейнера.
Wekan — п’ятий із 5 інструментів у цьому огляді. Він працює, але споживає у кілька разів більше пам’яті, ніж усі інші. Усі наведені нижче версії, ліцензії та дати перевірено 5 серпня 2026 року.
Скільки оперативної пам’яті потребує кожен інструмент для роботи з дошками?
The data behind this chart
[
{
"tool": "Planka + Postgres",
"idle_memory_mb": 280
},
{
"tool": "Vikunja + SQLite",
"idle_memory_mb": 110
},
{
"tool": "Focalboard + SQLite",
"idle_memory_mb": 120
},
{
"tool": "Wekan + FerretDB",
"idle_memory_mb": 750
},
{
"tool": "Kanboard + SQLite",
"idle_memory_mb": 70
}
]Це типові показники в режимі очікування для нової інсталяції, якою ніхто не користується. Саме такі значення docker stats показує приблизно через хвилину після запуску стека. Використовуйте їх для попереднього розрахунку конфігурації, а потім виміряйте власні показники. Важливіша загальна картина, а не точне значення в мегабайтах.
Kanboard є найменш вимогливим варіантом і потребує 70 MB, оскільки працює на PHP із SQLite. Жоден довготривалий процес застосунку не зберігає ваші дошки в пам’яті, тому контейнер майже не споживає пам’ять між запитами. Vikunja потребує 110 MB і працює як один двійковий файл Go. SQLite є його базою даних за замовчуванням, тому весь стек складається з одного контейнера. Planka потребує 280 MB, оскільки завжди складається з двох контейнерів: сервера Node і PostgreSQL. У Planka немає підтримки SQLite, тому базу даних замінити не можна.
Wekan потребує 750 MB, оскільки є застосунком Meteor. Meteor зберігає шар live query у пам’яті Node і передає кожну зміну дошки всім відкритим браузерам через WebSocket. Тому споживання пам’яті зростає разом із кількістю підключених користувачів, а не залишається сталим. На VPS із 1 GB Wekan запускається, але завершує роботу, щойно кілька користувачів відкривають велику дошку. Ознака проблеми — контейнер зникає та запускається знову з кодом завершення 137, що docker compose ps показує як цикл перезапусків. Перевірте це на хості за допомогою dmesg -T | grep -i "out of memory", оскільки засіб завершення процесів через нестачу пам’яті в ядрі не повідомляє застосунок про причину.
Залежність від бази даних визначає приблизно половину роботи з резервним копіюванням, тому наведемо її по одному рядку для кожного застосунку. Planka потребує PostgreSQL. Vikunja за замовчуванням використовує SQLite, а також підтримує PostgreSQL і MySQL або MariaDB. Kanboard за замовчуванням використовує SQLite, а також підтримує MySQL, MariaDB і PostgreSQL. Його документація рекомендує PostgreSQL і застерігає від використання SQLite на NFS (network file system). Focalboard за замовчуванням використовує SQLite. Wekan підтримує wire protocol MongoDB. У його стандартному файлі Compose тепер використовується FerretDB v1 із вбудованим бекендом SQLite замість справжнього сервера MongoDB. Окремий файл Compose для MongoDB 7 доступний, якщо він вам потрібен.
Які з цих проєктів досі підтримуються?
The data behind this chart
[
{
"tool": "Planka 2.1.1",
"release_age": 109
},
{
"tool": "Vikunja 2.5.0",
"release_age": 1
},
{
"tool": "Focalboard 8.0.0",
"release_age": 783
},
{
"tool": "Wekan 10.67",
"release_age": 1
},
{
"tool": "Kanboard 1.2.53",
"release_age": 12
}
]Focalboard є винятком: 783 днів. Його останній окремий реліз, v8.0.0, вийшов у червні 2024 року. Mattermost переніс розробку boards у plugin в окремому repository, а README окремого проєкту повідомляє, що repository наразі не підтримується. У цьому порівнянні це єдине однозначне «ні». Для всіх інших варіантів є компроміси.
Показник 109 днів для Planka є нормальним для проєкту, який випускає кілька релізів на рік. Версія 2.1.1 вийшла у квітні 2026 року. Kanboard випустив v1.2.53 за 12 днів до перевірки, а два попередні релізи вийшли в березні та квітні 2026 року.
Vikunja і Wekan випустили релізи протягом доби до перевірки, але ці два факти слід інтерпретувати по-різному. Vikunja позначив v2.5.0 як звичайний minor release. Wekan позначив v10.65, v10.66 і v10.67 того самого дня, що відповідає його звичайній періодичності релізів. Часті релізи не означають, що цільова версія стабільна. Обираючи Wekan, ви погоджуєтеся відстежувати версії, які швидко змінюються, тому фіксуйте tag і читайте release notes перед кожним оновленням.
Вам потрібна лише дошка?
У більшості порівнянь усе зводиться до фрази «це схоже на Trello». Але цей критерій важливіший за обсяг RAM, оскільки дошка погано підходить для всього, що має кінцевий термін.
- Planka — це лише інструмент для роботи з дошками: проєкти, дошки, списки, картки, мітки, контрольні списки, коментарі та вкладення. Станом на August 2026 календар і подання мапи доступні лише у Pro.
- Vikunja надає чотири подання для одного набору завдань: List, Kanban, Table і Gantt. Завдання існує в одному екземплярі, а для зміни способу відображення достатньо перемкнути подання.
- Kanboard — це дошки з обмеженнями на незавершену роботу, підзавданнями, вкладеннями, коментарями, автоматичними діями та невеликою мовою запитів для фільтрування. На власній домашній сторінці сервіс зазначає: «Кількість функцій навмисно обмежена». Це точний опис.
- Wekan — це дошки з swimlanes, а також контрольними списками, користувацькими полями, REST (representational state transfer) API і webhooks.
- Focalboard підтримував подання дошки, таблиці та календаря для тих самих карток. Його наведено тут для повноти.
Якщо насправді вам потрібна wiki із доданим відстеженням завдань, це порівняння не за адресою. BookStack, Wiki.js і Outline розглянуто в матеріалі про такий формат, а self-hosted альтернативи Notion — у матеріалі про універсальні робочі середовища.
Доступ для кількох користувачів і єдиний вхід
Planka підтримує OpenID Connect у безкоштовній редакції Community. В офіційному Compose-файлі налаштування закоментовані, зокрема OIDC_ISSUER, OIDC_CLIENT_ID і OIDC_CLIENT_SECRET, тому їх потрібно розкоментувати, а не оновлювати редакцію. Гостьові ролі для людей за межами вашої організації доступні лише в редакції Pro.
Vikunja підтримує OpenID Connect одночасно з кількома провайдерами. Задайте VIKUNJA_AUTH_OPENID_ENABLED=true, а потім додайте окремий блок змінних VIKUNJA_AUTH_OPENID_PROVIDERS_<ID>_* для кожного провайдера. Система також підтримує команди та спільний доступ на рівні проєктів. Саме це зазвичай потрібно організації з двадцятьма працівниками.
Wekan підтримує LDAP (протокол доступу до полегшених каталогів), OAuth2, OIDC і SAML. У Kanboard вбудована підтримка LDAP, а для інших варіантів є універсальний плагін OAuth2, а також ролі та групи на рівні проєктів. Автономний сервер Focalboard взагалі не підтримує єдиний вхід. Це ще одна причина не використовувати його.
Будь-яку з цих систем можна поєднати з власним провайдером ідентифікації Authentik, який зазвичай є кращим варіантом, ніж створювати для двадцяти людей окремий пароль для кожного застосунку.
Чи можна імпортувати дошки Trello?
У Planka це робиться найпростіше. Експортуйте дошку з Trello у форматі JSON, створіть дошку в Planka, натисніть Import і виберіть Trello. Спочатку ознайомтеся з обмеженнями, оскільки вони суттєві: користувачі та вкладення не імпортуються, для кожної картки переноситься лише один checklist, а стандартний експорт JSON у Trello зупиняється після 1,000 дій і не повідомляє, що дані було обрізано. Перевірте файл самостійно, перш ніж покладатися на результат.
Vikunja імпортує дані через OAuth-процес Trello у розділі Settings, а потім "Import from other services". Кожен мігратор потрібно ввімкнути в конфігурації, перш ніж з’явиться його піктограма, а VIKUNJA_SERVICE_PUBLICURL має бути налаштовано правильно, оскільки OAuth-редирект виконується у вашому браузері, а не із сервера. Vikunja також імпортує дані з Todoist, Microsoft To Do, TickTick і Wekan.
Wekan приймає вставлений JSON дошки Trello у формі імпорту. У Kanboard немає вбудованого імпортера Trello. Це основна причина не вибирати його, якщо потрібно перенести історію Trello за кілька років.
Який досвід використання на мобільних пристроях?
Vikunja — єдиний із п’яти проєктів з офіційними мобільними застосунками. Збірки для Android та iOS виходять разом із кожним релізом, а в описі репозиторію застосунок позначено як alpha. Тому сприймайте його як доповнення до вебінтерфейсу, а не як основний спосіб доступу. У Planka немає офіційного застосунку від проєкту, хоча його вебінтерфейс адаптивний, а сторонні клієнти існують. Wekan і Kanboard доступні лише через вебінтерфейс, а інтерфейс Kanboard явно розрахований на екран настільного комп’ютера.
Питання ліцензії та відмінність Planka
Planka більше не є open source, і саме це часто не враховують у порівняннях. Спочатку проєкт поширювався за ліцензією MIT, у 2023 році перейшов на AGPL-3.0, а починаючи з серії 2.0, випускається за PLANKA Community License — ліцензією fair-code, правовласником якої є PLANKA Software GmbH. GitHub указує для нього ліцензію "Other", оскільки ця ліцензія не схвалена OSI. Безкоштовне self-hosting для власних користувачів прямо дозволене; це охоплює особисте, внутрішнє, некомерційне та освітнє використання. Перепродаж доступу або надання сервісу іншим компаніям потребує комерційної ліцензії.
Для двох людей це прийнятна умова. Для компанії її потрібно прочитати до того, як у системі буде організовано роботу двадцяти людей. Інші чотири проєкти поширюються за звичайними open source ліцензіями: Vikunja — за AGPL-3.0, Wekan і Kanboard — за MIT, а Focalboard використовує поєднання Apache 2.0 та AGPL-3.0.
Закріплені Compose-файли для двох рекомендованих варіантів
Закріпіть тег образу. latest означає, що наступне docker compose pull може перемістити вас на іншу major-версію, а major-версії виконують міграції бази даних, які складно скасувати. Обидва наведені нижче файли взято з upstream і зафіксовано на реальному релізі.
Vikunja на SQLite, один контейнер:
services:
vikunja:
image: vikunja/vikunja:2.5.0
restart: unless-stopped
environment:
VIKUNJA_SERVICE_PUBLICURL: https://tasks.example.com
VIKUNJA_SERVICE_SECRET: replace-with-a-long-random-string
VIKUNJA_SERVICE_TIMEZONE: Europe/Berlin
VIKUNJA_DATABASE_TYPE: sqlite
VIKUNJA_DATABASE_PATH: /app/vikunja/files/vikunja.db
ports:
- "127.0.0.1:3456:3456"
volumes:
- ./files:/app/vikunja/filesСпочатку створіть каталог даних із правильним власником, оскільки контейнер працює від UID 1000 і не може записувати в каталог, власником якого є root:
mkdir -p files && sudo chown 1000 files
docker compose up -d
docker compose ps
curl -sf http://127.0.0.1:3456/api/v1/infoУ працездатному стеку сервіс має стан running, а endpoint інформації повертає JSON, що містить поле version. Connection refused тут означає, що контейнер завершив роботу. docker compose logs vikunja називає причину. Найчастіше це помилка доступу до файлу бази даних.
Planka на PostgreSQL, два контейнери:
services:
planka:
image: ghcr.io/plankanban/planka:2.1.1
restart: unless-stopped
volumes:
- data:/app/data
ports:
- "127.0.0.1:3000:1337"
environment:
- BASE_URL=https://boards.example.com
- DATABASE_URL=postgresql://postgres@postgres/planka
- SECRET_KEY=replace-with-openssl-rand-hex-64
depends_on:
postgres:
condition: service_healthy
postgres:
image: postgres:16-alpine
restart: unless-stopped
volumes:
- db-data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=planka
- POSTGRES_HOST_AUTH_METHOD=trust
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d planka"]
interval: 10s
timeout: 5s
retries: 5
volumes:
data:
db-data:POSTGRES_HOST_AUTH_METHOD=trust означає, що PostgreSQL приймає будь-яке підключення без пароля. Це безпечно лише тому, що порт бази даних не публікується на хості, тож підключитися до неї може тільки інший контейнер у тій самій Compose network. Не додавайте запис ports: до сервісу postgres.
Жоден стек не повинен бути безпосередньо доступним з інтернету. Обидва прив’язуються до 127.0.0.1, тому розмістіть перед ними reverse proxy і завершуйте TLS (transport layer security) на ньому. Traefik перед кількома Compose-застосунками — типовий спосіб зробити це, коли ви розміщуєте більше одного сервісу, а посібник з основ Docker Compose описує частини цих файлів, які пропущено на цій сторінці.
Ваша дошка — це база даних, тому створюйте її резервні копії
Інструмент для роботи з дошкою може непомітно перестати працювати. Відсутність резервної копії виявляють лише після втрати тому, а пошкоджений файл SQLite може спочатку відкриватися нормально, а через database disk image is malformed тижнів повідомити про помилку.
Ніколи не копіюйте активний файл SQLite за допомогою cp. Копія може захопити операцію запису в процесі виконання. У такому разі архів виглядатиме повним, але після відновлення в базі даних бракуватиме рядків. Зупиніть сервіс на кілька секунд, потрібних для копіювання:
docker compose stop vikunja
tar czf vikunja-$(date +%F).tgz files
docker compose start vikunjaДля Planka створюйте дамп PostgreSQL замість копіювання каталогу даних кластера, який працює. Том із завантаженими файлами зберігайте окремо, оскільки вкладення не зберігаються в базі даних:
docker compose exec -T postgres pg_dump -U postgres -Fc planka > planka-db.dump
docker volume ls
docker run --rm -v planka_data:/data -v "$PWD":/backup alpine \
tar czf /backup/planka-files.tgz -C /data .docker volume ls виводить фактичне ім’я тому. Це ім’я проєкту Compose, після якого додається _data. Якщо передати ім’я, якого не існує, буде створено порожній том. У результаті ви отримаєте коректний, але порожній архів без повідомлення про помилку. Тому після цього перевірте розмір файла.
Потім один раз відновіть копію в тестовому stack на цьому самому сервері та відкрийте картку, яку пам’ятаєте. Резервна копія, яку ви ніколи не відновлювали, є лише припущенням. Також передавайте архіви за межі сервера, оскільки копія, збережена на VPS, який ви захищаєте, не є резервною копією. У матеріалі резервні копії restic з VPS описано цю частину.
Дві рекомендації
Двоє людей на VPS із 2 GB RAM: запускайте Planka. За виглядом і поведінкою вона найближча до Trello, імпорт із Trello виконується перетягуванням файлу, а 280 MB вільної пам’яті в режимі простою залишає більшу частину 2 GB для reverse proxy та інших сервісів, які ви розміщуєте. Community License безкоштовно поширюється на внутрішню команду з двох людей. Якщо ви не хочете залежати від ліцензії на доступний вихідний код, Vikunja зі SQLite і використанням 110 MB — це open-source варіант для того самого сервера.
Двадцять людей в організації: запускайте Vikunja з PostgreSQL. За такого розміру вам потрібен OpenID Connect замість двадцяти локальних паролів, потрібні команди та спільний доступ на рівні окремих проєктів, а значна частина роботи не поміщатиметься на дошці, тому подання List, Table і Gantt перестають бути просто додатковою перевагою. AGPL-3.0 також означає, що зі зростанням кількості користувачів не виникатиме питання про ліцензію. Використовуйте PostgreSQL, а не SQLite, розмістіть сервіс за reverse proxy і зберігайте щоденний дамп не на цьому сервері.
Якщо на сервері менше ніж 1 GB RAM, жодна з цих рекомендацій не підходить. Виберіть Kanboard із використанням 70 MB, змиріться з необхідністю повторно створити картки Trello та використайте зекономлену пам’ять для чогось іншого з короткого списку self-hosting-рішень на 2026 рік. Докладна інструкція зі встановлення вибраного інструмента має бути в окремому посібнику. Ця сторінка призначена лише для вибору.
FAQ
Яка self-hosted альтернатива Trello використовує найменше RAM?
Kanboard споживає приблизно 70 MB у режимі очікування, оскільки це PHP із SQLite, який не зберігає дані в пам’яті між запитами. Далі йде Vikunja — близько 110 MB як один бінарний файл Go. Wekan споживає найбільше — близько 750 MB, оскільки Meteor зберігає шар live query у пам’яті Node для кожного підключеного браузера. Коли стек простоює, виміряйте власне споживання за допомогою docker stats, оскільки це типові значення, а не гарантований показник.
Чи можна імпортувати дошки Trello у self-hosted інструмент?
Planka та Wekan безпосередньо приймають JSON-експорт дошки з Trello. Vikunja імпортує дані через OAuth-процес Trello, а мігратор потрібно ввімкнути в конфігурації, перш ніж він з’явиться в інтерфейсі. Kanboard не має вбудованого імпортера. Врахуйте два обмеження: Planka не імпортує користувачів і вкладення та підтримує лише один checklist для картки, а стандартний JSON-експорт Trello обмежений 1,000 діями без попередження про скорочення даних.
Чи залишається Focalboard хорошим вибором у 2026?
Ні. Останній standalone release, v8.0.0, вийшов у June 2024, тобто за 783 днів до перевірки цього порівняння 5 August 2026, а README повідомляє, що repository наразі не підтримується. Mattermost продовжив розробку board-функцій лише як plugin в окремому repository, тому припинилася підтримка саме сервера, який ви могли б розгорнути самостійно. Натомість оберіть Planka або Vikunja.
Чи залишається Planka open source?
Не за визначенням OSI. Спочатку Planka поширювалася за MIT, у 2023 перейшла на AGPL-3.0, а починаючи з версії 2.0 постачається за PLANKA Community License. Self-hosting безкоштовний для особистого, внутрішнього, неприбуткового та освітнього використання. Перепродаж доступу або робота як сервісу для третіх сторін потребує комерційної ліцензії, а calendar view, ролі guest і recurring cards доступні лише в рівні Pro. Якщо ліцензія, схвалена OSI, є обов’язковою вимогою, Vikunja використовує AGPL-3.0, а Kanboard — MIT.
Чи потрібен PostgreSQL, чи достатньо SQLite?
Vikunja, Kanboard і Focalboard за замовчуванням використовують SQLite, чого достатньо для кількох користувачів на одному сервері. Planka потребує PostgreSQL і не підтримує SQLite. Перейдіть на PostgreSQL, коли одночасно записують дані кілька користувачів, оскільки SQLite серіалізує операції запису, і під навантаженням інстанс починає повертати database is locked. Також не розміщуйте файл SQLite на network share: документація Kanboard застерігає від використання SQLite на NFS саме з цієї причини.