Planka logo

Planka

Kanban board to manage your projects and tasks

Alternative to: trello, asana, jira, kanban


Planka is a real-time Kanban board tool designed for teams to manage projects efficiently. With collaborative boards, drag-and-drop task management, and instant syncing, it keeps everyone aligned.

Planka Docker Compose example

Self-host Planka on your own server, homelab, or VPS starting from this Docker Compose example. It runs Planka in Docker containers using the official ghcr.io/plankanban/planka:latest, postgres:16-alpine images, with persistent volumes and automatic restarts preconfigured. Review the environment variables and adjust them to your setup, save the file as compose.yml (or docker-compose.yml), and start the stack with docker compose up -d.

services:
  planka:
    image: ghcr.io/plankanban/planka:latest
    restart: unless-stopped
    volumes:
      - avatars:/app/public/user-avatars
      - background-images:/app/public/project-background-images
      - attachments:/app/private/attachments
    environment:
      BASE_URL: "http://localhost:3000"
      DATABASE_URL: "postgresql://planka_user:@postgres:5432/planka"
      SECRET_KEY: "idV4XV4huqp99MLLu98kt5FP6WDkP0eB"
      ALLOW_ALL_TO_CREATE_PROJECTS: "true"
      DEFAULT_ADMIN_EMAIL: "admin@admin.admin"
      DEFAULT_ADMIN_NAME: "Admin User"
      DEFAULT_ADMIN_USERNAME: "admin"
      DEFAULT_ADMIN_PASSWORD: "admin"
      # Email Notifications (https://nodemailer.com/smtp/)
      # Define variables for SMTP if you want to enable email notifications
      SMTP_HOST: ""
      SMTP_PORT: "587"
      SMTP_NAME: ""
      SMTP_SECURE: "true"
      SMTP_USER: ""
      SMTP_PASSWORD: ""
      SMTP_FROM: ""
      SMTP_TLS_REJECT_UNAUTHORIZED: "false"
    depends_on:
      postgres:
        condition: service_healthy

  postgres:
    image: postgres:16-alpine
    restart: unless-stopped
    volumes:
      - db-data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: planka_user
      POSTGRES_PASSWORD: 
      POSTGRES_DB: planka
      POSTGRES_INITDB_ARGS: '--data-checksums'
      # you better set a password for you database
      # or you may add 'POSTGRES_HOST_AUTH_METHOD=trust' to ignore postgres security policy
      POSTGRES_HOST_AUTH_METHOD: trust
    healthcheck:
      test: ['CMD', 'pg_isready', '-U', "planka_user", '-d', "planka"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  avatars:
  background-images:
  attachments:
  db-data:

Prefer a managed setup? WinterFlow installs, configures, and updates Planka for you using this same Docker Compose configuration.