Self-hosted Trello alternatifleri: Planka mı Vikunja mı?
Planka, Vikunja, Focalboard, Wekan ve Kanboard RAM, veritabanı, SSO ve Trello içe aktarma desteğiyle karşılaştırılıyor; bakım durumu da inceleniyor.
Hangi self-hosted Trello alternatifi seçilmeli?
Üç self-hosted Trello alternatifi değerlendirilmeye değerdir: Trello'nun pano yapısını ve içe aktarma dosyasını aynen isteyenler için Planka, bir ekibin single sign-on ve tek bir panodan fazlasına ihtiyaç duymaya başladığı durumda Vikunja, VPS (virtual private server) kaynakları sınırlı olduğunda ise Kanboard. Yeni bir projeye Focalboard ile başlanmamalıdır. Focalboard'un standalone server bileşeni 783 gündür release yayımlamadı ve README dosyasında artık bir maintainer aranıyor.
Wekan, burada yer alan 5 araç arasındaki beşinci seçenektir. Çalışır, ancak diğer tüm seçeneklerin toplamından birkaç kat daha fazla memory kullanır. Aşağıdaki tüm version, licence ve tarih bilgileri 5 August 2026 tarihinde kontrol edilmiştir.
Her board aracının ne kadar RAM'e ihtiyacı vardır?
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
}
]Bunlar, kimsenin kullanmadığı yeni bir kurulum için tipik boşta çalışma değerleridir. Yığın başladıktan bir dakika sonra docker stats tarafından raporlanan değer bu tür bir sayıdır. Bir planı boyutlandırırken bu değerleri kullanın, ardından kendi sisteminizde ölçüm yapın. Kesin megabayt değerinden çok kullanım eğrisi önemlidir.
Kanboard, PHP ve SQLite kullandığı için 70 MB ile en düşük seviyededir. Uzun süre çalışan bir uygulama süreci board'ları bellekte tutmaz. Bu nedenle container, istekler arasında neredeyse hiç bellek kullanmadan boşta bekler. Vikunja, 110 MB kullanan tek bir Go binary'sidir. SQLite varsayılan veritabanıdır. Bu nedenle tüm yığın tek bir container'dan oluşur. Planka'nın 280 MB RAM'e ihtiyacı vardır. Çünkü her zaman iki container çalışır: bir Node sunucusu ve PostgreSQL. Planka'da SQLite seçeneği yoktur. Bu nedenle veritabanı değiştirilemez.
Wekan, Meteor uygulaması olduğu için 750 MB seviyesinde çalışır. Meteor, Node belleğinde canlı bir sorgu katmanı tutar ve her board değişikliğini WebSocket üzerinden açık olan tüm tarayıcılara gönderir. Bu nedenle bellek kullanımı sabit kalmak yerine bağlı kullanıcı sayısıyla artar. 1 GB VPS üzerinde Wekan başlar, ancak birkaç kişi büyük bir board'u açtığında ilk kez sonlanır. Belirti, exit code 137 ile kaybolup yeniden gelen bir container'dır. docker compose ps bunu bir yeniden başlatma döngüsü olarak gösterir. Bunu host üzerinde dmesg -T | grep -i "out of memory" ile doğrulayın. Çünkü kernel'ın out-of-memory killer mekanizması uygulamaya herhangi bir bilgi vermez.
Veritabanı bağımlılığı, yedekleme çalışmalarınızın yarısını belirler. Bu nedenle her uygulama için tek satırda özet aşağıdadır. Planka PostgreSQL gerektirir. Vikunja varsayılan olarak SQLite kullanır; ayrıca PostgreSQL ve MySQL veya MariaDB ile çalışır. Kanboard varsayılan olarak SQLite kullanır; ayrıca MySQL, MariaDB ve PostgreSQL ile çalışır. Dokümantasyonu PostgreSQL kullanımını önerir ve NFS (network file system) üzerinde SQLite kullanılmaması konusunda uyarır. Focalboard varsayılan olarak SQLite kullanır. Wekan, MongoDB wire protocol'ünü kullanır. Güncel varsayılan Compose dosyası, gerçek bir MongoDB sunucusu yerine embedded SQLite backend içeren FerretDB v1'i kullanır. MongoDB kullanmak isterseniz ayrı bir MongoDB 7 Compose dosyası bulunur.
Bu projelerden hangileri halen geliştiriliyor?
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 gün ile diğerlerinden ayrılıyor. Son bağımsız sürümü olan v8.0.0, Haziran 2024 tarihli. Mattermost, board geliştirmesini ayrı bir repository içindeki plugin'e taşıdı ve bağımsız README dosyasında repository'nin şu anda bakımsız olduğu belirtiliyor. Bu karşılaştırmadaki tek net "hayır" yanıtı budur. Diğer tüm seçeneklerde farklı ödünler söz konusudur.
Planka'nın 109 günlük süresi, yılda birkaç sürüm yayımlayan bir proje için normaldir. 2.1.1 sürümü Nisan 2026 tarihli. Kanboard, kontrol tarihinden 12 gün önce v1.2.53 sürümünü yayımladı. Ondan önceki iki sürüm Mart ve Nisan 2026'da yayımlandı.
Vikunja ve Wekan, kontrol tarihinden sonraki bir gün içinde sürüm yayımladı. Ancak bu iki bilgiyi farklı yorumlamak gerekir. Vikunja, v2.5.0 sürümünü olağan bir minor release olarak etiketledi. Wekan, v10.65, v10.66 ve v10.67 sürümlerini aynı gün etiketledi. Bu, projenin normal yayın sıklığıdır. Sık sürüm yayımlanması, hedefin kararlı olduğu anlamına gelmez. Wekan kullanılırken hızlı değişen bir version number takip edilmiş olur. Bu nedenle tag sabitlenmeli ve her güncellemeden önce sürüm notları okunmalıdır.
Bir panodan fazlasını mı sunuyor?
Karşılaştırma yazılarının çoğu yalnızca “Trello gibi görünüyor” demekle yetinir. Son teslim tarihi olan işler için pano uygun bir yapı olmadığından, bu eksen RAM miktarından daha belirleyicidir.
- Planka yalnızca bir pano aracıdır: projeler, panolar, listeler, kartlar, etiketler, kontrol listeleri, yorumlar ve ekler sunar. Ağustos 2026 itibarıyla takvim ve harita görünümleri Pro özellikleridir.
- Vikunja, aynı görev kümesi için dört görünüm sunar: List, Kanban, Table ve Gantt. Bir görev yalnızca bir kez oluşturulur; görevi çoğaltmak yerine görünüm değiştirilir.
- Kanboard; devam eden iş sınırları, alt görevler, ekler, yorumlar, otomatik eylemler ve filtreleme için küçük bir sorgu dili içeren panolar sunar. Kendi ana sayfasındaki “Özelliklerin sayısı isteğe bağlı olarak sınırlıdır” ifadesi, ürünü doğru biçimde tanımlar.
- Wekan; swimlane'ler, kontrol listeleri, özel alanlar, REST (representational state transfer) API'si ve webhooks ile birlikte panolar sunar.
- Focalboard, aynı kartlar için pano, tablo ve takvim görünümleri sunuyordu. Tamlık amacıyla bu listede yer almaktadır.
Asıl istenen, üzerine bazı görev izleme özellikleri eklenmiş bir wiki ise bu karşılaştırma uygun değildir. BookStack, Wiki.js ve Outline bu yapıyı ele alır; self-hosted Notion alternatifleri ise hepsi bir arada çalışma alanlarını kapsar.
Çok kullanıcılı erişim ve tek oturum açma
Planka, ücretsiz Community sürümünde OpenID Connect desteği sunar. Resmi Compose dosyasında OIDC_ISSUER, OIDC_CLIENT_ID ve OIDC_CLIENT_SECRET dahil olmak üzere ilgili ayarlar yorum satırı olarak bırakılmıştır; bu nedenle sürüm yükseltmek yerine bu satırların yorumunu kaldırmanız yeterlidir. Kuruluşunuz dışındaki kişiler için guest rolleri Pro özelliğidir.
Vikunja, aynı anda birden fazla sağlayıcıyla OpenID Connect kullanımını destekler. VIKUNJA_AUTH_OPENID_ENABLED=true değişkenini ayarlayın ve her sağlayıcı için bir VIKUNJA_AUTH_OPENID_PROVIDERS_<ID>_* değişken bloğu ekleyin. Ayrıca ekipler ve proje bazında paylaşım özellikleri sunar. Yirmi kişilik bir kuruluşun gerçekte ihtiyaç duyduğu yapı budur.
Wekan, LDAP (lightweight directory access protocol), OAuth2, OIDC ve SAML desteği sunar. Kanboard, LDAP desteğini yerleşik olarak sağlar. Diğer gereksinimler için genel amaçlı bir OAuth2 eklentisi de vardır. Ayrıca proje bazında roller ve gruplar desteklenir. Focalboard'un standalone server sürümünde tek oturum açma desteği yoktur. Bu da Focalboard'u dışarıda bırakmak için ikinci nedendir.
Bu seçeneklerin tümü, kendi çalıştırdığınız Authentik identity provider ile birlikte kullanılabilir. Bu yaklaşım, yirmi kişiye her uygulama için ayrı bir parola vermekten genellikle daha uygundur.
Trello panoları içe aktarılabilir mi?
Planka en basit yolu sunar. Panoyu Trello'dan JSON olarak dışa aktarın, Planka'da bir pano oluşturun, Import seçeneğine tıklayın ve Trello'yu seçin. Önce sınırlamaları okuyun, çünkü bunlar gerçektir: kullanıcılar ve ekler içe aktarılmaz, kart başına yalnızca bir checklist aktarılır ve Trello'nun varsayılan JSON dışa aktarma işlemi, işlemi kestiğine dair herhangi bir uyarı vermeden 1,000 action sonrasında durur. Sonuca güvenmeden önce dosyayı kendiniz kontrol edin.
Vikunja, Trello'nun OAuth akışı üzerinden, önce Settings ve ardından "Import from other services" bölümünden içe aktarma yapar. Simgesinin görünmesi için her migrator'ün yapılandırmada etkinleştirilmesi gerekir. Ayrıca VIKUNJA_SERVICE_PUBLICURL doğru olmalıdır, çünkü OAuth yönlendirmesi sunucudan değil, tarayıcınızdan gerçekleşir. Vikunja ayrıca Todoist, Microsoft To Do, TickTick ve Wekan'dan da içe aktarma yapar.
Wekan, içe aktarma formuna yapıştırılan Trello pano JSON'unu kabul eder. Kanboard'da yerleşik bir Trello içe aktarıcısı yoktur. Yıllara yayılan Trello geçmişini taşımak istiyorsanız Kanboard'u tercih etmemenin temel nedeni budur.
Mobil kullanım deneyimi nasıldır?
Vikunja, beş seçenek arasında resmi mobil uygulamalara sahip olan tek üründür. Android ve iOS sürümleri her sürümle birlikte yayınlanır. Uygulama deposu kendisini alpha olarak tanımladığı için uygulama, web arayüzüne eşlik eden bir istemci olarak değerlendirilmelidir. Ana erişim yöntemi olarak kullanılmamalıdır. Proje tarafından yayınlanan resmi bir uygulama Planka için mevcut değildir. Ancak web arayüzü responsive yapıdadır ve üçüncü taraf istemciler bulunmaktadır. Wekan ve Kanboard yalnızca web üzerinden kullanılabilir. Kanboard arayüzünün ise açıkça masaüstü ekranları için tasarlandığı görülür.
Lisans konusu ve Planka'nın neden farklı olduğu
Planka artık open source değildir ve çoğu karşılaştırmanın atladığı gerçek budur. Proje MIT lisansı altında başladı, 2023 yılında AGPL-3.0 lisansına geçti ve 2.0 serisinden itibaren PLANKA Software GmbH tarafından sunulan PLANKA Community License adlı fair-code lisansını kullanıyor. GitHub, bu lisansı OSI tarafından onaylanmadığı için "Other" olarak bildirir. Planka'nın kendi kullanıcılarınız için self-host edilmesi ücretsizdir ve açıkça izin verilir; kişisel, dahili, kâr amacı gütmeyen ve eğitim amaçlı kullanımlar buna dahildir. Planka'ya erişimin yeniden satılması veya başka şirketler için servis olarak çalıştırılması ticari lisans gerektirir.
İki kişi için bu makul bir koşuldur. Bir şirket içinse yirmi kişinin çalışmaları Planka'ya aktarılmadan önce okunması gereken bir lisans koşuludur. Diğer dört proje standart open source lisansları kullanır: Vikunja AGPL-3.0, Wekan ve Kanboard MIT, Focalboard ise Apache 2.0 ile AGPL-3.0 lisanslarının bir bileşimidir.
İki seçim için sabitlenmiş Compose dosyaları
Image etiketini sabitleyin. latest kullanılması, bir sonraki docker compose pull işleminin sizi bir ana sürümden diğerine taşıyabilmesi anlamına gelir. Ana sürümler, kolayca geri alınamayan veritabanı migration işlemlerini çalıştırır. Aşağıdaki dosyaların ikisi de upstream dosyalarıdır ve etiketleri gerçek bir sürüme sabitlenmiştir.
SQLite kullanan Vikunja, tek container:
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Önce veri dizinini doğru owner ile oluşturun. Container, UID 1000 olarak çalışır ve root sahibi bir dizine yazamaz:
mkdir -p files && sudo chown 1000 files
docker compose up -d
docker compose ps
curl -sf http://127.0.0.1:3456/api/v1/infoSağlıklı bir stack, servisi running olarak gösterir. Info endpoint'i, version alanını içeren JSON döndürür. Burada connection refused alınması, container'ın çıktığı anlamına gelir. docker compose logs vikunja bunun nedenini gösterir. Veritabanı dosyasında alınan permission error en yaygın nedendir.
PostgreSQL kullanan Planka, iki container:
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'in her bağlantıyı parola olmadan kabul etmesi anlamına gelir. Bu yalnızca veritabanı portu host'a publish edilmediği için güvenlidir. Bu porta erişebilen tek bileşen, aynı Compose ağı üzerindeki diğer container'dır. postgres servisine ports: girdisi eklemeyin.
Her iki stack de doğrudan internete açılmamalıdır. İkisi de 127.0.0.1 adresine bind edilir. Bu nedenle önlerine bir reverse proxy koyun ve TLS (transport layer security) termination işlemini burada gerçekleştirin. Birden fazla uygulama host edildiğinde birden fazla Compose uygulamasının önünde Traefik kullanılması bunun için standart yöntemdir. Docker Compose temelleri kılavuzu ise bu dosyalarda atlanan bölümleri açıklar.
Panonuz bir veritabanıdır; bu nedenle yedekleyin
Bir pano aracı sessizce arızalanabilir. Eksik bir yedek, bir volume kaybolana kadar fark edilmeyebilir. Bozuk bir SQLite dosyası normal biçimde açılabilir ve ancak database disk image is malformed hafta sonra hata bildirebilir.
Çalışan bir SQLite dosyasını cp ile asla kopyalamayın. Kopyalama işlemi devam eden bir yazma işlemini yakalayabilir. Bu durumda arşiv eksiksiz görünür, ancak geri yüklendiğinde bazı satırların bulunmadığı bir veritabanı oluşturur. Kopyalama işleminin sürdüğü birkaç saniye boyunca servisi durdurun:
docker compose stop vikunja
tar czf vikunja-$(date +%F).tgz files
docker compose start vikunjaPlanka için çalışan bir PostgreSQL cluster'ının data directory'sini kopyalamak yerine PostgreSQL dökümü alın. Uploads volume'ünü ayrıca yedekleyin, çünkü ekler veritabanında tutulmaz:
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 gerçek volume adını yazdırır. Bu ad, Compose project name ve ardından _data eklenerek oluşturulur. Var olmayan bir ad vermek boş bir volume oluşturur ve hata vermeden geçerli ancak boş bir arşiv üretir. Bu nedenle işlemden sonra dosyanın boyutunu kontrol edin.
Ardından yedeği aynı sunucudaki bir scratch stack içine bir kez geri yükleyin ve hatırladığınız bir kartı açın. Hiç geri yüklenmemiş bir yedek yalnızca varsayımdır. Arşivleri sunucunun dışına da gönderin. Koruduğunuz VPS üzerinde saklanan bir kopya yedek değildir. VPS'ten restic yedekleri bu konunun ikinci bölümünü açıklar.
İki öneri
2 GB RAM'li bir VPS üzerinde iki kişi için Planka çalıştırılmalıdır. Görünümü ve kullanım biçimi Trello'ya en yakın seçenek budur. Trello içe aktarma işlemi sürükleyip bıraktığınız bir dosyayla yapılır. 280 MB boşta bellek kullanımı, 2 GB'ın büyük bölümünü reverse proxy ve barındırdığınız diğer servisler için boş bırakır. Community License, iki kişilik dahili bir ekip için ücretsiz kullanıma izin verir. Source-available bir lisansa bağlı kalmak istenmiyorsa, aynı sunucuda 110 MB ile SQLite kullanan Vikunja açık kaynak seçenektir.
Bir kuruluşta yirmi kişi varsa PostgreSQL üzerinde Vikunja çalıştırılmalıdır. Bu ölçekte yirmi yerel parola yerine OpenID Connect gerekir. Ekipler ve proje bazında paylaşım gerekir. İşlerin önemli bir bölümü bir panoya sığmayacağından List, Table ve Gantt görünümleri artık yalnızca ek bir özellik değildir. AGPL-3.0, ekip büyüdükçe lisans konusunun yeniden değerlendirilmesini de gerektirmez. PostgreSQL kullanılmalı, uygulama bir reverse proxy arkasına alınmalı ve günlük yedek, bu sunucudan farklı bir konumda tutulmalıdır.
Sunucuda 1 GB'tan az RAM varsa bu seçeneklerin hiçbiri uygun değildir. 70 MB ile Kanboard kullanılmalı, Trello kartlarının yeniden girilmesi kabul edilmeli ve tasarruf edilen bellek 2026 için self-hosting kısa listesindeki başka bir bileşene ayrılmalıdır. Seçilen aracın ayrıntılı kurulum adımları kendi rehberinde yer almalıdır. Bu sayfa yalnızca seçimi ele alır.
FAQ
En az RAM kullanan self-hosted Trello alternatifi hangisidir?
Boşta yaklaşık 70 MB kullanan Kanboard'dur. Bunun nedeni PHP ve SQLite kullanması ve istekler arasında bellekte veri tutmamasıdır. Tek bir Go binary dosyası olarak çalışan Vikunja, yaklaşık 110 MB ile ikinci sıradadır. Yaklaşık 750 MB kullanan Wekan ise en yüksek bellek tüketimine sahiptir. Bunun nedeni, Meteor'un bağlı her tarayıcı için Node belleğinde canlı bir sorgu katmanı tutmasıdır. Bu değerler tipik ölçümlerdir ve garanti değildir. Stack boşta kaldığında kendi ortamını docker stats ile ölçülmelidir.
Trello panolarını self-hosted bir araca aktarabilir miyim?
Planka ve Wekan, Trello'nun JSON pano dışa aktarma dosyasını doğrudan alır. Vikunja, Trello'nun OAuth akışı üzerinden içe aktarma yapar. Arayüzde görünmesi için önce migrator özelliğinin yapılandırmada etkinleştirilmesi gerekir. Kanboard'da yerleşik bir importer yoktur. Dikkate alınması gereken iki sınır vardır: Planka kullanıcıları veya ekleri içe aktarmaz ve kart başına yalnızca bir checklist işler. Ayrıca Trello'nun varsayılan JSON dışa aktarması, dosyanın kesildiğine ilişkin uyarı vermeden 1,000 action sonrasında durur.
Focalboard 2026 yılında hâlâ iyi bir seçenek mi?
Hayır. Son standalone release olan v8.0.0, June 2024 tarihindedir. Bu sürüm, karşılaştırmanın 5 August 2026 tarihinde kontrol edilmesinden 783 gün öncesine aittir. README, repository'nin şu anda bakımı yapılmadığını belirtir. Mattermost, board geliştirmesini yalnızca ayrı bir repository'deki plugin olarak sürdürdü. Bu nedenle self-host edilecek server tarafı geliştirilmesi durdurulan bölümdür. Bunun yerine Planka veya Vikunja seçilmelidir.
Planka hâlâ open source mudur?
OSI tanımına göre değildir. Planka MIT lisansına sahipti, 2023 yılında AGPL-3.0 lisansına geçti ve version 2.0 itibarıyla PLANKA Community License ile yayınlanmaktadır. Personal, internal, non-profit ve educational kullanım için self-hosting ücretsizdir. Erişimin yeniden satılması veya üçüncü taraflara service olarak sunulması commercial licence gerektirir. Calendar view, guest roles ve recurring cards ise Pro tier kapsamındadır. OSI tarafından onaylanmış bir licence zorunluysa Vikunja AGPL-3.0, Kanboard ise MIT lisanslıdır.
PostgreSQL gerekli mi, yoksa SQLite yeterli mi?
Vikunja, Kanboard ve Focalboard varsayılan olarak SQLite kullanır. Tek bir server üzerinde az sayıda kullanıcı için bu yeterlidir. Planka PostgreSQL gerektirir ve SQLite seçeneği sunmaz. Aynı anda birden fazla kullanıcı yazma işlemi yaptığında PostgreSQL'e geçilmelidir. Çünkü SQLite yazma işlemlerini sıraya alır ve yoğun bir instance database is locked döndürmeye başlar. SQLite dosyası network share üzerinde de tutulmamalıdır. Kanboard documentation, tam olarak bu nedenle NFS üzerinde SQLite kullanılmasına karşı uyarır.