
Chi gestisce progetti in team o anche solo la propria lista di attività personali prima o poi si scontra con lo stesso dilemma: affidarsi a un servizio cloud di terze parti, con tutti i limiti in termini di privacy e controllo dei dati che questo comporta, oppure cercare un’alternativa self-hosted altrettanto semplice da usare.
Planka risponde proprio a questa esigenza: una board Kanban open source, leggera e reattiva, che riprende l’esperienza di Trello ma gira interamente sul proprio server.
In questa guida vedremo come installare e configurare Planka su Ubuntu Server 26.04 utilizzando Docker Compose, l’approccio più pulito e manutenibile per chi, come nel mio caso, gestisce già altri servizi containerizzati in homelab.
Partiremo dall’installazione di Docker, passeremo per la configurazione del container PostgreSQL necessario come backend, fino ad arrivare alla creazione dell’utente amministratore e a qualche accorgimento pratico per evitare i problemi più comuni che si possono incontrare al primo avvio, come la classica race condition tra database e applicazione.
Alla fine della guida avrete un’istanza di Planka funzionante e pronta per organizzare i vostri progetti, con le basi solide per aggiungere in un secondo momento un reverse proxy con HTTPS e altre personalizzazioni.
PREREQUISITI
- Ubuntu 26.04 con accesso sudo
- Almeno 1 GB di RAM libera
- Docker ed il plugin Compose
INSTALLAZIONE DI DOCKER
Installare Docker con i seguenti comandi:
|
0
1
2
3
4
5
6
|
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER
newgrp docker
sudo apt install docker-compose-plugin -y
|
Quindi verificare Docker con il comando:
|
0 |
docker --version
|
Dovremmo visualizzare un output simile al seguente:
|
0 |
Docker version 29.6.1, build 8900f1d
|
Verificare Docker Compose con il comando:
|
0 |
docker compose version
|
Dovremmo visualizzare un output simile al seguente:
|
0 |
Docker Compose version v5.3.1
|
CREAZIONE DELLE STRUTTURA DI PROGETTO
Creare la struttura di cartella con i seguenti comandi:
|
0
1
2
|
sudo mkdir -p /opt/planka
cd /opt/planka
|
CONFIGURAZIONE DEL DOCKER-COMPOSE.YML
Usare l’immagine ufficiale ghcr.io/plankanban/planka con PostgreSQL come backend.
Creare il file docker-compose.yml con il comando:
|
0 |
sudo nano docker-compose.yml
|
Quindi copiare all’interno il seguente output:
|
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
services:
planka:
image: ghcr.io/plankanban/planka:latest
container_name: planka
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
ports:
- "3000:1337"
environment:
- BASE_URL=http://TUO_IP_O_DOMINIO:3000
- DATABASE_URL=postgres://planka:CAMBIA_QUESTA_PASSWORD@postgres:5432/planka
- SECRET_KEY=CAMBIA_CON_STRINGA_CASUALE_LUNGA
- TRUST_PROXY=false
volumes:
- ./data/user-avatars:/app/public/user-avatars
- ./data/project-background-images:/app/public/project-background-images
- ./data/attachments:/app/private/attachments
postgres:
image: postgres:16-alpine
container_name: planka-db
restart: unless-stopped
environment:
- POSTGRES_USER=planka
- POSTGRES_PASSWORD=CAMBIA_QUESTA_PASSWORD
- POSTGRES_DB=planka
volumes:
- ./db_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U planka -d planka"]
interval: 5s
timeout: 5s
retries: 5
|
Salvare il file e generare una SECRET_KEY sicura con il comando:
|
0 |
openssl rand -hex 64
|
Copiare il risultato dentro il file al posto di CAMBIA_CON_STRINGA_CASUALE_LUNGA e impostare una password robusta uguale in entrambi i punti CAMBIA_QUESTA_PASSWORD.
AVVIARE IL CONTAINER
Avviare il container con i seguenti comandi:
|
0
1
2
|
cd /opt/planka
docker compose up -d
|
Dovremmo visualizzare un output simile al seguente:
|
0
1
2
3
4
5
|
[+] up 31/31
✔ Image postgres:16-alpine Pulled 8.9s
✔ Image ghcr.io/plankanban/planka:latest Pulled 10.5s
✔ Network planka_default Created 0.0s
✔ Container planka-db Started 4.7s
✔ Container planka Started
|
Verificare i log con il comando:
|
0 |
docker compose logs -f planka
|
Attendere che i log mostrino che il server è pronto, poi Ctrl+C per uscire dai log (i container restano attivi).
CREAZIONE DELL’UTENTE AMMINISTRATORE
Dalla versione 1.13 in poi Planka non crea più un admin di default automaticamente. Va creato a mano con il seguente comando:
|
0 |
docker compose run --rm planka npm run db:create-admin-user
|
Ti verranno chiesti email, password, nome e username.
In alternativa, puoi impostare le variabili DEFAULT_ADMIN_EMAIL, DEFAULT_ADMIN_PASSWORD, DEFAULT_ADMIN_USERNAME e DEFAULT_ADMIN_NAME nel compose e fare un restart in modo che l’utente viene creato al primo avvio.
ACCESSO TRAMITE WEBGUI
Da un quslaisi browser aprire il link http://TUO_IP:3000 (o l’IP del server) ed effettuare il login con le credenziali admin appena create.
Inserire le credenziali create in precedenza quindi cliccare su Accedi
Accettare l’EULA e cliccare Continua
Dovremmo accedere alla Home di Planka
Da questa schermata è possibile iniziare a creare Progetti
BACKUP DI PLANKA
Planka fornisce script dedicati per backup/restore quando si usa docker-compose utile per uno script cron periodico che salvi sia il volume db_data sia le cartelle data/.
TROUBLESHOOTING RAPIDO
Check di Errori di avvio con il seguente comando:
|
0 |
docker compose logs planka | grep -i error
|
Check Problemi di autenticazione DB con il comando:
|
0 |
docker compose logs postgres
|
Per un Riavvio pulito utilizzare i comandi:
|
0
1
2
|
docker compose down
docker compose up -d
|
FUNZIONALITA’ PRINCIPALI
Gestione progetti e board
- Board in stile Kanban con liste e card trascinabili (drag-and-drop)
- Card con checklist, sotto-attività, etichette colorate, scadenze
- Allegati file sulle card
- Aggiornamenti in tempo reale via WebSocket (se più persone lavorano insieme, vedono i cambiamenti istantaneamente)
Collaborazione
- Gestione utenti e membri per progetto/board
- Assegnazione di card a membri specifici
- Commenti sulle card
- Import da Trello (utile se stai migrando)
Amministrazione
- Autenticazione OIDC (OpenID Connect) — comodo se vuoi integrarlo con un provider SSO che magari già usi in ambito M365/Azure AD
- Personalizzazione dei termini di utilizzo per utenti finali
- API disponibili (con client Python non ufficiale, plankapy)
- Supporto Swagger/Postman per chi vuole integrarlo via API
Deployment
- Docker/Docker Compose (il metodo che abbiamo appena configurato)
- Installazione manuale su Debian/Ubuntu
- Helm chart per chi gira su Kubernetes — potenzialmente interessante visto il tuo K3S
PRO E CONTRO DI PLANKA
Pro
- Leggero e veloce: footprint di risorse minimo, gira bene anche su una VM homelab modesta
- Interfaccia pulita: nessun sovraccarico di funzionalità inutili, esperienza molto simile a Trello
- Open source e self-hosted: controllo completo dei dati, nessuna dipendenza da servizi cloud terzi
- Real-time collaboration affidabile: funziona bene senza configurazioni complesse
- Community attiva: sviluppo continuo, immagini Docker aggiornate regolarmente
Contro
- Funzionalità limitate rispetto a strumenti più completi: non ha Gantt chart, timeline, dashboard di reportistica avanzata, automazioni (tipo Trello Butler o Jira workflows)
- Nessuna gestione avanzata di permessi/ruoli granulari: i controlli di accesso sono piuttosto semplici rispetto a strumenti enterprise
- Nessuna app mobile nativa: è web-based, va bene ma manca l’esperienza mobile dedicata
- Gestione admin utente cambiata di recente: dalla versione 1.13 non c’è più creazione automatica dell’admin, richiede uno step manuale in più (come abbiamo visto)
- Meno adatto a project management “pesante”: se hai bisogno di dipendenze tra task, milestone, roadmap, conviene guardare altrove (es. Taiga, che hai citato come alternativa nella guida che abbiamo trovato)
- Notifiche limitate: manca un sistema di notifiche via email/Slack robusto out-of-the-box
IN SINTESI
Planka è la scelta giusta se cerchi un Trello self-hosted semplice ed essenziale per organizzare task di un piccolo team o per uso personale esattamente il tipo di tool che si inserisce bene nel tuo stack homelab accanto a Portainer, Gitea, ecc.
Se invece hai bisogno di project management più strutturato con reportistica, automazioni o gestione risorse, è meglio orientarsi su alternative più feature-rich come Taiga o OpenProject.

0 commenti