Planka — open-source kanban доска

Введение

Planka — это self-hosted решение для управления проектами с открытым исходным кодом. Приложение позволяет легко управлять проектами, досками, списками, карточками, метками и задачами. Вы можете добавлять участников, отслеживать время, устанавливать срок, добавлять вложения и писать комментарии. Платформа также поддерживает использование markdown формата записей в описаниях карт и комментариях. Некоторым это может напомнить Trello, и это, по сути, и есть Planka!

Planka позволяет сортировать данные по участникам и меткам, что может быть очень полезно при управлении сложными проектами. Внешний вид можно настроить, выбрав предпочитаемый фон проекта, что добавит индивидуальности вашим проектам.

Установка

Если вы хотите начать использовать Planka, вам необходимо использовать удобный метод установки, указанный на сайте. Я использую вариант — docker-compose.

Создаём каталог для хранения compose файла:

mkdir /opt/planka

Скачиваем docker-compose.yml файл:

curl -L https://raw.githubusercontent.com/plankanban/planka/master/docker-compose.yml -o /opt/planka/docker-compose.yml

Генерируем секретный ключ:

openssl rand -hex 64

Переходим в каталог, редактируем compose файл, вставляем секретный ключ, изменяем BASE_URL на реальный адрес сайта с доской и раскомментируем поля DEFAULTADMIN:

cd /opt/planka
nano docker-compose.yml

Примерное содержимое вашего compopse файла:

version: '3'

services:
  planka:
    image: ghcr.io/plankanban/planka:latest
    command: >
      bash -c
        "for i in `seq 1 30`; do
          ./start.sh &&
          s=$$? && break || s=$$?;
          echo \"Tried $$i times. Waiting 5 seconds...\";
          sleep 5;
        done; (exit $$s)"
    restart: unless-stopped
    volumes:
      - user-avatars:/app/public/user-avatars
      - project-background-images:/app/public/project-background-images
      - attachments:/app/private/attachments
    ports:
      - 3005:1337
    environment:
      - BASE_URL=https://todo.iamninja.ru
      - DATABASE_URL=postgresql://postgres@postgres/planka
      - SECRET_KEY=3ba713382e5135014b3d9ccb661a1a5492c9946fd807af83377c31a942f121d23f6a8917eda0803b7a1eb735d944434aaa7b5ce9849bcb9f1d582a50d5715193

      - TRUST_PROXY=0
      # - TOKEN_EXPIRES_IN=365 # In days

      # related: https://github.com/knex/knex/issues/2354
      # As knex does not pass query parameters from the connection string we
      # have to use environment variables in order to pass the desired values, e.g.
      # - PGSSLMODE=<value>

      # Configure knex to accept SSL certificates
      # - KNEX_REJECT_UNAUTHORIZED_SSL_CERTIFICATE=false

      - DEFAULT_ADMIN_EMAIL=demo@demo.demo # Do not remove if you want to prevent this user from being edited/deleted
      - DEFAULT_ADMIN_PASSWORD=demo
      - DEFAULT_ADMIN_NAME=Demo Demo
      - DEFAULT_ADMIN_USERNAME=demo

      # - OIDC_ISSUER=
      # - OIDC_CLIENT_ID=
      # - OIDC_CLIENT_SECRET=
      # - OIDC_SCOPES=openid email profile
      # - OIDC_ADMIN_ROLES=admin
      # - OIDC_ROLES_ATTRIBUTE=groups
    depends_on:
      - postgres

  postgres:
    image: postgres:14-alpine
    restart: unless-stopped
    volumes:
      - db-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=planka
      - POSTGRES_HOST_AUTH_METHOD=trust

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

Пуллим образ и запускаем сервис:

docker-compose up -d

Настроить проксирование:

nano /etc/apache2/site-available/todo.iamninja.ru.conf
<VirtualHost *:80>

    ServerName todo.iamninja.ru

    RewriteEngine On
        RewriteCond %{HTTP:Upgrade} =websocket [NC]
        RewriteRule /(.*)            ws://localhost:3005/$1 [P,L]

    SSLProxyEngine on
    ProxyPreserveHost On
    ProxyRequests Off
            ProxyPass /.well-known !
            ProxyPassReverse /.well-known !
            ProxyPass /robots.txt !
            ProxyPassReverse /robots.txt !
            ProxyPass / http://localhost:3005/
            ProxyPassReverse / http://localhost:3005/

</VirtualHost>

Включаем сайт и перезапускаем Apache:

a2ensite /etc/apache2/site-available/todo.iamninja.ru.conf
systemctl reload apache2.service

Далее нужно получить сертификат SSL через Let’s encrypt, я использую Apache2:

certbot --apache

Certbot сгенерирует сертификат SSL, создаст конфиг файл для https соединения — todo.iamninja.ru-le-ssl.conf и внесёт необходимые правила для редиректа с http на https в файл — todo.iamninja.ru.conf.

Результат

Можно заходить под демо учётными данными, сразу создаём нового пользователя, перелогиниваемся, убираем пользователю demo, админ права и отключаем его в compose файле. Перезапускаем контейнер. Радуемся новой упорядоченной и легко управляемой раблочей атмосфере!

1 комментарий к “Planka — open-source kanban доска”

Оставьте комментарий