Russian documentation added (#2417)
This commit is contained in:
parent
be176fe36c
commit
3ea084fd31
|
|
@ -0,0 +1,37 @@
|
|||
Двух-уровневая аутентификация
|
||||
=============================
|
||||
|
||||
Любой пользователь может включить [двух-уровневую аутентификацию](http://en.wikipedia.org/wiki/Two_factor_authentication). После успешного входа, разовый код (6 знаков) запрашивается у пользователя для получения доступа в Канборд.
|
||||
|
||||
Этот код присылается в программу на вашем смартфоне.
|
||||
|
||||
Канборд использует [Time-based One-time Password Algorithm](http://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm) основанный на [RFC 6238](http://tools.ietf.org/html/rfc6238).
|
||||
|
||||
Имеется много программ совместимых со стандартной системой TOTP. Например, вы можете использовать эти приложения, бесплатные и с открытым исходным кодом:
|
||||
|
||||
- [Google Authenticator](https://github.com/google/google-authenticator/) (Android, iOS, Blackberry)
|
||||
- [FreeOTP](https://fedorahosted.org/freeotp/) (Android, iOS)
|
||||
- [OATH Toolkit](http://www.nongnu.org/oath-toolkit/) (Command line utility on Unix/Linux)
|
||||
|
||||
Эти системы могут работать офлайн и вам не нужно иметь мобильную связь.
|
||||
|
||||
Настройка
|
||||
---------
|
||||
|
||||
1. Перейдите в пользовательский профиль
|
||||
2. Слева нажмите **Двухфакторная авторизация** и поставте галочку в чекбоке
|
||||
3. Секретный ключ сгенерируется для вас
|
||||
|
||||

|
||||
|
||||
Рисунок. Двухуровневая аутентификация.
|
||||
|
||||
|
||||
- Вы должны сохранить секретный ключ в вашей TOTP программе. Если вы используете сматрфон, то просто сосканируйте QR код с помощью FreeOTP или Google Authenticator.
|
||||
- Каждый раз, когда вы будете входить в Канборд, будет запрашиваться новый код
|
||||
- Не забудьте протестировать ваше устройство, перед тем как закрыть вашу сессию
|
||||
|
||||
Новый секретный ключ генерируется каждый раз при включении/выключении этой возможности.
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
Аналитика для задач
|
||||
===================
|
||||
|
||||
На странице детального просмотра задачи, в левом боковом меню, для каждой задачи имеется раздел аналитики.
|
||||
|
||||
Затраченное время и время цикла
|
||||
-------------------------------
|
||||
|
||||

|
||||
|
||||
Рисунок. Затраченное время и время цикла
|
||||
|
||||
|
||||
- Затраченное время - время между созданием задачи и датой завершения (закрытие задачи).
|
||||
- Время цикла - время между началом испольнения задачи и датой завершения.
|
||||
- Если задача не закрыта, то для расчета используется текущее время вместо даты завершения.
|
||||
- Если дата начала выполнения задачи не указана, то время цикла не может быть расчитано.
|
||||
|
||||
|
||||
**Заметка**: Вы можете настроить автоматическое создание даты начала выполения задачи, когда вы перемещаете задачу в определенную колонку.
|
||||
|
||||
|
||||
Время затраченное в каждой колонке
|
||||
----------------------------------
|
||||
|
||||

|
||||
|
||||
Рисунок. Время затраченное в каждой колонке
|
||||
|
||||
|
||||
|
||||
- Этот график показывает сколько времени задача находилась в каждой колонке.
|
||||
- Затраченное время расчитывается до закрытия задачи.
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
Аналитика
|
||||
=========
|
||||
|
||||
Каждый проект имеет анлитический раздел. В зависимости от того как вы используете Канборд, вы можете видеть подобные отчеты:
|
||||
|
||||
Перераспределение(загрузка) пользователей
|
||||
-----------------------------------------
|
||||
|
||||

|
||||
|
||||
Перераспределение(загрузка) пользователей
|
||||
|
||||
|
||||
Круговая диаграмма, представленная выше, показыает количество открытых задач назначенных определенным пользователям.
|
||||
|
||||
|
||||
Распределение задач
|
||||
-------------------
|
||||
|
||||

|
||||
|
||||
Рисунок. Распределение задач
|
||||
|
||||
|
||||
|
||||
На рисунке выше, представлена круговая диаграмма, которая показывает количество открытых задач в определенных колонках.
|
||||
|
||||
|
||||
|
||||
Накопительная диаграмма
|
||||
-----------------------
|
||||
|
||||

|
||||
|
||||
Рисунок. Накопительная диаграмма
|
||||
|
||||
|
||||
- Эта диаграмма отображает количество задач выполненных в каждой колонке в определенный промежуток времени.
|
||||
- Счетчик задач записывается для каждой колонки каждый день.
|
||||
- Если вы хотите исключить закрытые задачи, измените [глобальные настройки проекта](project-configuration.markdown).
|
||||
|
||||
|
||||
Заметка: Для того чтобы увидеть этот график, вам нужно иметь, как минимум, данные за два дня.
|
||||
|
||||
|
||||
Диаграмма сгорания
|
||||
------------------
|
||||
|
||||

|
||||
|
||||
Рисунок. Диаграмма сгорания
|
||||
|
||||
|
||||
|
||||
[Диаграмма сгорания](https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0_%D1%81%D0%B3%D0%BE%D1%80%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87) доступна для каждого проекта.
|
||||
|
||||
|
||||
- Эта диаграмма отображает время затраченное на выполнение работы.
|
||||
- Канборд использует историю задач для генерации этой диаграммы.
|
||||
- Сумма историй задач для каждой колонки пересчитывается каждый день.
|
||||
|
||||
Среднее время затраченное в каждой колонке
|
||||
------------------------------------------
|
||||
|
||||

|
||||
|
||||
Рисунок. Среднее время затраченное в каждой колонке
|
||||
|
||||
|
||||
Этот график показывает среднее время затраченное в каждой колонке для последних 1000 задач.
|
||||
|
||||
- Канборд использует для подсчета данных переходы задач между колонками.
|
||||
- Затраченное время подсчитывается до закрытия задачи.
|
||||
|
||||
Среднее время выполнения и время цикла
|
||||
--------------------------------------
|
||||
|
||||

|
||||
|
||||
Рисунок. Среднее время затраченное в каждой колонке
|
||||
|
||||
Эта диаграмма показывает Среднее время выполнения и цикла для последних 1000 задач.
|
||||
- Время выполнения - время между созданием задачи и датой завершения.
|
||||
- Время цикла - время между указанной датой начала выполнения задачи и датой завершения.
|
||||
- Если задача не закрыта, текущая дата будет использована вместо даты завершения.
|
||||
|
||||
Эти данные подсчитываются и записываются каждый день на протяжении жизни проекта.
|
||||
|
||||
Заметка: Не забудьте выполнить [ежедневные cronjob](cronjob.markdown) для того чтобы иметь точную статистику.
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
Json-RPC API
|
||||
============
|
||||
|
||||
|
||||
API пользователя и приложения
|
||||
-----------------------------
|
||||
|
||||
|
||||
Имеется два типа доступа к API:
|
||||
|
||||
### API приложения[¶](#application-api "Ссылка на этот заголовок")
|
||||
|
||||
- Доступ к API осуществляется с использованием пользователя “jsonrpc” и ключа, доступного в настройках
|
||||
- Доступ ко всем процедурам
|
||||
- Не проверяются права доступа
|
||||
- Нет пользовательской сессии на сервере
|
||||
- Этот доступ можно использовать для: утилит миграции/импорта данных, создания задач из других систем и т.д.
|
||||
|
||||
### API пользователя[¶](#user-api "Ссылка на этот заголовок")
|
||||
|
||||
- Доступ к API под пользовательскими учетными данными (имя пользователя и пароль)
|
||||
- Доступ к ограниченному набору процедур
|
||||
- Проверка прав доступа к проекту
|
||||
- На сервере создается пользовательская сессия
|
||||
- Этот доступ можно использовать для клиентов: мобильных/десктопных приложений, утилит коммандной строки и т.д.
|
||||
|
||||
Безопасность
|
||||
------------
|
||||
|
||||
- Всегда используйте протокол HTTPS с действительным сертификатом
|
||||
- Если вы делаете мобильное приложение, позаботьтесь о безопасном хранении учетных данных пользователя на мобильном устройстве
|
||||
- После 3 неправильных подключений к пользовательскому api, пользователь может разблокировать свою учетную запись только с использованием формы входа
|
||||
- Двухуровневая аутентификация пока не доступна через API
|
||||
|
||||
|
||||
|
||||
Протокол
|
||||
--------
|
||||
|
||||
|
||||
Канборд использует протокол Json-RPC для взаимодействия с внешними программами.
|
||||
|
||||
JSON-RPC - протокол удаленного вызова процедур в формате JSON. По сути своей, тот же XML-RPC, но использующий формат JSON.
|
||||
|
||||
Мы используем [протокол версии 2](http://www.jsonrpc.org/specification). Вы можете вызывать API используя `POST`{.docutils .literal} HTTP запрос.
|
||||
|
||||
Канборд поддерживает пакетные запросы, поэтому вы можете делать многократные API вызовы в одном HTTP запросе. Это, в частности, удобно для мобильных клиентов с высокой сетевой задержкой.
|
||||
|
||||
|
||||
Использование
|
||||
-------------
|
||||
|
||||
- [Аутентификация](api-authentication.markdown)
|
||||
- [Примеры](api-examples.markdown)
|
||||
- [Приложение](api-application-procedures.markdown)
|
||||
- [Проекты](api-project-procedures.markdown)
|
||||
- [Права доступа к проекту](api-project-permission-procedures.markdown)
|
||||
- [Доски](api-board-procedures.markdown)
|
||||
- [Колонки](api-column-procedures.markdown)
|
||||
- [Дорожки](api-swimlane-procedures.markdown)
|
||||
- [Категории](api-category-procedures.markdown)
|
||||
- [Автоматические дейсвия](api-action-procedures.markdown)
|
||||
- [Задачи](api-task-procedures.markdown)
|
||||
- [Подзадачи](api-subtask-procedures.markdown)
|
||||
- [Файлы](api-file-procedures.markdown)
|
||||
- [Ссылки](api-link-procedures.markdown)
|
||||
- [Комментарии](api-comment-procedures.markdown)
|
||||
- [Пользователи](api-user-procedures.markdown)
|
||||
- [Группы](api-group-procedures.markdown)
|
||||
- [Члены группы](api-group-member-procedures.markdown)
|
||||
- [Специфичные запросы пользователя](api-me-procedures.markdown)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
Настройки приложения
|
||||
====================
|
||||
|
||||
Некоторые параметры для приложения могут быть изменены на странице настроек. Только администратор может сделать эти настройки.
|
||||
Выберите в правом выпадающем меню **Настройки**, затем в слева выберите **Настройки приложения**.
|
||||
|
||||

|
||||
|
||||
Рисунок. Настройки приложения
|
||||
|
||||
|
||||
URL приложения[¶](#application-url "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------
|
||||
|
||||
Этот параметр используется для email уведомлений. В тексте сообщения будет содержаться ссылка на задачу в Канборде.
|
||||
|
||||
|
||||
Язык[¶](#language "Ссылка на этот заголовок")
|
||||
---------------------------------------------
|
||||
|
||||
Язык приложения может быть изменен в любое время. Язык устанавливается для всех пользователей Канборд.
|
||||
|
||||
|
||||
Часовой пояс[¶](#time-zone "Ссылка на этот заголовок")
|
||||
------------------------------------------------------
|
||||
|
||||
По умолчанию, Канборд использует часовой пояс UTC, но вы можете указать любой часовой пояс. Список содержит все поддерживаемые часовые пояса для вашего веб сервера.
|
||||
|
||||
|
||||
Формат даты[¶](#date-format "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------
|
||||
|
||||
Формать даты, который используется для полей дата. Например, дата завершения задачи.
|
||||
|
||||
Канборд поддерживает 4 разных формата:
|
||||
|
||||
- ДД/ММ/ГГГГ
|
||||
- ММ/ДД/ГГГГ (по умолчанию)
|
||||
- ГГГГ/ММ/ДД
|
||||
- ММ.ДД.ГГГГ
|
||||
|
||||
Формат [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) всегда принимается (YYYY-MM-DD or YYYY\_MM\_DD).
|
||||
|
||||
|
||||
Пользовательский стиль CSS[¶](#custom-stylesheet "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Вы можете сделать свой стиль CSS для Канборд или улучшить имеющийся стиль.
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
Как создать asset (Javascript и CSS файлы)
|
||||
==========================================
|
||||
|
||||
|
||||
Файлы CSS стилей и Javascript объединены вместе и минимизированы.
|
||||
|
||||
- Оригинальные файлы CSS хранятся в каталоге `assets/css/src/*.css`{.docutils .literal}
|
||||
- Оригинальные файлы Javascript хранятся в каталоге `assets/js/src/*.js`{.docutils .literal}
|
||||
- `assets/*/vendor.min.*`{.docutils .literal} - внешние зависимости объединены и минимизированы
|
||||
- `assets/*/app.min.*`{.docutils .literal} - исходный код приложения объединены и минимизированы
|
||||
|
||||
|
||||
Требования[¶](#requirements "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------
|
||||
|
||||
- [NodeJS](https://nodejs.org/) с `npm`{.docutils .literal}
|
||||
|
||||
|
||||
Сборка файлов Javascript и CSS[¶](#building-javascript-and-css-files "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
Канборд использует [Gulp](http://gulpjs.com/) для сборки asset и [Bower](http://bower.io/) для управления зависимостями. Эти утилиты устанавлены в проекте как зависимости NodeJS.
|
||||
|
||||
|
||||
### Запустить все[¶](#run-everything "Ссылка на этот заголовок")
|
||||
|
||||
make static
|
||||
|
||||
### Собрать `vendor.min.js`{.docutils .literal} и `vendor.min.css`{.docutils .literal}[¶](#build-vendor-min-js-and-vendor-min-css "Ссылка на этот заголовок")
|
||||
|
||||
gulp vendor
|
||||
|
||||
### Собрать `app.min.js`{.docutils .literal}[¶](#build-app-min-js "Ссылка на этот заголовок")
|
||||
|
||||
gulp js
|
||||
|
||||
|
||||
### Собрать `app.min.css`{.docutils .literal}[¶](#build-app-min-css "Ссылка на этот заголовок")
|
||||
|
||||
gulp css
|
||||
|
||||
|
||||
Примечание[¶](#notes "Ссылка на этот заголовок")
|
||||
------------------------------------------------
|
||||
|
||||
Сборка asset невозможна из архива Kanboard, вы должны клонировать репозиторий.
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,128 @@
|
|||
Автоматизация процессов
|
||||
=======================
|
||||
|
||||
|
||||
Для минимизации пользовательских действий, Kanboard поддерживает автоматизацию процессов.
|
||||
|
||||
Каждый автоматизированный процесс представляет следующее:
|
||||
|
||||
- Ожидание наступления события
|
||||
- Выполняется действие при наступлении этого события
|
||||
- В результате устанавливается определенный параметр
|
||||
|
||||
Каждый проект может иметь свой набор автоматических процессов. Автоматические процессы доступны в панеле настроек (**Меню** -\> **Настройки**) **Автоматические действия**.
|
||||
|
||||
|
||||
Добавление нового действия[¶](#add-a-new-action "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
|
||||
Нажмите на ссылку **Добавить новое действие**.
|
||||
|
||||

|
||||
|
||||
Рисунок. Автоматическое действие.
|
||||
|
||||
|
||||
- Выберете действие
|
||||
- Затем, выберете событие
|
||||
- И в завершении, задайте параметр
|
||||
|
||||
|
||||
Список доступных действий[¶](#list-of-available-actions "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
- Создать комментарий из внешнего источника
|
||||
- Добавлять запись при перемещении задачи между колонками
|
||||
- Автоматически назначать категорию по цвету
|
||||
- Изменить категорию основываясь на внешнем ярлыке
|
||||
- Автоматически назначать категории на основе ссылки
|
||||
- Автоматически назначать цвет по категории
|
||||
- Назначить цвет, когда задача перемещается в определенную колонку
|
||||
- Изменение цвета задач при использовании ссылки на определенные задачи
|
||||
- Назначить определенный цвет пользователю
|
||||
- Назначить задачу тому кто выполнит действие
|
||||
- Назначить задачу пользователю, который произвел изменение в колонке
|
||||
- Назначить задачу определенному пользователю
|
||||
- Изменить назначенного основываясь на внешнем имени пользователя
|
||||
- Закрыть задачу
|
||||
- Закрыть задачу в выбранной колонке
|
||||
- Создать задачу из внешнего источника
|
||||
- Создать дубликат задачи в другом проекте
|
||||
- Отправить задачу по email
|
||||
- Переместить задачу в другой проект
|
||||
- Переместить задачу в другую колонку, когда она назначена пользователю
|
||||
- Переносить задачи в другую колонку при изменении категории
|
||||
- Переместить задачу в другую колонку, когда назначение снято
|
||||
- Открыть задачу
|
||||
- Автоматическое обновление даты начала
|
||||
|
||||
|
||||
Примеры[¶](#examples "Ссылка на этот заголовок")
|
||||
------------------------------------------------
|
||||
|
||||
|
||||
Здесь предствалены примеры использованные в реальной жизни:
|
||||
|
||||
### Когда я перемещаю задачу в колонку “Выполнено”, автоматически закрывать эту задачу[¶](#when-i-move-a-task-to-the-column-done-automatically-close-this-task "Ссылка на этот заголовок")
|
||||
|
||||
- Выберите действия: **Закрыть задачу в выбранной колонке**
|
||||
- Выберите событие: **Переместить задачу в другую колонку**
|
||||
- Установите параметр действия: **Колонка = Выполнено** (это колонка в которую будет перемещена задача)
|
||||
|
||||
### Когда я перемещаю задачу в колонку “На утверждение”, назначить эту задачу определенному пользователю.[¶](#when-i-move-a-task-to-the-column-to-be-validated-assign-this-task-to-a-specific-user "Ссылка на этот заголовок")
|
||||
|
||||
- Выберите действие: **Назначить задачу определенному пользователю**
|
||||
- Выберите событие: **Переместить задачу в другую колонку**
|
||||
- Установите параметр действия: **Колонка = На утверждение** и **Пользователь = Петр** (Петр - наш тестировщик)
|
||||
|
||||
### Когда я перемещаю задачу в колонку “В работе”, назначить эту задачу определенному пользователю[¶](#when-i-move-a-task-to-the-column-work-in-progress-assign-this-task-to-the-current-user "Ссылка на этот заголовок")
|
||||
|
||||
- Выберите действие: **Назначить задачу пользователю, который произвел изменение в колонке**
|
||||
- Выберите событие: **Переместить задачу в другую колонку**
|
||||
- Установите параметр действия: **Колонка = В работе**
|
||||
|
||||
|
||||
### Когда задача выполнена, скопировать эту задачу в другой проект[¶](#when-a-task-is-completed-duplicate-this-task-to-another-project "Ссылка на этот заголовок")
|
||||
|
||||
Предположим, мы имеем два проекта “Заказы покупателей” и “Производство”. Когда заказ в проекте “Заказы покупателей” утвержден, копируем этот заказ в проект “Производство”.
|
||||
|
||||
- Выбираем действие: **Создать дубликат задачи в другом проекте**
|
||||
- Выбираем событие: **Завершение задачи**
|
||||
- Установите параметр действия: **Колонка = Утвержден** и **Проект = Производство**
|
||||
|
||||
|
||||
### Когда задача перемещена в последнюю колонку, переместить эту задачу в другой проект[¶](#when-a-task-is-moved-to-the-last-column-move-the-exact-same-task-to-another-project "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
Предположим, мы имеем два проекта “Идеи” и “Разработка”, когда идея утверждена, перемещаем эту задачу в проект “Разработка”.
|
||||
|
||||
- Выберите действие: **Переместить задачу в другой проект**
|
||||
- Выберите событие: **Переместить задачу в другую колонку**
|
||||
- Установите параметр действия: **Колонка = Утверждена** и **Проект = Разработка**
|
||||
|
||||
### Я хочу назначать автоматически цвет для пользователя Петр[¶](#i-want-to-assign-automatically-a-color-to-the-user-bob "Ссылка на этот заголовок")
|
||||
|
||||
- Выберите действие: **Назначить определенный цвет пользователю**
|
||||
- Выберите событие: **Изменен назначенный**
|
||||
- Установите параметр действия: **Цвет = Зеленый** и **Назначена = Петр**
|
||||
|
||||
|
||||
### Я хочу назначить цвет автоматически для определенной категории “Важные запросы”[¶](#i-want-to-assign-a-color-automatically-to-the-defined-category-feature-request "Ссылка на этот заголовок")
|
||||
|
||||
- Выберите действие: **Автоматически назначать цвет по категории**
|
||||
- Выберите событие: **Создание или изменение задачи**
|
||||
- Установите параметр действия: **Цвет = Голубой** и **Категория = Важные запросы**
|
||||
|
||||
|
||||
### Я хочу устанавливать дату начала автоматически когда задача перемещена в колонку “В работе”[¶](#i-want-to-set-the-start-date-automatically-when-the-task-is-moved-to-the-column-work-in-progress "Ссылка на этот заголовок")
|
||||
|
||||
- Выберите действие: **Автоматическое обновление даты начала**
|
||||
- Выберите событие: **Переместить задачу в другую колонку**
|
||||
- Установите параметр действия: **Колонка = В работе**
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
Компактное и развернутое отображение задач
|
||||
==========================================
|
||||
|
||||
Задачи на Доске могут быть отображены в компактном или развернутом виде. Переключение между компактным и развернутым видом может быть выполнено с помощью горячей клавиши **“s”** или в раскрывающемся Меню (слева вверху) -\> Развернуть задачи или Свернуть задачи.
|
||||
|
||||
|
||||
Компактный вид[¶](#collapsed-mode "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Задачи представлены в компактном виде
|
||||
|
||||
- Если для задачи назначен исполнитель, то инициалы исполнителя показываются рядом с номером задачи;
|
||||
- Если заголовок задачи слишком длинный, вы можете подвести курсор мышки над задачей и полный заголовок задачи отобразится во всплывающем окне.
|
||||
|
||||
|
||||
|
||||
Развернутый вид[¶](#expanded-mode "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------
|
||||
|
||||
|
||||

|
||||
Рисунок. Развернутый вид
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
Настройка Доски
|
||||
===============
|
||||
|
||||
|
||||
В правом верхнем выпадающем меню выберите **Настройки**, затем, слева, выберите **Настройки Доски**.
|
||||
|
||||

|
||||
|
||||
Рисунок. Настройка Доски
|
||||
|
||||
|
||||
Подстветка задач[¶](#task-highlighting "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------
|
||||
|
||||
Эта опция позволяет подсвечивать задачу, которая была перенесена недавно.
|
||||
|
||||
Установите значение 0 для выключения подсветки. По умолчанию установлено значение 172800 секунд (2 дня)
|
||||
|
||||
Перемещенные задачи будут подсвечиваться в течении двух дней.
|
||||
|
||||
|
||||
Период обновления для публичных досок[¶](#refresh-interval-for-public-board "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------------------------------------
|
||||
|
||||
Если вы создаете публичную доску, то страница, по умолчанию, будет обновляться каждые 60 секунд.
|
||||
|
||||
|
||||
Период обновления для частных досок[¶](#refresh-interval-for-private-board "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------------------------------------
|
||||
|
||||
Когда в вашем браузере открыта Доска, Канборд проверяет обновления изменение каждые 10 секунд.
|
||||
|
||||
Процесс обновления реализован по технологии Ajax.
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
Горизонтальная прокрутка и компактный вид
|
||||
=========================================
|
||||
|
||||
Когда ширины экрана не хватает для отображения всех колонок, то внизу появляется горизонтальная прокрутка.
|
||||
|
||||
Однако, можно переключится на компактный вид доски для отображения всех колонок на вашем экране.
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Переключение на компактное представление.
|
||||
|
||||
Переключится между горизонтальной прокруткой и компактным видом можно с помощью горячей клавиши **“c”** или в левом верхнем раскрывающемся “Меню” -\> “Компактный вид” или “Широкий вид”.
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
Показать и скрыть колонки на Доске
|
||||
==================================
|
||||
|
||||
Вы можете показать и скрыть колонки на Доске очень просто:
|
||||
|
||||

|
||||
|
||||
Рисунок. Спрятать колонку.
|
||||
|
||||
|
||||
Чтобы скрыть (спрятать) колонку , откройте выпадающее меню колонки.
|
||||
|
||||

|
||||
|
||||
Рисунок.Показать колонку.
|
||||
|
||||
|
||||
Для отображения скрытой колонки нажмите “иконку плюс”
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
Защита от Brute Force
|
||||
=====================
|
||||
|
||||
Защита от Brute Force (подбор пароля методом перебора) в Канборде работает на уровне учетной записи пользователя:
|
||||
|
||||
- После 3 неправильных вводов пароля для одного и того же пользователя, на форме входа появляется капча для предотвращения дальнейшего подбора программой-роботом.
|
||||
- После 6 неудачных вводов пароля, учетная запись пользователя блокируется на 15 минут.
|
||||
|
||||
Эта возможность работает только для метода аутентификации с использованием формы входа на веб странице.
|
||||
|
||||
Однако, **после трех ошибочных аутентификаций через пользовательский API, учетная запись может быть разблокирована с использованием формы входа на веб странице**
|
||||
|
||||
В Канборде нет блокировок по IP адресу, потому что программы-роботы используют множество анонимных прокси. Однако, вы можете использовать внешнюю утилиту, например [fail2ban](http://www.fail2ban.org) , чтобы избежать массового сканирования.
|
||||
|
||||
Настройки защиты от Brute Force могут быть изменены в следующих переменных:
|
||||
|
||||
// Enable captcha after 3 authentication failure
|
||||
|
||||
define('BRUTEFORCE_CAPTCHA', 3);
|
||||
|
||||
|
||||
|
||||
// Lock the account after 6 authentication failure
|
||||
|
||||
define('BRUTEFORCE_LOCKDOWN', 6);
|
||||
|
||||
|
||||
|
||||
// Lock account duration in minutes
|
||||
|
||||
define('BRUTEFORCE_LOCKDOWN_DURATION', 15);
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
Настройки календаря
|
||||
===================
|
||||
|
||||
В правом верхнем выпадающем меню выберите **Настройки**, затем, слева, выберите **Настройки календаря**.
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Настройки календаря
|
||||
|
||||
|
||||
В Канборде имеется два вида Календаря:
|
||||
|
||||
- Календарь проекта
|
||||
- Пользовательский календарь (доступен в левом меню Инфопанели)
|
||||
|
||||
|
||||
Календарь проекта[¶](#project-calendar "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------
|
||||
|
||||
Эти календари показывают задачи с указанной датой создания или датой начала и датой завершения.
|
||||
|
||||
### Показать задачи в зависимости от даты создания[¶](#show-tasks-based-on-the-creation-date "Ссылка на этот заголовок")
|
||||
|
||||
- Дата начала в календаре показывает дату создания задачи.
|
||||
- Конечная дата показывает дату завершения.
|
||||
|
||||
|
||||
### Показать задачи в зависимости от даты начала[¶](#show-tasks-based-on-the-start-date "Ссылка на этот заголовок")
|
||||
|
||||
- Дата начала в календаре показывает дату начала задачи.
|
||||
- Эта дата должна быть установлена вручную.
|
||||
- Конечная дата показывает дату завершения.
|
||||
- Если не указать дату начала, то задача не будет отображена в календаре.
|
||||
|
||||
|
||||
|
||||
Пользовательский календарь[¶](#user-calendar "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Пользовательский календарь показывает только задачи назначенные пользователю и, опционально, информацию о подзадачах.
|
||||
|
||||
|
||||
### Показать подзадачи, основанные на отслеживании времени[¶](#show-sub-tasks-based-on-the-time-tracking "Ссылка на этот заголовок")
|
||||
|
||||
- Показывает подзадачи в календаре из записей таблицы отслеживания времени.
|
||||
- Пересечения в пользовательской таблице времени также подсчитываются.
|
||||
|
||||
|
||||
### Показывать оценку подзадач (прогнозирование будущих работ)[¶](#show-sub-task-estimates-forecast-of-future-work "Ссылка на этот заголовок")
|
||||
|
||||
- Показывает оценку будущих работ для подзадач в статусе “для исполнения” и с указанным значением “оценка”.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
Календарь
|
||||
=========
|
||||
|
||||
|
||||
Календарь может быть представлен в двух видах:
|
||||
|
||||
- Представление в проекте с использование фильтров (доступно на Доске)
|
||||
- Пользовательское представление (доступно в рабочей панели и в пользовательском разделе)
|
||||
|
||||
В Календаре можно увидеть следующую информацию:
|
||||
|
||||
- Задачи с “датой испольнения”, отображаются наверху. **Дата испольнения может быть изменена перемещением задачи на другой день**.
|
||||
- Задачи с датой создания или датой начала. **Эти события не могут быть изменены в календаре**.
|
||||
- Отслеживание времени подзадачи. Все записанные временные диапазоны будут отображены в Календаре.
|
||||
- Подсчеты, прогнозы затрачиваемого время на подзадачу.
|
||||
|
||||

|
||||
|
||||
Рисунок. Календарь
|
||||
|
||||
|
||||
Настроки Календаря могут быть изменены на странице **Настройки**
|
||||
|
||||
Заметка: Дата исполения не содержит информацию о времени.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,127 @@
|
|||
Инсталяция Канборд на Centos
|
||||
============================
|
||||
|
||||
|
||||
**Внимание**: Некоторые возможности Канборда требуют [запуск ежедневных фоновых задач](cronjob.markdown).
|
||||
|
||||
|
||||
Centos 7[¶](#centos-7 "Ссылка на этот заголовок")
|
||||
-------------------------------------------------
|
||||
|
||||
Установите PHP и Apache:
|
||||
|
||||
|
||||
yum install -y php php-mbstring php-pdo php-gd unzip wget
|
||||
|
||||
|
||||
По умолчанию, Centos 7 использует PHP 5.4.16 и Apache 2.4.6.
|
||||
|
||||
|
||||
|
||||
Перезапустите Apache:
|
||||
|
||||
|
||||
|
||||
systemctl restart httpd.service
|
||||
|
||||
|
||||
|
||||
Установите Канборд:
|
||||
|
||||
|
||||
|
||||
cd /var/www/html
|
||||
|
||||
wget https://kanboard.net/kanboard-latest.zip
|
||||
|
||||
unzip kanboard-latest.zip
|
||||
|
||||
chown -R apache:apache kanboard/data
|
||||
|
||||
rm kanboard-latest.zip
|
||||
|
||||
|
||||
|
||||
Если включен SELinux, убедитесь что пользователь веб сервера Apache имеет права на запись в директорию data:
|
||||
|
||||
|
||||
|
||||
chcon -R -t httpd_sys_content_rw_t /var/www/html/kanboard/data
|
||||
|
||||
|
||||
|
||||
Убедитесь, что Канборд может посылать email сообщения и делать внешние сетевые запросы, например с SELinux:
|
||||
|
||||
|
||||
|
||||
setsebool -P httpd_can_network_connect=1
|
||||
|
||||
|
||||
|
||||
Позволяет делать внешние подключения если используется LDAP, SMTP, Web hooks или другая интеграция.
|
||||
|
||||
|
||||
|
||||
Centos 6.x[¶](#centos-6-x "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Установите PHP и Apache:
|
||||
|
||||
|
||||
|
||||
yum install -y php php-mbstring php-pdo php-gd unzip wget
|
||||
|
||||
|
||||
|
||||
По умолчанию, Centos 6.5 использует PHP 5.3.3 и Apache 2.2.15.
|
||||
|
||||
|
||||
|
||||
Включите короткие теги:
|
||||
|
||||
|
||||
|
||||
- Отредактируйте файл `/etc/php.ini`{.docutils .literal}
|
||||
|
||||
|
||||
|
||||
- Измените строку `short_open_tag = On`{.docutils .literal} (вместо `short_open_tag = Off`{.docutils .literal})
|
||||
|
||||
|
||||
|
||||
Перезапустите Apache:
|
||||
|
||||
|
||||
|
||||
service httpd restart
|
||||
|
||||
|
||||
|
||||
Установите Канборд:
|
||||
|
||||
|
||||
|
||||
cd /var/www/html
|
||||
|
||||
wget https://kanboard.net/kanboard-latest.zip
|
||||
|
||||
unzip kanboard-latest.zip
|
||||
|
||||
chown -R apache:apache kanboard/data
|
||||
|
||||
rm kanboard-latest.zip
|
||||
|
||||
|
||||
|
||||
Готово. Можете работать с Канборд. Откройте в браузере `http://ваш_сервер/kanboard/`{.docutils .literal}.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,331 @@
|
|||
Интерфейс командной строки
|
||||
==========================
|
||||
|
||||
|
||||
|
||||
Канборд обеспечивает простой интерфейс командной строки, которым можно воспользоваться только из Unix терминала. Эта возможность доступна только с локальной машины.
|
||||
|
||||
|
||||
|
||||
Интерфейс командной строки полезен для выполнения команд вне процессов веб сервера.
|
||||
|
||||
|
||||
|
||||
Использование[¶](#usage "Ссылка на этот заголовок")
|
||||
---------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Откройте терминал и перейдите в директорию Канборд (например: `cd /var/www/kanboard`)
|
||||
|
||||
|
||||
|
||||
- Выполните команду `./kanboard`
|
||||
|
||||
|
||||
|
||||
<!-- -->
|
||||
|
||||
|
||||
|
||||
Kanboard version master
|
||||
|
||||
|
||||
|
||||
Usage:
|
||||
|
||||
command [options] [arguments]
|
||||
|
||||
|
||||
|
||||
Options:
|
||||
|
||||
-h, --help Display this help message
|
||||
|
||||
-q, --quiet Do not output any message
|
||||
|
||||
-V, --version Display this application version
|
||||
|
||||
--ansi Force ANSI output
|
||||
|
||||
--no-ansi Disable ANSI output
|
||||
|
||||
-n, --no-interaction Do not ask any interactive question
|
||||
|
||||
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
|
||||
|
||||
|
||||
|
||||
Available commands:
|
||||
|
||||
cronjob Execute daily cronjob
|
||||
|
||||
help Displays help for a command
|
||||
|
||||
list Lists commands
|
||||
|
||||
export
|
||||
|
||||
export:daily-project-column-stats Daily project column stats CSV export (number of tasks per column and per day)
|
||||
|
||||
export:subtasks Subtasks CSV export
|
||||
|
||||
export:tasks Tasks CSV export
|
||||
|
||||
export:transitions Task transitions CSV export
|
||||
|
||||
locale
|
||||
|
||||
locale:compare Compare application translations with the fr_FR locale
|
||||
|
||||
locale:sync Synchronize all translations based on the fr_FR locale
|
||||
|
||||
notification
|
||||
|
||||
notification:overdue-tasks Send notifications for overdue tasks
|
||||
|
||||
plugin
|
||||
|
||||
plugin:install Install a plugin from a remote Zip archive
|
||||
|
||||
plugin:uninstall Remove a plugin
|
||||
|
||||
plugin:upgrade Update all installed plugins
|
||||
|
||||
projects
|
||||
|
||||
projects:daily-stats Calculate daily statistics for all projects
|
||||
|
||||
trigger
|
||||
|
||||
trigger:tasks Trigger scheduler event for all tasks
|
||||
|
||||
user
|
||||
|
||||
user:reset-2fa Remove two-factor authentication for a user
|
||||
|
||||
user:reset-password Change user password
|
||||
|
||||
|
||||
|
||||
Доступные команды[¶](#available-commands "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
### Экспорт задач в формате CSV[¶](#tasks-csv-export "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Применение:
|
||||
|
||||
|
||||
|
||||
./kanboard export:tasks <project_id> <start_date> <end_date>
|
||||
|
||||
|
||||
|
||||
Пример:
|
||||
|
||||
|
||||
|
||||
./kanboard export:tasks 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv
|
||||
|
||||
|
||||
|
||||
Данные CSV передаются в `stdout`.
|
||||
|
||||
|
||||
|
||||
### Экспорт подзадач в формате CSV[¶](#subtasks-csv-export "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Применение:
|
||||
|
||||
|
||||
|
||||
./kanboard export:subtasks <project_id> <start_date> <end_date>
|
||||
|
||||
|
||||
|
||||
Пример:
|
||||
|
||||
|
||||
|
||||
./kanboard export:subtasks 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv
|
||||
|
||||
|
||||
|
||||
### Экспорт перемещения задач в формате CSV[¶](#task-transitions-csv-export "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Применение:
|
||||
|
||||
|
||||
|
||||
./kanboard export:transitions <project_id> <start_date> <end_date>
|
||||
|
||||
|
||||
|
||||
Пример:
|
||||
|
||||
|
||||
|
||||
./kanboard export:transitions 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv
|
||||
|
||||
|
||||
|
||||
### Экспорт ежедневных сведений в формате CSV[¶](#export-daily-summaries-data-in-csv "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Экспортированные данные будут выведены в стандартный вывод:
|
||||
|
||||
|
||||
|
||||
./kanboard export:daily-project-column-stats <project_id> <start_date> <end_date>
|
||||
|
||||
|
||||
|
||||
Пример:
|
||||
|
||||
|
||||
|
||||
./kanboard export:daily-project-column-stats 1 2014-10-01 2014-11-30 > /tmp/my_custom_export.csv
|
||||
|
||||
|
||||
|
||||
### Отправка уведомлений для просроченных задач[¶](#send-notifications-for-overdue-tasks "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Email сообщения будут отправлены всем пользователям, у которых включено оповещение.
|
||||
|
||||
|
||||
|
||||
./kanboard notification:overdue-tasks
|
||||
|
||||
|
||||
|
||||
Необязательные параметры:
|
||||
|
||||
|
||||
|
||||
- `--show`: Показывать отправку уведомлений
|
||||
|
||||
|
||||
|
||||
- `--group`: Группировать все просроченные задачи для одного пользователя (со всех проектов) на один email
|
||||
|
||||
|
||||
|
||||
- `--manager`: Посылать все просроченные задачи менеджеру (менеджерам) проекта в одном email сообщении
|
||||
|
||||
|
||||
|
||||
Вы можете просмотреть просроченные задачи с помощью параметра `--show`:
|
||||
|
||||
|
||||
|
||||
```bash
|
||||
./kanboard notification:overdue-tasks --show
|
||||
+-----+---------+------------+------------+--------------+----------+
|
||||
| Id | Title | Due date | Project Id | Project name | Assignee |
|
||||
+-----+---------+------------+------------+--------------+----------+
|
||||
| 201 | Test | 2014-10-26 | 1 | Project #0 | admin |
|
||||
| 202 | My task | 2014-10-28 | 1 | Project #0 | |
|
||||
+-----+---------+------------+------------+--------------+----------+
|
||||
```
|
||||
|
||||
|
||||
### Запуск ежедневной калькуляции статистики[¶](#run-daily-project-stats-calculation "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Эта команда считает статистику для каждого проекта:
|
||||
|
||||
|
||||
|
||||
./kanboard projects:daily-stats
|
||||
|
||||
Run calculation for Project #0
|
||||
|
||||
Run calculation for Project #1
|
||||
|
||||
Run calculation for Project #10
|
||||
|
||||
|
||||
|
||||
### Триггеры для задач[¶](#trigger-for-tasks)
|
||||
|
||||
|
||||
|
||||
Эта команда посылает “событие для ежедневных фоновых заданий” для всех открытых задач в каждом проекте.
|
||||
|
||||
|
||||
|
||||
./kanboard trigger:tasks
|
||||
|
||||
Trigger task event: project_id=2, nb_tasks=1
|
||||
|
||||
|
||||
|
||||
### Сброс пароля пользователя[¶](#reset-user-password "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
./kanboard user:reset-password my_user
|
||||
|
||||
|
||||
|
||||
Будет запрошен пароль и подтверждение. Символы не отображаются на экране.
|
||||
|
||||
|
||||
|
||||
### Удаление двухуровневой аутентификации для пользователя[¶](#remove-two-factor-authentication-for-a-user "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
./kanboard user:reset-2fa my_user
|
||||
|
||||
|
||||
|
||||
### Установка плагина[¶](#install-a-plugin "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
./kanboard plugin:install https://github.com/kanboard/plugin-github-auth/releases/download/v1.0.1/GithubAuth-1.0.1.zip
|
||||
|
||||
|
||||
|
||||
Заметка: Установленные файлы будут иметь теже права, что и у текущего пользователя
|
||||
|
||||
|
||||
|
||||
### Удаление плагина[¶](#remove-a-plugin "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
./kanboard plugin:uninstall Budget
|
||||
|
||||
|
||||
|
||||
### Обновление всех плагинов[¶](#upgrade-all-plugins "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
./kanboard plugin:upgrade
|
||||
|
||||
* Updating plugin: Budget Planning
|
||||
|
||||
* Plugin up to date: Github Authentication
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
Закрытие задач
|
||||
==============
|
||||
|
||||
Когда задача закрыта, то она скрывается на Доске.
|
||||
|
||||
Не смотря на это, вы можете в любой момент зайти в список закрытых задач используя запрос **status:closed** в любой форме поиска или просто выбрать фильтр “Закрытые задачи” в выпадающем меню.
|
||||
|
||||
Имеется два пути для закрытия задачи: - На Доске выбрать задачу и выпадающем меню выбрать **Закрыть задачу**
|
||||
|
||||

|
||||
|
||||
Рисунок. Закрытие задачи, используя выпадающее меню.
|
||||
|
||||
|
||||
или - Используя детальное представление задачи, выбрать **Закрыть задачу** в меню боковой панели (слева)
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Закрытие задачи.
|
||||
|
||||
|
||||
|
||||
**Заметка**: Когда вы закрываете задачу, у всех не выполненных подзадач будет изменен статус на “Выполнено”
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
Как запустить Канборд на Cloudron
|
||||
=================================
|
||||
|
||||
|
||||
[Cloudron](https://cloudron.io) приватный смартсервер, на котором вы можете установить веб приложения, такие как Канборд. Вы можете установить Канборд в определенном домене, при этом каждой инсталяции создавается резервная копия и поддерживается новая версия Канборда автоматически.
|
||||
|
||||
|
||||
|
||||
[](https://cloudron.io/button.html?app=net.kanboard.cloudronapp)
|
||||
|
||||
|
||||
|
||||
Учетные записи[¶](#accounts "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------
|
||||
|
||||
|
||||
Приложение плотно интегрируется с системой Управления пользователями Cloudron (через LDAP). Только пользователи Cloudron могут войти в Канборд. Плюс, любой администратор Cloudron становится администратором Канборда автоматически.
|
||||
|
||||
|
||||
Установка плагинов[¶](#installing-plugins "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Плагины могут быть установлены и настроены с помощью утилиты [Cloudron CLI](https://cloudron.io/references/cli.html). Для подробной информации смотрите [описание приложения](https://cloudron.io/appstore.html?app=net.kanboard.cloudronapp).
|
||||
|
||||
|
||||
|
||||
Исходный код приложения[¶](#application-source-code "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Исходный код приложения Cloudron находится [здесь](https://github.com/cloudron-io/kanboard-app).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
Стандарты используемые при написании кода
|
||||
=========================================
|
||||
|
||||
|
||||
|
||||
Код PHP[¶](#php-code "Ссылка на этот заголовок")
|
||||
------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Отступ: 4 пробела
|
||||
|
||||
|
||||
|
||||
- Перевод строки: Unix =\> `\n`{.docutils .literal}
|
||||
|
||||
|
||||
|
||||
- Кодировка: UTF-8
|
||||
|
||||
|
||||
|
||||
- Используйте только открытые теги `<?php`{.docutils .literal} or `<?=`{.docutils .literal} для templates, но **никогда** не используйте `<?`{.docutils .literal}
|
||||
|
||||
|
||||
|
||||
- Всегда пишите коментарии PHPdoc для свойств методов и классов
|
||||
|
||||
|
||||
|
||||
- Стиль кодирования: [PSR-1](http://www.php-fig.org/psr/psr-1/) и [PSR-2](http://www.php-fig.org/psr/psr-2/)
|
||||
|
||||
|
||||
|
||||
Код JavaScript[¶](#javascript-code "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Отступ: 4 пробела
|
||||
|
||||
|
||||
|
||||
- Перевод строки: Unix =\> `\n`{.docutils .literal}
|
||||
|
||||
|
||||
|
||||
Код CSS[¶](#css-code "Ссылка на этот заголовок")
|
||||
------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Отступ: 4 пробела
|
||||
|
||||
|
||||
|
||||
- Перевод строки: Unix =\> `\n`{.docutils .literal}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,523 @@
|
|||
Конфигурационный файл
|
||||
=====================
|
||||
|
||||
|
||||
|
||||
Вы можете изменить базовые настройки Канборда добавив файл `config.php` в корень проекта или в каталог `data`. Вы, также, можете переименовать файл `config.default.php` в `config.php` и установить желаемые значения.
|
||||
|
||||
|
||||
Включение/выключение режима отладки[¶](#enable-disable-debug-mode "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
define('DEBUG', true);
|
||||
|
||||
define('LOG_DRIVER', 'file'); // Other drivers are: syslog, stdout, stderr or file
|
||||
|
||||
|
||||
|
||||
Обработчик логов может быть определен если вы включите режим отладки. Режим отладки фиксирует все SQL запросы и время затрачиваемое на генерацию страниц.
|
||||
|
||||
|
||||
|
||||
Плагины[¶](#plugins "Ссылка на этот заголовок")
|
||||
-----------------------------------------------
|
||||
|
||||
|
||||
|
||||
Каталог плагинов:
|
||||
|
||||
|
||||
|
||||
define('PLUGINS_DIR', 'data/plugins');
|
||||
|
||||
|
||||
|
||||
Включение/выключение установки плагинов через интерфейс пользователя:
|
||||
|
||||
|
||||
|
||||
define('PLUGIN_INSTALLER', true); // Default is true
|
||||
|
||||
|
||||
|
||||
Каталог для загружаемых файлов[¶](#folder-for-uploaded-files "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
define('FILES_DIR', 'data/files');
|
||||
|
||||
|
||||
|
||||
Включение/выключение переопределения url адресов[¶](#enable-disable-url-rewrite "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
define('ENABLE_URL_REWRITE', false);
|
||||
|
||||
|
||||
|
||||
Настройка email[¶](#email-configuration "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
// E-mail address for the "From" header (notifications)
|
||||
|
||||
define('MAIL_FROM', 'notifications@kanboard.local');
|
||||
|
||||
|
||||
|
||||
// Mail transport to use: "smtp", "sendmail" or "mail" (PHP mail function)
|
||||
|
||||
define('MAIL_TRANSPORT', 'mail');
|
||||
|
||||
|
||||
|
||||
// SMTP configuration to use when the "smtp" transport is chosen
|
||||
|
||||
define('MAIL_SMTP_HOSTNAME', '');
|
||||
|
||||
define('MAIL_SMTP_PORT', 25);
|
||||
|
||||
define('MAIL_SMTP_USERNAME', '');
|
||||
|
||||
define('MAIL_SMTP_PASSWORD', '');
|
||||
|
||||
define('MAIL_SMTP_ENCRYPTION', null); // Valid values are "null", "ssl" or "tls"
|
||||
|
||||
|
||||
|
||||
// Sendmail command to use when the transport is "sendmail"
|
||||
|
||||
define('MAIL_SENDMAIL_COMMAND', '/usr/sbin/sendmail -bs');
|
||||
|
||||
|
||||
|
||||
Настройки базы данных[¶](#database-settings "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
// Database driver: sqlite, mysql or postgres (sqlite by default)
|
||||
|
||||
define('DB_DRIVER', 'sqlite');
|
||||
|
||||
|
||||
|
||||
// Mysql/Postgres username
|
||||
|
||||
define('DB_USERNAME', 'root');
|
||||
|
||||
|
||||
|
||||
// Mysql/Postgres password
|
||||
|
||||
define('DB_PASSWORD', '');
|
||||
|
||||
|
||||
|
||||
// Mysql/Postgres hostname
|
||||
|
||||
define('DB_HOSTNAME', 'localhost');
|
||||
|
||||
|
||||
|
||||
// Mysql/Postgres database name
|
||||
|
||||
define('DB_NAME', 'kanboard');
|
||||
|
||||
|
||||
|
||||
// Mysql/Postgres custom port (null = default port)
|
||||
|
||||
define('DB_PORT', null);
|
||||
|
||||
|
||||
|
||||
// Mysql SSL key
|
||||
|
||||
define('DB_SSL_KEY', null);
|
||||
|
||||
|
||||
|
||||
// Mysql SSL certificate
|
||||
|
||||
define('DB_SSL_CERT', null);
|
||||
|
||||
|
||||
|
||||
// Mysql SSL CA
|
||||
|
||||
define('DB_SSL_CA', null);
|
||||
|
||||
|
||||
|
||||
Настройки LDAP[¶](#ldap-settings "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
// Enable LDAP authentication (false by default)
|
||||
|
||||
define('LDAP_AUTH', false);
|
||||
|
||||
|
||||
|
||||
// LDAP server hostname
|
||||
|
||||
define('LDAP_SERVER', '');
|
||||
|
||||
|
||||
|
||||
// LDAP server port (389 by default)
|
||||
|
||||
define('LDAP_PORT', 389);
|
||||
|
||||
|
||||
|
||||
// By default, require certificate to be verified for ldaps:// style URL. Set to false to skip the verification
|
||||
|
||||
define('LDAP_SSL_VERIFY', true);
|
||||
|
||||
|
||||
|
||||
// Enable LDAP START_TLS
|
||||
|
||||
define('LDAP_START_TLS', false);
|
||||
|
||||
|
||||
|
||||
// By default Kanboard lowercase the ldap username to avoid duplicate users (the database is case sensitive)
|
||||
|
||||
// Set to true if you want to preserve the case
|
||||
|
||||
define('LDAP_USERNAME_CASE_SENSITIVE', false);
|
||||
|
||||
|
||||
|
||||
// LDAP bind type: "anonymous", "user" or "proxy"
|
||||
|
||||
define('LDAP_BIND_TYPE', 'anonymous');
|
||||
|
||||
|
||||
|
||||
// LDAP username to use with proxy mode
|
||||
|
||||
// LDAP username pattern to use with user mode
|
||||
|
||||
define('LDAP_USERNAME', null);
|
||||
|
||||
|
||||
|
||||
// LDAP password to use for proxy mode
|
||||
|
||||
define('LDAP_PASSWORD', null);
|
||||
|
||||
|
||||
|
||||
// LDAP DN for users
|
||||
|
||||
// Example for ActiveDirectory: CN=Users,DC=kanboard,DC=local
|
||||
|
||||
// Example for OpenLDAP: ou=People,dc=example,dc=com
|
||||
|
||||
define('LDAP_USER_BASE_DN', '');
|
||||
|
||||
|
||||
|
||||
// LDAP pattern to use when searching for a user account
|
||||
|
||||
// Example for ActiveDirectory: '(&(objectClass=user)(sAMAccountName=%s))'
|
||||
|
||||
// Example for OpenLDAP: 'uid=%s'
|
||||
|
||||
define('LDAP_USER_FILTER', '');
|
||||
|
||||
|
||||
|
||||
// LDAP attribute for username
|
||||
|
||||
// Example for ActiveDirectory: 'samaccountname'
|
||||
|
||||
// Example for OpenLDAP: 'uid'
|
||||
|
||||
define('LDAP_USER_ATTRIBUTE_USERNAME', 'uid');
|
||||
|
||||
|
||||
|
||||
// LDAP attribute for user full name
|
||||
|
||||
// Example for ActiveDirectory: 'displayname'
|
||||
|
||||
// Example for OpenLDAP: 'cn'
|
||||
|
||||
define('LDAP_USER_ATTRIBUTE_FULLNAME', 'cn');
|
||||
|
||||
|
||||
|
||||
// LDAP attribute for user email
|
||||
|
||||
define('LDAP_USER_ATTRIBUTE_EMAIL', 'mail');
|
||||
|
||||
|
||||
|
||||
// LDAP attribute to find groups in user profile
|
||||
|
||||
define('LDAP_USER_ATTRIBUTE_GROUPS', 'memberof');
|
||||
|
||||
|
||||
|
||||
// LDAP attribute for user avatar image: thumbnailPhoto or jpegPhoto
|
||||
|
||||
define('LDAP_USER_ATTRIBUTE_PHOTO', '');
|
||||
|
||||
|
||||
|
||||
// LDAP attribute for user language, example: 'preferredlanguage'
|
||||
|
||||
// Put an empty string to disable language sync
|
||||
|
||||
define('LDAP_USER_ATTRIBUTE_LANGUAGE', '');
|
||||
|
||||
|
||||
|
||||
// Allow automatic LDAP user creation
|
||||
|
||||
define('LDAP_USER_CREATION', true);
|
||||
|
||||
|
||||
|
||||
// LDAP DN for administrators
|
||||
|
||||
// Example: CN=Kanboard-Admins,CN=Users,DC=kanboard,DC=local
|
||||
|
||||
define('LDAP_GROUP_ADMIN_DN', '');
|
||||
|
||||
|
||||
|
||||
// LDAP DN for managers
|
||||
|
||||
// Example: CN=Kanboard Managers,CN=Users,DC=kanboard,DC=local
|
||||
|
||||
define('LDAP_GROUP_MANAGER_DN', '');
|
||||
|
||||
|
||||
|
||||
// Enable LDAP group provider for project permissions
|
||||
|
||||
// The end-user will be able to browse LDAP groups from the user interface and allow access to specified projects
|
||||
|
||||
define('LDAP_GROUP_PROVIDER', false);
|
||||
|
||||
|
||||
|
||||
// LDAP Base DN for groups
|
||||
|
||||
define('LDAP_GROUP_BASE_DN', '');
|
||||
|
||||
|
||||
|
||||
// LDAP group filter
|
||||
|
||||
// Example for ActiveDirectory: (&(objectClass=group)(sAMAccountName=%s*))
|
||||
|
||||
define('LDAP_GROUP_FILTER', '');
|
||||
|
||||
|
||||
|
||||
// LDAP user group filter
|
||||
|
||||
// If this filter is configured, Kanboard will search user groups in LDAP_GROUP_BASE_DN
|
||||
|
||||
// Example for OpenLDAP: (&(objectClass=posixGroup)(memberUid=%s))
|
||||
|
||||
define('LDAP_GROUP_USER_FILTER', '');
|
||||
|
||||
|
||||
|
||||
// LDAP attribute for the group name
|
||||
|
||||
define('LDAP_GROUP_ATTRIBUTE_NAME', 'cn');
|
||||
|
||||
|
||||
|
||||
Настройки аутентификации Reverse-Proxy[¶](#reverse-proxy-authentication-settings "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
// Enable/disable the reverse proxy authentication
|
||||
|
||||
define('REVERSE_PROXY_AUTH', false);
|
||||
|
||||
|
||||
|
||||
// Header name to use for the username
|
||||
|
||||
define('REVERSE_PROXY_USER_HEADER', 'REMOTE_USER');
|
||||
|
||||
|
||||
|
||||
// Username of the admin, by default blank
|
||||
|
||||
define('REVERSE_PROXY_DEFAULT_ADMIN', '');
|
||||
|
||||
|
||||
|
||||
// Default domain to use for setting the email address
|
||||
|
||||
define('REVERSE_PROXY_DEFAULT_DOMAIN', '');
|
||||
|
||||
|
||||
|
||||
Настройки аутентификации RememberMe[¶](#rememberme-authentication-settings "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
// Enable/disable remember me authentication
|
||||
|
||||
define('REMEMBER_ME_AUTH', true);
|
||||
|
||||
|
||||
|
||||
Настройки Secure HTTP headers[¶](#secure-http-headers-settings "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
// Enable or disable "Strict-Transport-Security" HTTP header
|
||||
|
||||
define('ENABLE_HSTS', true);
|
||||
|
||||
|
||||
|
||||
// Enable or disable "X-Frame-Options: DENY" HTTP header
|
||||
|
||||
define('ENABLE_XFRAME', true);
|
||||
|
||||
|
||||
|
||||
Запись событий[¶](#logging "Ссылка на этот заголовок")
|
||||
------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
По умолчанию, Канборд записывает не все события. Если вы хотите включить запись событий, вы должны установить обработчик логов.
|
||||
|
||||
|
||||
|
||||
// Available log drivers: syslog, stderr, stdout or file
|
||||
|
||||
define('LOG_DRIVER', '');
|
||||
|
||||
|
||||
|
||||
// Log filename if the log driver is "file"
|
||||
|
||||
define('LOG_FILE', __DIR__.DIRECTORY_SEPARATOR.'data'.DIRECTORY_SEPARATOR.'debug.log');
|
||||
|
||||
|
||||
|
||||
Защита от Brute-force[¶](#brute-force-protection "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
// Enable captcha after 3 authentication failure
|
||||
|
||||
define('BRUTEFORCE_CAPTCHA', 3);
|
||||
|
||||
|
||||
|
||||
// Lock the account after 6 authentication failure
|
||||
|
||||
define('BRUTEFORCE_LOCKDOWN', 6);
|
||||
|
||||
|
||||
|
||||
// Lock account duration in minute
|
||||
|
||||
define('BRUTEFORCE_LOCKDOWN_DURATION', 15);
|
||||
|
||||
|
||||
|
||||
Сессии[¶](#session "Ссылка на этот заголовок")
|
||||
----------------------------------------------
|
||||
|
||||
|
||||
|
||||
// Session duration in second (0 = until the browser is closed)
|
||||
|
||||
// See http://php.net/manual/en/session.configuration.php#ini.session.cookie-lifetime
|
||||
|
||||
define('SESSION_DURATION', 0);
|
||||
|
||||
|
||||
|
||||
Проксирование клиентских HTTP[¶](#http-client-proxy "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Если внешние запросы HTTP необходимо пробрасывать через прокси:
|
||||
|
||||
|
||||
|
||||
define('HTTP_PROXY_HOSTNAME', '');
|
||||
|
||||
define('HTTP_PROXY_PORT', '3128');
|
||||
|
||||
define('HTTP_PROXY_USERNAME', '');
|
||||
|
||||
define('HTTP_PROXY_PASSWORD', '');
|
||||
|
||||
|
||||
|
||||
Другие настройки[¶](#various-settings "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
// Escape html inside markdown text
|
||||
|
||||
define('MARKDOWN_ESCAPE_HTML', true);
|
||||
|
||||
|
||||
|
||||
// API alternative authentication header, the default is HTTP Basic Authentication defined in RFC2617
|
||||
|
||||
define('API_AUTHENTICATION_HEADER', '');
|
||||
|
||||
|
||||
|
||||
// Hide login form, useful if all your users use Google/Github/ReverseProxy authentication
|
||||
|
||||
define('HIDE_LOGIN_FORM', false);
|
||||
|
||||
|
||||
|
||||
// Disabling logout (for external SSO authentication)
|
||||
|
||||
define('DISABLE_LOGOUT', false);
|
||||
|
||||
|
||||
|
||||
// Override API token stored in the database, useful for automated tests
|
||||
|
||||
define('API_AUTHENTICATION_TOKEN', 'My unique API Token');
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,96 @@
|
|||
Руководство для участников проекта
|
||||
==================================
|
||||
|
||||
|
||||
|
||||
Как я могу помочь проекту?[¶](#how-can-i-help "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Канборд пока не идеален, поэтому есть несколько вариантов помочь проекту:
|
||||
|
||||
|
||||
|
||||
- Присылать отзывы
|
||||
- Сообщать об ошибках
|
||||
- Добавлять или обновлять переводы
|
||||
- Улучшать документацию
|
||||
- Писать код
|
||||
- Рассказать друзьям, что Канборд отличная программа :)
|
||||
|
||||
|
||||
|
||||
Перед тем как начать большое дело, создайте новое “обсуждение вопроса” (issue) на [https://github.com/fguillot/kanboard/issues](https://github.com/fguillot/kanboard/issues) и объясните ваше предложение.
|
||||
|
||||
|
||||
|
||||
Я хочу внести предложения по проекту[¶](#i-want-to-give-feedback "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- У вас есть идея по улучшению (пользовательский интерфейс или другие возможности)
|
||||
- Посмотрите в обсуждениях (issue), может ваша идея уже предложена кем-то
|
||||
- Откройте новое обсуждение (issue)
|
||||
- Опишите вашу идею
|
||||
- Вы можете проголосовать +1 за имеющиеся предложения
|
||||
|
||||
|
||||
Я хочу сообщить об ошибке[¶](#i-want-to-report-a-bug "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
- Убедитесь, что обсуждение вопроса (issue) ранее не публиковалось
|
||||
- Откройте новую заявку (ticket)
|
||||
- Опишите, что именно не работает
|
||||
- Опишите, как воспроизвести ошибку (последовательность, как вы вышли на данную ошибку)
|
||||
- Опишите ваше окружение (версию Канборда, какая ОС, веб сервер, версию PHP, база данных и версия, хостинг провайдер)
|
||||
|
||||
|
||||
Я хочу перевести Канборд на другой язык[¶](#i-want-to-translate-kanboard "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------------------------------------
|
||||
|
||||
Канборд уже переведен на несколько языков. Вы можете улучшить эти переводы. Некоторые переводы еще не завершены. Для того, чтобы сделать перевод, ознакомтесь с [руководством по переводу на другой язык](translations.markdown).
|
||||
|
||||
|
||||
Я хочу улучшить документацию[¶](#i-want-to-improve-the-documentation "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------------------------------
|
||||
|
||||
- Вы считаете, что что-то недостаточно хорошо описано, имеются грамматические или орфографические ошибки, что-то еще.
|
||||
- Документация написана в формате Markdown и хранится в каталоге `docs`{.docutils .literal}.
|
||||
- Редактируйте файлы и присылайте pull-request.
|
||||
- Документация на официальном вебсайте синхронизируется с репозиторием.
|
||||
|
||||
|
||||
Я хочу внести свой вклад в код[¶](#i-want-to-contribute-to-the-code "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------------------------------
|
||||
|
||||
Pull-requests всегда приветствуются, однако, чтобы они были приняты, вы должны следовать следующим указаниям:
|
||||
|
||||
- **Перед тем как внести большое изменение или переделать дизайн, откройте новую заявку (ticket) для обсуждения.**
|
||||
- Если вы хотите добавить новую возможность, уважайте филосовию Канборда: **Мы фокусируемся на простоте**, мы не хотим иметь раздутую программу.
|
||||
- Это же относится и к пользовательскому интерфейсу: **простота и производительность**
|
||||
- Присылайте только по одному pull-request для новой возможности или исправления ошибки.
|
||||
- Небольшие pull-request легче просмотреть и быстрее влить в проект.
|
||||
- Убедитесь, что [модульные тесты выполняются успешно](tests.markdown).
|
||||
- Уважайте [стандарты кодирования](coding-standards.markdown).
|
||||
- Пишите код, который могут поддерживать другие, избегайте дублирования, используйте лучше практики PHP.
|
||||
|
||||
В любом случае, если вы не уверены в чем-то - открывайте новую заявку (ticket)
|
||||
|
||||
|
||||
Рассказать друзьям, что Канборд отличная программа :)[¶](#tell-your-friends-that-kanboard-is-awesome "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Если вы используете Канборд, покажите его и окружающим. Расскажите всем о прелестях бесплатного и опенсурсного программного обеспечения.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
Создание задач через email
|
||||
==========================
|
||||
|
||||
|
||||
Вы можете создавать задачи отправляя email (сообщения через электронную почту). Эта возможность доступна при использовании плагинов.
|
||||
|
||||
В настоящий момент, Канборд поддерживает три внешних плагина:
|
||||
|
||||
|
||||
- [Mailgun](https://github.com/kanboard/plugin-mailgun)
|
||||
- [Sendgrid](https://github.com/kanboard/plugin-sendgrid)
|
||||
- [Postmark](https://github.com/kanboard/plugin-postmark)
|
||||
|
||||
Эти плагины позволяют обрабатывать входящие электронные сообщения (email) без дополнительной настройки SMTP сервера.
|
||||
|
||||
При получении плагином email сообщения, плагин передает это сообщение в веб транслятор Канборда.
|
||||
|
||||
|
||||
Обработка входящих email сообщений[¶](#incoming-emails-workflow "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
1. Вы отправляете email сообщение на определенный адрес, например **something+myproject@inbound.mydomain.tld**
|
||||
2. Email сообщение перенаправляется на SMTP сервер
|
||||
3. SMTP провайдер передает в веб сервис Канборда email сообщение в JSON формате или в формате multipart/form-data
|
||||
4. Канборд обрабатывает полученное email сообщение и создает задачу в указанном проекте
|
||||
|
||||
**Заметка**: Новые задачи автоматически создаются в первой колонке.
|
||||
|
||||
|
||||
Формат email сообщения[¶](#email-format "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------
|
||||
|
||||
- Email адрес до знака **@** должен содержать разделитель **плюс**, например **kanboard+project123**
|
||||
- Строка следующая после знака плюс означает **Идентификатор проекта**, например, проект **Проект 123** может иметь идентификатор проекта **project123**. Идентификатор проекта можно задать в свойствах проекта **Меню** -\> **Настройки** -\> **Изменить проект** -\> **Идентификатор**. **Идентификатор** должен быть из цифр и латинских букв.
|
||||
- Тема из email сообщения становится названием задачи
|
||||
- Текст email сообщения становится описанием задачи (в формате Markdown)
|
||||
|
||||
Email сообщения могут быть написаны в текстовом или HTML формате. **Канборд сам переконвертирует формат сообщения в Markdown**
|
||||
|
||||
|
||||
Безопастность и требования[¶](#security-and-requirements "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------------------
|
||||
|
||||
- Веб транслятор Канборд защищен случайным ключом
|
||||
- Email адрес отправителя должен быть такой же как и у пользователя Канборд
|
||||
- Проект в Канборде должен иметь уникальный идентификатор
|
||||
- Отправитель email сообщения должен быть участником проекта
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
Создание проектов
|
||||
=================
|
||||
|
||||
|
||||
Kanboard может содержать одновременно несколько проектов. Проекты могут быть следующих типов:
|
||||
|
||||
- Командный проект
|
||||
- Приватный проект для одного пользователя
|
||||
|
||||
Создание проекта для нескольких пользователей[¶](#creating-projects-for-multiple-users "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Только пользователи с ролью администратор и менеджер могут создавать такие проекты
|
||||
- Можно добавлять к проекту пользователей и группы
|
||||
|
||||
На рабочей панели нажмите ссылку **Новый проект**:
|
||||
|
||||

|
||||
|
||||
Рисунок. Форма создания проекта.
|
||||
|
||||
|
||||
Теперь надо только добавить название для проекта! Легко, не правда ли?
|
||||
|
||||
|
||||
Создание приватного проекта[¶](#creating-a-private-project "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------------------------
|
||||
|
||||
- Любой пользователь Kanboard может создать приватный проект
|
||||
- **Нет** возможности добавлять участников к приватному проекту
|
||||
- Только владелец приватного проекта и администратор могут получить доступ к проекту
|
||||
|
||||
|
||||
На рабочей панели нажмите **Новый проект с ограниченным доступом**.
|
||||
|
||||
|
||||
|
||||
Создание проекта из другого проекта[¶](#creating-projects-from-another-project "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------------------------------------------
|
||||
|
||||
При создании нового проекта у вас есть возможность использовать данные другого (ранее созданного) проекта:
|
||||
|
||||
- Разрешения
|
||||
- Действия
|
||||
- Дорожки
|
||||
- Категории
|
||||
- Задачи
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
Создание задач
|
||||
==============
|
||||
|
||||
|
||||
На Доске нажмите значок плюс рядом с названием колонки:
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Создание задачи на Доске
|
||||
|
||||
|
||||
Далее появится форма создания задачи:
|
||||
|
||||

|
||||
|
||||
Рисунок. Форма создания задачи.
|
||||
|
||||
|
||||
Только поле **Название** является обязательным полем для заполнения.
|
||||
|
||||
|
||||
Описание полей:
|
||||
|
||||
- **Название**: Название вашей задачи, которое будет отображаться на доске.
|
||||
- **Описание**: Позволяет вам добавить больше информации о задаче, содержимое может содержать синтаксис [Markdown](syntax-guide.markdown).
|
||||
- **Создать другую задачу**: Отметьте этот чекбокс если вы хотите создать похожую задачу (некоторые поля будут заполнены).
|
||||
- **Назначена**: Пользователь, которому будет назначена для выполнения эта задача.
|
||||
- **Категория**: Только одна категория может быть назначена задаче.
|
||||
- **Колонка**: Колонка в которой задача будет создана, ваша задача будет помещена вниз.
|
||||
- **Цвет**: Выберите цвет для карточки.
|
||||
- **Сложность**: используется в быстрых управлениях проектами (Scrum); сложность - это число, которое говорит команде проекта насколько тяжело выполнить задачу. Обычно пользователи используют шкалу Фибоначи.
|
||||
- **Запланировано часов**: Планирование времени, которое будет затрачено на выполнение задачи. Измеряется в часах.
|
||||
- **Сделать до**: Просроченные задачи будут иметь дату завершения красного цвета, а предстоящие задачи будут иметь дату завершения черного цвета.
|
||||
|
||||
**-**
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
Ежедневные фоновые задачи
|
||||
=========================
|
||||
|
||||
|
||||
Для корректной работы, Канборд должен запускать ежедневные фоновые задачи. На Unix платформах этот процесс выполнятся в `cron`.
|
||||
|
||||
Фоновые задачи необходимы для следующих возможностей:
|
||||
|
||||
- Отчеты и аналитика (подсчет ежедневной статистики для каждого проекта)
|
||||
- Рассылка оповещений для просроченных задач
|
||||
- Выполнение автоматических действий подключенных к событиям “Ежедневные фоновые процессы для задач”
|
||||
|
||||
|
||||
Настройка на Unix и Linux платформах[¶](#configuration-on-unix-and-linux-platforms "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Для создания фоновых задач под операционной системой Unix/Linux используются разные решения. Здесь приведен пример для Ubuntu 14.04. Для других систем процедура похожа.
|
||||
|
||||
|
||||
Отредактируйте crontab под пользователем вашего веб сервера:
|
||||
|
||||
|
||||
sudo crontab -u www-data -e
|
||||
|
||||
|
||||
Пример запуска ежедневной фоновой задачи в 8 утра:
|
||||
|
||||
|
||||
0 8 * * * cd /path/to/kanboard && ./kanboard cronjob >/dev/null 2>&1
|
||||
|
||||
|
||||
Примечание: процес выполнения фоновых задач должен иметь права доступа к вашей базе данных в случае если вы используете Sqlite. Обычно, достаточно запускать фоновую задачу под пользователем веб сервера.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
Курсы валют
|
||||
===========
|
||||
|
||||
|
||||
Каждый пользователь может иметь предопределенный ежечасный курс для разных валют. Если вы хотите вручную занести курсы валют, то вы можете указать ставку в соответсвии с курсом.
|
||||
|
||||
Эта опция используются для расчета бюджета проекта.
|
||||
|
||||

|
||||
|
||||
Рисунок. Курсы валют
|
||||
|
||||
|
||||
Для настроек курса валют выберите, справа вверху в выпадающем меню, **Настройки** -\> затем, слева, **Курсы валют**.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
Пользовательские фильтры
|
||||
========================
|
||||
|
||||
Пользовательские фильтры позволяют вам сохранять любые поисковые запросы. Таким образом, вы можете легко расширить стандартные фильтры и сохранить часто используемые поисковые запросы.
|
||||
|
||||
- Пользовательские фильтры сохраняются в проекте и имеют привязку к создателю.
|
||||
- Если создатель фильтра является менеджером проекта, то он может предоставить этот фильтр всем участникам проекта.
|
||||
|
||||
|
||||
Создание фильтра[¶](#filter-creation "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
||||
Перейдите в **Меню** -\> **Пользовательские фильтры** или **Меню** -\> **Настройки** -\> **Пользовательские фильтры**
|
||||
|
||||

|
||||
|
||||
Рисунок. Создание пользовательского фильтра.
|
||||
|
||||
|
||||
|
||||
Созданый фильтр появится на Доске рядом со стандартными фильтрами
|
||||
|
||||

|
||||
|
||||
Рисунок. Выпадающий список - Пользовательский фильтр.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
Как установить Канборд на Debian?
|
||||
=================================
|
||||
|
||||
Некоторые возможности Канборда требуют [запуск ежедневных фоновых задач](cronjob.markdown).
|
||||
|
||||
|
||||
Debian 8 (Jessie)[¶](#debian-8-jessie "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------
|
||||
|
||||
|
||||
Установите Apache и PHP:
|
||||
|
||||
|
||||
apt-get update
|
||||
|
||||
apt-get install -y php5 php5-sqlite php5-gd unzip
|
||||
|
||||
service apache2 restart
|
||||
|
||||
|
||||
|
||||
Установите Канборд:
|
||||
|
||||
|
||||
cd /var/www/html
|
||||
|
||||
wget https://kanboard.net/kanboard-latest.zip
|
||||
|
||||
unzip kanboard-latest.zip
|
||||
|
||||
chown -R www-data:www-data kanboard/data
|
||||
|
||||
rm kanboard-latest.zip
|
||||
|
||||
|
||||
|
||||
Debian 7 (Wheezy)[¶](#debian-7-wheezy "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Установите Apache и PHP:
|
||||
|
||||
|
||||
|
||||
apt-get update
|
||||
|
||||
apt-get install -y php5 php5-sqlite php5-gd unzip
|
||||
|
||||
|
||||
|
||||
Установите Канборд:
|
||||
|
||||
|
||||
|
||||
cd /var/www
|
||||
|
||||
wget https://kanboard.net/kanboard-latest.zip
|
||||
|
||||
unzip kanboard-latest.zip
|
||||
|
||||
chown -R www-data:www-data kanboard/data
|
||||
|
||||
rm kanboard-latest.zip
|
||||
|
||||
|
||||
|
||||
Debian 6 (Squeeze)[¶](#debian-6-squeeze "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Установите Apache и PHP:
|
||||
|
||||
|
||||
|
||||
apt-get update
|
||||
|
||||
apt-get install -y libapache2-mod-php5 php5-sqlite php5-gd unzip
|
||||
|
||||
|
||||
|
||||
Установите Канборд:
|
||||
|
||||
|
||||
|
||||
cd /var/www
|
||||
|
||||
wget https://kanboard.net/kanboard-latest.zip
|
||||
|
||||
unzip kanboard-latest.zip
|
||||
|
||||
chown -R www-data:www-data kanboard/data
|
||||
|
||||
rm kanboard-latest.zip
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,134 @@
|
|||
Как запустить Канборд с Docker?
|
||||
===============================
|
||||
|
||||
|
||||
Канборд можно легко запустить с [Docker](https://www.docker.com).
|
||||
|
||||
|
||||
Размер образа, приблизительно, **50MB** содержит:
|
||||
|
||||
- [Alpine Linux](http://alpinelinux.org/)
|
||||
- The [process manager S6](http://skarnet.org/software/s6/)
|
||||
- Nginx
|
||||
- PHP-FPM
|
||||
|
||||
|
||||
Канборд запускает фоновые задачи каждый день в полночь. Переписывание URL (URL rewriting) включено в базовой конфигурации.
|
||||
|
||||
Когда контейнер запущен, использование памяти около **20MB**.
|
||||
|
||||
|
||||
Использование стабильной версии[¶](#use-the-stable-version "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
Для получения последней стабильной версии Канборда используйте тег **stable**:
|
||||
|
||||
|
||||
|
||||
docker pull kanboard/kanboard
|
||||
|
||||
docker run -d --name kanboard -p 80:80 -t kanboard/kanboard:stable
|
||||
|
||||
|
||||
|
||||
Использование разрабатываемой версии (автоматической сборки)[¶](#use-the-development-version-automated-build "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Каждый новый коммит в репозитории вызывает новую сборку в [Docker Hub](https://registry.hub.docker.com/u/kanboard/kanboard/).
|
||||
|
||||
|
||||
|
||||
docker pull kanboard/kanboard
|
||||
|
||||
docker run -d --name kanboard -p 80:80 -t kanboard/kanboard:latest
|
||||
|
||||
|
||||
|
||||
Используя **разрабатываемую версию** Канборда с тегом **latest**, вы принимаете на себя все риски нестабильной версии.
|
||||
|
||||
|
||||
|
||||
Создание своего образа Docker[¶](#build-your-own-docker-image "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------------------------
|
||||
|
||||
Для сборки своего образа, в репозитории Канборда имеется `Dockerfile`{.docutils .literal}. Склонируйте репозиторий Канборда и выполните следующую команду:
|
||||
|
||||
|
||||
|
||||
docker build -t youruser/kanboard:master .
|
||||
|
||||
|
||||
|
||||
или
|
||||
|
||||
|
||||
|
||||
make docker-image
|
||||
|
||||
|
||||
|
||||
Для запуска вашего контейнера в фоновом режиме на порту 80:
|
||||
|
||||
|
||||
|
||||
docker run -d --name kanboard -p 80:80 -t youruser/kanboard:master
|
||||
|
||||
|
||||
|
||||
Тома[¶](#volumes "Ссылка на этот заголовок")
|
||||
--------------------------------------------
|
||||
|
||||
|
||||
Вы можете прикрепить 2 тома к вашему контейнеру:
|
||||
|
||||
- Каталог с данными: `/var/www/kanboard/data`
|
||||
- Каталог с плагинами: `/var/www/kanboard/plugins`
|
||||
|
||||
|
||||
|
||||
Используйте опцию `-v` для монтирования тома на удаленной машине как описано в [официальной документации Docker](https://docs.docker.com/engine/userguide/containers/dockervolumes/).
|
||||
|
||||
|
||||
|
||||
Обновление вашего контейнера[¶](#upgrade-your-container "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
- Загрузите новый образ
|
||||
- Удалите старый контейнер
|
||||
- Перезапустите новый контейнер с теми же томами
|
||||
|
||||
|
||||
Переменные окружения[¶](#environment-variables "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
|
||||
Список переменных окружения доступен на [этой странице](env.markdown).
|
||||
|
||||
|
||||
|
||||
Файлы конфигурации[¶](#config-files "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------
|
||||
|
||||
- Контейнер уже содержит конфигурационный файл расположенный в `/var/www/kanboard/config.php`.
|
||||
- Вы можете сохранить свой конфиг файл в томе с данными: `/var/www/kanboard/data/config.php`.
|
||||
|
||||
|
||||
|
||||
Ссылки[¶](#references "Ссылка на этот заголовок")
|
||||
-------------------------------------------------
|
||||
|
||||
- [Официальные образы Канборд](https://registry.hub.docker.com/u/kanboard/kanboard/)
|
||||
- [Документация Docker](https://docs.docker.com/)
|
||||
- [Стабильная версия Dockerfile](https://github.com/kanboard/docker)
|
||||
- [Разрабатываемая версия Dockerfile](https://github.com/fguillot/kanboard/blob/master/Dockerfile)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
Дублирование и перенос задач
|
||||
============================
|
||||
|
||||
|
||||
Создание копии задачи в том же проекте[¶](#duplicate-a-task-into-the-same-project "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
Перейдите в детальное представление задачи и выберите в боковой панели (слева) **Клонировать**.
|
||||
|
||||

|
||||
|
||||
Рисунок. Создание копии задачи.
|
||||
|
||||
|
||||
Новая задача будет создана с теми же свойствами как и у оригинальной задачи.
|
||||
|
||||
|
||||
Создание копии задачи в другой проект[¶](#duplicate-a-task-to-another-project "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
Перейдите в детальное представление задачи и выберите в боковом меню (слева) **Клонировать в другой проект**.
|
||||
|
||||

|
||||
|
||||
Рисунок. Создание копии задачи в другой проект.
|
||||
|
||||
|
||||
При выборе проекта в выпадающем списке, показываются только те проекты в которых вы являетесь участниками.
|
||||
|
||||
Перед тем как скопировать задачу, Канборд просит вас указать свойства проекта (куда будет копироваться), потому что проекты могуг иметь разные столбцы, дорожки и т.д.
|
||||
|
||||
Вам нужно указать:
|
||||
|
||||
- Дорожку, в которую скопируется задача
|
||||
- Колонку
|
||||
- Категорию
|
||||
- Испольнителя
|
||||
|
||||
Перемещение задачи в другой проект[¶](#move-a-task-to-another-project "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------------------------------
|
||||
|
||||
Перейдите в детальное представление задачи и выберите в боковом меню **Переместить в другой проект**
|
||||
|
||||
Процедура перемещения задачи в другой проект такая же как и при копировании, вы должны указать новые свойства для задачи.
|
||||
|
||||
|
||||
Список копируемых полей[¶](#list-of-fields-duplicated "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------
|
||||
|
||||
|
||||
Ниже приведен список полей (свойств), которые будут скопированы:
|
||||
|
||||
- заголовок
|
||||
- описание
|
||||
- дата\_исполнение
|
||||
- цвет\_id
|
||||
- проект\_id
|
||||
- колонка\_id
|
||||
- владелец\_id
|
||||
- оценка
|
||||
- категория\_id
|
||||
- время\_запланировано
|
||||
- дорожка\_id
|
||||
- повторение\_статус
|
||||
- повторение\_триггер
|
||||
- повторение\_фактор
|
||||
- повторение\_timeframe
|
||||
- повторение\_basedate
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
Редактирование проектов
|
||||
=======================
|
||||
|
||||
|
||||
Проект может быть переименован и выключен в любое время
|
||||
|
||||
Для переименования проекта нажмите на ссылку **“Изменить проект”** (для перехода выберите **Меню** -\> **Настройки**)
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Изменение проекта.
|
||||
|
||||
- Дата начала и дата завершения используются при генерации диаграммы Ганта
|
||||
- Описание отображается как подсказка на Доске и на странице со списком проектов
|
||||
- Администраторы и менеджеры проекта могут сделать приватный проект доступным для других пользователей установив галочку в чекбоксе **“Приватный проект”**
|
||||
- Вы можете сделать публичный проект приватным.
|
||||
|
||||
Внимание: Когда вы делаете приватный проект из публичного, все пользователи ранее присоединенные к проекту будут иметь доступ. Ограничьте список пользователей для вашего приватного проекта.
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,156 @@
|
|||
Настройка email
|
||||
===============
|
||||
|
||||
|
||||
Настройки пользователя[¶](#user-settings "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------
|
||||
|
||||
Для получение уведомлений на email, пользователи Канборда должны иметь:
|
||||
|
||||
- Включенные уведомления, должны быть включены в профиле пользователя
|
||||
- Должен быть прописан правильный email адрес в профиле пользователя
|
||||
- Быть участником проекта, который отсылает уведомления
|
||||
|
||||
|
||||
Примечание: Пользователь, выполнивший вход в Канборд и выполняющий действие, не будет получать уведомления. Уведомления будут получать только другие участники проекта.
|
||||
|
||||
|
||||
|
||||
Email шлюзы[¶](#email-transports "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------
|
||||
|
||||
В Канборд доступны несколько шлюзов для email:
|
||||
|
||||
- SMTP
|
||||
- Sendmail
|
||||
- Встроенная mail функция PHP
|
||||
- Другие методы могут предоставить внешние плагины: Postmark, Sendgrid and Mailgun
|
||||
|
||||
|
||||
Настройки сервера[¶](#server-settings "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------
|
||||
|
||||
По умолчанию, Канборд использует встроенную в PHP функцию для передачи email сообщений. Обычно не требуется дополнительных настроек, если ваш сервер уже может отправлять email сообщения.
|
||||
|
||||
Если вы захотите использовать другие методы: SMTP протокол и Sendmail, то ниже приведены инструкции по настройке.
|
||||
|
||||
### Настройка SMTP[¶](#smtp-configuration "Ссылка на этот заголовок")
|
||||
|
||||
Переименуйте файл `config.default.php`{.docutils .literal} в `config.php`{.docutils .literal} и измените следующие значения:
|
||||
|
||||
|
||||
// We choose "smtp" as mail transport
|
||||
|
||||
define('MAIL_TRANSPORT', 'smtp');
|
||||
|
||||
|
||||
|
||||
// We define our server settings
|
||||
|
||||
define('MAIL_SMTP_HOSTNAME', 'mail.example.com');
|
||||
|
||||
define('MAIL_SMTP_PORT', 25);
|
||||
|
||||
|
||||
|
||||
// Credentials for authentication on the SMTP server (not mandatory)
|
||||
|
||||
define('MAIL_SMTP_USERNAME', 'username');
|
||||
|
||||
define('MAIL_SMTP_PASSWORD', 'super password');
|
||||
|
||||
|
||||
|
||||
Возможно понадобится использовать шифрованное подключение TLS или SSL:
|
||||
|
||||
|
||||
define('MAIL_SMTP_ENCRYPTION', 'ssl'); // Valid values are "null", "ssl" or "tls"
|
||||
|
||||
|
||||
### Настройка Sendmail[¶](#sendmail-configuration "Ссылка на этот заголовок")
|
||||
|
||||
По умолчанию команда отправки сообщений выглядит так `/usr/sbin/sendmail -bs`{.docutils .literal}, но вы можете изменить ее в файле конфигурации.
|
||||
|
||||
Например:
|
||||
|
||||
|
||||
|
||||
// We choose "sendmail" as mail transport
|
||||
|
||||
define('MAIL_TRANSPORT', 'sendmail');
|
||||
|
||||
|
||||
|
||||
// If you need to change the sendmail command, replace the value
|
||||
|
||||
define('MAIL_SENDMAIL_COMMAND', '/usr/sbin/sendmail -bs');
|
||||
|
||||
|
||||
|
||||
### Встроенная mail функция PHP[¶](#php-native-mail-function "Ссылка на этот заголовок")
|
||||
|
||||
Это конфигурация по умолчанию:
|
||||
|
||||
|
||||
|
||||
define('MAIL_TRANSPORT', 'mail');
|
||||
|
||||
|
||||
|
||||
### Email адрес отправителя[¶](#the-sender-email-address "Ссылка на этот заголовок")
|
||||
|
||||
По умолчанию, сообщения отправляются с адресом отправителя `notifications@kanboard.local`{.docutils .literal}. На этот адрес нельзя ответить.
|
||||
|
||||
Вы можете настроить этот адрес изменив значение константы `MAIL_FROM`{.docutils .literal} в вашем конфигурационном файле.
|
||||
|
||||
|
||||
define('MAIL_FROM', 'kanboard@mydomain.tld');
|
||||
|
||||
|
||||
Это может быть полезным, если ваш SMTP сервер не принимает неправильные адреса.
|
||||
|
||||
|
||||
### Как отобразить ссылку на задачу в уведомлении?[¶](#how-to-display-a-link-to-the-task-in-notifications "Ссылка на этот заголовок")
|
||||
|
||||
Чтобы сделать это, вы должны указать URL вашего установленного Канборда в [Настройках приложения](application-configuration.markdown).
|
||||
|
||||
Например:
|
||||
|
||||
|
||||
|
||||
- [http://demo.kanboard.ru/](http://demo.kanboard.ru/)
|
||||
|
||||
|
||||
|
||||
- <http:/>/имясервера/kanboard/
|
||||
|
||||
|
||||
|
||||
- [http://kanboard.mydomain.com/](http://kanboard.mydomain.com/)
|
||||
|
||||
|
||||
|
||||
Не забудьте добавить в конце слеш `/`{.docutils .literal}.
|
||||
|
||||
|
||||
|
||||
Вы должны сделать это вручную, потому что Канборд не может угадать URL из скрипта командной строки и некоторые конфигурации веб серверов очень специфичны.
|
||||
|
||||
|
||||
Решение проблем[¶](#troubleshooting "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------
|
||||
|
||||
Если email сообщения не отправляются и вы уверены, что все настроили правильно:
|
||||
|
||||
- Проверьте папку Спам
|
||||
- Включите режим отладки и посмотрите отладочный файл `data/debug.log`{.docutils .literal}, вы можете увидеть конкретную ошибку
|
||||
- Убедитесь, что ваш сервер или ваш хостинг провайдер позволяет вам отсылать email сообщения
|
||||
- Если вы используете SeLinux, разрешите PHP отсылать email сообщения.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
Переменные окружения
|
||||
====================
|
||||
|
||||
Переменные окружения могут пригодится когда Канборд развертывается как контейнер (Docker).
|
||||
|
||||
|
||||
| Переменная | Описание |
|
||||
|---------|------------------------------------------------------------------|
|
||||
| DATABASE\_URL | `[database type]://[username]:[password]@[host]:[port]/[database name]`, например: `postgres://foo:foo@myserver:5432/kanboard` |
|
||||
| DEBUG | Включение/выключение режима отладки: “true” или “false” |
|
||||
| LOG\_DRIVER | Logging driver: stdout, stderr, file or syslog |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,235 @@
|
|||
Синтаксис расширенного поиска
|
||||
=============================
|
||||
|
||||
|
||||
В Канборде используется простой язык запросов для расширенного поиска. Вы можете искать задачи, комментарии, подзадачи, ссылки, но только активные.
|
||||
|
||||
|
||||
Пример запроса[¶](#example-of-query "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
В этом примере показываются как отобразить задачи назначенные мне с датой окончания завтра и название содержит “my title”:
|
||||
|
||||
|
||||
|
||||
assigne:me due:tomorrow my title
|
||||
|
||||
|
||||
|
||||
Глобальный поиск[¶](#global-search "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
### Поиск по id задачи или названию задачи[¶](#search-by-task-id-or-title "Ссылка на этот заголовок")
|
||||
|
||||
- Поиск задачи по id: `#123`
|
||||
- Поиск по id задачи и названию задачи: `123`
|
||||
- Поиск по названию задачи: `любые слова и цифры`, но не должны содержать атрибуты поиска
|
||||
|
||||
|
||||
### Поиск по статусу[¶](#search-by-status "Ссылка на этот заголовок")
|
||||
|
||||
Атрибут: **status**
|
||||
|
||||
- Запрос на поиск открытых задач: `status:open`
|
||||
- Запрос на поиск закрытых задач: `status:closed`
|
||||
|
||||
|
||||
|
||||
### Поиск по испольнителю[¶](#search-by-assignee "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
Атрибут: **assignee**
|
||||
|
||||
- Поиск по полному имени испольнителя: `assignee:"Петр Иванов"`
|
||||
- Поиск исполнителя по имени пользователя: `assignee:pivanov`
|
||||
- Отбор нескольких испольнителей: `assignee:tsemenov assignee:"Петр Иванов"`
|
||||
- Поиск задач без исполнителя: `assignee:nobody`
|
||||
- Поиск задач назначенных мне: `assignee:me`
|
||||
|
||||
|
||||
### Поиск по создателю задач[¶](#search-by-task-creator "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
Атрибут: **creator**
|
||||
|
||||
- Отбор задач созданных мной: `creator:me`
|
||||
- Отбор задач которые создал Петр Иванов: `creator:"Петр Иванов"`
|
||||
- Отбор задач созданных пользователем с id \#1: `creator:1`
|
||||
|
||||
|
||||
### Поиск по исполнителю подзадач[¶](#search-by-subtask-assignee "Ссылка на этот заголовок")
|
||||
|
||||
Атрибут: **subtask:assignee**
|
||||
|
||||
- Например: `subtask:assignee:"Петр Иванов"`
|
||||
|
||||
|
||||
### Поиск по цвету[¶](#search-by-color "Ссылка на этот заголовок")
|
||||
|
||||
Атрибут: **color**
|
||||
|
||||
- Отбор по цвету с id blue: `color:blue`
|
||||
- Отбор по названию цвета: `color:"Deep Orange"`
|
||||
|
||||
|
||||
### Отбор по “Сделать до”[¶](#search-by-the-due-date "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
Атрибут: **due**
|
||||
|
||||
- Поиск задач со сроком испольнения до сегодня: `due:today`
|
||||
- Поиск задач со сроком исполнения завтра: `due:tomorrow`
|
||||
- Поиск задач со сроком исполнения вчера: `due:yesterday`
|
||||
- Поиск задач с конкретной датой исполнения: `due:2016-06-29`
|
||||
|
||||
Дата должна быть в формате ISO 8601: **YYYY-MM-DD**.
|
||||
|
||||
Все строковые форматы поддерживаемые функцией `strtotime()` допустимы. Например, `next Thursday`, `-2 days`{.docutils .literal}, `+2 months`, `tomorrow` и т.д.
|
||||
|
||||
|
||||
Операторы сравнения с датой:
|
||||
|
||||
- Старше чем: **due:\>2015-06-29**
|
||||
- Моложе чем: **due:\<2015-06-29**
|
||||
- Старше чем или равно: **due:\>=2015-06-29**
|
||||
- Моложе чем или равно: **due:\<=2015-06-29**
|
||||
|
||||
|
||||
### Поиск по дате изменения[¶](#search-by-modification-date "Ссылка на этот заголовок")
|
||||
|
||||
Атрибут: **modified** или **updated**
|
||||
|
||||
Формат даты такой же как и у “Сделать до”
|
||||
|
||||
Отфильтровать недавно измененные задачи: `modified:recently`.
|
||||
|
||||
Этот запрос использует тоже значение что и в настройках Доски - “Время подсвечивания задачи”.
|
||||
|
||||
|
||||
### Поиск по дате создания[¶](#search-by-creation-date "Ссылка на этот заголовок")
|
||||
|
||||
Атрибут: **created**
|
||||
|
||||
Работает также как и поиск по дате изменения.
|
||||
|
||||
|
||||
### Поиск по описанию[¶](#search-by-description "Ссылка на этот заголовок")
|
||||
|
||||
Атрибут: **description** or **desc**
|
||||
|
||||
Например: `description:"здесь пишем тескт для поиска"`
|
||||
|
||||
|
||||
### Поиск по внешним ссылкам[¶](#search-by-external-reference "Ссылка на этот заголовок")
|
||||
|
||||
Например: нужно найти задачу, которая содержит ссылку на id или название другой задачи.
|
||||
|
||||
- `ref:1234` или `reference:TICKET-1234`
|
||||
|
||||
|
||||
### Поиск по категории[¶](#search-by-category "Ссылка на этот заголовок")
|
||||
|
||||
Атрибут: **category**
|
||||
|
||||
- Найти задачи с указанной категорией: `category:"Важные запросы"`
|
||||
- Найти задачи, которые содержать указанные категории: `category:"Ошибки" category:"Изменения"`
|
||||
- Найти задачи без категорий: `category:none`
|
||||
|
||||
|
||||
### Поиск проектов[¶](#search-by-project "Ссылка на этот заголовок")
|
||||
|
||||
Атрибут: **project**
|
||||
|
||||
- Поиск задач по имени проекта: `project:"Какой-то проект"`
|
||||
- Поиск задач по id проекта: `project:23`
|
||||
- Поиск задач в нескольких проектах: `project:"Проект A" project:"Проект B"`
|
||||
|
||||
|
||||
### Поиск в колонках[¶](#search-by-columns "Ссылка на этот заголовок")
|
||||
|
||||
Атрибут: **column**
|
||||
|
||||
- Поиск задач в указанной колонке: `column:"В работе"`
|
||||
- Поиск задач в нескольких колонках: `column:"Невыполненные заказы" column:ready`
|
||||
|
||||
|
||||
### Поиск в Дорожках[¶](#search-by-swim-lane "Ссылка на этот заголовок")
|
||||
|
||||
Атрибут: **swimlane**
|
||||
|
||||
- Поиск задач в указанной Дорожке: `swimlane:"Версия 42"`
|
||||
- Поиск задач в базовой Дорожке: `swimlane:default`
|
||||
- Поиск задач в нескольких Дорожках: `swimlane:"Версия 1.2" swimlane:"Версия 1.3"`
|
||||
|
||||
|
||||
### Поиск ссылки на задачу[¶](#search-by-task-link "Ссылка на этот заголовок")
|
||||
|
||||
Атрибут: **link**
|
||||
|
||||
- Поиск задач содержащих ссылку: `link:"это веха задачи "`
|
||||
- Поиск задач по нескольким ссылкам: `link:"веха задачи " link:"относится к"`
|
||||
|
||||
|
||||
### Поиск по комментарию[¶](#search-by-comment "Ссылка на этот заголовок")
|
||||
|
||||
Атрибут: **comment**
|
||||
|
||||
- Найти комментарии, которые содержат указанное название: `comment:"Какое-то название"`
|
||||
|
||||
|
||||
Поиск активности задач[¶](#activity-stream-search "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
### Поиск событий по названию задачи[¶](#search-events-by-task-title "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Атрибут: **title** или без ничего (по умолчанию)
|
||||
|
||||
- Например: `title:"My task"`
|
||||
- Поиск задачи по id: `#123`
|
||||
|
||||
|
||||
### Поиск событий по статусу задачи[¶](#search-events-by-task-status "Ссылка на этот заголовок")
|
||||
|
||||
Атрибут: **status**
|
||||
|
||||
|
||||
|
||||
### Поиск событий по создателю[¶](#search-by-event-creator "Ссылка на этот заголовок")
|
||||
|
||||
Атрибут: **creator**
|
||||
|
||||
|
||||
|
||||
### Поиск событий по дате создания[¶](#search-by-event-creation-date "Ссылка на этот заголовок")
|
||||
|
||||
Атрибут: **created**
|
||||
|
||||
|
||||
|
||||
### Поиск событий по проекту[¶](#search-events-by-project "Ссылка на этот заголовок")
|
||||
|
||||
Атрибут: **project**
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,162 @@
|
|||
Часто задаваемые вопросы
|
||||
========================
|
||||
|
||||
|
||||
Вы можете порекомендовать веб хостинг провайдера для Канборд?[¶](#can-you-recommend-a-web-hosting-provider-for-kanboard "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Работу Канборд поддерживают несколько крупных провайдеров VPS, такие как [Digital Ocean](https://www.digitalocean.com/?refcode=4b541f47aae4), [Linode](https://www.linode.com/?r=4e381ac8a61116f40c60dc7438acc719610d8b11) или [Gandi](https://www.gandi.net/).
|
||||
|
||||
Для получения большей производительности, выбирайте провайдера с быстрыми дисками чтения/записи, потому что Канборд использует по умолчанию Sqlite. Избегайте провайдеров которые используют подключения NFS.
|
||||
|
||||
|
||||
У меня выводится пустая страница после установки или обновления Канборд[¶](#i-get-a-blank-page-after-installing-or-upgrading-kanboard "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Проверьте, установили ли вы всё на сервер, что было указано в требованиях
|
||||
- Посмотрите ошибки в PHP и Apache логах
|
||||
- Проверьте права доступа к файлам
|
||||
- Если вы используете кеширование OPcode, перезапустите ваш веб сервер или php-fpm
|
||||
|
||||
|
||||
У меня выводится ошибка “There is no suitable CSPRNG installed on your system”[¶](#i-have-the-error-there-is-no-suitable-csprng-installed-on-your-system "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Если вы используете PHP \< 7.0, то вам нужно включить расширение openssl или доступ из приложения к `/dev/urandom`, если имеются ограничения от `open_basedir`.
|
||||
|
||||
|
||||
Страница не найдена и URL выглядит криво (&)[¶](#page-not-found-and-the-url-seems-wrong-amp "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
- UTL выглядит как `/?controller=auth&action=login&redirect_query=` вместо `?controller=auth&action=login&redirect_query=`
|
||||
- Канборд выдает ошибку “Страница не найдена”
|
||||
|
||||
|
||||
Эта ошибка исходит из настроек конфигурации вашего PHP, значение `arg_separator.output` отсутствует в базовой настройке. Есть разные пути решения этой проблемы:
|
||||
|
||||
Измените значение прямо в вашем `php.ini`:
|
||||
|
||||
|
||||
arg_separator.output = "&"
|
||||
|
||||
|
||||
Переделайте значение с помощью `.htaccess`:
|
||||
|
||||
|
||||
php_value arg_separator.output "&"
|
||||
|
||||
|
||||
Иначе Канборд будет брать значение напрямую из PHP.
|
||||
|
||||
|
||||
|
||||
Ошибка аутентификации в API и Apache + PHP-FPM[¶](#authentication-failure-with-the-api-and-apache-php-fpm "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
По умолчанию, php-cgi под Apache не передает HTTP Basic user/pass в PHP. Чтобы это окружение заработало, добавьте эти строки в ваш файл `.htaccess`:
|
||||
|
||||
|
||||
|
||||
RewriteCond %{HTTP:Authorization} ^(.+)$
|
||||
|
||||
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
||||
|
||||
|
||||
|
||||
Проблемы с eAccelerator[¶](#known-issues-with-eaccelerator "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------------------------
|
||||
|
||||
Канборд не очень хорошо работает с [eAccelerator](http://eaccelerator.net). Проблема в том, что выдается чистая страница или падает Apache:
|
||||
|
||||
|
||||
[Wed Mar 05 21:36:56 2014] [notice] child pid 22630 exit signal Segmentation fault (11)
|
||||
|
||||
|
||||
Лучшее решение, чтобы избежать этой проблемы, выключить eAccelerator или прописать в конфиге какие файлы вы хотите кешировать (параметр `eaccelerator.filter`).
|
||||
|
||||
|
||||
|
||||
Проект [eAccelerator выглядит мертвым и не обновляется с 2012](https://github.com/eaccelerator/eaccelerator/commits/master). Мы рекомендуем перейти на последнюю версию PHP, потому что в него включен [OPcache](http://php.net/manual/en/intro.opcache.php).
|
||||
|
||||
|
||||
Почему минимальная рекомендуемая версия PHP 5.3.3?[¶](#why-the-minimum-requirement-is-php-5-3-3 "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Канборд использует функцию `password_hash()` для шифрования пароля, а эта функция доступна только для PHP \>= 5.5.
|
||||
|
||||
Однако, имеется back-port для [более ранних версий PHP](https://github.com/ircmaxell/password_compat#requirements). Эта библиотека требует минимум PHP 5.3.7 для корректной работы.
|
||||
|
||||
По всей видимости, патчи безопасности back-port имеются в Centos и Debian, поэтому PHP 5.3.3 подходит для работы Канборд.
|
||||
|
||||
Канборд v1.0.10 и v1.0.11 требует минимум PHP 5.3.7, но эти изменения возвращены на PHP 5.3.3 в Канборде \>= v1.0.12
|
||||
|
||||
|
||||
|
||||
Как проверить работу Канборда со встроенным веб-сервером PHP?[¶](#how-to-test-kanboard-with-the-php-built-in-web-server "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Если вы не хотите устанавливать веб сервер типа Apache, то вы можете протестировать работу Канборда на [встроенном в PHP веб сервере](http://www.php.net/manual/en/features.commandline.webserver.php):
|
||||
|
||||
|
||||
unzip kanboard-VERSION.zip
|
||||
|
||||
cd kanboard
|
||||
|
||||
php -S localhost:8000
|
||||
|
||||
open http://localhost:8000/
|
||||
|
||||
|
||||
|
||||
Как установить Канборд на Yunohost?[¶](#how-to-install-kanboard-on-yunohost "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------------------------------------
|
||||
|
||||
[YunoHost](https://yunohost.org/) это серверная операционная система, цель которой предоставить хостинг для всех.
|
||||
|
||||
Отсюда можно [загрузить инсталяционный пакет Kanboard для Yunohost](https://github.com/mbugeia/kanboard_ynh).
|
||||
|
||||
|
||||
Где я могу найти список связанных с Канборд проектов?[¶](#where-can-i-find-a-list-of-related-projects "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
- [Kanboard API python client by @freekoder]([https://github.com/freekoder/kanboard-py](https://github.com/freekoder/kanboard-py))
|
||||
|
||||
- [Kanboard Presenter by David Eberlein](https://github.com/davideberlein/kanboard-presenter)
|
||||
|
||||
- [CSV2Kanboard by @ashbike]([https://github.com/ashbike/csv2kanboard](https://github.com/ashbike/csv2kanboard))
|
||||
|
||||
- [Kanboard for Yunohost by @mbugeia]([https://github.com/mbugeia/kanboard\_ynh](https://github.com/mbugeia/kanboard_ynh))
|
||||
|
||||
- [Trello import script by @matueranet]([https://github.com/matueranet/kanboard-import-trello](https://github.com/matueranet/kanboard-import-trello))
|
||||
|
||||
- [Chrome extension by Timo](https://chrome.google.com/webstore/detail/kanboard-quickmenu/akjbeplnnihghabpgcfmfhfmifjljneh?utm_source=chrome-ntp-icon), [Source code](https://github.com/BlueTeck/kanboard_chrome_extension)
|
||||
|
||||
- [Python client script by @dzudek]([https://gist.github.com/fguillot/84c70d4928eb1e0cb374](https://gist.github.com/fguillot/84c70d4928eb1e0cb374))
|
||||
|
||||
- [Shell script for SQLite to MySQL/MariaDB migration by @oliviermaridat]([https://github.com/oliviermaridat/kanboard-sqlite2mysql](https://github.com/oliviermaridat/kanboard-sqlite2mysql))
|
||||
|
||||
- [Git hooks for integration with Kanboard by Gene Pavlovsky](https://github.com/gene-pavlovsky/kanboard-git-hooks)
|
||||
|
||||
|
||||
|
||||
Имеются ли руководства по Канборду на других языках?[¶](#are-there-some-tutorials-about-kanboard-in-other-languages "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
- [Серия статей про Kanboard на немецком языке](http://demaya.de/wp/2014/07/kanboard-eine-jira-alternative-im-detail-installation/) .
|
||||
- [Русская документация по Канборд](http://kanboard.ru/doc/).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,187 @@
|
|||
Инсталяция на FreeBSD 10
|
||||
========================
|
||||
|
||||
|
||||
Инсталяция из пакетов[¶](#install-from-packages "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
$ pkg update
|
||||
|
||||
$ pkg upgrade
|
||||
|
||||
$ pkg install apache24 mod_php56 kanboard
|
||||
|
||||
|
||||
|
||||
Включите Apache в `/etc/rc.conf`{.docutils .literal}:
|
||||
|
||||
|
||||
|
||||
$ echo apache24_enable="YES" >> /etc/rc.conf
|
||||
|
||||
|
||||
|
||||
Установите PHP для Apache:
|
||||
|
||||
|
||||
|
||||
$ echo "AddType application/x-httpd-php .php" >> /usr/local/etc/apache24/Includes/php.conf
|
||||
|
||||
$ echo "DirectoryIndex index.php index.html" >> /usr/local/etc/apache24/Includes/php.conf
|
||||
|
||||
|
||||
|
||||
Затем, запустите Apache:
|
||||
|
||||
|
||||
|
||||
$ service apache24 start
|
||||
|
||||
|
||||
|
||||
Создайте символическую ссылку на каталог Kanboard в корне Apache:
|
||||
|
||||
|
||||
|
||||
cd /usr/local/www/apache24/data
|
||||
|
||||
ln -s /usr/local/www/kanboard
|
||||
|
||||
|
||||
|
||||
Готово. Можете перейти в <http:/>/вашвебсервер/kanboard и начинать работать!
|
||||
|
||||
|
||||
|
||||
*Примечание*: Если вы хотите добавить дополнительные возможности, типа интеграции LDAP, то нужно установить соответствующий PHP модуль. Также, вам необходимо настроить соответсвующие права на каталог data.
|
||||
|
||||
|
||||
|
||||
Установка из портов[¶](#installing-from-ports "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
|
||||
Нужно установить 3 основных элемента:
|
||||
|
||||
|
||||
|
||||
- Apache
|
||||
|
||||
- mod\_php for Apache
|
||||
|
||||
- Kanboard
|
||||
|
||||
|
||||
|
||||
Загрузите и распакуйте порты:
|
||||
|
||||
|
||||
|
||||
$ portsnap fetch
|
||||
|
||||
$ portsnap extract
|
||||
|
||||
|
||||
|
||||
или обновите имеющиеся:
|
||||
|
||||
|
||||
|
||||
$ portsnap fetch
|
||||
|
||||
$ portsnap update
|
||||
|
||||
|
||||
|
||||
Дополнительную информацию о дереве портов вы можете посмотреть на [FreeBSD Handbook](https://www.freebsd.org/doc/handbook/ports-using.html).
|
||||
|
||||
|
||||
|
||||
Установка Apache:
|
||||
|
||||
|
||||
|
||||
$ cd /usr/ports/www/apache24
|
||||
|
||||
$ make install clean
|
||||
|
||||
|
||||
|
||||
Включите Apache в `/etc/rc.conf`{.docutils .literal}:
|
||||
|
||||
|
||||
|
||||
$ echo apache24_enable="YES" >> /etc/rc.conf
|
||||
|
||||
|
||||
|
||||
Установите mod\_php для Apache:
|
||||
|
||||
|
||||
|
||||
$ cd /usr/ports/www/mod_php5
|
||||
|
||||
$ make install clean
|
||||
|
||||
|
||||
|
||||
Установите Kanboard из портов:
|
||||
|
||||
|
||||
|
||||
$ cd /usr/ports/www/kanboard
|
||||
|
||||
$ make install clean
|
||||
|
||||
|
||||
|
||||
Установите PHP для Apache:
|
||||
|
||||
|
||||
|
||||
$ echo "AddType application/x-httpd-php .php" >> /usr/local/etc/apache24/Includes/php.conf
|
||||
|
||||
$ echo "DirectoryIndex index.php index.html" >> /usr/local/etc/apache24/Includes/php.conf
|
||||
|
||||
|
||||
|
||||
Затем, запустите Apache:
|
||||
|
||||
|
||||
|
||||
$ service apache24 start
|
||||
|
||||
|
||||
|
||||
Готово. Можете перейти в <http:/>/вашвебсервер/kanboard и начинать работать!
|
||||
|
||||
|
||||
|
||||
*Примечание*: Если вы хотите использовать дополнительные возможности, типа интеграции LDAP, то нужно установить PHP модуль из `lang/php5-extensions`{.docutils .literal}.
|
||||
|
||||
|
||||
|
||||
Установка из архива[¶](#manual-installation "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
Начина с версии 1.0.16 Kanboard имеется в портах FreeBSD, поэтому нет необходимости устанавливать вручную.
|
||||
|
||||
|
||||
|
||||
Обратите внимание[¶](#please-note "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------
|
||||
|
||||
- Порт расположен на хостинге [bitbucket](https://bitbucket.org/if0/freebsd-kanboard/). Делайте комментарии, ответвления и предлагайте обновления!
|
||||
- Некоторые возможности Канборд требуют [запуск ежедневных фоновых задач](cronjob.markdown).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
Диаграмма Ганта для всех проектов
|
||||
=================================
|
||||
|
||||
|
||||
|
||||
Цель диаграммы Ганта для проектов - показать прогресс проектов основанный на дате начала и дате завершения.
|
||||
|
||||
|
||||
|
||||
- Диаграмма Ганта для проектов доступна из раздела **Управление проектами**
|
||||
|
||||
|
||||
|
||||
- Только менеджеры проекта и администраторы имеют доступ в этот раздел
|
||||
|
||||
|
||||
|
||||
- Менеджеры проекта могут видеть только те проекты, в которых они являются участниками
|
||||
|
||||
|
||||
|
||||
- Приватные проекты не показывают этот график
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Диаграмма Ганта для всех проектов
|
||||
|
||||
|
||||
|
||||
- **Дата начала** и **дата завершения** проекта используются для рисования графика
|
||||
|
||||
|
||||
|
||||
- Горизонтальные полосы (столбики) могут быть расширены (сжаты) и перемещены горизонтально с помощью мыши
|
||||
|
||||
|
||||
|
||||
- Перемещение по вертикали невозможно
|
||||
|
||||
|
||||
|
||||
- Полосы (столбики) проекта отображаются черным, когда проект не имеет дату начала и завершения
|
||||
|
||||
|
||||
|
||||
- Информационная подсказка показывает список менеджеров и участников проекта
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
Диаграмма Ганта для задач
|
||||
=========================
|
||||
|
||||
|
||||
|
||||
Цель диаграммы Ганта - показать время отведенное на задачу в заданном проекте.
|
||||
|
||||
|
||||
|
||||
- Диаграмма Ганта доступна в рабочем окружении проекта
|
||||
|
||||
|
||||
|
||||
- Только менеджеры проектов могут иметь доступ в этот раздел
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Диаграмма Ганта.
|
||||
|
||||
|
||||
|
||||
- Дата начала и дата завершения задач используется для рисования диаграммы
|
||||
|
||||
|
||||
|
||||
- Задача может быть расширена и перемещена горизонтально с помощью мыши
|
||||
|
||||
|
||||
|
||||
- Перемещение по вертикали невозможно
|
||||
|
||||
|
||||
|
||||
- Полоса (горизонтальный столбик) на диаграмме имеет такой же цвет как и задача
|
||||
|
||||
|
||||
|
||||
- Каждая полоса отображает статус прогресса в процентах. Проценты подсчитываются с учетом позиции задачи в колонке на Доске.
|
||||
|
||||
|
||||
|
||||
- Для соответсвия модели Kanban, задачи могут быть отсортированы в соответствии с позициями на доске или по дате начала
|
||||
|
||||
|
||||
|
||||
- Новые задачи созданные через диаграмму Ганта будут показаны на Доске в первой колонке на первой позиции
|
||||
|
||||
|
||||
|
||||
- Задачи отображаются черным цветом, если не указана дата начала или дата исполнения
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Задача без указанных дат начала или завершения
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
Алфавитный указатель
|
||||
====================
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
Управление группами
|
||||
===================
|
||||
|
||||
|
||||
|
||||
В Канборде каждый пользователь может быть членом одной или нескольких групп. Группа - это что-то вроде команды или организации.
|
||||
|
||||
|
||||
|
||||
Только администраторы могут создавать новую группу и добавлять туда пользователей.
|
||||
|
||||
|
||||
|
||||
Настройка групп доступна через **Управление пользователями** (выпадающее меню справа вверху) -\> **Просмотр всех пользователей**. Здесь вы можете создавать новые группы и добавлять пользователей в группы.
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Управление группами.
|
||||
|
||||
|
||||
|
||||
Менеджеры проектов могут предоставлять доступ группам к проектам на [странице Разрешения проекта](project-permissions.markdown).
|
||||
|
||||
|
||||
|
||||
Внешние id в основном используются для предоставления доступа внешним группам. Канборд поддерживает группы из LDAP посредством [автоматической синхронизации групп из LDAP сервера](ldap-group-sync.markdown).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
Развертывание Канборд на Heroku
|
||||
===============================
|
||||
|
||||
Вы можете бесплатно испытать работу Kanboard на [Heroku](https://www.heroku.com/). Вам нужно нажать кнопку **Deploy to Heroku** и следовать руководству приведенному ниже:
|
||||
|
||||
[](https://heroku.com/deploy?template=https://github.com/fguillot/kanboard)
|
||||
|
||||
|
||||
|
||||
Требования[¶](#requirements "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Учетная запись на Heroku. Вы можете зарегистрироваться бесплатно.
|
||||
- Установленная утилита командной строки Heroku
|
||||
|
||||
|
||||
|
||||
Руководство по установке[¶](#manual-instructions "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
|
||||
# Get the last development version
|
||||
|
||||
git clone https://github.com/fguillot/kanboard.git
|
||||
|
||||
cd kanboard
|
||||
|
||||
|
||||
|
||||
# Push the code to Heroku (You can also use SSH if git over HTTP doesn't work)
|
||||
|
||||
heroku create
|
||||
|
||||
git push heroku master
|
||||
|
||||
|
||||
|
||||
# Start a new dyno with a Postgresql database
|
||||
|
||||
heroku ps:scale web=1
|
||||
|
||||
heroku addons:add heroku-postgresql:hobby-dev
|
||||
|
||||
|
||||
|
||||
# Open your browser
|
||||
|
||||
heroku open
|
||||
|
||||
|
||||
|
||||
Ограничения[¶](#limitations "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------
|
||||
|
||||
- Хранилище на Heroku эфимерное. Это означает, что файлы, загружаемые через Канборд, будут отсутствовать в системе после перезагрузки. Вы можете установить плагин для хранения файлов в облаке, например [Amazon S3](https://github.com/kanboard/plugin-s3).
|
||||
- Некоторые возможности Канборда требуют, чтобы вы выполняли [запуск ежедневных фоновых задач](cronjob.markdown).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,111 @@
|
|||
Синхронизация вашего календаря
|
||||
==============================
|
||||
|
||||
|
||||
Канборд поддерживает iCal транслятор для проектов и пользователей. Эта возможность позволяет вам импортировать задачи из Канборд в любую программу календарь (например, Microsoft Outlook, Apple Calendar, Mozilla Thunderbird и Google Calendar).
|
||||
|
||||
Подписки на календарь возможны только на **чтение**, т.е. вы не можете создавать задачи во внешнем календаре. Данные из Календаря экспортируются в стандарте iCal.
|
||||
|
||||
Заметка: Только задачи в промежутке от -2 месяцев до +6 месяцев (прошедшие два месяца и предстоящие 6 месяцев) экспортируются в iCalendar транслятор.
|
||||
|
||||
|
||||
Календарь проекта[¶](#project-calendars "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------
|
||||
|
||||
- Каждый проект имеет свой календарь.
|
||||
- Ссылка на подписку уникальна для каждого проекта. Ссылка становится активной, когда вы включаете общий доступ к вашему проекту: **Меню** -\> **Настройки** -\> **Общий доступ**
|
||||
- Этот календарь показывает только задачи для выбранного проекта.
|
||||
|
||||
|
||||
Календарь пользователя[¶](#user-calendars "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------
|
||||
|
||||
- Каждый пользователь имеет свой собственный календарь.
|
||||
- Ссылка на подписку уникальная для каждого пользователя. Ссылка становится активной, когда вы включите общий доступ для пользователя: в правом верхнем выпадающем меню - **Мой профиль** -\> в левом меню - **Общий доступ**.
|
||||
- Этот календарь показывает задачи назначенные пользователю во всех проектах.
|
||||
|
||||
|
||||
Добавление Канборд календаря в календарь Apple[¶](#adding-your-kanboard-calendar-to-apple-calendar "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Откройте календарь
|
||||
- Выберите **Файл** -\> **Новая подписка на календарь**
|
||||
- Скопируйте в Канборд URL ссылку на iCal транслятор и вставьте
|
||||
|
||||

|
||||
|
||||
Рисунок. Добавление подписки на календарь.
|
||||
|
||||
|
||||
- Вы можете выбрать синхронизацию календаря с iCloud, чтобы иметь доступ к календарю с любых ваших устройств
|
||||
- Не забудьте указать частоту синхронизации
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Редактирование подписки на календарь.
|
||||
|
||||
|
||||
Добавление вашего календаря из Канборд в Microsoft Outlook[¶](#adding-your-kanboard-calendar-to-microsoft-outlook "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||

|
||||
|
||||
Рисунок. Добавление в Outlook календаря из интернет
|
||||
|
||||
- Откройте Outlook
|
||||
- Выберите **Открыть календарь** -\> **Из интернета**
|
||||
- Скопируйте в Канборд URL ссылку на iCal транслятор и вставьте
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Настройка интернет календаря в Outlook.
|
||||
|
||||
|
||||
Добавление вашего календаря из Канборд в Mozilla Thunderbird[¶](#adding-your-kanboard-calendar-to-mozilla-thunderbird "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
- Установите в Thunderbird Дополнение **Lightning**
|
||||
- Выберите **Файл** -\> **Новый календарь**
|
||||
- В диалоговом окне, выберите **Из сети**
|
||||
|
||||

|
||||
|
||||
Рисунок. Создание календаря в Thunderbird, шаг 1.
|
||||
|
||||
|
||||
|
||||
- Выберите формат iCalendar
|
||||
- Скопируйте в Канборд URL ссылку на iCal транслятор и вставьте
|
||||
|
||||

|
||||
|
||||
Рисунок. Создание календаря в Thunderbird, шаг 2.
|
||||
|
||||
- Выберите цвета и другие настройки и в завершении нажмите **Сохранить**.
|
||||
|
||||
|
||||
Добавление вашего календаря Канборд в календарь Google[¶](#adding-your-kanboard-calendar-to-google-calendar "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Нажмите иконку “треугольник” рядом с **Другие календари** (слева).
|
||||
- Вставьте ссылку на календарь из Канборд в поле “Добавить календарь друга”
|
||||
- Скопируйте в Канборд URL ссылку на iCal транслятор и вставьте
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Календарь Google.
|
||||
|
||||
Ваш календарь из Канборд будет доступен на планшетах и смартфонах, нужно только сделать синхронизацию.
|
||||
|
||||
|
||||
[Справка по настройке календаря Google](https://support.google.com/calendar/?hl=ru#topic=3417969).
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,248 @@
|
|||
Документация
|
||||
============
|
||||
|
||||
|
||||
Как работать в Kanboard[¶](#using-kanboard "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
||||
### Введение[¶](#introduction "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
- [Что такое Kanban?](what-is-kanban.markdown)
|
||||
|
||||
- [Kanban против Todo списков и Scrum](kanban-vs-todo-and-scrum.markdown)
|
||||
|
||||
- [Где можно использовать Kanboard](usage-examples.markdown)
|
||||
|
||||
|
||||
### Использование доски[¶](#using-the-board "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
- [Доска, Календарь, Список и Гант представления](project-views.markdown)
|
||||
|
||||
- [Компактное или развернутое отображение задач](board-collapsed-expanded.markdown)
|
||||
|
||||
- [Горизонтальная прокрутка и компактный вид](board-horizontal-scrolling-and-compact-view.markdown)
|
||||
|
||||
- [Отображение и скрытие колонок](board-show-hide-columns.markdown)
|
||||
|
||||
|
||||
### Работа с проектами[¶](#working-with-projects "Ссылка на этот заголовок")
|
||||
|
||||
- [Типы проектов](project-types.markdown)
|
||||
|
||||
- [Создание проектов](creating-projects.markdown)
|
||||
|
||||
- [Редактирование проектов](editing-projects.markdown)
|
||||
|
||||
- [Публичные доски и задачи](sharing-projects.markdown)
|
||||
|
||||
- [Автоматизация процессов](automatic-actions.markdown)
|
||||
|
||||
- [Права доступа к проекту](project-permissions.markdown)
|
||||
|
||||
- [Дорожки](swimlanes.markdown)
|
||||
|
||||
- [Календарь](calendar.markdown)
|
||||
|
||||
- [Аналитика](analytics.markdown)
|
||||
|
||||
- [Диаграмма Ганта для задач](gantt-chart-tasks.markdown)
|
||||
|
||||
- [Диаграмма Ганта для проектов](gantt-chart-projects.markdown)
|
||||
|
||||
- [Пользовательские фильтры](custom-filters.markdown)
|
||||
|
||||
|
||||
|
||||
### Работа с задачами[¶](#working-with-tasks "Ссылка на этот заголовок")
|
||||
|
||||
- [Создание задач](creating-tasks.markdown)
|
||||
|
||||
- [Закрытие задач](closing-tasks.markdown)
|
||||
|
||||
- [Дублирование и перенос задач](duplicate-move-tasks.markdown)
|
||||
|
||||
- [Добавление снимка экрана](screenshots.markdown)
|
||||
|
||||
- [Ссылки на задачу](task-links.markdown)
|
||||
|
||||
- [Перемещения](transitions.markdown)
|
||||
|
||||
- [Отслеживание времени](time-tracking.markdown)
|
||||
|
||||
- [Повторяющиеся задачи](recurring-tasks.markdown)
|
||||
|
||||
- [Создание задач через email](create-tasks-by-email.markdown)
|
||||
|
||||
- [Подзадачи](subtasks.markdown)
|
||||
|
||||
- [Аналитика для задач](analytics-tasks.markdown)
|
||||
|
||||
- [Ссылка на пользователя](user-mentions.markdown)
|
||||
|
||||
|
||||
|
||||
### Работа с пользователями и группами[¶](#working-with-users-and-groups "Ссылка на этот заголовок")
|
||||
|
||||
- [Роли](roles.markdown)
|
||||
|
||||
- [Типы пользователей](user-types.markdown)
|
||||
|
||||
- [Управление группами](groups.markdown)
|
||||
|
||||
- [Управление пользователями](user-management.markdown)
|
||||
|
||||
- [Уведомления](notifications.markdown)
|
||||
|
||||
- [Двухуровневая аутентификация](2fa.markdown)
|
||||
|
||||
|
||||
|
||||
### Настройки[¶](#settings "Ссылка на этот заголовок")
|
||||
|
||||
- [Горячие клавиши](keyboard-shortcuts.markdown)
|
||||
|
||||
- [Настройки приложения](application-configuration.markdown)
|
||||
|
||||
- [Настройки проекта](project-configuration.markdown)
|
||||
|
||||
- [Настройка Доски](board-configuration.markdown)
|
||||
|
||||
- [Настройки календаря](calendar-configuration.markdown)
|
||||
|
||||
- [Настройка ссылок](link-labels.markdown)
|
||||
|
||||
- [Курсы валют](currency-rate.markdown)
|
||||
|
||||
|
||||
### Встроенные возможности[¶](#integrations "Ссылка на этот заголовок")
|
||||
|
||||
- [iCalendar подписки](ical.markdown)
|
||||
|
||||
- [RSS/Atom подписки](rss.markdown)
|
||||
|
||||
- [Json-RPC API](api-json-rpc.markdown)
|
||||
|
||||
- [Webhooks](webhooks.markdown)
|
||||
|
||||
- [Плагины](plugins.markdown)
|
||||
|
||||
|
||||
### Дополнительно[¶](#more "Ссылка на этот заголовок")
|
||||
|
||||
- [Синтаксис расширенного поиска](ext-search.markdown)
|
||||
|
||||
- [Интерфейс командной строки](cli.markdown)
|
||||
|
||||
- [Руководство по синтаксису](syntax-guide.markdown)
|
||||
|
||||
- [Защита от Brute force](bruteforce-protection.markdown)
|
||||
|
||||
- [Часто задаваемые вопросы](faq.markdown)
|
||||
|
||||
|
||||
|
||||
Технические детали[¶](#technical-details "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------
|
||||
|
||||
|
||||
### Инсталяция[¶](#installation "Ссылка на этот заголовок")
|
||||
|
||||
- [Требования](requirements.markdown)
|
||||
|
||||
- [Инструкция по инсталяции](installation.markdown)
|
||||
|
||||
- [Обновление Kanboard до новой версии](update.markdown)
|
||||
|
||||
- [Инсталяция на Ubuntu](ubuntu-installation.markdown)
|
||||
|
||||
- [Инсталяция на Debian](debian-installation.markdown)
|
||||
|
||||
- [Инсталяция на Centos](centos-installation.markdown)
|
||||
|
||||
- [Инсталяция на OpenSuse](suse-installation.markdown)
|
||||
|
||||
- [Инсталяция на FreeBSD](freebsd-installation.markdown)
|
||||
|
||||
- [Инсталяция на Windows Server и IIS](windows-iis-installation.markdown)
|
||||
|
||||
- [Инсталяция на Windows Server и Apache](windows-apache-installation.markdown)
|
||||
|
||||
- [Инсталяция на Heroku](heroku.markdown)
|
||||
|
||||
- [Запуск Kanboard под Docker](docker.markdown)
|
||||
|
||||
- [Запуск Kanboard под Vagrant](vagrant.markdown)
|
||||
|
||||
- [Запуск Kanboard на Cloudron](cloudron.markdown)
|
||||
|
||||
- [Запуск Kanboard на Nitrous](nitrous.markdown)
|
||||
|
||||
|
||||
### Настройка[¶](#configuration "Ссылка на этот заголовок")
|
||||
|
||||
- [Ежедневные фоновые задачи](cronjob.markdown)
|
||||
|
||||
- [Конфигурационный файл](config.markdown)
|
||||
|
||||
- [Переменные окружения](env.markdown)
|
||||
|
||||
- [Настройка email](email-configuration.markdown)
|
||||
|
||||
- [Переопределение URL](nice-urls.markdown)
|
||||
|
||||
- [Директория плагинов](plugin-directory.markdown)
|
||||
|
||||
|
||||
|
||||
### База данных[¶](#database "Ссылка на этот заголовок")
|
||||
|
||||
- [База данных Sqlite](sqlite-database.markdown)
|
||||
|
||||
- [Как использовать Mysql](mysql-configuration.markdown)
|
||||
|
||||
- [Как использовать Postgresql](postgresql-configuration.markdown)
|
||||
|
||||
|
||||
### Аутентификация[¶](#authentication "Ссылка на этот заголовок")
|
||||
|
||||
- [LDAP аутентификация](ldap-authentication.markdown)
|
||||
|
||||
- [Синхронизация групп LDAP](ldap-group-sync.markdown)
|
||||
|
||||
- [Изображения из профиля LDAP](ldap-profile-picture.markdown)
|
||||
|
||||
- [Параметры LDAP](ldap-parameters.markdown)
|
||||
|
||||
- [Пример конфигурации LDAP](ldap-configuration-examples.markdown)
|
||||
|
||||
- [Аутентификация Reverse proxy](reverse-proxy-authentication.markdown)
|
||||
|
||||
|
||||
### Участие в проекте[¶](#contributors "Ссылка на этот заголовок")
|
||||
|
||||
- [Руководство для участников проекта](contributing.markdown)
|
||||
|
||||
- [Переводы на другие языки](translations.markdown)
|
||||
|
||||
- [Стандарты при написании кода](coding-standards.markdown)
|
||||
|
||||
- [Выполнение тестов](tests.markdown)
|
||||
|
||||
- [Создание assets](assets.markdown)
|
||||
|
||||
|
||||
[Документация](https://github.com/fguillot/kanboard/tree/master/doc) написана в формате [Markdown](https://ru.wikipedia.org/wiki/Markdown). Если вы желаете улучшить документацию - пошлите pull-request.
|
||||
|
||||
|
||||
|
||||
* [Проект перевода документации Канборд на русский язык](https://github.com/hairetdin/kanboard-doc-ru). [Русская документация Канборд в формате html](http://kanboard.ru/doc/).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,117 @@
|
|||
Инсталяция
|
||||
==========
|
||||
|
||||
|
||||
|
||||
В первую очередь, ознакомтесь с [требованиями](requirements.markdown).
|
||||
|
||||
|
||||
|
||||
Инсталяция из архива (стабильная версия)[¶](#from-the-archive-stable-version "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
1. У вас должен быть установлен веб сервер с PHP
|
||||
|
||||
2. Скачайте исходный код и скопируйте директорию `kanboard` в каталог веб сервера
|
||||
|
||||
3. Проверьте, чтобы директория `data` была доступна на запись
|
||||
|
||||
4. В вашем браузере перейдите по ссылке <http:/>/вашвебсервер/kanboard
|
||||
|
||||
5. Логин и пароль по умолчанию - **admin/admin**
|
||||
|
||||
6. Все, теперь вы можете работать в Канборд
|
||||
|
||||
7. Не забудьте сменить пароль!
|
||||
|
||||
|
||||
|
||||
Место хранения данных:
|
||||
|
||||
|
||||
- База данных Sqlite: `db.sqlite`
|
||||
|
||||
- Файл отладки: `debug.log` (если включена отладка)
|
||||
|
||||
- Загруженные файлы: `files/*`
|
||||
|
||||
- Изображения: `files/thumbnails/*`
|
||||
|
||||
|
||||
|
||||
Те, кто использует удаленную базу данных (Mysql/Postgresql) и удаленное файловое хранилище (Aws S3 или подобное), могут не назначать права доступа к локальным данным.
|
||||
|
||||
|
||||
Инсталяция из репозитория (разрабатываемая версия)[¶](#from-the-repository-development-version "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Вы можете установить [composer](https://getcomposer.org/) для этого метода инсталяции.
|
||||
|
||||
|
||||
1. `git clone https://github.com/fguillot/kanboard.git`
|
||||
|
||||
2. `composer install --no-dev`
|
||||
|
||||
3. Далее, перейдите к третьему шагу [Инсталяция из архива](installation.html#from-the-archive-stable-version)
|
||||
|
||||
|
||||
|
||||
**Внимание**: Инсталируя **текущую разрабатываемую версию**, вы должны понимать, что это нестабильная версия и берете все риски по работе Канборд на себя.
|
||||
|
||||
|
||||
|
||||
Инсталяция в другой каталог[¶](#installation-outside-of-the-document-root "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Если вы хотите инсталировать Канборд в другую директорию, вне корневого каталога веб сервера, вам нужно создать, как минимум, следующие символьные ссылки:
|
||||
|
||||
.
|
||||
|
||||
├── assets -> ../kanboard/assets
|
||||
├── doc -> ../kanboard/doc
|
||||
├── favicon.ico -> ../kanboard/favicon.ico
|
||||
├── index.php -> ../kanboard/index.php
|
||||
├── jsonrpc.php -> ../kanboard/jsonrpc.php
|
||||
└── robots.txt -> ../kanboard/robots.txt
|
||||
|
||||
|
||||
|
||||
`.htaccess` необязательно, потому что его содержимое может быть включена прямо в конфигурацию Apache.
|
||||
|
||||
|
||||
Вы можете указать текущее месторасположение директорий плагинов и файлов изменив [конфигурационный файл](config.markdown).
|
||||
|
||||
|
||||
|
||||
Безопасность[¶](#security "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------
|
||||
|
||||
- Не забудьте изменить логин и пароль пользователя admin, назначенный по умолчанию
|
||||
|
||||
- Не предоставляйте всем права на директорию `data` через URL.
|
||||
|
||||
|
||||
|
||||
Примечание[¶](#notes "Ссылка на этот заголовок")
|
||||
------------------------------------------------
|
||||
|
||||
|
||||
- Некоторые возможности Канборда требуют, чтобы [ежедневно выполнялись фоновые задачи](cronjob.markdown).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
Сравнение Kanban, Todo lists и Scrum
|
||||
====================================
|
||||
|
||||
|
||||
Сравнение Kanban и Todo lists[¶](#kanban-vs-todo-lists "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
### Todo lists (списки для исполнения):[¶](#todo-lists "Ссылка на этот заголовок")
|
||||
|
||||
- Имеют одну фазу (только список пунктов)
|
||||
|
||||
- Возможна многозадачность (не эффективна)
|
||||
|
||||
|
||||
|
||||
### Kanban:[¶](#kanban "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
- Имеет много фаз, каждая колонка представлена как шаг процесса
|
||||
|
||||
- Концентрация внимания и исключение многозадачности, потому что вы можете установить этап процесса заданной колонкой
|
||||
|
||||
|
||||
|
||||
Сравнение Kanban и Scrum[¶](#kanban-vs-scrum "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
### [Scrum:](https://ru.wikipedia.org/wiki/Scrum)[¶](#scrum "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
- Спринты жестко фиксированные временем, обычно 2 или 4 недели
|
||||
|
||||
- Не позволяет вносить изменения в течении итерации
|
||||
|
||||
- Обязательна предварительная оценка
|
||||
|
||||
- Используется скорость как единица измерения по умолчанию
|
||||
|
||||
- Доска Scrum очищается между спринтами
|
||||
|
||||
- Scrum имеет преопределенные роли, такие как, мастер, владелец продукта и команда
|
||||
|
||||
- Множество встреч: планирование, беклог груминг (причесывание), ежедневные совещания, ретроспектива
|
||||
|
||||
|
||||
|
||||
### Kanban:[¶](#id1 "Ссылка на этот заголовок")
|
||||
|
||||
- Непрерывный поток
|
||||
|
||||
- Гибкость - изменения могут быть сделаны в любое время
|
||||
|
||||
- Предварительная оценка опциональна
|
||||
|
||||
- Используется время выполнения (lead time) и время цикла (cycle time) для измерения производительности
|
||||
|
||||
- Доска Kanboar постоянна
|
||||
|
||||
- Kanban не навязывает строгих ограничений или встреч, процессы более гибкие
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,99 @@
|
|||
Горячие клавиши
|
||||
===============
|
||||
|
||||
|
||||
Горячие клавиши доступны в зависимости от страницы на которой вы находитесь.
|
||||
|
||||
|
||||
|
||||
В проекте (Доска, Календарь, Список, Гант)[¶](#project-views-board-calendar-list-gantt "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Переключиться на Обзор проектов = **v o** (переключите клавиатуру в английскую раскладку и нажмите клавиши **v** и **o** )
|
||||
|
||||
|
||||
|
||||
- Переключиться на Доску = **v b**
|
||||
|
||||
|
||||
|
||||
- Переключиться на Календарь = **v c**
|
||||
|
||||
|
||||
|
||||
- Переключиться на список = **v l**
|
||||
|
||||
|
||||
|
||||
- Переключиться на диаграмму Ганта = **v g**
|
||||
|
||||
|
||||
|
||||
На Доске[¶](#board-view "Ссылка на этот заголовок")
|
||||
---------------------------------------------------
|
||||
|
||||
- Новая задача = **n**
|
||||
|
||||
|
||||
|
||||
- Свернуть/развернуть задачи = **s**
|
||||
|
||||
|
||||
|
||||
- Компактный/широкий вид = **c**
|
||||
|
||||
|
||||
|
||||
В Задаче[¶](#task-view "Ссылка на этот заголовок")
|
||||
--------------------------------------------------
|
||||
|
||||
- Редактировать задачу = **e**
|
||||
|
||||
|
||||
|
||||
- Новая подзадача = **s**
|
||||
|
||||
|
||||
|
||||
- Новый комментарий = **c**
|
||||
|
||||
|
||||
|
||||
- Новая внутренняя ссылка = **l**
|
||||
|
||||
|
||||
|
||||
В приложении (главное окно Канборд)[¶](#application "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
- Показать список горячих клавиш = **?**
|
||||
|
||||
|
||||
|
||||
- Открыть переключатель проектов = **b**
|
||||
|
||||
|
||||
|
||||
- Переход в окно поиска = **f**
|
||||
|
||||
|
||||
|
||||
- Очистить окно поиска = **r**
|
||||
|
||||
|
||||
|
||||
- Закрыть окно диалога = **ESC**
|
||||
|
||||
|
||||
|
||||
- Расширенный поиск = **CTRL+ENTER** or **⌘+ENTER**
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,327 @@
|
|||
Аутентификация LDAP
|
||||
===================
|
||||
|
||||
|
||||
Требования[¶](#requirements "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Включенное в PHP раширение LDAP
|
||||
|
||||
|
||||
|
||||
- Сервер LDAP:
|
||||
|
||||
|
||||
|
||||
- OpenLDAP
|
||||
|
||||
- Microsoft Active Directory
|
||||
|
||||
- Novell eDirectory
|
||||
|
||||
|
||||
|
||||
Рабочий процесс[¶](#workflow "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Когда активирована аутентификация LDAP, процесс входа выглядит следующим образом:
|
||||
|
||||
|
||||
|
||||
1. Выполняется попытка аутентификации пользователя в базе данных Канборда
|
||||
|
||||
2. Если пользователь не найден в базе Канборда, выполняется аутентификация LDAP
|
||||
|
||||
3. Если аутентификация LDAP выполнена успешно, по умолчанию, локальный пользователь (в Канборде) создается автоматически без пароля и помечается как пользователь LDAP.
|
||||
|
||||
|
||||
|
||||
Полное имя и email адрес автоматически подгружаются из сервера LDAP.
|
||||
|
||||
|
||||
|
||||
Типы аутентификации[¶](#authentication-types "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
| Тип | Описание |
|
||||
|--------------|-------------------------------------------------------------|
|
||||
| Proxy User | Использовать специального пользователя для просмотра директории LDAP |
|
||||
| User | Использовать учетные данные конечного пользователя для просмотра директории LDAP |
|
||||
| Anonymous | Не надо выполнять аутентификацию для доступа к каталогу LDAP |
|
||||
|
||||
|
||||
**Рекомендуемый метод аутентификации - “Proxy”**.
|
||||
|
||||
|
||||
|
||||
### Анонимный (Anonymous) метод[¶](#anonymous-mode "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
define('LDAP_BIND_TYPE', 'anonymous');
|
||||
|
||||
define('LDAP_USERNAME', null);
|
||||
|
||||
define('LDAP_PASSWORD', null);
|
||||
|
||||
|
||||
|
||||
Этот метод используется по умолчанию, но некоторые сервера LDAP не поддерживают доступ анонимам, из соображений безопасности.
|
||||
|
||||
|
||||
|
||||
### Proxy метод[¶](#proxy-mode "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Специальный пользователь используется для доступа к директории LDAP:
|
||||
|
||||
|
||||
|
||||
define('LDAP_BIND_TYPE', 'proxy');
|
||||
|
||||
define('LDAP_USERNAME', 'my proxy user');
|
||||
|
||||
define('LDAP_PASSWORD', 'my proxy password');
|
||||
|
||||
|
||||
|
||||
### Пользовательский метод (user)[¶](#user-mode "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Этот метод используется для доступа под учетной записью конечного пользователя.
|
||||
|
||||
|
||||
|
||||
Например, Microsoft Active Directory не разрешает подключение под анонимным пользователем и если вы не хотите использовать пользователя proxy, то используйте этот метод.
|
||||
|
||||
|
||||
|
||||
define('LDAP_BIND_TYPE', 'user');
|
||||
|
||||
define('LDAP_USERNAME', '%s@kanboard.local');
|
||||
|
||||
define('LDAP_PASSWORD', null);
|
||||
|
||||
|
||||
|
||||
В этом методе, константа `LDAP_USERNAME` использутся как шаблон для пользователя ldap, например:
|
||||
|
||||
|
||||
|
||||
- `%s@kanboard.local` будет заменен `my_user@kanboard.local`
|
||||
|
||||
|
||||
|
||||
- `KANBOARD\\%s` будет заменен на `KANBOARD\my_user`
|
||||
|
||||
|
||||
|
||||
Фильтр пользователей LDAP[¶](#user-ldap-filter "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
|
||||
Параметр конфигурации `LDAP_USER_FILTER` используется для поиска пользователей по директории LDAP.
|
||||
|
||||
|
||||
|
||||
Например:
|
||||
|
||||
|
||||
|
||||
- `(&(objectClass=user)(sAMAccountName=%s))` будет заменено на `(&(objectClass=user)(sAMAccountName=указанный_пользователь))`
|
||||
|
||||
|
||||
- `uid=%s` is replaced by `uid=указанный_пользователь`
|
||||
|
||||
|
||||
|
||||
Другие примеры [фильтров для Active Directory](http://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx)
|
||||
|
||||
|
||||
|
||||
Пример фильра доступа в Канборд:
|
||||
|
||||
|
||||
|
||||
`(&(objectClass=user)(sAMAccountName=%s)(memberOf=CN=Kanboard Users,CN=Users,DC=kanboard,DC=local))`
|
||||
|
||||
|
||||
|
||||
Этот пример разрешает подключатся к Канборду только пользователям участникам группы “Kanboard Users”
|
||||
|
||||
|
||||
|
||||
Пример для Microsoft Active Directory[¶](#example-for-microsoft-active-directory "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Предположим, что мы имеем домен `KANBOARD` (kanboard.local) и контролер домена `myserver.kanboard.local`.
|
||||
|
||||
|
||||
|
||||
Первый пример для метода прокси (proxy):
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
// Enable LDAP authentication (false by default)
|
||||
|
||||
define('LDAP_AUTH', true);
|
||||
|
||||
|
||||
|
||||
define('LDAP_BIND_TYPE', 'proxy');
|
||||
|
||||
define('LDAP_USERNAME', 'administrator@kanboard.local');
|
||||
|
||||
define('LDAP_PASSWORD', 'my super secret password');
|
||||
|
||||
|
||||
|
||||
// LDAP server hostname
|
||||
|
||||
define('LDAP_SERVER', 'myserver.kanboard.local');
|
||||
|
||||
|
||||
|
||||
// LDAP properties
|
||||
|
||||
define('LDAP_USER_BASE_DN', 'CN=Users,DC=kanboard,DC=local');
|
||||
|
||||
define('LDAP_USER_FILTER', '(&(objectClass=user)(sAMAccountName=%s))');
|
||||
|
||||
|
||||
|
||||
Второй пример с пользовательским методом (user):
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
// Enable LDAP authentication (false by default)
|
||||
|
||||
define('LDAP_AUTH', true);
|
||||
|
||||
|
||||
|
||||
define('LDAP_BIND_TYPE', 'user');
|
||||
|
||||
define('LDAP_USERNAME', '%s@kanboard.local');
|
||||
|
||||
define('LDAP_PASSWORD', null);
|
||||
|
||||
|
||||
|
||||
// LDAP server hostname
|
||||
|
||||
define('LDAP_SERVER', 'myserver.kanboard.local');
|
||||
|
||||
|
||||
|
||||
// LDAP properties
|
||||
|
||||
define('LDAP_USER_BASE_DN', 'CN=Users,DC=kanboard,DC=local');
|
||||
|
||||
define('LDAP_USER_FILTER', '(&(objectClass=user)(sAMAccountName=%s))');
|
||||
|
||||
|
||||
|
||||
Пример для OpenLDAP[¶](#example-for-openldap "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Наш сервер LDAP - `myserver.example.com` и все пользователи хранятся в `ou=People,dc=example,dc=com`.
|
||||
|
||||
|
||||
|
||||
Для этого примера мы использовали анонимное подключение.
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
// Enable LDAP authentication (false by default)
|
||||
|
||||
define('LDAP_AUTH', true);
|
||||
|
||||
|
||||
|
||||
// LDAP server hostname
|
||||
|
||||
define('LDAP_SERVER', 'myserver.example.com');
|
||||
|
||||
|
||||
|
||||
// LDAP properties
|
||||
|
||||
define('LDAP_USER_BASE_DN', 'ou=People,dc=example,dc=com');
|
||||
|
||||
define('LDAP_USER_FILTER', 'uid=%s');
|
||||
|
||||
|
||||
|
||||
Выключение автоматического создания учетных записей[¶](#disable-automatic-account-creation "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
По умолчанию, Канборд автоматически создает учетную запись пользователя, если такой пользователь не найден.
|
||||
|
||||
|
||||
|
||||
Вы можете выключить это поведение, если вы предпочитаете создавать учетные записи вручную.
|
||||
|
||||
|
||||
|
||||
Для этого установите значение `LDAP_ACCOUNT_CREATION` в `false`:
|
||||
|
||||
|
||||
|
||||
// Automatically create user account
|
||||
|
||||
define('LDAP_ACCOUNT_CREATION', false);
|
||||
|
||||
|
||||
|
||||
Устранение неисправностей[¶](#troubleshooting "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
Если включен SELinux, вы должны разрешить Apache доступ к вашему серверу LDAP.
|
||||
|
||||
|
||||
|
||||
- Вы должны переключить SELinux в разрешающий режим (permissive mode) или совсем выключить (не рекомендуется)
|
||||
|
||||
- Вы должны разрешить все сетевые подключения, например `setsebool -P httpd_can_network_connect=1` или назначить более ограничивающие правила
|
||||
|
||||
|
||||
|
||||
В любом случае, ознакомтесь с официальной документацией Redhat/Centos.
|
||||
|
||||
|
||||
|
||||
Если вам не удается настроить аутентификацию LDAP, то вы можете [включить режим отладки](config.markdown) и посмотреть файлы событий.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,438 @@
|
|||
Пример конфигурации LDAP
|
||||
========================
|
||||
|
||||
|
||||
Microsoft Active Directory[¶](#microsoft-active-directory "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------------------
|
||||
|
||||
- Аутентификация пользователя
|
||||
|
||||
|
||||
|
||||
- Загрузка пользовательского профиля из Active Directory
|
||||
|
||||
|
||||
|
||||
- Установка языка пользователя из атрибутов LDAP
|
||||
|
||||
|
||||
|
||||
- Роли в Канборд сопоставляются с группами в Active Directory
|
||||
|
||||
|
||||
|
||||
- Поставщики групп LDAP включены
|
||||
|
||||
|
||||
|
||||
<!-- -->
|
||||
|
||||
|
||||
|
||||
define('LDAP_AUTH', true);
|
||||
|
||||
|
||||
|
||||
define('LDAP_SERVER', 'my-ldap-server');
|
||||
|
||||
define('LDAP_PORT', 389);
|
||||
|
||||
|
||||
|
||||
define('LDAP_BIND_TYPE', 'proxy');
|
||||
|
||||
define('LDAP_USERNAME', 'administrator@kanboard.local');
|
||||
|
||||
define('LDAP_PASSWORD', 'secret');
|
||||
|
||||
|
||||
|
||||
define('LDAP_USER_BASE_DN', 'CN=Users,DC=kanboard,DC=local');
|
||||
|
||||
define('LDAP_USER_FILTER', '(&(objectClass=user)(sAMAccountName=%s))');
|
||||
|
||||
|
||||
|
||||
define('LDAP_USER_ATTRIBUTE_USERNAME', 'samaccountname');
|
||||
|
||||
define('LDAP_USER_ATTRIBUTE_FULLNAME', 'displayname');
|
||||
|
||||
define('LDAP_USER_ATTRIBUTE_PHOTO', 'jpegPhoto');
|
||||
|
||||
define('LDAP_USER_ATTRIBUTE_LANGUAGE', 'preferredLanguage');
|
||||
|
||||
|
||||
|
||||
define('LDAP_GROUP_ADMIN_DN', 'CN=Kanboard Admins,CN=Users,DC=kanboard,DC=local');
|
||||
|
||||
define('LDAP_GROUP_MANAGER_DN', 'CN=Kanboard Managers,CN=Users,DC=kanboard,DC=local');
|
||||
|
||||
|
||||
|
||||
define('LDAP_GROUP_PROVIDER', true);
|
||||
|
||||
define('LDAP_GROUP_BASE_DN', 'CN=Users,DC=kanboard,DC=local');
|
||||
|
||||
define('LDAP_GROUP_FILTER', '(&(objectClass=group)(sAMAccountName=%s*))');
|
||||
|
||||
define('LDAP_GROUP_ATTRIBUTE_NAME', 'cn');
|
||||
|
||||
|
||||
|
||||
OpenLDAP с memberOf overlay[¶](#openldap-with-memberof-overlay "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
Пример LDIF пользователя:
|
||||
|
||||
|
||||
dn: uid=manager,ou=Users,dc=kanboard,dc=local
|
||||
|
||||
objectClass: top
|
||||
|
||||
objectClass: person
|
||||
|
||||
objectClass: organizationalPerson
|
||||
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
uid: manager
|
||||
|
||||
sn: Lastname
|
||||
|
||||
givenName: Firstname
|
||||
|
||||
cn: Kanboard Manager
|
||||
|
||||
displayName: Kanboard Manager
|
||||
|
||||
mail: manager@kanboard.local
|
||||
|
||||
userPassword: password
|
||||
|
||||
memberOf: cn=Kanboard Managers,ou=Groups,dc=kanboard,dc=local
|
||||
|
||||
|
||||
|
||||
Пример LDIF группы:
|
||||
|
||||
|
||||
|
||||
dn: cn=Kanboard Managers,ou=Groups,dc=kanboard,dc=local
|
||||
|
||||
objectClass: top
|
||||
|
||||
objectClass: groupOfNames
|
||||
|
||||
cn: Kanboard Managers
|
||||
|
||||
member: uid=manager,ou=Users,dc=kanboard,dc=local
|
||||
|
||||
|
||||
|
||||
Конфигурация Канборд:
|
||||
|
||||
|
||||
- Аутентификация пользователя
|
||||
|
||||
|
||||
|
||||
- Роли в Канборд сопоставляются с группами LDAP
|
||||
|
||||
|
||||
|
||||
- Поставщики групп LDAP включены
|
||||
|
||||
|
||||
|
||||
<!-- -->
|
||||
|
||||
|
||||
|
||||
define('LDAP_AUTH', true);
|
||||
|
||||
|
||||
|
||||
define('LDAP_SERVER', 'my-ldap-server');
|
||||
|
||||
define('LDAP_PORT', 389);
|
||||
|
||||
|
||||
|
||||
define('LDAP_BIND_TYPE', 'proxy');
|
||||
|
||||
define('LDAP_USERNAME', 'cn=admin,DC=kanboard,DC=local');
|
||||
|
||||
define('LDAP_PASSWORD', 'password');
|
||||
|
||||
|
||||
|
||||
define('LDAP_USER_BASE_DN', 'OU=Users,DC=kanboard,DC=local');
|
||||
|
||||
define('LDAP_USER_FILTER', 'uid=%s');
|
||||
|
||||
|
||||
|
||||
define('LDAP_GROUP_ADMIN_DN', 'cn=Kanboard Admins,ou=Groups,dc=kanboard,dc=local');
|
||||
|
||||
define('LDAP_GROUP_MANAGER_DN', 'cn=Kanboard Managers,ou=Groups,dc=kanboard,dc=local');
|
||||
|
||||
|
||||
|
||||
define('LDAP_GROUP_PROVIDER', true);
|
||||
|
||||
define('LDAP_GROUP_BASE_DN', 'ou=Groups,dc=kanboard,dc=local');
|
||||
|
||||
define('LDAP_GROUP_FILTER', '(&(objectClass=groupOfNames)(cn=%s*))');
|
||||
|
||||
define('LDAP_GROUP_ATTRIBUTE_NAME', 'cn');
|
||||
|
||||
|
||||
|
||||
OpenLDAP с Posix groups (memberUid)[¶](#openldap-with-posix-groups-memberuid "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
Пример LDIF пользователя:
|
||||
|
||||
|
||||
|
||||
dn: uid=manager,ou=Users,dc=kanboard,dc=local
|
||||
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
objectClass: posixAccount
|
||||
|
||||
objectClass: shadowAccount
|
||||
|
||||
uid: manager
|
||||
|
||||
sn: Lastname
|
||||
|
||||
givenName: Firstname
|
||||
|
||||
cn: Kanboard Manager
|
||||
|
||||
displayName: Kanboard Manager
|
||||
|
||||
uidNumber: 10001
|
||||
|
||||
gidNumber: 8000
|
||||
|
||||
userPassword: password
|
||||
|
||||
homeDirectory: /home/manager
|
||||
|
||||
mail: manager@kanboard.local
|
||||
|
||||
|
||||
|
||||
Пример LDIF группы:
|
||||
|
||||
|
||||
|
||||
dn: cn=Kanboard Managers,ou=Groups,dc=kanboard,dc=local
|
||||
|
||||
objectClass: posixGroup
|
||||
|
||||
cn: Kanboard Managers
|
||||
|
||||
gidNumber: 5001
|
||||
|
||||
memberUid: manager
|
||||
|
||||
|
||||
|
||||
Конфигурация Канборд:
|
||||
|
||||
|
||||
|
||||
- Аутентификация пользователя
|
||||
|
||||
|
||||
|
||||
- Роли в Канборд сопоставляются с группами LDAP
|
||||
|
||||
|
||||
|
||||
- Поставщики групп LDAP включены
|
||||
|
||||
|
||||
|
||||
<!-- -->
|
||||
|
||||
|
||||
|
||||
define('LDAP_AUTH', true);
|
||||
|
||||
|
||||
|
||||
define('LDAP_SERVER', 'my-ldap-server');
|
||||
|
||||
define('LDAP_PORT', 389);
|
||||
|
||||
|
||||
|
||||
define('LDAP_BIND_TYPE', 'proxy');
|
||||
|
||||
define('LDAP_USERNAME', 'cn=admin,DC=kanboard,DC=local');
|
||||
|
||||
define('LDAP_PASSWORD', 'password');
|
||||
|
||||
|
||||
|
||||
define('LDAP_USER_BASE_DN', 'OU=Users,DC=kanboard,DC=local');
|
||||
|
||||
define('LDAP_USER_FILTER', 'uid=%s');
|
||||
|
||||
|
||||
|
||||
define('LDAP_GROUP_ADMIN_DN', 'cn=Kanboard Admins,ou=Groups,dc=kanboard,dc=local');
|
||||
|
||||
define('LDAP_GROUP_MANAGER_DN', 'cn=Kanboard Managers,ou=Groups,dc=kanboard,dc=local');
|
||||
|
||||
|
||||
|
||||
// This filter is used to find the groups of our user
|
||||
|
||||
define('LDAP_GROUP_USER_FILTER', '(&(objectClass=posixGroup)(memberUid=%s))');
|
||||
|
||||
|
||||
|
||||
define('LDAP_GROUP_PROVIDER', true);
|
||||
|
||||
define('LDAP_GROUP_BASE_DN', 'ou=Groups,dc=kanboard,dc=local');
|
||||
|
||||
define('LDAP_GROUP_FILTER', '(&(objectClass=posixGroup)(cn=%s*))');
|
||||
|
||||
define('LDAP_GROUP_ATTRIBUTE_NAME', 'cn');
|
||||
|
||||
|
||||
|
||||
OpenLDAP с groupOfNames[¶](#openldap-with-groupofnames "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
Пример LDIF пользователя:
|
||||
|
||||
|
||||
|
||||
dn: uid=manager,ou=Users,dc=kanboard,dc=local
|
||||
|
||||
objectClass: top
|
||||
|
||||
objectClass: person
|
||||
|
||||
objectClass: organizationalPerson
|
||||
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
uid: manager
|
||||
|
||||
sn: Lastname
|
||||
|
||||
givenName: Firstname
|
||||
|
||||
cn: Kanboard Manager
|
||||
|
||||
displayName: Kanboard Manager
|
||||
|
||||
mail: manager@kanboard.local
|
||||
|
||||
userPassword: password
|
||||
|
||||
|
||||
|
||||
Пример LDIF группы:
|
||||
|
||||
|
||||
|
||||
dn: cn=Kanboard Managers,ou=Groups,dc=kanboard,dc=local
|
||||
|
||||
objectClass: top
|
||||
|
||||
objectClass: groupOfNames
|
||||
|
||||
cn: Kanboard Managers
|
||||
|
||||
member: uid=manager,ou=Users,dc=kanboard,dc=local
|
||||
|
||||
|
||||
|
||||
Конфигурация Канборд:
|
||||
|
||||
|
||||
|
||||
- Аутентификация пользователя
|
||||
|
||||
|
||||
|
||||
- Роли в Канборд сопоставляются с группами LDAP
|
||||
|
||||
|
||||
|
||||
- Поставщики групп LDAP включены
|
||||
|
||||
|
||||
|
||||
<!-- -->
|
||||
|
||||
|
||||
|
||||
define('LDAP_AUTH', true);
|
||||
|
||||
|
||||
|
||||
define('LDAP_SERVER', 'my-ldap-server');
|
||||
|
||||
define('LDAP_PORT', 389);
|
||||
|
||||
|
||||
|
||||
define('LDAP_BIND_TYPE', 'proxy');
|
||||
|
||||
define('LDAP_USERNAME', 'cn=admin,DC=kanboard,DC=local');
|
||||
|
||||
define('LDAP_PASSWORD', 'password');
|
||||
|
||||
|
||||
|
||||
define('LDAP_USER_BASE_DN', 'OU=Users,DC=kanboard,DC=local');
|
||||
|
||||
define('LDAP_USER_FILTER', 'uid=%s');
|
||||
|
||||
|
||||
|
||||
define('LDAP_GROUP_ADMIN_DN', 'cn=Kanboard Admins,ou=Groups,dc=kanboard,dc=local');
|
||||
|
||||
define('LDAP_GROUP_MANAGER_DN', 'cn=Kanboard Managers,ou=Groups,dc=kanboard,dc=local');
|
||||
|
||||
|
||||
|
||||
// This filter is used to find the groups of our user
|
||||
|
||||
define('LDAP_GROUP_USER_FILTER', '(&(objectClass=groupOfNames)(member=uid=%s,ou=Users,dc=kanboard,dc=local))');
|
||||
|
||||
|
||||
|
||||
define('LDAP_GROUP_PROVIDER', true);
|
||||
|
||||
define('LDAP_GROUP_BASE_DN', 'ou=Groups,dc=kanboard,dc=local');
|
||||
|
||||
define('LDAP_GROUP_FILTER', '(&(objectClass=groupOfNames)(cn=%s*))');
|
||||
|
||||
define('LDAP_GROUP_ATTRIBUTE_NAME', 'cn');
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,153 @@
|
|||
Синхронизация групп LDAP
|
||||
========================
|
||||
|
||||
|
||||
|
||||
Требования[¶](#requirements "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Правильно настроенную аутентификацию LDAP
|
||||
|
||||
|
||||
|
||||
- Используется сервер LDAP, который поддерживает `memberOf` или `memberUid` (PosixGroups)
|
||||
|
||||
|
||||
|
||||
Автоматическое определение ролей пользователей на основании LDAP групп[¶](#define-automatically-user-roles-based-on-ldap-groups "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Используйте следующие константы в вашем конфигурационном файле:
|
||||
|
||||
|
||||
|
||||
- `LDAP_GROUP_ADMIN_DN`: Уникальные имена (Distinguished Names) для администраторов приложения
|
||||
|
||||
|
||||
|
||||
- `LDAP_GROUP_MANAGER_DN`: Уникальные имена (Distinguished Names) для менеджеров приложения
|
||||
|
||||
|
||||
|
||||
### Пример для Active Directory:[¶](#example-for-active-directory "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
define('LDAP_GROUP_ADMIN_DN', 'CN=Kanboard Admins,CN=Users,DC=kanboard,DC=local');
|
||||
|
||||
define('LDAP_GROUP_MANAGER_DN', 'CN=Kanboard Managers,CN=Users,DC=kanboard,DC=local');
|
||||
|
||||
|
||||
|
||||
- Участники группы “Kanboard Admins” будут иметь роль “Администратор”
|
||||
|
||||
|
||||
|
||||
- Участники группы “Kanboard Managers” будут иметь роль “Менеджер”
|
||||
|
||||
|
||||
|
||||
- Все, кто не попадает под предыдущие определения, будут иметь роль “Пользователь”
|
||||
|
||||
|
||||
|
||||
### Пример OpenLDAP с Posix Groups:[¶](#example-for-openldap-with-posix-groups "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
define('LDAP_GROUP_BASE_DN', 'ou=Groups,dc=kanboard,dc=local');
|
||||
|
||||
define('LDAP_GROUP_USER_FILTER', '(&(objectClass=posixGroup)(memberUid=%s))');
|
||||
|
||||
define('LDAP_GROUP_ADMIN_DN', 'cn=Kanboard Admins,ou=Groups,dc=kanboard,dc=local');
|
||||
|
||||
define('LDAP_GROUP_MANAGER_DN', 'cn=Kanboard Managers,ou=Groups,dc=kanboard,dc=local');
|
||||
|
||||
|
||||
|
||||
Вы **должны определить параметр** `LDAP_GROUP_USER_FILTER`, если ваше сервер LDAP использует `memberUid` вместо `memberOf`. Все параметры в этом примере обязательные.
|
||||
|
||||
|
||||
|
||||
Автоматическая загрузка групп LDAP для Канборд проекта[¶](#automatically-load-ldap-groups-for-project-permissions "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Эта возможность позволяет вам синхронизировать автоматически группы LDAP с группами Канборд. Каждая группа может иметь разные роли в проектах.
|
||||
|
||||
|
||||
|
||||
В проекте на странице *Разрешения*, можно ввести имя группы (имеется автодополнение) и Канборд будет искать группу во всех подключенных поставщиках.
|
||||
|
||||
|
||||
|
||||
Если группа не найдена в локальной базе данных, то она будет автоматически синхронизированна.
|
||||
|
||||
|
||||
|
||||
- `LDAP_GROUP_PROVIDER`: Включение поставщика группы LDAP
|
||||
|
||||
|
||||
|
||||
- `LDAP_GROUP_BASE_DN`: Уникальное имя (Distinguished Names) для поиска группы в LDAP директории
|
||||
|
||||
|
||||
|
||||
- `LDAP_GROUP_FILTER`: фильтр LDAP используемый для выполнения запроса
|
||||
|
||||
|
||||
|
||||
- `LDAP_GROUP_ATTRIBUTE_NAME`: атрибут LDAP используемый для получения имени группы
|
||||
|
||||
|
||||
|
||||
### Пример для Active Directory:[¶](#id1 "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
define('LDAP_GROUP_PROVIDER', true);
|
||||
|
||||
define('LDAP_GROUP_BASE_DN', 'CN=Groups,DC=kanboard,DC=local');
|
||||
|
||||
define('LDAP_GROUP_FILTER', '(&(objectClass=group)(sAMAccountName=%s*))');
|
||||
|
||||
|
||||
|
||||
С помощью фильтра, в примере выше, Канборд будет искать группы соответсвующие запросу. Если пользователь введет текст “Мои группы” в автозаполняемое поле, Канборд вернет все группы которые соответсвуют шаблону: `(&(objectClass=group)(sAMAccountName=Мои группы*))`.
|
||||
|
||||
|
||||
|
||||
- Примечание 1: Спец символ `*` очень важен, в противном случает **будет выбрано только точное совпадение**
|
||||
|
||||
|
||||
|
||||
- Примечание 2: Эта функция возможна только с аутентификацией LDAP настроенной на метод “proxy” или “anonymous”
|
||||
|
||||
|
||||
|
||||
[Больше примеров фильтров LDAP для Active Directory](http://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx)
|
||||
|
||||
|
||||
|
||||
### Пример OpenLDAP с Posix Groups:[¶](#id2 "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
define('LDAP_GROUP_PROVIDER', true);
|
||||
|
||||
define('LDAP_GROUP_BASE_DN', 'ou=Groups,dc=kanboard,dc=local');
|
||||
|
||||
define('LDAP_GROUP_FILTER', '(&(objectClass=posixGroup)(cn=%s*))');
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
Параметры LDAP для конфигурации
|
||||
===============================
|
||||
|
||||
|
||||
|
||||
Список доступных параметров LDAP:
|
||||
|
||||
|
||||
| Параметр | Значение по умолчанию |Описание |
|
||||
|---------------------------|------------------------------|-----------------------------|
|
||||
| `LDAP_AUTH` | false | Включить аутентификацию LDAP |
|
||||
| `LDAP_SERVER` | Нет значения | Имя сервера LDAP |
|
||||
| `LDAP_PORT` | 389 | Порт сервера LDAP |
|
||||
| `LDAP_SSL_VERIFY` | true | Проверка сертификата для URL `ldaps://` |
|
||||
| `LDAP_START_TLS` | false | Включение LDAP start TLS |
|
||||
| `LDAP_USERNAME_CASE_SENSITIVE` | false | Включение/выключение нижнего и верхнего регистра букв в Канборд для пользователей ldap для исключения дублирования пользователей (база данных чувствительна к регистру) |
|
||||
| `LDAP_BIND_TYPE` | anonymous | Тип подключения: “anonymous”, “user” or “proxy” |
|
||||
| `LDAP_USERNAME` | null | Имя пользователя LDAP для использования в методе proxy или шаблон имени пользователя для использования в методе user |
|
||||
| `LDAP_PASSWORD` | null | Пароль LDAP при использовании метода proxy |
|
||||
| `LDAP_USER_BASE_DN`| Нет значения | Уникальное имя (DN) LDAP для пользователей (Пример: “CN=Users,DC=kanboard,DC=local”) |
|
||||
| `LDAP_USER_FILTER` | Нет значения | Шаблон LDAP, который используется для поиска пользователей (Пример: “(&(objectClass=user)(sAMAccountName=%s))”) |
|
||||
| `LDAP_USER_ATTRIBUTE_USERNAME` | uid | Атрибут LDAP для имени пользователя (Например: “samaccountname”) |
|
||||
| `LDAP_USER_ATTRIBUTE_FULLNAME` | cn | Атрибут LDAP полного имени пользователя (Например: “displayname”) |
|
||||
| `LDAP_USER_ATTRIBUTE_EMAIL` | mail | Атрибут LDAP для email пользователя |
|
||||
| `LDAP_USER_ATTRIBUTE_GROUPS` | memberof | Атрибут LDAP для поиска групп в профиле пользователя |
|
||||
| `LDAP_USER_ATTRIBUTE_PHOTO` | Нет значения | Атрибут LDAP для поиска фотографии пользователя (jpegPhoto или thumbnailPhoto) |
|
||||
| `LDAP_USER_ATTRIBUTE_LANGUAGE` | Нет значения | Атрибут LDAP для языка пользователя (preferredlanguage), применимый формат языка - “ru-RU” |
|
||||
| `LDAP_USER_CREATION` | true | Включение автоматического создания пользователя из LDAP |
|
||||
| `LDAP_GROUP_ADMIN_DN` | Нет значения | Уникальное имя (DN) LDAP для администраторов (Например: “CN=Kanboard-Admins,CN=Users,DC=kanboard,DC=local”) |
|
||||
| `LDAP_GROUP_MANAGER_DN` | Нет значения | Уникальное имя (DN) LDAP для менеджеров (Например: “CN=Kanboard Managers,CN=Users,DC=kanboard,DC=local”) |
|
||||
| `LDAP_GROUP_PROVIDER` | false | Включение поставщика групп LDAP для “Разрешения” в проектах |
|
||||
| `LDAP_GROUP_BASE_DN` | Нет значения | Уникальное имя (Base DN) LDAP для групп |
|
||||
| `LDAP_GROUP_FILTER` | Нет значения | Фильтр групп LDAP (Например: “(&(objectClass=group)(sAMAccountName=%s\*))”) |
|
||||
| `LDAP_GROUP_USER_FILTER` | Empty | Если определено, то Канборд будет искать группы пользователей в LDAP\_GROUP\_BASE\_DN с помощью этого фильтра, это удобно только для posixGroups (Например: `(&(objectClass=posixGroup)(memberUid=%s))`|
|
||||
| `LDAP_GROUP_ATTRIBUTE_NAME` | cn | атрибут LDAP для имени группы |
|
||||
|
||||
|
||||
Примечание
|
||||
|
||||
|
||||
|
||||
- Атрибуты LDAP должны быть в нижнем регистре
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
Фотография пользователя из профиля LDAP
|
||||
=======================================
|
||||
|
||||
|
||||
|
||||
Канборд может автоматически загружать фотографию пользователя из сервера LDAP.
|
||||
|
||||
|
||||
|
||||
Эта функция возможна только если активирована аутентификация LDAP и указан параметр `LDAP_USER_ATTRIBUTE_PHOTO`.
|
||||
|
||||
|
||||
|
||||
Настройка[¶](#configuration "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
В вашем `config.php`, вы должны установить атрибут LDAP, используемый для хранения изображения.
|
||||
|
||||
|
||||
|
||||
define('LDAP_USER_ATTRIBUTE_PHOTO', 'jpegPhoto');
|
||||
|
||||
|
||||
|
||||
Обычно используются атрибуты `jpegPhoto` или `thumbnailPhoto`. Изображения могут хранится в формате JPEG или PNG.
|
||||
|
||||
|
||||
|
||||
Для загрузки изображения в пользовательски профиль, администраторы Active Directory могут использовать программу [AD Photo Edit](http://www.cjwdev.co.uk/Software/ADPhotoEdit/Info.html).
|
||||
|
||||
|
||||
|
||||
Примечание[¶](#notes "Ссылка на этот заголовок")
|
||||
------------------------------------------------
|
||||
|
||||
Изображение из профиля **загружается при входе, только если изображение не было загружено ранее**.
|
||||
|
||||
Для смены изображения, нужно вручную удалить ранее загруженное изображение из профиля пользователя.
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
Настройки ссылки
|
||||
================
|
||||
|
||||
|
||||
Связи в задачах могут быть изменены в настройках приложения (**Настройки** -\> **Настройки ссылки**)
|
||||
|
||||

|
||||
|
||||
Рисунок. Метки для ссылок.
|
||||
|
||||
|
||||
Каждая метка может иметь противоположное опеределение. Если нет противоположного значения, метка считается двунаправленная.
|
||||
|
||||

|
||||
|
||||
Рисунок. Создание ссылки.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,128 @@
|
|||
Настройка Mysql/MariaDB
|
||||
=======================
|
||||
|
||||
|
||||
|
||||
По умолчанию Канборд использует для хранения данных Sqlite. Вместо Sqlite возможно использовать Mysql или MariaDB.
|
||||
|
||||
|
||||
|
||||
Требования[¶](#requirements "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Сервер Mysql
|
||||
|
||||
|
||||
|
||||
- Установленное расширение PHP - `pdo_mysql`
|
||||
|
||||
|
||||
|
||||
Примечание: работа Канборда протестирована с **Mysql \>= 5.5 и MariaDB \>= 10.0**
|
||||
|
||||
|
||||
|
||||
Настройка Mysql[¶](#mysql-configuration "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
### Создание базы данных[¶](#create-a-database "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Первым шагом надо создать базу данных на вашем сервере Mysql. Например, вы можете создать базу в командной строке клиента mysql:
|
||||
|
||||
|
||||
|
||||
CREATE DATABASE kanboard;
|
||||
|
||||
|
||||
|
||||
### Создание файла конфигурации[¶](#create-a-config-file "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Файл `config.php` должен содержать следующие значения:
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
// We choose to use Mysql instead of Sqlite
|
||||
|
||||
define('DB_DRIVER', 'mysql');
|
||||
|
||||
|
||||
|
||||
// Mysql parameters
|
||||
|
||||
define('DB_USERNAME', 'REPLACE_ME');
|
||||
|
||||
define('DB_PASSWORD', 'REPLACE_ME');
|
||||
|
||||
define('DB_HOSTNAME', 'REPLACE_ME');
|
||||
|
||||
define('DB_NAME', 'kanboard');
|
||||
|
||||
|
||||
|
||||
Примечание: Вы можете переименовать демонстрационный файл `config.default.php` в `config.php`.
|
||||
|
||||
|
||||
|
||||
### Импорт SQL дампа (альтернативный метод)[¶](#importing-sql-dump-alternative-method "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
В первый раз, Канборд запускает по очереди каждую миграцию базы данных и этот процес может занять некоторое время, в зависимости от вашей конфигурации.
|
||||
|
||||
|
||||
|
||||
Чтобы избежать задержек, вы можете инициализировать базу данных напрямую, имопртируя SQL схему:
|
||||
|
||||
|
||||
|
||||
mysql -u root -p my_database < app/Schema/Sql/mysql.sql
|
||||
|
||||
|
||||
|
||||
Файл [\`\`](#id1)app/Schema/Sql/mysql.sql\`\`это SQL дамп, который представляет последнюю версию базы данных.
|
||||
|
||||
|
||||
|
||||
Конфигурация SSL[¶](#ssl-configuration "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Эти параметры должны быть указаны для включения соединения Mysql SSL:
|
||||
|
||||
|
||||
|
||||
// Mysql SSL key
|
||||
|
||||
define('DB_SSL_KEY', '/path/to/client-key.pem');
|
||||
|
||||
|
||||
|
||||
// Mysql SSL certificate
|
||||
|
||||
define('DB_SSL_CERT', '/path/to/client-cert.pem');
|
||||
|
||||
|
||||
|
||||
// Mysql SSL CA
|
||||
|
||||
define('DB_SSL_CA', '/path/to/ca-cert.pem');
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,233 @@
|
|||
Переопределение URL
|
||||
===================
|
||||
|
||||
|
||||
|
||||
Канборд может работать и с переопределенными URL и с простыми.
|
||||
|
||||
|
||||
|
||||
- Пример переопределенного URL: `/board/123`
|
||||
|
||||
|
||||
|
||||
- По другому: `?controller=board&action=show&project_id=123`
|
||||
|
||||
|
||||
|
||||
Если вы используете Канборд с Apache и включенным mode rewrite, красивые URL будут использоваться автоматически. В случае, если вы получаете ошибку “404 Not Found”, то возможно надо внести изменения в DocumentRoot:
|
||||
|
||||
|
||||
|
||||
<Directory /var/www/kanboard/>
|
||||
|
||||
AllowOverride FileInfo Options=All,MultiViews AuthConfig
|
||||
|
||||
</Directory>
|
||||
|
||||
|
||||
|
||||
URL ярлыки[¶](#url-shortcuts "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Перейти к задаче \#123: **/t/123**
|
||||
|
||||
|
||||
|
||||
- Перейти на доску в проект \#2: **/b/2**
|
||||
|
||||
|
||||
|
||||
- Перейти в календарь проекта \#5: **/c/5**
|
||||
|
||||
|
||||
|
||||
- Перейти к просмотру списком проекта \#8: **/l/8**
|
||||
|
||||
|
||||
|
||||
- Перейти к настройкам проекта для проекта id \#42: **/p/42**
|
||||
|
||||
|
||||
|
||||
Настройка[¶](#configuration "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
По умолчанию, Канборд проверяет включен ли в Apache mode rewrite.
|
||||
|
||||
|
||||
|
||||
Для исключения автоматической проверки переопределения URL на веб сервере, вы должны включить эту опцию в вашем конфигурационном фале:
|
||||
|
||||
|
||||
|
||||
define('ENABLE_URL_REWRITE', true);
|
||||
|
||||
|
||||
|
||||
Когда константа имеет значение `true`:
|
||||
|
||||
|
||||
|
||||
- Сгенерированные из утилиты командной строки URL будут также преобразованы
|
||||
|
||||
|
||||
|
||||
- Если вы используете другой веб сервер вместо Apache, например Nginx или Microsoft IIS, вы можете сами настроить переопределение URL
|
||||
|
||||
|
||||
|
||||
Примечание: Канборд всегда использует URL по “старинке”, если данная константа не настроена. Эта настройка опциональна.
|
||||
|
||||
|
||||
|
||||
Пример настройки Nginx[¶](#nginx-configuration-example "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
В разделе `server`, вашего конфигурационного файла Nginx, вы можете использовать этот пример:
|
||||
|
||||
|
||||
|
||||
index index.php;
|
||||
|
||||
|
||||
|
||||
location / {
|
||||
|
||||
try_files $uri $uri/ /index.php$is_args$args;
|
||||
|
||||
|
||||
|
||||
# If Kanboard is under a subfolder
|
||||
|
||||
# try_files $uri $uri/ /kanboard/index.php;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
location ~ \.php$ {
|
||||
|
||||
try_files $uri =404;
|
||||
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
|
||||
fastcgi_pass unix:/var/run/php5-fpm.sock;
|
||||
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
|
||||
fastcgi_index index.php;
|
||||
|
||||
include fastcgi_params;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Deny access to the directory data
|
||||
|
||||
location ~* /data {
|
||||
|
||||
deny all;
|
||||
|
||||
return 404;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Deny access to .htaccess
|
||||
|
||||
location ~ /\.ht {
|
||||
|
||||
deny all;
|
||||
|
||||
return 404;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
В конфигурационном файле Канборда `config.php`:
|
||||
|
||||
|
||||
|
||||
define('ENABLE_URL_REWRITE', true);
|
||||
|
||||
|
||||
|
||||
Адаптируйте пример приведенный выше к вашей конфигурации.
|
||||
|
||||
|
||||
|
||||
Пример настройки IIS[¶](#iis-configuration-example "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Создайте web.config в каталоге где установлен Канборд:
|
||||
|
||||
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<configuration>
|
||||
|
||||
<system.webServer>
|
||||
|
||||
<rewrite>
|
||||
|
||||
<rules>
|
||||
|
||||
<rule name="Imported Rule 1" stopProcessing="true">
|
||||
|
||||
<match url="^" ignoreCase="false" />
|
||||
|
||||
<conditions logicalGrouping="MatchAll">
|
||||
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
|
||||
|
||||
</conditions>
|
||||
|
||||
<action type="Rewrite" url="index.php" appendQueryString="true" />
|
||||
|
||||
</rule>
|
||||
|
||||
</rules>
|
||||
|
||||
</rewrite>
|
||||
|
||||
</system.webServer>
|
||||
|
||||
</configuration>
|
||||
|
||||
|
||||
|
||||
В конфигурационном файле Канборда `config.php`:
|
||||
|
||||
|
||||
|
||||
define('ENABLE_URL_REWRITE', true);
|
||||
|
||||
|
||||
|
||||
Адаптируйте пример приведенный выше к вашей конфигурации.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
Nitrous быстрый старт
|
||||
=====================
|
||||
|
||||
|
||||
Создайте свободное окружение разработки для проекта Kanboard в облаке на [Nitrous.io](https://www.nitrous.io).
|
||||
|
||||
Зайдите на ваш сайт через ссылку в IDE `Preview > 3000`{.docutils .literal}.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,111 @@
|
|||
Уведомления
|
||||
===========
|
||||
|
||||
|
||||
|
||||
Канборд имеет возможность отправлять сообщения по нескольким каналам:
|
||||
|
||||
|
||||
|
||||
- Email
|
||||
|
||||
- Веб (уведомления в Канборд)
|
||||
|
||||
|
||||
|
||||
Внешние плагины позволяют вам посылать уведомления в Slack, Hipchat, Jabber или другие чат системы.
|
||||
|
||||
|
||||
|
||||
Настройка[¶](#configuration "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Любой пользователь может включить уведоления в своем профиле: в правом верхнем углу выберите во всплывающем меню **Мой профиль** -\> **Уведомления**. Уведомления по умолчанию выключены.
|
||||
|
||||
|
||||
|
||||
Для получения уведомлений по email вам надо иметь электронную почту (email), которая должна быть указана в вашем профиле, и Канборд должен быть настроен на отправку электронной почты.
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Уведомления
|
||||
|
||||
|
||||
|
||||
Вы можете выбрать, удобный для вас, способ получения уведомлений:
|
||||
|
||||
|
||||
|
||||
- Email
|
||||
|
||||
|
||||
|
||||
- Веб (смотрите ниже)
|
||||
|
||||
|
||||
|
||||
Для каждого проекта в котором вы являетесь участником, вы можете выбрать получение уведомления для:
|
||||
|
||||
|
||||
|
||||
- Всех задач
|
||||
|
||||
|
||||
|
||||
- Только для задач назначеных вам
|
||||
|
||||
|
||||
|
||||
- Только для задач, которые создали вы
|
||||
|
||||
|
||||
|
||||
- Только для задач, созданных вами и назначенных вам
|
||||
|
||||
|
||||
|
||||
Также, вы можете выбрать проекты из которых хотите получать уведомления. По умолчанию - все проекты, в которых вы являетесь участником.
|
||||
|
||||
|
||||
|
||||
Веб уведомления[¶](#web-notifications "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Веб уведомления доступны на рабочей панели **Мои уведомления** или вверху в виде иконки:
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Иконка веб уведомления.
|
||||
|
||||
|
||||
|
||||
Уведомления отображаются списком. Вы можете выбрать действие **Пометить как прочитанное** для каждого сообщения или отметить сразу все.
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Веб уведомления.
|
||||
|
||||
|
||||
|
||||
Таким образом, вы можете получать веб уведомления без использования электронной почты.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
Настройка директории плагинов
|
||||
=============================
|
||||
|
||||
|
||||
|
||||
Для установки, обновления и удаления плагинов в интерфейсе пользователя, вам необходимо выполнить следующие пункты:
|
||||
|
||||
|
||||
|
||||
- Директория плагинов должна быть доступна на запись от пользователя веб сервера
|
||||
|
||||
|
||||
|
||||
- Расширение zip должно быть доступно на вашем сервере
|
||||
|
||||
|
||||
|
||||
- Параметр в конфигурации `PLUGIN_INSTALLER` должен быть установлен в `true`
|
||||
|
||||
|
||||
|
||||
Для отключения этой возможности, измените значение в конфигурационном файле `PLUGIN_INSTALLER` на `false`. Также, вы должны изменить права доступа на директорию плагинов.
|
||||
|
||||
|
||||
|
||||
Только администраторы могут устанавливать плагины через пользовательский интерфейс.
|
||||
|
||||
|
||||
|
||||
По умолчанию, доступны только плагины из списка на веб сайте Канборда.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,167 @@
|
|||
Разработка плагина
|
||||
==================
|
||||
|
||||
|
||||
|
||||
**Внимание: API плагинов на данный момент в состоянии альфа.**
|
||||
|
||||
|
||||
|
||||
Плагины удобны для расширения базового функционала Канборда: добавление возможностей, создание тем или изменения базового поведения.
|
||||
|
||||
|
||||
|
||||
Создатели плагина должны указать точную версию Канборда, под которую написан плагин. Внутренний код Канборда может изменяться и ваш плагин должен тестироваться на совместимость с новой версией. Всегда следите за [ChangeLog](https://github.com/fguillot/kanboard/blob/master/ChangeLog) для внесения изменений.
|
||||
|
||||
|
||||
|
||||
- [Создание вашего плагина](plugin-registration.markdown)
|
||||
|
||||
|
||||
|
||||
- [Использование plugin hooks](plugin-hooks.markdown)
|
||||
|
||||
|
||||
|
||||
- [События](plugin-events.markdown)
|
||||
|
||||
|
||||
|
||||
- [Изменение базового поведения приложений](plugin-overrides.markdown)
|
||||
|
||||
|
||||
|
||||
- [Добавление миграции схемы для плагинов](plugin-schema-migrations.markdown)
|
||||
|
||||
|
||||
|
||||
- [Пользовательские маршруты](plugin-routes.markdown)
|
||||
|
||||
|
||||
|
||||
- [Добавление обработчиков](plugin-helpers.markdown)
|
||||
|
||||
|
||||
|
||||
- [Добавление почтовых трансляторов](plugin-mail-transports.markdown)
|
||||
|
||||
|
||||
|
||||
- [Добавление типов оповещений](plugin-notifications.markdown)
|
||||
|
||||
|
||||
|
||||
- [Добавление автоматических действий](plugin-automatic-actions.markdown)
|
||||
|
||||
|
||||
|
||||
- [Расширение данных пользователей, задач и проектов](plugin-metadata.markdown)
|
||||
|
||||
|
||||
|
||||
- [Архитектура аутентификации](plugin-authentication-architecture.markdown)
|
||||
|
||||
|
||||
|
||||
- [Регистрация плагина аутентификации](plugin-authentication.markdown)
|
||||
|
||||
|
||||
|
||||
- [Архитектура авторизации](plugin-authorization-architecture.markdown)
|
||||
|
||||
|
||||
|
||||
- [Провайдер пользовательской группы](plugin-group-provider.markdown)
|
||||
|
||||
|
||||
|
||||
- [Провайдер внешней ссылки](plugin-external-link.markdown)
|
||||
|
||||
|
||||
|
||||
- [Добавление провайдера аватара](plugin-avatar-provider.markdown)
|
||||
|
||||
|
||||
|
||||
- [Клиент LDAP](plugin-ldap-client.markdown)
|
||||
|
||||
|
||||
|
||||
Примеры плагинов[¶](#examples-of-plugins "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- [Двухуровневая аутентификация SMS](https://github.com/kanboard/plugin-sms-2fa)
|
||||
|
||||
|
||||
|
||||
- [Аутентификация Reverse-Proxy с поддержкой LDAP](https://github.com/kanboard/plugin-reverse-proxy-ldap)
|
||||
|
||||
|
||||
|
||||
- [Slack](https://github.com/kanboard/plugin-slack)
|
||||
|
||||
|
||||
|
||||
- [Hipchat](https://github.com/kanboard/plugin-hipchat)
|
||||
|
||||
|
||||
|
||||
- [Jabber](https://github.com/kanboard/plugin-jabber)
|
||||
|
||||
|
||||
|
||||
- [Sendgrid](https://github.com/kanboard/plugin-sendgrid)
|
||||
|
||||
|
||||
|
||||
- [Mailgun](https://github.com/kanboard/plugin-mailgun)
|
||||
|
||||
|
||||
|
||||
- [Postmark](https://github.com/kanboard/plugin-postmark)
|
||||
|
||||
|
||||
|
||||
- [Amazon S3](https://github.com/kanboard/plugin-s3)
|
||||
|
||||
|
||||
|
||||
- [Планирование бюджета](https://github.com/kanboard/plugin-budget)
|
||||
|
||||
|
||||
|
||||
- [Расписание пользователя](https://github.com/kanboard/plugin-timetable)
|
||||
|
||||
|
||||
|
||||
- [Прогнозирование подзадач](https://github.com/kanboard/plugin-subtask-forecast)
|
||||
|
||||
|
||||
|
||||
- [Пример автоматических действий](https://github.com/kanboard/plugin-example-automatic-action)
|
||||
|
||||
|
||||
|
||||
- [Пример плагина темы](https://github.com/kanboard/plugin-example-theme)
|
||||
|
||||
|
||||
|
||||
- [Пример плагина CSS](https://github.com/kanboard/plugin-example-css)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
Настройка Postgresql
|
||||
====================
|
||||
|
||||
|
||||
|
||||
По умолчанию, Канборд использует для хранения данных Sqlite, но возможно использовать и Postgresql.
|
||||
|
||||
|
||||
|
||||
Требования[¶](#requirements "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Установленный и настроенный сервер Postgresql
|
||||
|
||||
|
||||
|
||||
- Установленное PHP расширение - `pdo_pgsql` (Debian/Ubuntu: `apt-get install php5-pgsql`)
|
||||
|
||||
|
||||
|
||||
Примечание: работа Канборда протестирована с **Postgresql 9.3 и 9.4**
|
||||
|
||||
|
||||
|
||||
Настройка[¶](#configuration "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
### Создайте пустую базу данных выполнив команду `pgsql`:[¶](#create-an-empty-database-with-the-command-pgsql "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
CREATE DATABASE kanboard;
|
||||
|
||||
|
||||
|
||||
### Создание конфигурационного файла[¶](#create-a-config-file "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Файл `config.php` должен содержать следующие значения:
|
||||
|
||||
```php
|
||||
<?php
|
||||
|
||||
// We choose to use Postgresql instead of Sqlite
|
||||
define('DB_DRIVER', 'postgres');
|
||||
|
||||
// Mysql parameters
|
||||
define('DB_USERNAME', 'REPLACE_ME');
|
||||
define('DB_PASSWORD', 'REPLACE_ME');
|
||||
define('DB_HOSTNAME', 'REPLACE_ME');
|
||||
define('DB_NAME', 'kanboard');
|
||||
```
|
||||
|
||||
|
||||
|
||||
Примечание: Вы можете переименовать демонстрационный файл `config.default.php` в `config.php`.
|
||||
|
||||
|
||||
|
||||
### Импортирование дампа SQL (альтернативный метод)[¶](#importing-sql-dump-alternative-method "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
В первый раз, Канборд запускает по очереди каждую миграцию базы данных и этот процес может занять некоторое время, в зависимости от вашей конфигурации.
|
||||
|
||||
|
||||
|
||||
Для избежания проблем или задержек вы можете инициализировать базу данных напрямую посредством импорта схемы SQL:
|
||||
|
||||
```bash
|
||||
psql -U postgres my_database < app/Schema/Sql/postgres.sql
|
||||
```
|
||||
|
||||
Файл `app/Schema/Sql/postgres.sql` - это sql дамп, который представляет последнюю версию базы данных.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,105 @@
|
|||
Настройки проекта
|
||||
=================
|
||||
|
||||
|
||||
|
||||
В правом верхнем выпадающем меню выберите **Настройки**, затем выберите **Настройки проекта** слева.
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Настройки проекта.
|
||||
|
||||
|
||||
|
||||
Колонки по умолчанию для новых проектов[¶](#default-columns-for-new-projects "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Вы можете изменить колонки по умолчанию. Это удобно, когда вы создаете однотипные проекты с одними и теми же колонками.
|
||||
|
||||
|
||||
|
||||
Название колонок должны быть разделены запятой.
|
||||
|
||||
|
||||
|
||||
По умолчанию, в Канборде используются следующие колонки: Ожидающие, Готовые, В процессе, Выполнено
|
||||
|
||||
|
||||
|
||||
Стандартные категории для новых проектов[¶](#default-categories-for-new-projects "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Категории не являются общими для приложения, но могут использоваться в проектах. Каждый проект может иметь разные категории.
|
||||
|
||||
|
||||
|
||||
Однако, если вы постоянно создаете одни и теже категории для разных проектов, то вы можете задать список категорий, которые будут автоматически создаваться при создании проекта.
|
||||
|
||||
|
||||
|
||||
Разрешена только одна подзадача в разработке одновременно для одного пользователя[¶](#allow-only-one-subtask-in-progress-at-the-same-time-for-a-user "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Когда эта опция включена, пользователь может работать только с одной подзадачей одновременно.
|
||||
|
||||
|
||||
|
||||
Если другая подзадача перейдет статус “В процессе”, то пользователь увидит следующее диалоговое окно:
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Ограничение пользовательских подзадач.
|
||||
|
||||
|
||||
|
||||
Триггер автоматического отслеживания времени подзадач[¶](#trigger-automatically-subtask-time-tracking "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Если этот триггер включен когда статус подзадачи меняется на “В процессе”, то таймер автоматически запускается.
|
||||
|
||||
|
||||
|
||||
- Выключите эту опцию, если вы не хотите отслеживать время.
|
||||
|
||||
|
||||
|
||||
Включить в диаграмму закрытые задачи[¶](#include-closed-tasks-in-the-cumulative-flow-diagram "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Если эта опция включена, закрытые задачи будут добавлены в накопительную диаграмму.
|
||||
|
||||
|
||||
|
||||
- Если выключена, то только открытые задачи будут подсчитаны.
|
||||
|
||||
|
||||
|
||||
- Эта опция влияет на колонку “total” (всего) в таблице “project\_daily\_column\_stats” (проект\_ежедневно\_колонка\_статистика)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
Права доступа к проекту
|
||||
=======================
|
||||
|
||||
|
||||
|
||||
Все проекты изолированы и отделены друг от друга. Доступ к проекту может назначать владелец проекта.
|
||||
|
||||
|
||||
|
||||
Каждый пользователь и каждая группа могут иметь разные назначенные роли. Имеются [три типа ролей для проектов](roles.markdown):
|
||||
|
||||
|
||||
|
||||
- Менеджер проекта
|
||||
|
||||
|
||||
|
||||
- Участник проекта
|
||||
|
||||
|
||||
|
||||
- Наблюдатель проекта
|
||||
|
||||
|
||||
|
||||
Только администратор может иметь полный доступ ко всему.
|
||||
|
||||
|
||||
|
||||
Назначение ролей доступно через **Меню -\> Настройки -\> Разрешения**
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Права доступа к проекту
|
||||
|
||||
|
||||
|
||||
Если вы выберите **Разрешить любому**, то все пользователи Канборд будут считаться участниками Проекта. В таком случае, нет необходимости назначать роли. Потому что, разрешения, назначенные пользователям и группам, на доступ к Проекту не будут работать.
|
||||
|
||||
|
||||
|
||||
Приватный проект не позволяет устанавливать разрешения.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
Типы проектов
|
||||
=============
|
||||
|
||||
|
||||
|
||||
Проекты могут быть двух типов:
|
||||
|
||||
|
||||
|
||||
| Тип | Описание |
|
||||
|-----------------|----------------------------------------------------------|
|
||||
| Командный проект| В проекте могут принимать участие пользователи и группы |
|
||||
| Приватный проект| Проект принадлежит только одному пользователю, к проекту нельзя присоединить участников|
|
||||
|
||||
|
||||
|
||||
- Командный проект могут создавать только пользователи с ролью Администратор и Менеджер.
|
||||
- Приватный проект могут создавать все пользователи.
|
||||
|
||||
|
||||
[Читать документацию про роли в Kanboard](roles.markdown)
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,154 @@
|
|||
Представления Доска, Календарь, Список и Гант
|
||||
=============================================
|
||||
|
||||
|
||||
|
||||
В каждом проекте задачи могут быть отображены в разных представлениях: **Доска, Календарь, Список и Гант**. Для отображения представлений используется фильтр в верхней части рабочей панели. Для поиска используется [расширенный синтаксис](ext-search.markdown).
|
||||
|
||||
|
||||
|
||||
Представление - Доска[¶](#board-view "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Представление зачад в виде доски
|
||||
|
||||
|
||||
|
||||
- В этом представлении вы можете мышкой перемещать задачи между колонками.
|
||||
|
||||
|
||||
|
||||
- Также, для перемещения задач на доске, можно использовать горячие клавиши **“v b”**.
|
||||
|
||||
|
||||
|
||||
- Затемнения вокруг задачи показывает активную или измененную задачу.
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Лимит задач на Доске
|
||||
|
||||
|
||||
|
||||
Когда лимит задач для колонки достигнут, тогда фон колонки становится красный. Это означает, что слишком много задач выполняются одновременно.
|
||||
|
||||
|
||||
|
||||
[Ознакомится с настройками Доски](board-configuration.markdown)
|
||||
|
||||
|
||||
|
||||
Представление - Календарь[¶](#calendar-view "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Представление в виде календаря
|
||||
|
||||
|
||||
|
||||
- В этом представлении вы можете видеть задачи на конкретные даты.
|
||||
|
||||
|
||||
|
||||
- Вы можете сделать настройки, которые позволят вам видеть задачи в работе.
|
||||
|
||||
|
||||
|
||||
- Вы можете использовать горячие клавиши **“v c”** для перехода на представление Календарь.
|
||||
|
||||
|
||||
|
||||
- [Ознакомится с настройками Календаря](calendar-configuration.markdown)
|
||||
|
||||
|
||||
|
||||
Представление - Список[¶](#list-view "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Представление списком.
|
||||
|
||||
|
||||
|
||||
- С помощью этого представления все результаты отображаются в виде таблицы.
|
||||
|
||||
|
||||
|
||||
- Для быстрого перехода на представление Список вы можете использовать горячие клавиши **“v l”**.
|
||||
|
||||
|
||||
|
||||
Представление - Гант.[¶](#gantt-view "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Представление диаграммой Ганта.
|
||||
|
||||
|
||||
|
||||
- Представление Гант отображает задачи горизонтальными графиками
|
||||
|
||||
|
||||
|
||||
- Для построения графика используется дата начала и срок выполнения
|
||||
|
||||
|
||||
|
||||
- Для быстрого перехода к представлению Гант используйте горячие клавиши : **“v g”**
|
||||
|
||||
|
||||
|
||||
Обзор Проекта[¶](#project-overview "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Представления проекта
|
||||
|
||||
|
||||
|
||||
- Отображает описание проекта
|
||||
|
||||
|
||||
|
||||
- Показывает прикрепленные и загруженные документы проекта
|
||||
|
||||
|
||||
|
||||
- Показывает список участников проекта
|
||||
|
||||
|
||||
|
||||
- Показывает последнюю активность в проекте
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
Повторяющиеся задачи
|
||||
====================
|
||||
|
||||
|
||||
|
||||
Для соответсвия методологии Канбан, повторяющиеся задачи не имеют в качестве основы дату, а запускаются при наступлении событий на Доске.
|
||||
|
||||
|
||||
|
||||
- Повторяющиеся задачи копируются (появляются вновь) в первой колонке Доски когда наступает определенное событие
|
||||
|
||||
|
||||
|
||||
- Дата завершения (срок выполнения задачи) пересчитывается автоматически
|
||||
|
||||
|
||||
|
||||
- Each task records the task id of the parent task that created it and the child task created
|
||||
|
||||
|
||||
|
||||
Настройка[¶](#configuration "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Перейдите на страницу детального представления задачи или используйте выпадающее меню на доске, выберите **Редактировать повторы**.
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Редактировать повторы.
|
||||
|
||||
|
||||
|
||||
В редактировании повторов имеется выбор 3 триггеров для генерации периодической задачи:
|
||||
|
||||
|
||||
|
||||
- Когда задача перемещается из первой колонки
|
||||
|
||||
|
||||
|
||||
- Когда задача перемещается в последнюю колонку
|
||||
|
||||
|
||||
|
||||
- Когда задача закрывается
|
||||
|
||||
|
||||
|
||||
Дата завершения, если установлена для текущей задачи, может быть пересчитана с учетом **Коэффициента для расчета новой даты** и **Период для рассчета новой даты завершения** (например, 7 дней, 6 месяцев, 1 год). Базовой датой вычисления новой даты завершения может быть и имеющаяся дата завершения, или дата действия.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,137 @@
|
|||
Системные требования
|
||||
====================
|
||||
|
||||
|
||||
|
||||
На сервере[¶](#server-side "Ссылка на этот заголовок")
|
||||
------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
### Поддерживаемые операционные системы[¶](#compatible-operating-systems "Ссылка на этот заголовок")
|
||||
|
||||
|Операционная система|
|
||||
|-----------------------------------|
|
||||
|Linux Ubuntu Xenial Xerus 16.04 LTS|
|
||||
| Linux Ubuntu Trusty 14.04 LTS|
|
||||
| Linux Centos 6.x|
|
||||
| Linux Centos 7.x|
|
||||
| Linux Redhat 6.x|
|
||||
|Linux Redhat 7.x|
|
||||
| Linux Debian 8|
|
||||
| FreeBSD 10.x|
|
||||
| Microsoft Windows 2012 R2|
|
||||
| Microsoft Windows 2008|
|
||||
|
||||
|
||||
|
||||
### Поддерживаемые базы данных[¶](#compatible-databases "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|База данных |
|
||||
|----------------------|
|
||||
|Sqlite 3.x |
|
||||
|Mysql \>= 5.5 |
|
||||
|MariaDB \>= 10 |
|
||||
| Postgresql \>= 9.3 |
|
||||
|
||||
|
||||
|
||||
Какую базу данных выбрать?
|
||||
|
||||
|
||||
| Тип | Когда использовать |
|
||||
|--------------------|--------------------------------------------------------|
|
||||
| Sqlite | Один пользователь или небольшая команда |
|
||||
| Mysql/Postgres | Большая команда, конфигурация высокой доступности |
|
||||
|
||||
|
||||
|
||||
|
||||
Не используйте Sqlite на смонтированном NFS. Используйте Sqlite только на дисках с высокой скоростью чтение/запись.
|
||||
|
||||
|
||||
|
||||
### Совместимые веб сервера[¶](#compatible-web-servers "Ссылка на этот заголовок")
|
||||
|
||||
Apache HTTP Server, Nginx , Microsoft IIS
|
||||
|
||||
Канборд изначально сконфигурирован для работы с Apache (URL rewriting).
|
||||
|
||||
|
||||
|
||||
### Версии PHP[¶](#php-versions "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
PHP \>= 5.3.3, PHP 5.4, PHP 5.5, PHP 5.6, PHP 7.x
|
||||
|
||||
|
||||
|
||||
### Требуемые расширения для PHP[¶](#php-extensions-required "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
| Требуемые расширения для PHP | Примечание |
|
||||
|----------------------------------|-----------------------------------------|
|
||||
| pdo\_sqlite | Только при использовании Sqlite |
|
||||
| pdo\_mysql | Только при использоании Mysql/MariaDB |
|
||||
| pdo\_pgsql | Только при использовании Postgres |
|
||||
| gd | |
|
||||
| mbstring | |
|
||||
| openssl | |
|
||||
| json | |
|
||||
| hash | |
|
||||
| ctype | |
|
||||
| session | |
|
||||
| ldap | Только для аутентификации LDAP |
|
||||
| Zend OPcache | Рекомендуется |
|
||||
|
||||
|
||||
### Рекомендуется[¶](#recommendations "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
- Современная Linux или Unix операционная система.
|
||||
|
||||
|
||||
|
||||
- Высокая производительность достигается с последней версией PHP со включенным кешированием OPcode.
|
||||
|
||||
|
||||
|
||||
На клиенте[¶](#client-side "Ссылка на этот заголовок")
|
||||
------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
### Браузеры[¶](#browsers "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Используйте современные браузеры, обновленные до последней версии:
|
||||
|
||||
|Браузер |
|
||||
|-----------------|
|
||||
| Safari |
|
||||
| Google Chrome |
|
||||
| Mozilla Firefox |
|
||||
| Microsoft Internet Explorer \>= 11|
|
||||
| Microsoft Edge |
|
||||
|
||||
|
||||
|
||||
### Устройства[¶](#devices "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
| Устройство | Разрешение экрана |
|
||||
|--------------------------------------|--------------------------------------|
|
||||
| Персональный компьютер или ноутбук | \>= 1366 x 768 |
|
||||
| Планшет | \>= 1024 x 768 |
|
||||
|
||||
|
||||
Канборд, пока, не оптимизирован для работы на смартфонах. Конечно, он работает, но пользовательский интерфейс не совсем удобный для использования.
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,138 @@
|
|||
Аутентификация Reverse Proxy
|
||||
============================
|
||||
|
||||
|
||||
|
||||
Этот метод аутентификации часто используется для [SSO](https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%D0%B5%D0%B4%D0%B8%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%85%D0%BE%D0%B4%D0%B0) (Технология единого входа), особенно удобно в больших организациях.
|
||||
|
||||
|
||||
|
||||
Аутентификация выполняется с помощью другой системы, поэтому Канборд не знает вашего пароля и допускает вас к приложению, так как вы уже прошли аутентификацию.
|
||||
|
||||
|
||||
|
||||
Требования[¶](#requirements "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Правильно сконфигурированный reverse proxy
|
||||
|
||||
|
||||
|
||||
или
|
||||
|
||||
|
||||
|
||||
- Apache Auth на том же сервере
|
||||
|
||||
|
||||
|
||||
Как это работает?[¶](#how-does-this-work "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
1. Ваш reverse proxy аутентифицирует пользователя и посылает имя пользователя через заголовок HTTP.
|
||||
|
||||
|
||||
|
||||
2. Канборд извлекает имя пользователя из запроса
|
||||
|
||||
|
||||
|
||||
- Пользователь создается в Канборд автоматически (опция настраивается)
|
||||
|
||||
|
||||
|
||||
- Открывается новая сессия Канборд (дополнительная аутентификация в Канборд не нужна)
|
||||
|
||||
|
||||
|
||||
Инструкция по установке[¶](#installation-instructions "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
### Настройка вашего reverse proxy[¶](#setting-up-your-reverse-proxy "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
В рамках данной документации не рассматривается установка и настройка reverse proxy. Вы должны убедится, что логин пользователя отправляется с reverse proxy в заголовке HTTP.
|
||||
|
||||
|
||||
|
||||
### Настройки Канборда[¶](#setting-up-kanboard "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Создайте свой файл конфигурации `config.php` или скопируйте конфигурацию из файла `config.default.php`:
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
// Enable/disable reverse proxy authentication
|
||||
|
||||
define('REVERSE_PROXY_AUTH', true); // Set this value to true
|
||||
|
||||
|
||||
|
||||
// The HTTP header to retrieve. If not specified, REMOTE_USER is the default
|
||||
|
||||
define('REVERSE_PROXY_USER_HEADER', 'REMOTE_USER');
|
||||
|
||||
|
||||
|
||||
// The default Kanboard admin for your organization.
|
||||
|
||||
// Since everything should be filtered by the reverse proxy,
|
||||
|
||||
// you should want to have a bootstrap admin user.
|
||||
|
||||
define('REVERSE_PROXY_DEFAULT_ADMIN', 'myadmin');
|
||||
|
||||
|
||||
|
||||
// The default domain to assume for the email address.
|
||||
|
||||
// In case the username is not an email address, it
|
||||
|
||||
// will be updated automatically as USER@mydomain.com
|
||||
|
||||
define('REVERSE_PROXY_DEFAULT_DOMAIN', 'mydomain.com');
|
||||
|
||||
|
||||
|
||||
Примечание:
|
||||
|
||||
|
||||
|
||||
- Если proxy находится на том же сервере, что и Канборд, то в соответствии с протоколом \<[http://www.ietf.org/rfc/rfc3875](http://www.ietf.org/rfc/rfc3875)\>\`\_\_ имя заголовка будет `REMOTE_USER`. Например, Apache добавляет `REMOTE_USER` по умолчанию, если установлено `Require valid-user`.
|
||||
|
||||
|
||||
|
||||
- Если Apache служит reverse proxy для другого Apache выполняющего Канборд, то заголовок `REMOTE_USER` не установлен (это же относится к IIS и Nginx).
|
||||
|
||||
|
||||
|
||||
- Если у вас имеется действующий reverse proxy, то [проект HTTP ICAP](http://tools.ietf.org/html/draft-stecher-icap-subid-00#section-3.4) предполагает, что заголовок должен быть `X-Authenticated-User`. Этот стандарт де-факто был принят разными инструментами.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
Пользовательские роли
|
||||
=====================
|
||||
|
||||
|
||||
|
||||
Роли в приложениях[¶](#application-roles "Ссылка на этот заголовок")
|
||||
|
||||
--------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Каждый пользователь системы Канборд имеет одну из этих ролей
|
||||
|
||||
|
||||
|
||||
| Роль | Описание |
|
||||
|----------------|-----------------------------------------------------------|
|
||||
| Администратор | Имеет доступ ко всему |
|
||||
| Менеджер | Может создавать командные проекты, но не может изменять настройки приложения |
|
||||
| Пользователь | Может создавать только приватные проекты |
|
||||
|
||||
|
||||
|
||||
|
||||
Роли в проектах[¶](#project-roles "Ссылка на этот заголовок")
|
||||
|
||||
-------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
В каждом командном проекте могут быть назначены разные роли для пользователей и групп:
|
||||
|
||||
|
||||
| Роль | Описание |
|
||||
|-----------------|----------------------------------------------------------|
|
||||
| Менеджер проекта| Может изменять настройки проекта, имеет доступ к диаграмме Ганта и отчетам |
|
||||
| Участник проекта| Может создавать задачи и пользоваться доской |
|
||||
| Наблюдатель проекта | Имеет доступ к доске и задачам только на просмотр (чтение) |
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
RSS/Atom подписки
|
||||
=================
|
||||
|
||||
|
||||
|
||||
Канборд поддерживает RSS ленты для проектов и пользователей.
|
||||
|
||||
|
||||
|
||||
- RSS/Atom лента для проекта - содержит только активность в проекте
|
||||
|
||||
|
||||
|
||||
- RSS/Atom лента пользователя - содержит поток активности пользователя во всех проектах, в которых пользователь является участником
|
||||
|
||||
|
||||
|
||||
Эти подписки доступны только при включенном общем доступе в пользовательском профиле или в настройках проекта.
|
||||
|
||||
|
||||
|
||||
Включение/выключение RSS ленты проекта[¶](#enable-disable-project-rss-feeds "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Перейдите в **Настройки проекта** -\> **Общий доступ**
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Выключение общего доступа.
|
||||
|
||||
|
||||
|
||||
Включение/выключение RSS ленты пользователя[¶](#enable-disable-user-rss-feeds "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Перейдите в **Мой профиль** -\> **Общий доступ**
|
||||
|
||||
|
||||
|
||||
Ссылка на RSS ленту защищена случайным ключом, только пользователи, которые знают URL ссылку, могут иметь доступ к ленте.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
Добавление снимков экрана (скриншота)
|
||||
=====================================
|
||||
|
||||
|
||||
|
||||
Для экономии времени вы можете копировать и вставлять изображения прямо в Канборде. Загруженные изображения прикрепляются к задаче.
|
||||
|
||||
|
||||
|
||||
Например, очень удобно для решения проблемы прикрепить снимок экрана.
|
||||
|
||||
|
||||
|
||||
Вы можете добавить снимок экрана прямо из Доски нажав на выпадающее меню задачи и выбрав **Прикрепить картинку** или на странице детального просмотра задачи.
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
Рисунок. Выпадающее меню задачи - **Прикрепить картинку**.
|
||||
|
||||
|
||||
|
||||
Для добавления нового снимка экрана (скриншота), сделайте снимок экрана (нажмите клавиши Ctrl+PrtScn) и вставьте его используя сочетания клавиш CTRL+V или Command+V
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Прикрепить картинку.
|
||||
|
||||
|
||||
|
||||
В Mac OS X вы можете использовать следующие горячие клавиши для создания снимка экрана:
|
||||
|
||||
|
||||
|
||||
- Command-Control-Shift-3: Делает снимок экрана и сохраняет его в буфер обмена
|
||||
|
||||
|
||||
|
||||
- Command-Control-Shift-4 и выделите необходимую область на экране: Делает снимок экрана для области экрана и сохраняет ее в буфер обмена
|
||||
|
||||
|
||||
|
||||
- Command-Control-Shift-4, затем пробел, затем нажать на окно: Делает снимок окна и сохраняет его в буфер обмена
|
||||
|
||||
|
||||
|
||||
Имеется много разных других программ для создания снимков с экрана с примечаниями и разными формами.
|
||||
|
||||
|
||||
|
||||
**Заметка**: Эта возможность работает не во всех браузерах. Например, не работает в Safari из-за этой ошибки: [https://bugs.webkit.org/show\_bug.cgi?id=49141](https://bugs.webkit.org/show_bug.cgi?id=49141)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
Поиск
|
||||
|
||||
=====
|
||||
|
||||
|
||||
|
||||
Для работы поиска включите JavaScript в браузере.
|
||||
|
||||
|
||||
|
||||
Здесь можно делать поиск по всем разделам этой документации. Введите ключевые слова в текстовое поле и нажмите кнопку «искать». Внимание: будут найдены только те страницы, в которых есть все указанные слова. Страницы, где есть только часть этих слов, отобраны не будут.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
Публичные доски и задачи
|
||||
========================
|
||||
|
||||
|
||||
|
||||
По умолчанию, Доска имеет приватный доступ, но имеется возможность сделать Доску публичной.
|
||||
|
||||
|
||||
|
||||
Публичная доска **не может быть изменена (имеется только доступ на чтение)**. Доступ к доске защищен случайно сгенерированным ключом, только пользователи знающие правильный URL могут увидеть публичную Доску.
|
||||
|
||||
|
||||
|
||||
Публичная Доска автоматически обновляется каждые 60 секунд. Детали задач, также, доступны только для чтения.
|
||||
|
||||
|
||||
|
||||
Пример использования:
|
||||
|
||||
|
||||
|
||||
- Публикация вашей Доски для кого-либо снаружи (работник из другой организации)
|
||||
|
||||
|
||||
|
||||
- Отображение Доски на большом экране в вашем офисе
|
||||
|
||||
|
||||
|
||||
Включение общего доступа[¶](#enable-public-access "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Выберете ваш проект, затем нажмите на ссылку **“Общий доступ”** и в завершении нажмите на кнопку **“Включить общий доступ”**
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Включение общего доступа
|
||||
|
||||
|
||||
|
||||
Когда общий доступ к проекту включен, сгенерируется несколько ссылок:
|
||||
|
||||
|
||||
|
||||
- Ссылка для просмотра
|
||||
|
||||
|
||||
|
||||
- RSS лента
|
||||
|
||||
|
||||
|
||||
- iCalendar данные
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Отключить общий доступ.
|
||||
|
||||
|
||||
|
||||
Вы можете выключить общий доступ к проекту в любой момент.
|
||||
|
||||
|
||||
|
||||
Каждый раз, когда вы включаете или выключаете общий доступ, генерируется новый ключ. **Доступ по предыдущей ссылке будет невозможен**.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,96 @@
|
|||
Настройка базы данных Sqlite
|
||||
============================
|
||||
|
||||
|
||||
|
||||
Канборд использует для хранения данных Sqlite по умолчанию. Все задачи, проекты и учетные записи пользователей храняться в этой базе данных.
|
||||
|
||||
|
||||
|
||||
База данных Sqlite хранит данные в файле `db.sqlite` в директории `data`.
|
||||
|
||||
|
||||
|
||||
Экспорт/Резервное копирование[¶](#export-backup "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
### Командная строка[¶](#command-line "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Создание резервных копий выполняется просто, надо скопировать файл `data/db.sqlite` туда, где у вас будут хранится резервные копии.
|
||||
|
||||
|
||||
|
||||
### Пользовательский интерфейс[¶](#user-interface "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Также, в любое время, вы можете скачать базу данных прямо через меню **Настройки**.
|
||||
|
||||
|
||||
|
||||
Выгружаемая база данных упакована с помощью Gzip и имя базы выглядитит как `db.sqlite.gz`.
|
||||
|
||||
|
||||
|
||||
Импорт/Восстановление[¶](#import-restoration "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Загрузить базу данных через пользовательский интерфейс невозможно. Восстановление должно быть выполнено вручную, когда никто не работает с программой.
|
||||
|
||||
|
||||
|
||||
- Для восстановления резервной копии, достаточно заменить рабочий файл `data/db.sqlite`.
|
||||
|
||||
|
||||
|
||||
- Для разархивирования базы данных упакованной с помощью gzip, выполните следующую команду в терминале: `gunzip db.sqlite.gz`.
|
||||
|
||||
|
||||
|
||||
Оптимизация[¶](#optimization "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Время от времени, рекомендуется оптимизировать базу данных выполнив команду `VACUUM`. Эта команда пересоздает всю базу данных и используется в следующих случаях:
|
||||
|
||||
|
||||
|
||||
- Для уменьшения размера файла базы данных. В процессе работы пользователей, после удаления записей, в базе данных остается пустое пространство и, соответственно, размер файла базы данных остается прежним.
|
||||
|
||||
|
||||
|
||||
- Дефрагментация, база данных фрагментирована выполнением частыми вставками или обновлениями.
|
||||
|
||||
|
||||
|
||||
### Выполнение оптимизации в командной строке[¶](#from-the-command-line "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
sqlite3 data/db.sqlite 'VACUUM'
|
||||
|
||||
|
||||
|
||||
### Выполнение оптимизации через пользовательский интерфейс[¶](#from-the-user-interface "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Перейдите в правое выпадающее меню **Настройки** и нажмите на ссылку **Оптимизировать базу данных**
|
||||
|
||||
|
||||
|
||||
Для дополнительной информации, изучите [документацию Sqlite](https://sqlite.org/lang_vacuum.html).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,111 @@
|
|||
Подзадачи
|
||||
=========
|
||||
|
||||
|
||||
Подзадачи - это прекрасная возможность разделить основную задачу на части.
|
||||
|
||||
|
||||
|
||||
Каждая подзадача:
|
||||
|
||||
|
||||
|
||||
- Может быть назначена участнику проекта
|
||||
|
||||
|
||||
|
||||
- Имеет 3 разных статуса: **Для исполнения**, **В работе**, **Выполнено**
|
||||
|
||||
|
||||
|
||||
- Имеет информацию по отслеживанию времени: **затраченное время** и **запланированное время**
|
||||
|
||||
|
||||
|
||||
- Может быть перемещена в списке, для изменения порядка выполнения
|
||||
|
||||
|
||||
|
||||
Создание подзадачи[¶](#creating-subtasks "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
В детальном представлении задачи, в левой боковой панели нажмите **Добавить подзадачу**:
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Добавление подзадачи.
|
||||
|
||||
|
||||
|
||||
Вы, также, можете быстро добавить подзадачу нажав на заголовок:
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Добавление подзадачи на странице детального просмотра задачи.
|
||||
|
||||
|
||||
|
||||
Изменение статуса подзадачи[¶](#change-subtask-status "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Когда вы нажимаете на заголовок подзадачи стату меняется:
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Выполнение подзадачи.
|
||||
|
||||
|
||||
|
||||
Иконка перед названием подзадачи обновляется в соответсвии со статусом.
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Подзадача выполнена.
|
||||
|
||||
|
||||
|
||||
**Заметка**: Когда задача закрыта, то все подзадачи меняют статус на **Выполнена**.
|
||||
|
||||
|
||||
|
||||
Таймер подзадачи[¶](#subtask-timer "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Когда подзадача выполняется, таймер должен быт запущен. Таймер можно запустить и остановить в любое время.
|
||||
|
||||
|
||||
|
||||
- Время таймера записывается автоматически в затраченное время. Так же, вы можете изменить вручную значение **затраченного времени** при редактировании подзадачи.
|
||||
|
||||
|
||||
|
||||
- Подсчитываемое время округляется до 15 минут. Эта информация записывается в отдельную таблицу.
|
||||
|
||||
|
||||
|
||||
- Время, затраченное на выполнение задачи, и запланированнное время обновляется автоматически, в соответсвии с суммой всех подзадач.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
Инсталяция на OpenSuse
|
||||
======================
|
||||
|
||||
|
||||
|
||||
OpenSuse Leap 42.1[¶](#opensuse-leap-42-1 "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
sudo zypper install php5 php5-sqlite php5-gd php5-json php5-mcrypt php5-mbstring php5-openssl
|
||||
|
||||
cd /srv/www/htdocs
|
||||
|
||||
sudo wget https://kanboard.net/kanboard-latest.zip
|
||||
|
||||
sudo unzip kanboard-latest.zip
|
||||
|
||||
sudo chmod -R 777 kanboard
|
||||
|
||||
sudo rm kanboard-latest.zip
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
Дорожки
|
||||
=======
|
||||
|
||||
|
||||
|
||||
Дорожки - это горизонтальное разделение вашей Доски. Например, очень удобно разделять релизы программ, разделить ваши задачи для разных продуктов, команд или чего-то еще.
|
||||
|
||||
|
||||
|
||||
Доска с дорожками[¶](#board-with-swimlanes "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Дорожки
|
||||
|
||||
|
||||
|
||||
- Вы можете свернуть дорожку нажав на иконку слева
|
||||
|
||||
|
||||
|
||||
- “Стандатная дорожка” всегда расположена сверху
|
||||
|
||||
|
||||
|
||||
Управление дорожками[¶](#managing-swimlanes "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Все проекты имеют дорожку по умолчанию - **Стандартная дорожка**
|
||||
|
||||
|
||||
|
||||
- Если имеется больше одной дорожки, то на Доске будут показаны все имеющиеся дорожки.
|
||||
|
||||
|
||||
|
||||
- Вы можете перемещать мышкой задачи между дорожками.
|
||||
|
||||
|
||||
|
||||
Для настройки дорожек перейдите на страницу **настройки проекта** (Меню -\> Настройки) и нажмите **Дорожки** (слева).
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Настройка Дорожек.
|
||||
|
||||
|
||||
|
||||
Теперь вы можете добавить новую дорожку или переименовать стандартную дорожку. Также, вы можете выключить дорожку или изменить расположение любой дорожки.
|
||||
|
||||
|
||||
|
||||
- Стандартная дорожка всегда расположена сверху, но вы можете ее выключить и она не будет отображаться на Доске.
|
||||
|
||||
|
||||
|
||||
- Выключенные дорожки не отображаются на Доске.
|
||||
|
||||
|
||||
|
||||
- **Удаление дорожки не влечет за собой удаление расположенных на этой дорожке задач**, эти задачи будут перемещены в “Стандартную дорожку”.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,246 @@
|
|||
Руководство по синтаксису
|
||||
=========================
|
||||
|
||||
|
||||
|
||||
Канборд использует [Markdown синтаксис](https://ru.wikipedia.org/wiki/Markdown) для комментариев или описания задач. Далее приведены примеры:
|
||||
|
||||
|
||||
|
||||
Жирный и курсив[¶](#bold-and-italic "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------
|
||||
|
||||
- Жирный текст: Используйте 2 звездочки или 2 подчеркивания вокруг слов(а)
|
||||
|
||||
|
||||
|
||||
- Курсив: Используйте 1 звездочку или 1 подчеркивание вокруг слов(а)
|
||||
|
||||
|
||||
|
||||
### Пример написания (источник)[¶](#source "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
This **word** is very __important__.
|
||||
|
||||
|
||||
|
||||
And here, an *italic* word with one _underscore_.
|
||||
|
||||
|
||||
|
||||
### Результат[¶](#result "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
This **word** is very **important**.
|
||||
|
||||
|
||||
|
||||
And here, an *italic* word with one *underscore*.
|
||||
|
||||
|
||||
|
||||
Неупорядоченные списки[¶](#unordered-lists "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Неупорядоченный список использует звездочки, минусы или плюсы вначале абзаца
|
||||
|
||||
|
||||
|
||||
### Пример написания (источник)[¶](#id1 "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
- Item 1
|
||||
|
||||
- Item 2
|
||||
|
||||
- Item 3
|
||||
|
||||
|
||||
|
||||
or
|
||||
|
||||
|
||||
|
||||
* Item 1
|
||||
|
||||
* Item 2
|
||||
|
||||
* Item 3
|
||||
|
||||
|
||||
|
||||
### Результат[¶](#id2 "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
- Item 1
|
||||
|
||||
- Item 2
|
||||
|
||||
- Item 3
|
||||
|
||||
|
||||
|
||||
Упорядоченные списки[¶](#ordered-lists "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Упорядоченные списки префиксом имеют цифру:
|
||||
|
||||
|
||||
|
||||
### Пример написания (источник)[¶](#id3 "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
1. Do that first
|
||||
|
||||
2. Do this
|
||||
|
||||
3. And that
|
||||
|
||||
|
||||
|
||||
### Результат[¶](#id4 "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
1. Do that first
|
||||
|
||||
2. Do this
|
||||
|
||||
3. And that
|
||||
|
||||
|
||||
|
||||
Ссылки[¶](#links "Ссылка на этот заголовок")
|
||||
--------------------------------------------
|
||||
|
||||
|
||||
|
||||
### Пример написания (источник)[¶](#id5 "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
[My link title](https://kanboard.net/)
|
||||
|
||||
|
||||
|
||||
<https://kanboard.net>
|
||||
|
||||
|
||||
|
||||
### Результат[¶](#id6 "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
[My link title](https://kanboard.net/)
|
||||
|
||||
|
||||
|
||||
[https://kanboard.net](https://kanboard.net)
|
||||
|
||||
|
||||
|
||||
Исходный код[¶](#source-code "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
### Код встраиваемый в текст[¶](#inline-code "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Используйте обратные кавычки (переключитесь на анлийскую раскладку и нажмите ё)
|
||||
|
||||
|
||||
|
||||
Execute this command: `tail -f /var/log/messages`.
|
||||
|
||||
|
||||
|
||||
### Результат[¶](#id7 "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Execute this command: `tail -f /var/log/messages`{.docutils .literal}.
|
||||
|
||||
|
||||
|
||||
### Блоки кода[¶](#code-blocks "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Используйте 3 обратных кавычки с указанием языка программирования
|
||||
|
||||
|
||||
|
||||
```php
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
phpinfo();
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
### Результат[¶](#id8 "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
phpinfo();
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
Заголовки[¶](#titles "Ссылка на этот заголовок")
|
||||
------------------------------------------------
|
||||
|
||||
|
||||
|
||||
### Пример написания (источник)[¶](#id9 "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
# Title level 1
|
||||
|
||||
|
||||
|
||||
## Title level 2
|
||||
|
||||
|
||||
|
||||
### Title level 3
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
Ссылки на задачи
|
||||
================
|
||||
|
||||
|
||||
|
||||
Задачи могут быть созданы вместе с предопределенными связями:
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Ссылки на задачи
|
||||
|
||||
|
||||
|
||||
Связи по умолчанию:
|
||||
|
||||
|
||||
|
||||
- **относится к**
|
||||
|
||||
|
||||
|
||||
- **блокирована**| блокирует
|
||||
|
||||
|
||||
|
||||
- **блокирует** | блокирована
|
||||
|
||||
|
||||
|
||||
- **дублирована** | дублирует
|
||||
|
||||
|
||||
|
||||
- **дублирует** | дублирована
|
||||
|
||||
|
||||
|
||||
- **является продолжением** | является началом для
|
||||
|
||||
|
||||
|
||||
- **является началом для** | является продолжением
|
||||
|
||||
|
||||
|
||||
- **часть вехи** | является вехой для
|
||||
|
||||
|
||||
|
||||
- **является вехой для** | часть вехи
|
||||
|
||||
|
||||
|
||||
- **исправлено** | исправляет
|
||||
|
||||
|
||||
|
||||
- **исправляет** | исправлено
|
||||
|
||||
|
||||
|
||||
Эти названия могут быть быть изменены в настройках приложения.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,262 @@
|
|||
Автоматизированные тесты
|
||||
========================
|
||||
|
||||
|
||||
|
||||
[PHPUnit](https://phpunit.de/) используется для запуска автоматизированных тестов в Канборд.
|
||||
|
||||
|
||||
|
||||
Вы можете запускать тесты для разных баз данных (Sqlite, Mysql and Postgresql), чтобы убедится, что результаты будут одинаковые.
|
||||
|
||||
|
||||
|
||||
Требования[¶](#requirements "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Компьютер Linux/Unix
|
||||
|
||||
|
||||
|
||||
- PHP cli
|
||||
|
||||
|
||||
|
||||
- Установленный PHPUnit
|
||||
|
||||
|
||||
|
||||
- Mysql и Postgresql (опционально)
|
||||
|
||||
|
||||
|
||||
Unit тесты[¶](#unit-tests "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------
|
||||
|
||||
|
||||
|
||||
### Тестирование с Sqlite[¶](#test-with-sqlite "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Sqlite тестирование использует базу данных в памяти, без использования записи на файловую систему.
|
||||
|
||||
|
||||
|
||||
Конфигурационный файл PHPUnit - `tests/units.sqlite.xml`. Из директории Kanboard запустите команду `phpunit -c tests/units.sqlite.xml`.
|
||||
|
||||
|
||||
|
||||
Пример:
|
||||
|
||||
|
||||
|
||||
phpunit -c tests/units.sqlite.xml
|
||||
|
||||
|
||||
|
||||
PHPUnit 5.0.0 by Sebastian Bergmann and contributors.
|
||||
|
||||
|
||||
|
||||
............................................................... 63 / 649 ( 9%)
|
||||
|
||||
............................................................... 126 / 649 ( 19%)
|
||||
|
||||
............................................................... 189 / 649 ( 29%)
|
||||
|
||||
............................................................... 252 / 649 ( 38%)
|
||||
|
||||
............................................................... 315 / 649 ( 48%)
|
||||
|
||||
............................................................... 378 / 649 ( 58%)
|
||||
|
||||
............................................................... 441 / 649 ( 67%)
|
||||
|
||||
............................................................... 504 / 649 ( 77%)
|
||||
|
||||
............................................................... 567 / 649 ( 87%)
|
||||
|
||||
............................................................... 630 / 649 ( 97%)
|
||||
|
||||
................... 649 / 649 (100%)
|
||||
|
||||
|
||||
|
||||
Time: 1.22 minutes, Memory: 151.25Mb
|
||||
|
||||
|
||||
|
||||
OK (649 tests, 43595 assertions)
|
||||
|
||||
|
||||
|
||||
### Тестирование с Mysql[¶](#test-with-mysql "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
У вас должна быть локально установлена база данных Mysql или MariaDb.
|
||||
|
||||
|
||||
|
||||
По умолчанию, используются следующие учетные данные:
|
||||
|
||||
|
||||
|
||||
- Hostname: **localhost**
|
||||
|
||||
- Username: **root**
|
||||
|
||||
- Password: none
|
||||
|
||||
- Database: **kanboard\_unit\_test**
|
||||
|
||||
|
||||
|
||||
При каждом выполнении база данных удаляется и создается снова.
|
||||
|
||||
|
||||
|
||||
Конфигурационный файл HPUnit - `tests/units.mysql.xml`. Из директории Kanboard запустите команду `phpunit -c tests/units.mysql.xml`.
|
||||
|
||||
|
||||
|
||||
### Тестирование с Postgresql[¶](#test-with-postgresql "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
У вас должен быть локально установлен Postgresql.
|
||||
|
||||
|
||||
|
||||
По умолчанию, используются следующие учетные данные:
|
||||
|
||||
|
||||
|
||||
- Hostname: **localhost**
|
||||
|
||||
- Username: **postgres**
|
||||
|
||||
- Password: none
|
||||
|
||||
- Database: **kanboard\_unit\_test**
|
||||
|
||||
|
||||
|
||||
Убедитесь, что пользователь `postgres` может создавать и удалять базу данных. База данных пересоздается при каждом выполнении теста.
|
||||
|
||||
|
||||
|
||||
Конфигурационных файл PHPUnit - `tests/units.postgres.xml`. Из директории Kanboard, запустите команду `phpunit -c tests/units.postgres.xml`.
|
||||
|
||||
|
||||
|
||||
Тесты интеграции[¶](#integration-tests "Ссылка на этот заголовок")
|
||||
------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Фактически тестируются только вызовы API.
|
||||
|
||||
|
||||
|
||||
Реальные HTTP calls выполняются с этими тестами. Поэтому, необходим локальный экземпляр Канборда, который слушает на `http://localhost:8000/`.
|
||||
|
||||
|
||||
|
||||
Все данные будут удалены/изменены при тестировании. Более того скрипт будет сброшен и установлен новый ключ API.
|
||||
|
||||
|
||||
|
||||
1. Запустите локольный экземпляр Канборда: `php -S 127.0.0.1:8000`
|
||||
|
||||
|
||||
|
||||
2. Запустите тест в другом терминале
|
||||
|
||||
|
||||
|
||||
Этот же метод используется для запуска тестов для разных баз данных:
|
||||
|
||||
|
||||
|
||||
- Sqlite: `phpunit -c tests/integration.sqlite.xml`
|
||||
|
||||
- Mysql: `phpunit -c tests/integration.mysql.xml`
|
||||
|
||||
- Postgresql: `phpunit -c tests/integration.postgres.xml`
|
||||
|
||||
|
||||
|
||||
Пример:
|
||||
|
||||
|
||||
|
||||
phpunit -c tests/integration.sqlite.xml
|
||||
|
||||
|
||||
|
||||
PHPUnit 5.0.0 by Sebastian Bergmann and contributors.
|
||||
|
||||
|
||||
|
||||
............................................................... 63 / 135 ( 46%)
|
||||
|
||||
............................................................... 126 / 135 ( 93%)
|
||||
|
||||
......... 135 / 135 (100%)
|
||||
|
||||
|
||||
|
||||
Time: 1.18 minutes, Memory: 14.75Mb
|
||||
|
||||
|
||||
|
||||
OK (135 tests, 526 assertions)
|
||||
|
||||
|
||||
|
||||
Непрерывная интеграция с Travis-CI[¶](#continuous-integration-with-travis-ci "Ссылка на этот заголовок")
|
||||
|
||||
--------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
После каждого commit влитого в мой репозиторий, юнит тесты выполняются для 5 различных версий PHP:
|
||||
|
||||
|
||||
|
||||
- PHP 7.0
|
||||
|
||||
- PHP 5.6
|
||||
|
||||
- PHP 5.5
|
||||
|
||||
- PHP 5.4
|
||||
|
||||
- PHP 5.3
|
||||
|
||||
|
||||
|
||||
При тестировании каждой версии PHP используются 3 поддерживаемые базы данных: Sqlite, Mysql and Postgresql.
|
||||
|
||||
|
||||
|
||||
Конфигурационный файл Travis - `.travis.yml` - находится в корневой директории Kanboard.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
Отслеживание времени
|
||||
====================
|
||||
|
||||
|
||||
|
||||
Отслеживание времени (контроль времени) может быть использовано для уровня задач или для уровня подзадач.
|
||||
|
||||
|
||||
|
||||
Отслеживание времени испольнения задач[¶](#task-time-tracking "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Отслеживание времени испольнения задач
|
||||
|
||||
|
||||
|
||||
Задачи имеют два поля:
|
||||
|
||||
|
||||
|
||||
- Запланировано времени
|
||||
|
||||
|
||||
|
||||
- Затрачено времени
|
||||
|
||||
|
||||
|
||||
Эти значения показывают время работы и могут быть установлены вручную
|
||||
|
||||
|
||||
|
||||
Отслеживание времени подзадач[¶](#subtask-time-tracking "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Отслеживание времени подзадач
|
||||
|
||||
|
||||
|
||||
Подзадачи тоже имеют поля “Запланировано” и “Затрачено” время.
|
||||
|
||||
|
||||
|
||||
Когда вы меняете значения в этих полях, **отслеживание времени задачи обновляется автоматически и формируется суммарное время всех подзадач**
|
||||
|
||||
|
||||
|
||||
Канборд записывает время между изменениями статуса каждой подзадачи в отдельную таблицу.
|
||||
|
||||
|
||||
|
||||
- При изменении статуса подзадачи с **“Для испольнения”** на **“В работе”**, записывается время начала
|
||||
|
||||
|
||||
|
||||
- При изменении статуса подзадачи с **“В работе”** на **“Выполнено”**, записывается как время окончания и, при этом, обновляется **затраченное время** в подзадаче и в задаче.
|
||||
|
||||
|
||||
|
||||
Анализ всех записей можно увидеть на странице детального просмотра задачи:
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Таблица учета времени.
|
||||
|
||||
|
||||
|
||||
Для каждой подзадачи, таймер может быть остановлен и запущен в любое время:
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Таймер подзадач.
|
||||
|
||||
|
||||
|
||||
- Таймер не зависит от статуса подзадачи
|
||||
|
||||
|
||||
|
||||
- Вы можете запустить таймер для новой записи, созданной в таблице отслеживания задач, в любое время
|
||||
|
||||
|
||||
|
||||
- Вы можете остановить учет времени даты завершения в таблице отслеживания задач, в любое время
|
||||
|
||||
|
||||
|
||||
- Подсчет затраченного времени округляется до четверти часа
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
Перемещения задач
|
||||
=================
|
||||
|
||||
|
||||
|
||||
Запись о перемещении отражает каждое движение задачи между колонками.
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Перемещения.
|
||||
|
||||
|
||||
|
||||
Перемещение доступно в боковом меню в детальном представлении задачи (**Перемещения**). Вы можете увидеть следующую информацию:
|
||||
|
||||
|
||||
|
||||
- Дата, когда было выполенено перемещение
|
||||
|
||||
|
||||
|
||||
- Исходная колонка - колонка, из которой было сделано перемещение
|
||||
|
||||
|
||||
|
||||
- Колонка назначения - колонка, в которую была перемещена задача
|
||||
|
||||
|
||||
|
||||
- Исполнитель (пользователь, который переместил задачу)
|
||||
|
||||
|
||||
|
||||
- Время проведенное в колонке (сколько времени было затрачено на выполнение задачи в указанной колонке)
|
||||
|
||||
|
||||
|
||||
Данные о перемещении задач, также, могут быть экспортированы со страницы настроек проекта (**Меню** -\> **Экспорт**).
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Экспорт перемещений задач.
|
||||
|
||||
|
||||
|
||||
Для указанного промежутка времени вы можете сформировать CSV файл, который вы можете импортировать в любое программное обеспечение с электронными таблицами (например, Excell).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,155 @@
|
|||
Переводы на другие языки (локализация)
|
||||
======================================
|
||||
|
||||
|
||||
|
||||
Как перевести Канборд на новый язык?[¶](#how-to-translate-kanboard-to-a-new-language "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Переводы хранятся в директории `app/Locale`
|
||||
|
||||
|
||||
|
||||
- В этой директории есть поддиректории для разных языков, например, для русского имеется `ru_RU`, для французского - `fr_FR` и т.д.
|
||||
|
||||
|
||||
|
||||
- Переводы находятся в PHP файле, который возвращает массив с парой ключ-значение
|
||||
|
||||
|
||||
|
||||
- Ключ - оригинальный текст на английском и значение - перевод на соответсвующем языке
|
||||
|
||||
|
||||
|
||||
- **Французские переводы всегда в актуальном состоянии**
|
||||
|
||||
|
||||
|
||||
- Всегда используйте последнюю версию (branch master)
|
||||
|
||||
|
||||
|
||||
### Создание нового перевода[¶](#create-a-new-translation "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
1. Создайте новую директорию: `app/Locale/xx_XX`, например `app/Locale/fr_CA` для канадского фрацузского
|
||||
|
||||
|
||||
|
||||
2. Создайте новый файл для перевода: `app/Locale/xx_XX/translations.php`
|
||||
|
||||
|
||||
|
||||
3. Используйте как образец содержимое французского перевода (локализации) и замените значения
|
||||
|
||||
|
||||
|
||||
4. Внесите изменения в файл `app/Model/Language.php`
|
||||
|
||||
|
||||
|
||||
5. Проверьте добавленный язык на локальной версии Канборда
|
||||
|
||||
|
||||
|
||||
6. Пошлите [pull-request на Github](https://help.github.com/articles/using-pull-requests/)
|
||||
|
||||
|
||||
|
||||
Как обновить имеющийся перевод?[¶](#how-to-update-an-existing-translation "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
1. Откройте файл перевода `app/Locale/xx_XX/translations.php`
|
||||
|
||||
|
||||
|
||||
2. Отсутсвующие переводы закоментированы - `//` и значения пустые, нужно заполнить значения и удалить коментарий
|
||||
|
||||
|
||||
|
||||
3. Проверьте внесенные изменения на локальной версии Канборда и пошлите [pull-request](https://help.github.com/articles/using-pull-requests/)
|
||||
|
||||
|
||||
|
||||
Как добавить новый текст перевода в приложение?[¶](#how-to-add-new-translated-text-in-the-application "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Переводы отображаются с помощью функций в исходном коде:
|
||||
|
||||
|
||||
|
||||
- `t()`: показывает текст с HTML escaping
|
||||
|
||||
|
||||
|
||||
- `e()`: показывает текст без HTML escaping
|
||||
|
||||
|
||||
|
||||
Всегда используйте английскую версию исходного кода.
|
||||
|
||||
|
||||
|
||||
Текстовые строки используют функцию `sprintf()` для замены элементов:
|
||||
|
||||
|
||||
|
||||
- `%s` используется для замены строки
|
||||
|
||||
|
||||
|
||||
- `%d` используется для замены цифры
|
||||
|
||||
|
||||
|
||||
Ознакомится с доступными форматами вы можете в [документации PHP](http://php.net/sprintf).
|
||||
|
||||
|
||||
|
||||
Как найти отсутствующие переводы в приложении?[¶](#how-to-find-missing-translations-in-the-applications "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Из терминала запустите следующую команду:
|
||||
|
||||
|
||||
|
||||
./kanboard locale:compare
|
||||
|
||||
|
||||
|
||||
Все отсутствующие и неиспользуемые переводы будут показаны на экране. Добавьте их во французскую локализацию и синхронизируйте с другими локализациями (смотрите ниже)
|
||||
|
||||
|
||||
|
||||
Как синхронизировать файлы переводов?[¶](#how-to-synchronize-translation-files "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
В оболочке Unix запустите следующую команду:
|
||||
|
||||
|
||||
|
||||
./kanboard locale:sync
|
||||
|
||||
|
||||
|
||||
Французский перевод используется для ссылки на другие локализации.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,111 @@
|
|||
Как инсталировать Канборд на Ubuntu?
|
||||
====================================
|
||||
|
||||
|
||||
|
||||
Ubuntu Xenial 16.04 LTS[¶](#ubuntu-xenial-16-04-lts "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Установите Apache и PHP:
|
||||
|
||||
|
||||
|
||||
sudo apt-get update
|
||||
|
||||
sudo apt-get install -y apache2 libapache2-mod-php7.0 php7.0-cli php7.0-mbstring php7.0-sqlite3 \
|
||||
|
||||
php7.0-opcache php7.0-json php7.0-mysql php7.0-pgsql php7.0-ldap php7.0-gd
|
||||
|
||||
|
||||
|
||||
Установите Канборд:
|
||||
|
||||
|
||||
|
||||
cd /var/www/html
|
||||
|
||||
sudo wget https://kanboard.net/kanboard-latest.zip
|
||||
|
||||
sudo unzip kanboard-latest.zip
|
||||
|
||||
sudo chown -R www-data:www-data kanboard/data
|
||||
|
||||
sudo rm kanboard-latest.zip
|
||||
|
||||
|
||||
|
||||
Ubuntu Trusty 14.04 LTS[¶](#ubuntu-trusty-14-04-lts "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Установите Apache и PHP:
|
||||
|
||||
|
||||
|
||||
sudo apt-get update
|
||||
|
||||
sudo apt-get install -y php5 php5-sqlite php5-mysql php5-pgsql php5-ldap php5-gd php5-json php5-mcrypt unzip
|
||||
|
||||
|
||||
|
||||
Установите Канборд:
|
||||
|
||||
|
||||
|
||||
cd /var/www/html
|
||||
|
||||
sudo wget https://kanboard.net/kanboard-latest.zip
|
||||
|
||||
sudo unzip kanboard-latest.zip
|
||||
|
||||
sudo chown -R www-data:www-data kanboard/data
|
||||
|
||||
sudo rm kanboard-latest.zip
|
||||
|
||||
|
||||
|
||||
Ubuntu Precise 12.04 LTS[¶](#ubuntu-precise-12-04-lts "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Установите Apache и PHP:
|
||||
|
||||
|
||||
|
||||
sudo apt-get update
|
||||
|
||||
sudo apt-get install -y php5 php5-sqlite php5-mysql php5-pgsql php5-ldap php5-gd php5-json php5-mcrypt unzip
|
||||
|
||||
|
||||
|
||||
Установите Канборд:
|
||||
|
||||
|
||||
|
||||
cd /var/www
|
||||
|
||||
sudo wget https://kanboard.net/kanboard-latest.zip
|
||||
|
||||
sudo unzip kanboard-latest.zip
|
||||
|
||||
sudo chown -R www-data:www-data kanboard/data
|
||||
|
||||
sudo rm kanboard-latest.zip
|
||||
|
||||
|
||||
|
||||
Некоторые возможности Канборда требуют [запуска ежедневных фоновых задач](cronjob.markdown).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
Обновление Канборд до новой версии
|
||||
==================================
|
||||
|
||||
|
||||
Обновление Канборда до новой версии бесшовное. Процесс сводится к тому, что надо просто скопировать каталог с данными из старой версии в новый Канборд. Канборд запустит миграцию баз данных автоматически.
|
||||
|
||||
|
||||
|
||||
Важные замечания перед обновлением[¶](#important-things-to-do-before-updating "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------------------------------
|
||||
|
||||
- Перед обновлением, обязательно сделайте копию ваших данных со старой версии Канборда
|
||||
|
||||
- Всегда следите за [историей изменений](https://github.com/fguillot/kanboard/blob/master/ChangeLog) для отслеживания критических изменений
|
||||
|
||||
- Всегда закрывайте все пользовательские сессии (очищайте все сессии на сервере)
|
||||
|
||||
|
||||
Обновление из архива (стабильная версия)[¶](#from-the-archive-stable-version "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
1. Скачайте и распакуйте архив с новой версией
|
||||
|
||||
2. Скопируйте содержимое каталога с данными старой версии во вновь распакованный каталог
|
||||
|
||||
3. Скопируйте из старой версии Канборда `config.php`, если вы его создавали
|
||||
|
||||
4. Скопируйте плагины, если есть
|
||||
|
||||
5. Убедитесь, что директория `data` имеет права на запись от пользователя веб сервера
|
||||
|
||||
6. Проверьте работу новой версии
|
||||
|
||||
7. Удалите старую версию Канборда
|
||||
|
||||
|
||||
Обновление из репозитория (разрабатываемая версия)[¶](#from-the-repository-development-version "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
1. `git pull`
|
||||
|
||||
2. `composer install --no-dev`
|
||||
|
||||
3. Выполните вход и проверьте, что все работает корректно
|
||||
|
||||
|
||||
**Внимание**: Выполняя обновление из разрабатываемой версии, вы должны понимать, что это нестабильная версия и берете все риски по работе Канборд на себя.
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,193 @@
|
|||
Примеры использования
|
||||
=====================
|
||||
|
||||
|
||||
|
||||
Вы можете настроить вашу доску в соответсвии с вашими бизнес-процессами
|
||||
|
||||
|
||||
|
||||
Разработка программного обеспечения[¶](#software-development "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Заказ
|
||||
|
||||
|
||||
|
||||
- Готов
|
||||
|
||||
|
||||
|
||||
- В работе
|
||||
|
||||
|
||||
|
||||
- Требуется утверждение
|
||||
|
||||
|
||||
|
||||
- Утверждено
|
||||
|
||||
|
||||
|
||||
- Развернуто в продакшн
|
||||
|
||||
|
||||
|
||||
Отслеживание ошибок[¶](#bug-tracking "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Сообщение
|
||||
|
||||
|
||||
|
||||
- Подтверждено
|
||||
|
||||
|
||||
|
||||
- В работе
|
||||
|
||||
|
||||
|
||||
- Проверено
|
||||
|
||||
|
||||
|
||||
- Исправлено
|
||||
|
||||
|
||||
|
||||
Продажи[¶](#sales "Ссылка на этот заголовок")
|
||||
---------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Клиенты
|
||||
|
||||
|
||||
|
||||
- Встречи
|
||||
|
||||
|
||||
|
||||
- Предложения
|
||||
|
||||
|
||||
|
||||
- Приобретение
|
||||
|
||||
|
||||
|
||||
Эффективное управление бизнесом[¶](#lean-business-management "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Идеи
|
||||
|
||||
|
||||
|
||||
- События
|
||||
|
||||
|
||||
|
||||
- Мероприятия
|
||||
|
||||
|
||||
|
||||
- Анализы
|
||||
|
||||
|
||||
|
||||
- Исполненно
|
||||
|
||||
|
||||
|
||||
Подбор персонала[¶](#recruiting-process "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Предложения о работе
|
||||
|
||||
|
||||
|
||||
- Кандидаты
|
||||
|
||||
|
||||
|
||||
- Телефонный отбор
|
||||
|
||||
|
||||
|
||||
- Собеседование
|
||||
|
||||
|
||||
|
||||
- Наем
|
||||
|
||||
|
||||
|
||||
Онлайн магазин[¶](#online-shops "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Заказы
|
||||
|
||||
|
||||
|
||||
- Упаковка
|
||||
|
||||
|
||||
|
||||
- Готов к отправке
|
||||
|
||||
|
||||
|
||||
- Отправлен
|
||||
|
||||
|
||||
|
||||
Производство[¶](#manufactory "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Заказы покупателей
|
||||
|
||||
|
||||
|
||||
- Сборка
|
||||
|
||||
|
||||
|
||||
- Проверка
|
||||
|
||||
|
||||
|
||||
- Упаковка
|
||||
|
||||
|
||||
|
||||
- Готово к отгрузке
|
||||
|
||||
|
||||
|
||||
- Отправлен
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
Управление пользователями
|
||||
=========================
|
||||
|
||||
|
||||
|
||||
Создание нового пользователя[¶](#add-a-new-user "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Только администратор может создавать нового пользователя.
|
||||
|
||||
|
||||
|
||||
1. В выпадающем меню, в правом верхнем углу, выберите **Управление пользователями**
|
||||
|
||||
|
||||
|
||||
2. Вверху имеются ссылки - **Новый локальный пользователь** и **Новый удаленный пользователь**
|
||||
|
||||
|
||||
|
||||
3. При создании пользователя нужно заполнить форму и сохранить
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Форма создания нового пользователя.
|
||||
|
||||
|
||||
|
||||
При создании **Локального пользователя** вы должны, как минимум, заполнить следующие поля:
|
||||
|
||||
|
||||
|
||||
- **Имя пользователя**: это поле является уникальным идентификатором вашего пользователя (логин)
|
||||
|
||||
|
||||
|
||||
- **Пароль**: Пароль пользователя должен иметь минимум 6 символов
|
||||
|
||||
|
||||
|
||||
Для **удаленных пользователей** обязательно только **Имя пользователя**.
|
||||
|
||||
|
||||
|
||||
Редактирование пользователей[¶](#edit-users "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
После перехода в **Управление пользователями**, вам будет доступен список пользователей. Кликните на пользователя в столбце **Имя пользователя**. Далее, вам будет доступно редактирование настроек и профиля пользователя.
|
||||
|
||||
|
||||
|
||||
- Если вы имеете права пользователя, то вы сможете только изменить ваш профиль
|
||||
|
||||
|
||||
|
||||
- Для редактирования любого пользователя вам должны быть назначены права администратора
|
||||
|
||||
|
||||
|
||||
Удаеление пользователей[¶](#remove-users "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
В списке пользователей выберите в колонке **Действия** в выпадающем меню **Удалить**. Эта ссылка доступна только для администраторов.
|
||||
|
||||
|
||||
|
||||
Если вы удалите пользователя, то все задачи назначенные пользователю перестанут быть назначенными.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
Ссылка на пользователя
|
||||
======================
|
||||
|
||||
|
||||
|
||||
В Канборде есть возможность посылать уведомления пользователю, если кто-то ссылается на него в тексте.
|
||||
|
||||
|
||||
|
||||
Если вы хотите заострить внимание о ком-либо в комментарии или в задаче, то вы можете использовать символ @ и следом указать имя пользователя. Канборд автоматически предлагает список пользователей:
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
Рисунок. Ссылка на пользователя.
|
||||
|
||||
|
||||
|
||||
- В данный момент, добавлять ссылку на пользователя можно только в описании задачи и тексте комментария.
|
||||
|
||||
|
||||
|
||||
- Ссылка на пользователя работает только в задачах и при создании комментария.
|
||||
|
||||
|
||||
|
||||
- Для получения уведомления, пользователь, на которого ссылаются, должен быть участником проекта, в котором создается ссылка.
|
||||
|
||||
|
||||
|
||||
- Если была создана ссылка на пользователя, то этот пользователь получит уведомление.
|
||||
|
||||
|
||||
|
||||
- @username - выглядит как ссылка на публичный профиль пользователя.
|
||||
|
||||
|
||||
|
||||
Уведомление посылаются пользователю в соответсвии с пользовательскими настройками: это может быть email, уведомление на веб странице или даже сообщение в Slack/Hipchat/Jabber, если вы установили соответсвующие плагины.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
Типы пользователей
|
||||
==================
|
||||
|
||||
|
||||
|
||||
В Канборде могут быть два типа пользователей:
|
||||
|
||||
|
||||
|
||||
| Тип | Описание |
|
||||
|--------------|-------------------------------------------------------------|
|
||||
| Локальный пользователь | Пароль пользователя хранится в базе данных Канборда|
|
||||
| Удаленный пользователь | Учетные данные пользователя управляются (контролируются) другой системой (например, LDAP сервер). Другими словами, аутентификация пользователя происходит во внешней системе, не в Канборде.|
|
||||
|
||||
|
||||
|
||||
Примеры удаленных пользователей:
|
||||
|
||||
- LDAP пользователь
|
||||
|
||||
- Аутентификация пользователя через реверс-прокси
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
Запуск Канборда с Vagrant
|
||||
=========================
|
||||
|
||||
|
||||
|
||||
Вы можете легко развернуть Канборд с Vagrant:
|
||||
|
||||
|
||||
|
||||
- Склонируйте проект с репозитория git
|
||||
|
||||
|
||||
|
||||
- Выполните `vagrant up`
|
||||
|
||||
|
||||
|
||||
- Для входа в приложение используйте URL `http://localhost:8001/`
|
||||
|
||||
|
||||
|
||||
Виртуальная машина построена на Ubuntu 14.04 с PHP 5.5.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,536 @@
|
|||
Web Hooks
|
||||
=========
|
||||
|
||||
|
||||
|
||||
Webhooks служат для взаимодействия с внешними приложениями. Webhook посылает уведомление стороннему приложению о событиях, которые произошли в Канборд.
|
||||
|
||||
|
||||
|
||||
- Webhooks могут быть использованы для создания задач вызовом простого URL (Вы можете сделать это и при помощи API)
|
||||
|
||||
|
||||
|
||||
- Обращение к внешнему приложению может происходить автоматически, когда наступает какое-либо событие в Канборд (создана задача, обновлен комментарий и т.д.)
|
||||
|
||||
|
||||
|
||||
Как написать webhook приемник во внешнем приложении?[¶](#how-to-write-a-web-hook-receiver "Ссылка на этот заголовок")
|
||||
---------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Все внутренние события в Канборде могут быть посланы во внешний URL.
|
||||
|
||||
|
||||
|
||||
- Webhook URL (url приемник внешнего приложения) может быть задан в **Настройки** -\> **Webhooks** -\> **Webhook URL**
|
||||
|
||||
|
||||
|
||||
- Когда в Канборде происходит событие, Канборд обращается к указанному URL автоматически
|
||||
|
||||
|
||||
|
||||
- Данные конвертируются в формат JSON и передаются с помощью POST HTTP запроса
|
||||
|
||||
|
||||
|
||||
- Webhook ключ передается в составе запроса в виде строкового параметра. Таким образом, вы можете проверить, что запрос на самом деле пришел из Канборда.
|
||||
|
||||
|
||||
|
||||
- **Созданный вами URL должен среагировать в течении 1 секунды**. Это желательно сделать потому, что запросы являются синхронными (ограничения языка PHP) и возможны тормоза в пользовательском интерфейсе, если скрипт будет слишком медленный!
|
||||
|
||||
|
||||
|
||||
### Список поддерживаемых событий[¶](#list-of-supported-events "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
- comment.create (комментарий.создать)
|
||||
|
||||
|
||||
|
||||
- comment.update (комментарий.обновить)
|
||||
|
||||
|
||||
|
||||
- file.create (файл.создать)
|
||||
|
||||
|
||||
|
||||
- task.move.project (задача.переместить.проект)
|
||||
|
||||
|
||||
|
||||
- task.move.column (задача.переместить.колонка)
|
||||
|
||||
|
||||
|
||||
- task.move.position (задача.переместить.место)
|
||||
|
||||
|
||||
|
||||
- task.move.swimlane (задача.переместить.дорожка)
|
||||
|
||||
|
||||
|
||||
- task.update (задача.обновить)
|
||||
|
||||
|
||||
|
||||
- task.create (задача.создать)
|
||||
|
||||
|
||||
|
||||
- task.close (задача.закрыть)
|
||||
|
||||
|
||||
|
||||
- task.open (задача.открыть)
|
||||
|
||||
|
||||
|
||||
- task.assignee\_change (задача.назначить\_изменить)
|
||||
|
||||
|
||||
|
||||
- subtask.update (подзадача.обновить)
|
||||
|
||||
|
||||
|
||||
- subtask.create (подзадача.создать)
|
||||
|
||||
|
||||
|
||||
### Пример HTTP запроса[¶](#example-of-http-request "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
POST https://your_webhook_url/?token=WEBHOOK_TOKEN_HERE
|
||||
|
||||
User-Agent: Kanboard Webhook
|
||||
|
||||
Content-Type: application/json
|
||||
|
||||
Connection: close
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
"event_name": "task.move.column",
|
||||
|
||||
"event_data": {
|
||||
|
||||
"task_id": "1",
|
||||
|
||||
"project_id": "1",
|
||||
|
||||
"position": 1,
|
||||
|
||||
"column_id": "1",
|
||||
|
||||
"swimlane_id": "0",
|
||||
|
||||
"src_column_id": "2",
|
||||
|
||||
"dst_column_id": "1",
|
||||
|
||||
"date_moved": "1431991532",
|
||||
|
||||
"recurrence_status": "0",
|
||||
|
||||
"recurrence_trigger": "0"
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Функциональная часть всех событий имеет следующий формат:
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
"event_name": "model.event_name",
|
||||
|
||||
"event_data": {
|
||||
|
||||
"key1": "value1",
|
||||
|
||||
"key2": "value2",
|
||||
|
||||
...
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Значения `event_data`{.docutils .literal} могут быть неупорядочены в событиях.
|
||||
|
||||
|
||||
|
||||
### Пример функциональной части события[¶](#examples-of-event-payloads "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Создание задачи:
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
"event_name": "task.create",
|
||||
|
||||
"event_data": {
|
||||
|
||||
"title": "Demo",
|
||||
|
||||
"description": "",
|
||||
|
||||
"project_id": "1",
|
||||
|
||||
"owner_id": "1",
|
||||
|
||||
"category_id": 0,
|
||||
|
||||
"swimlane_id": 0,
|
||||
|
||||
"column_id": "2",
|
||||
|
||||
"color_id": "yellow",
|
||||
|
||||
"score": 0,
|
||||
|
||||
"time_estimated": 0,
|
||||
|
||||
"date_due": 0,
|
||||
|
||||
"creator_id": 1,
|
||||
|
||||
"date_creation": 1431991532,
|
||||
|
||||
"date_modification": 1431991532,
|
||||
|
||||
"date_moved": 1431991532,
|
||||
|
||||
"position": 1,
|
||||
|
||||
"task_id": 1
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Изменение задачи:
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
"event_name": "task.update",
|
||||
|
||||
"event_data": {
|
||||
|
||||
"id": "1",
|
||||
|
||||
"title": "Demo",
|
||||
|
||||
"description": "",
|
||||
|
||||
"date_creation": "1431991532",
|
||||
|
||||
"color_id": "yellow",
|
||||
|
||||
"project_id": "1",
|
||||
|
||||
"column_id": "1",
|
||||
|
||||
"owner_id": "1",
|
||||
|
||||
"position": "1",
|
||||
|
||||
"is_active": "1",
|
||||
|
||||
"date_completed": null,
|
||||
|
||||
"score": "0",
|
||||
|
||||
"date_due": "0",
|
||||
|
||||
"category_id": "2",
|
||||
|
||||
"creator_id": "1",
|
||||
|
||||
"date_modification": 1431991603,
|
||||
|
||||
"reference": "",
|
||||
|
||||
"date_started": 1431993600,
|
||||
|
||||
"time_spent": 0,
|
||||
|
||||
"time_estimated": 0,
|
||||
|
||||
"swimlane_id": "0",
|
||||
|
||||
"date_moved": "1431991572",
|
||||
|
||||
"recurrence_status": "0",
|
||||
|
||||
"recurrence_trigger": "0",
|
||||
|
||||
"recurrence_factor": "0",
|
||||
|
||||
"recurrence_timeframe": "0",
|
||||
|
||||
"recurrence_basedate": "0",
|
||||
|
||||
"recurrence_parent": null,
|
||||
|
||||
"recurrence_child": null,
|
||||
|
||||
"task_id": "1",
|
||||
|
||||
"changes": {
|
||||
|
||||
"category_id": "2"
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
События изменеия задачи имеют поле `changes`{.docutils .literal}, которое содержит обновленные значения.
|
||||
|
||||
|
||||
|
||||
Перемещение задачи в другую колонку:
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
"event_name": "task.move.column",
|
||||
|
||||
"event_data": {
|
||||
|
||||
"task_id": "1",
|
||||
|
||||
"project_id": "1",
|
||||
|
||||
"position": 1,
|
||||
|
||||
"column_id": "1",
|
||||
|
||||
"swimlane_id": "0",
|
||||
|
||||
"src_column_id": "2",
|
||||
|
||||
"dst_column_id": "1",
|
||||
|
||||
"date_moved": "1431991532",
|
||||
|
||||
"recurrence_status": "0",
|
||||
|
||||
"recurrence_trigger": "0"
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Перемещение задачи в другое место:
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
"event_name": "task.move.position",
|
||||
|
||||
"event_data": {
|
||||
|
||||
"task_id": "2",
|
||||
|
||||
"project_id": "1",
|
||||
|
||||
"position": 1,
|
||||
|
||||
"column_id": "1",
|
||||
|
||||
"swimlane_id": "0",
|
||||
|
||||
"src_column_id": "1",
|
||||
|
||||
"dst_column_id": "1",
|
||||
|
||||
"date_moved": "1431996905",
|
||||
|
||||
"recurrence_status": "0",
|
||||
|
||||
"recurrence_trigger": "0"
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Создание комментария:
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
"event_name": "comment.create",
|
||||
|
||||
"event_data": {
|
||||
|
||||
"id": 1,
|
||||
|
||||
"task_id": "1",
|
||||
|
||||
"user_id": "1",
|
||||
|
||||
"comment": "test",
|
||||
|
||||
"date_creation": 1431991615
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Изменение комментария:
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
"event_name": "comment.update",
|
||||
|
||||
"event_data": {
|
||||
|
||||
"id": "1",
|
||||
|
||||
"task_id": "1",
|
||||
|
||||
"user_id": "1",
|
||||
|
||||
"comment": "test edit"
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Создание подзадачи:
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
"event_name": "subtask.create",
|
||||
|
||||
"event_data": {
|
||||
|
||||
"id": 3,
|
||||
|
||||
"task_id": "1",
|
||||
|
||||
"title": "Test",
|
||||
|
||||
"user_id": "1",
|
||||
|
||||
"time_estimated": "2",
|
||||
|
||||
"position": 3
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Изменение подзадачи:
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
"event_name": "subtask.update",
|
||||
|
||||
"event_data": {
|
||||
|
||||
"id": "1",
|
||||
|
||||
"status": 1,
|
||||
|
||||
"task_id": "1"
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Загрузка файла:
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
"event_name": "file.create",
|
||||
|
||||
"event_data": {
|
||||
|
||||
"task_id": "1",
|
||||
|
||||
"name": "test.png"
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Создан снимок экрана:
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
"event_name": "file.create",
|
||||
|
||||
"event_data": {
|
||||
|
||||
"task_id": "2",
|
||||
|
||||
"name": "Screenshot taken May 19, 2015 at 10:56 AM"
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
Что такое Kanban?
|
||||
=================
|
||||
|
||||
|
||||
|
||||
Kanban - методология, которая первоначально применила компания Toyota для увеличения производительности. Описание в википедии - [Канбан доска](https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%BD%D0%B1%D0%B0%D0%BD-%D0%B4%D0%BE%D1%81%D0%BA%D0%B0)
|
||||
|
||||
|
||||
|
||||
Смысл Kanban заключается в следующем:
|
||||
|
||||
|
||||
|
||||
- Визуализация рабочих процессов
|
||||
|
||||
|
||||
|
||||
- Уменьшение времени для достижения цели
|
||||
|
||||
|
||||
|
||||
Визуализация рабочих процессов[¶](#visualize-your-workflow "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Ваш рабочий процесс отображается на доске и вы ясно видете картину вашего проекта
|
||||
|
||||
|
||||
|
||||
- Каждая колонка представляет шаг вашего рабочего процесса
|
||||
|
||||
|
||||
|
||||
Сосредоточте внимание и избегайте многозадачности[¶](#bring-focus-and-avoid-multitasking "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Каждая фаза может иметь работу ограниченную временем
|
||||
|
||||
|
||||
|
||||
- Уменьшайте объем для определения узких мест
|
||||
|
||||
|
||||
|
||||
- Ограничте количество одновременно выполняемых задач
|
||||
|
||||
|
||||
|
||||
Подсчет производительности и улучшений[¶](#measure-performance-and-improvement "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Kanban использует время выполнения (lead time) и время цикла (cycle time) для подсчета производительности:
|
||||
|
||||
|
||||
|
||||
- **Время выполнения**: Время между созданием задачи и ее завершением
|
||||
|
||||
|
||||
|
||||
- **Время цикла**: Время между началом выполнения задачи и ее завершением
|
||||
|
||||
|
||||
|
||||
Например, вам заложено время выполнения - 100 дней, а затратили на выполнение задачи (время цикла) всего 1 час.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,253 @@
|
|||
Установка Канборд на Windows Server и Apache
|
||||
============================================
|
||||
|
||||
|
||||
|
||||
Это руководство поможет вам шаг за шагом установить Канборд на Windows Server с Apache и PHP
|
||||
|
||||
|
||||
|
||||
**Внимание**: Если у вас 64 разрядная платформа, то вам нужно выбрать “x64”, и выберите “x86” для 32 разрядной операционной системы.
|
||||
|
||||
|
||||
|
||||
Установка распространяемого пакета Visual C++[¶](#visual-c-redistributable-installation "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
PHP и Apache скомпилированы с Visual Studio, поэтому вам нужно установить эту библиотеку, если вы не сделали это ранее.
|
||||
|
||||
|
||||
|
||||
1. Скачайте библиотеку с [официального вебсайта Microsoft](http://www.microsoft.com/en-us/download/details.aspx?id=30679)
|
||||
|
||||
|
||||
|
||||
2. Запустите установку `vcredist_x64.exe` или `vcredist_x86.exe`, в соответствии с вашей платформой
|
||||
|
||||
|
||||
|
||||
Установка Apache[¶](#apache-installation "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
1. Скачайте исходники Apache с [Apache Lounge](http://www.apachelounge.com/download/)
|
||||
|
||||
|
||||
|
||||
2. Разархивируйте Apache24 в каталог `C:\Apache24`
|
||||
|
||||
|
||||
|
||||
### Назначение имени сервера[¶](#define-the-server-name "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Откройте файл `C:\Apache24\conf\httpd.conf` и добавьте директиву:
|
||||
|
||||
|
||||
|
||||
ServerName localhost
|
||||
|
||||
|
||||
|
||||
### Установка сервиса Apache[¶](#install-the-apache-service "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
Откройте консоль (`cmd.exe`), перейдите в каталог `C:\Apache24\bin` и установите сервис Apache:
|
||||
|
||||
|
||||
|
||||
cd C:\Apache24\bin
|
||||
|
||||
|
||||
|
||||
# Install the windows service
|
||||
|
||||
httpd.exe -k install
|
||||
|
||||
|
||||
|
||||
### Установка ApacheMonitor[¶](#install-apachemonitor "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
- Выполните `C:\Apache24\bin\ApacheMonitor.exe` и добавьте его в автозагрузку.
|
||||
|
||||
|
||||
|
||||
- Теперь во всплывающем меню, при нажатии правой кнопки мыши на иконке, нажмите запустить Apache
|
||||
|
||||
|
||||
|
||||
### Проверка работы Apache[¶](#check-the-apache-installation "Ссылка на этот заголовок")
|
||||
|
||||
|
||||
|
||||
В браузере откройте <http://localhost/>. Вы должны увидеть пустую страницу и текст “It works!”.
|
||||
|
||||
|
||||
|
||||
Установка PHP[¶](#php-installation "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
1. Скачайте последнюю стабильную версию PHP с [официального сайта PHP](http://windows.php.net/download/), выберите версию **Thread Safe** и используйте соответствующую разрядность: x86 or x64.
|
||||
|
||||
|
||||
|
||||
2. Разархивируйте файлы в `C:\php`
|
||||
|
||||
|
||||
|
||||
3. Перейдите в каталог PHP (`C:\php`) и переименуйе файл `php.ini-production` в `php.ini`
|
||||
|
||||
|
||||
|
||||
Отредактируйте `php.ini`:
|
||||
|
||||
|
||||
|
||||
Раскоментируйте директорию расширений:
|
||||
|
||||
|
||||
|
||||
extension_dir = "C:/php/ext"
|
||||
|
||||
|
||||
|
||||
Раскоментируйте следующие модули PHP:
|
||||
|
||||
|
||||
|
||||
extension=php_gd2.dll
|
||||
|
||||
extension=php_ldap.dll
|
||||
|
||||
extension=php_mbstring.dll
|
||||
|
||||
extension=php_openssl.dll
|
||||
|
||||
extension=php_pdo_sqlite.dll
|
||||
|
||||
|
||||
|
||||
Установите часовой пояс:
|
||||
|
||||
|
||||
|
||||
date.timezone = America/Montreal
|
||||
|
||||
|
||||
|
||||
Список всех поддерживаемых часовых поясов можно посмотреть в [документации PHP](http://php.net/manual/en/timezones.america.php).
|
||||
|
||||
|
||||
|
||||
Загрузка модулей PHP для Apache:
|
||||
|
||||
|
||||
|
||||
Добавьте следующие строки конфигурации в файл `C:\Apache24\conf\httpd.conf`:
|
||||
|
||||
|
||||
|
||||
LoadModule php5_module "c:/php/php5apache2_4.dll"
|
||||
|
||||
AddHandler application/x-httpd-php .php
|
||||
|
||||
|
||||
|
||||
# configure the path to php.ini
|
||||
|
||||
PHPIniDir "C:/php"
|
||||
|
||||
|
||||
|
||||
# change this directive
|
||||
|
||||
DirectoryIndex index.php index.html
|
||||
|
||||
|
||||
|
||||
Перезапустите Apache.
|
||||
|
||||
|
||||
|
||||
Проверка работы PHP:
|
||||
|
||||
|
||||
|
||||
Создайте файл `phpinfo.php` в каталоге `C:\Apache24\htdocs`:
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
phpinfo();
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
Откройте в браузере [http://localhost/phpinfo.php](http://localhost/phpinfo.php) и вы должны увидеть информацию о PHP.
|
||||
|
||||
|
||||
|
||||
Устновка Канборд[¶](#kanboard-installation "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- [Скачайте zip файл](https://kanboard.net/downloads)
|
||||
|
||||
|
||||
|
||||
- Разархивируйте архив в `C:\Apache24\htdocs\kanboard`
|
||||
|
||||
|
||||
|
||||
- Откройте в браузере <http://localhost/kanboard/>. Ура. Теперь вы можете работать в Канборд. Все легко и просто.
|
||||
|
||||
|
||||
|
||||
- Учетная запись и пароль по умолчанию - **admin/admin**
|
||||
|
||||
|
||||
|
||||
Протестировано на[¶](#tested-configuration "Ссылка на этот заголовок")
|
||||
----------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Windows 2008 R2 / Apache 2.4.12 / PHP 5.6.8
|
||||
|
||||
|
||||
|
||||
Примечание[¶](#notes "Ссылка на этот заголовок")
|
||||
------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Некоторые функции Канборда требуют выполнять [запуск ежедневных фоновых задач](cronjob.markdown).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,150 @@
|
|||
Инсталяция Kanboard на Windows 2008/2012 с IIS
|
||||
==============================================
|
||||
|
||||
|
||||
|
||||
Это пошаговое руководство поможет вам установить Канборд на Windows Server с IIS и PHP.
|
||||
|
||||
|
||||
|
||||
Установка PHP[¶](#php-installation "Ссылка на этот заголовок")
|
||||
--------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Установите IIS на ваш Windows сервер (Добавьте новую роль и не забудьте включить CGI/FastCGI)
|
||||
|
||||
|
||||
|
||||
- При инсталяции PHP можете использовать следующую официальную документацию:
|
||||
|
||||
|
||||
|
||||
- [Microsoft IIS 5.1 and IIS 6.0](http://php.net/manual/en/install.windows.iis6.php)
|
||||
|
||||
- [Microsoft IIS 7.0 and later](http://php.net/manual/en/install.windows.iis7.php)
|
||||
|
||||
- [PHP for Windows is available here](http://windows.php.net/download/)
|
||||
|
||||
|
||||
|
||||
Отредактируйте `php.ini`, раскоментируйте эти PHP модули:
|
||||
|
||||
|
||||
|
||||
extension=php_gd2.dll
|
||||
|
||||
extension=php_ldap.dll
|
||||
|
||||
extension=php_mbstring.dll
|
||||
|
||||
extension=php_openssl.dll
|
||||
|
||||
extension=php_pdo_sqlite.dll
|
||||
|
||||
|
||||
|
||||
Установите часовой пояс
|
||||
|
||||
|
||||
|
||||
date.timezone = America/Montreal
|
||||
|
||||
|
||||
|
||||
Список поддерживаемых часовых поясов можно посмотреть в [документации PHP](http://php.net/manual/en/timezones.america.php).
|
||||
|
||||
|
||||
|
||||
Проверьте, что PHP работает корректно:
|
||||
|
||||
|
||||
|
||||
Перейдите в корневой каталог IIS `C:\inetpub\wwwroot` и создайте файл `phpinfo.php`, со следующим содержимым:
|
||||
|
||||
|
||||
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
phpinfo();
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
В браузере откройте страницу `http://localhost/phpinfo.php` и вы должны увидеть текущие настройки PHP. Если вы видите ошибку 500, значит что-то сделано неправильно при установке.
|
||||
|
||||
|
||||
|
||||
Примечание:
|
||||
|
||||
|
||||
|
||||
- Если вы используете PHP \< 5.4, то необходимо включить короткие теги (short tags) в php.ini
|
||||
|
||||
|
||||
|
||||
- Не забудьте включить необходимые php расширения, упомянутые выше
|
||||
|
||||
|
||||
|
||||
- Если вы наблюдаете ошибку “the library MSVCP110.dll is missing”, то возможно вам нужно скачать распространяемый пакет Visual C++ для Visual Studio с сайта Microsoft.
|
||||
|
||||
|
||||
|
||||
Установка Канборд[¶](#kanboard-installation "Ссылка на этот заголовок")
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Скачайте zip файл
|
||||
|
||||
|
||||
|
||||
- Распакуйте архив в `C:\inetpub\wwwroot\kanboard` (например)
|
||||
|
||||
|
||||
|
||||
- Убедитесь, что у пользователя вебсервера IIS имеется доступ на запись на директорию `data`
|
||||
|
||||
|
||||
|
||||
- Откройте веб браузер и используйте Kanboard <http://localhost/kanboard/>
|
||||
|
||||
|
||||
|
||||
- Пользователь и пароль по умолчанию - **admin/admin**
|
||||
|
||||
|
||||
|
||||
Работа Канборд тестировалось на[¶](#tested-configurations "Ссылка на этот заголовок")
|
||||
-------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Windows 2008 R2 Standard Edition / IIS 7.5 / PHP 5.5.16
|
||||
|
||||
- Windows 2012 Standard Edition / IIS 8.5 / PHP 5.3.29
|
||||
|
||||
|
||||
|
||||
Примечание[¶](#notes "Ссылка на этот заголовок")
|
||||
------------------------------------------------
|
||||
|
||||
|
||||
|
||||
- Некоторые возможности Канборда требуют [запуск выполнения ежедневных фоновых задач](cronjob.markdown).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[Русская документация Kanboard](http://kanboard.ru/doc/)
|
||||
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0"?>
|
||||
<configuration>
|
||||
<system.webServer>
|
||||
<defaultDocument>
|
||||
<files>
|
||||
<clear />
|
||||
<add value="index.php" />
|
||||
</files>
|
||||
</defaultDocument>
|
||||
<rewrite>
|
||||
<rules>
|
||||
<rule name="Kanboard URL Rewrite" stopProcessing="true">
|
||||
<match url="^(.*)$" ignoreCase="false" />
|
||||
<conditions logicalGrouping="MatchAll">
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
|
||||
</conditions>
|
||||
<action type="Rewrite" url="index.php" appendQueryString="true" />
|
||||
</rule>
|
||||
</rules>
|
||||
</rewrite>
|
||||
</system.webServer>
|
||||
</configuration>
|
||||
Loading…
Reference in New Issue