Запуск сервиса Planka с использованием Docker и Traefik

Planka — это легкое и мощное решение для управления проектами и отслеживания задач. Оно предоставляет все необходимые функции для организации рабочего процесса без излишней сложности.

Основные возможности Planka

  • Создание проектов, досок, списков, карточек, меток и задач.
  • Добавление участников, отслеживание времени, установка сроков, вложения и комментарии.
  • Поддержка Markdown в описаниях карточек и комментариях.
  • Фильтрация по участникам и меткам.
  • Настройка фона для проектов.
  • Обновления в реальном времени.
  • Уведомления для пользователей.

Создайте в корне проекта файл docker-compose.yml и добавьте в него следующее содержимое:

version: '3'
services:
  planka:
    image: meltyshev/planka:latest
    container_name: planka
    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/public/attachments
    ports:
      - 1337:1337
    environment:
      - BASE_URL=https://planka.{yourdomain}/
      - DATABASE_URL=postgresql://postgres@planka-db/planka
      - SECRET_KEY=notsecretkey
    depends_on:
      - postgres
#    labels:
#      - traefik.enable=true
#      - traefik.http.middlewares.planka-app_https.redirectscheme.scheme=https
#      - traefik.http.routers.planka-app.entrypoints=web
#      - traefik.http.routers.planka-app.middlewares=planka-app_https@docker
#      - traefik.http.routers.planka-app.rule=Host(`planka.{yourdomain}`)
#      - traefik.http.routers.planka-app_https.entrypoints=websecure
#      - traefik.http.routers.planka-app_https.rule=Host(`planka.{yourdomain}`)
#      - traefik.http.routers.planka-app_https.tls=true
#      - traefik.http.services.planka-app.loadbalancer.server.port=1337
#      - traefik.http.routers.planka-app_https.tls.certresolver=le

  postgres:
    image: postgres:alpine
    container_name: planka-db
    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:

networks:
  default:
    external:
      name: traefik_network

Пояснения к настройкам

  • planka: сервис Planka, использующий Docker-образ meltyshev/planka:latest. Для корректной работы требуется переменная DATABASE_URL, ссылающаяся на базу данных.
  • postgres: сервис PostgreSQL, необходимый для хранения данных Planka.
  • labels: метки для интеграции с Traefik, добавляющие поддержку HTTPS и автоматическое получение сертификатов SSL через Let's Encrypt.

Примечание: замените {yourdomain} на ваш собственный домен в настройках меток Traefik.

Запустите контейнеры командой:

docker-compose up -d

Контейнеры Planka и PostgreSQL будут развернуты и автоматически подключатся к сети Traefik для маршрутизации запросов.

Настройка Traefik

Раскоментируйте строки и убедитесь, что ваш домен planka.{yourdomain} настроен на IP-адрес вашего сервера и что сеть Traefik (traefik_network) уже существует. Эта сеть необходима для маршрутизации запросов через Traefik и для использования HTTPS.


Теперь у вас есть развернутое решение для управления проектами на основе Planka, работающее через обратный прокси Traefik!