разделы:

Сервис отслеживания проектов Planka

В этой публикации, речь пойдет о примере варианта установки сервиса Planka на свой сервер, используя встроенные возможности панели aaPanel и Docker Compose с дальнейшей привязкой к своему домену, а так же немного о том как настроить резервное копирование и восстановление сервиса в случае сбоя

 
Planka — Доска Kanban работающая в реальном времени для организации работы рабочих групп, отслеживания проектов, созданная с помощью React и Redux и пр.

Возможности Planka:

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

 
 

Установка с использованием Docker Compose

Можно выполнять все действия как в terminal самой aaPanel, так и через ssh клиент.

 
Создадим папку для сохранения 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

В ходе успешного выполнения команды, в директории /opt/planka появится файл docker-compose.yml

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

openssl rand -hex 64

На выходе мы получим примерно такую строку:

0f8bc693f8fa2a0c8ddb050523d6148792d62c1d7552a998859d75aad95b675a0a6c11ff5e7d067d5461a53a45217fbb7ddacdb42e4cf7773406084a4d9ed068

Сохраните куда нибудь эту строку (в заметки или скопируйте в память)

Теперь нам нужно перейти в директорию где мы сохранили docker-compose.yml и открыть его для редактирования, заполнив значение некоторых строк:

cd /opt/planka
nano docker-compose.yml

В данном файле необходимо заполнить следующие строки:

SECRET_KEY
BASE_URL

Так же раскомментируем все строки начинающиеся с DEFAULT_ADMIN_ и заполним их

— SECRET_KEY мы вставляем ранее полученное значение 0f8bc693f8fa2a0c8ddb050523d6148792d62d9ed068 и т.д.

— BASE_URL=https://[domain].ru домен, на котором планируется работа planka

— DEFAULT_ADMIN_EMAIL= почта администратора

— DEFAULT_ADMIN_PASSWORD= пароль администратора

— DEFAULT_ADMIN_NAME= имя администратора

— DEFAULT_ADMIN_USERNAME= логин администратора

Авторизация в сервисе осуществляется по связке почта + пароль администратора

 
Запускаем образ и стартуем сервис

docker compose up -d

При успешном выполнении команды, через некоторое время во вкладке Docker -> Container у вас появятся два работающих контейнера.

Теперь нам необходимо чтобы planka открывалась на нужном нам домене.

К этому моменту, выбранный домен уже должен быть добавлен в aaPanel и как NS запись и как сайт и открываться в браузере. Наша задача настроить конфигурацию Nginx так, чтобы при открытии домена в браузере у нас открывалась не директория сайта, а непосредственно сам сервис planka работающий в Docker контейнере.

Переходим во вкладку Website, находим в списке добавленных сайтов тот, который должен открывать сервис planka и заходим в его настройки.

Нам нужна вкладка Config открыв которую мы увидим конфигурационный файл созданный по умолчанию. Необходимо привести его к похожему виду:

Если у вас добавлены SSL сертификаты, не забудьте перенести блок с ними.

Пример конфигурационного файла Nginx

Спойлер [раскрыть]

Пример конфигурационного файла с работающего сервера Nginx

Спойлер [раскрыть]

После применения настроек, при отсутствии ошибок в конфиге, по выбранному вами домену начнет открываться форма авторизации сервиса planka

Сервис отслеживания проектов Planka

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

Сервис отслеживания проектов Planka

Сервис отслеживания проектов Planka

По возникшим вопросам связанным с работой Planka можно обращаться сюда.

 
Посла запуска сервиса Planka полезно сразу настроить резервное копирование данных. Что позволит в случае чего, быстро восстановить если не все то большую часть данных. Ниже Bash скрипты для создания резервной копии и скрипт для ее восстановления. В целом, готовые варианты есть в официальных инструкциях к Planka и иногда они меняются, однако я привожу варианты, которые используются непосредственно на работающем сервере. И к сожалению один раз уже применялись для восстановления, после того как сервер пришлось полностью переустанавливать и после чистой установки Planka восстанавливать данные из резервной копии.

Создадим директорию для резервных копий, например

mkdir /opt/planka/backup

перейдем в директорию

cd /opt/planka/backup

В этой папке разместим оба скрипта

touch backup.sh
touch restore.sh

В каждый из них вставим соответствующее названию содержимое

nano touch backup.sh
nano touch restore.sh

Резервное копирование (скрипт bash — backup.sh)

Спойлер [раскрыть]

Восстановление резервной копии (скрипт bash — restore.sh)

Спойлер [раскрыть]

Обратите внимание, конкретные значения строк в обоих скриптах
PLANKA_DOCKER_CONTAINER_POSTGRES=»planka-postgres-1″
PLANKA_DOCKER_CONTAINER_PLANKA=»planka-planka-1″

нужно брать конкретно те, которые у вас во вкладке Docker -> Container

После подготовки файлов скриптов, нам необходимо добавить запуск backup.sh в CRON, например выполнение раз в сутки или каждые несколько часов, как вам удобнее.

/opt/planka/backup/backup.sh

Резервные копии будут сохраняться в директории /opt/planka/backup/ с названиями включающее в себя дату и время создания 2025-01-18T22-30-01Z-backup.tgz

При необходимости восстановления из резервной копии, переходим в директорию:

cd /opt/planka/backup

Смотрим какие архивы у нас есть

ls *.tgz

Выбираем свежий по дате или тот который вам необходим и выполняем команду

bash /opt/planka/backup/restore.sh имя_вашего_архива.tgz

 
Полезные ссылки: