summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/analytics.markdown7
-rw-r--r--doc/api-user-procedures.markdown42
-rw-r--r--doc/centos-installation.markdown2
-rw-r--r--doc/cli.markdown27
-rw-r--r--doc/config.markdown28
-rw-r--r--doc/cronjob.markdown32
-rw-r--r--doc/debian-installation.markdown2
-rw-r--r--doc/freebsd-installation.markdown7
-rw-r--r--doc/github-authentication.markdown80
-rw-r--r--doc/gitlab-authentication.markdown83
-rw-r--r--doc/google-authentication.markdown64
-rw-r--r--doc/heroku.markdown4
-rw-r--r--doc/index.markdown4
-rw-r--r--doc/installation.markdown5
-rw-r--r--doc/nice-urls.markdown34
-rw-r--r--doc/plugin-external-link.markdown78
-rw-r--r--doc/plugin-hooks.markdown20
-rw-r--r--doc/plugins.markdown1
-rw-r--r--doc/ubuntu-installation.markdown2
-rw-r--r--doc/windows-apache-installation.markdown5
-rw-r--r--doc/windows-iis-installation.markdown6
21 files changed, 253 insertions, 280 deletions
diff --git a/doc/analytics.markdown b/doc/analytics.markdown
index 13657b56..d72fc383 100644
--- a/doc/analytics.markdown
+++ b/doc/analytics.markdown
@@ -62,9 +62,4 @@ This chart show the average lead and cycle time for the last 1000 tasks over tim
Those metrics are calculated and recorded every day for the whole project.
-Don't forget to run the daily job for statistics calculation
--------------------------------------------------------
-
-To generate accurate analytic data, you should run the daily cronjob **project daily statistics**.
-
-[Read the documentation of Kanboard CLI](cli.markdown)
+Note: Don't forget to run the [daily cronjob](cronjob.markdown) to have accurate statistics.
diff --git a/doc/api-user-procedures.markdown b/doc/api-user-procedures.markdown
index 6ecf12c6..9b43e1e1 100644
--- a/doc/api-user-procedures.markdown
+++ b/doc/api-user-procedures.markdown
@@ -113,6 +113,48 @@ Response example:
}
```
+## getUserByName
+
+- Purpose: **Get user information**
+- Parameters:
+ - **username** (string, required)
+- Result on success: **user properties**
+- Result on failure: **null**
+
+Request example:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "method": "getUserByName",
+ "id": 1769674782,
+ "params": {
+ "username": "biloute"
+ }
+}
+```
+
+Response example:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1769674782,
+ "result": {
+ "id": "1",
+ "username": "biloute",
+ "password": "$2y$10$dRs6pPoBu935RpmsrhmbjevJH5MgZ7Kr9QrnVINwwyZ3.MOwqg.0m",
+ "role": "app-user",
+ "is_ldap_user": "0",
+ "name": "",
+ "email": "",
+ "google_id": null,
+ "github_id": null,
+ "notifications_enabled": "0"
+ }
+}
+```
+
## getAllUsers
- Purpose: **Get all available users**
diff --git a/doc/centos-installation.markdown b/doc/centos-installation.markdown
index d0fd6a00..576119b4 100644
--- a/doc/centos-installation.markdown
+++ b/doc/centos-installation.markdown
@@ -1,6 +1,8 @@
Centos Installation
===================
+Note: Some features of Kanboard require that you run [a daily background job](cronjob.markdown).
+
Centos 7
--------
diff --git a/doc/cli.markdown b/doc/cli.markdown
index bcb478dd..9334d84b 100644
--- a/doc/cli.markdown
+++ b/doc/cli.markdown
@@ -4,7 +4,7 @@ Command Line Interface
Kanboard provides a simple command line interface that can be used from any Unix terminal.
This tool can be used only on the local machine.
-This feature is useful to run commands outside the web server process by example running a huge report.
+This feature is useful to run commands outside of the web server processes.
Usage
-----
@@ -28,6 +28,7 @@ Options:
-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
@@ -42,6 +43,8 @@ Available commands:
notification:overdue-tasks Send notifications for overdue tasks
projects
projects:daily-stats Calculate daily statistics for all projects
+ trigger
+ trigger:tasks Trigger scheduler event for all tasks
```
Available commands
@@ -116,7 +119,7 @@ Emails will be sent to all users with notifications enabled.
You can also display the overdue tasks with the flag `--show`:
```bash
-$ ./kanboard notification:overdue-tasks --show
+./kanboard notification:overdue-tasks --show
+-----+---------+------------+------------+--------------+----------+
| Id | Title | Due date | Project Id | Project name | Assignee |
+-----+---------+------------+------------+--------------+----------+
@@ -125,20 +128,22 @@ $ ./kanboard notification:overdue-tasks --show
+-----+---------+------------+------------+--------------+----------+
```
-Cronjob example:
-
-```bash
-# Everyday at 8am we check for due tasks
-0 8 * * * cd /path/to/kanboard && ./kanboard notification:overdue-tasks >/dev/null 2>&1
-```
-
### Run daily project stats calculation
-You can add a background task to calculate the project statistics every day:
+This command calculate the statistics of each project:
```bash
-$ ./kanboard projects:daily-stats
+./kanboard projects:daily-stats
Run calculation for Project #0
Run calculation for Project #1
Run calculation for Project #10
```
+
+### Trigger for tasks
+
+This command send a "daily cronjob event" to all open tasks of each project.
+
+```bash
+./kanboard trigger:tasks
+Trigger task event: project_id=2, nb_tasks=1
+```
diff --git a/doc/config.markdown b/doc/config.markdown
index 393efbae..92ff2217 100644
--- a/doc/config.markdown
+++ b/doc/config.markdown
@@ -174,34 +174,6 @@ define('LDAP_GROUP_FILTER', '');
define('LDAP_GROUP_ATTRIBUTE_NAME', 'cn');
```
-Google Authentication settings
-------------------------------
-
-```php
-// Enable/disable Google authentication
-define('GOOGLE_AUTH', false);
-
-// Google client id (Get this value from the Google developer console)
-define('GOOGLE_CLIENT_ID', '');
-
-// Google client secret key (Get this value from the Google developer console)
-define('GOOGLE_CLIENT_SECRET', '');
-```
-
-Github Authentication settings
-------------------------------
-
-```php
-// Enable/disable GitHub authentication
-define('GITHUB_AUTH', false);
-
-// GitHub client id (Copy it from your settings -> Applications -> Developer applications)
-define('GITHUB_CLIENT_ID', '');
-
-// GitHub client secret key (Copy it from your settings -> Applications -> Developer applications)
-define('GITHUB_CLIENT_SECRET', '');
-```
-
Reverse-Proxy Authentication settings
-------------------------------------
diff --git a/doc/cronjob.markdown b/doc/cronjob.markdown
new file mode 100644
index 00000000..32f12888
--- /dev/null
+++ b/doc/cronjob.markdown
@@ -0,0 +1,32 @@
+Background Job Scheduling
+=========================
+
+To work properly, Kanboard requires that a background job run on a daily basis.
+Usually on Unix platforms, this process is done by `cron`.
+
+This background job is necessary for these features:
+
+- Reports and analytics (calculate daily stats of each projects)
+- Send overdue task notifications
+- Execute automatic actions connected to the event "Daily background job for tasks"
+
+Configuration on Unix and Linux platforms
+-----------------------------------------
+
+There are multiple ways to define a cronjob on Unix/Linux operating systems, this example is for Ubuntu 14.04.
+The procedure is similar to other systems.
+
+Edit the crontab of your web server user:
+
+```bash
+sudo crontab -u www-data -e
+```
+
+Example to execute the daily cronjob at 8am:
+
+```bash
+0 8 * * * cd /path/to/kanboard && ./kanboard cronjob >/dev/null 2>&1
+```
+
+Note: the cronjob process must have write access to the database in case you are using Sqlite.
+Usually, running the cronjob under the web server user is enough.
diff --git a/doc/debian-installation.markdown b/doc/debian-installation.markdown
index 147fe452..ec956049 100644
--- a/doc/debian-installation.markdown
+++ b/doc/debian-installation.markdown
@@ -1,6 +1,8 @@
How to install Kanboard on Debian?
==================================
+Note: Some features of Kanboard require that you run [a daily background job](cronjob.markdown).
+
Debian 8 (Jessie)
-----------------
diff --git a/doc/freebsd-installation.markdown b/doc/freebsd-installation.markdown
index 84b35ad8..7b36dff1 100644
--- a/doc/freebsd-installation.markdown
+++ b/doc/freebsd-installation.markdown
@@ -55,7 +55,7 @@ Generally 3 elements have to be installed:
Fetch and extract ports...
```bash
-$ portsnap fetch
+$ portsnap fetch
$ portsnap extract
```
@@ -122,6 +122,7 @@ there is no need to install it manually.
Please note
-----------
-Port is being hosted on [bitbucket](https://bitbucket.org/if0/freebsd-kanboard/). Feel free to comment,
+- Port is being hosted on [bitbucket](https://bitbucket.org/if0/freebsd-kanboard/). Feel free to comment,
fork and suggest updates!
- \ No newline at end of file
+- Some features of Kanboard require that you run [a daily background job](cronjob.markdown).
+
diff --git a/doc/github-authentication.markdown b/doc/github-authentication.markdown
deleted file mode 100644
index ba0f371f..00000000
--- a/doc/github-authentication.markdown
+++ /dev/null
@@ -1,80 +0,0 @@
-Github Authentication
-=====================
-
-Requirements
-------------
-
-OAuth Github API credentials (available in your [Settings > Applications > Developer applications](https://github.com/settings/applications))
-
-How does this work?
--------------------
-
-The Github authentication in Kanboard uses the [OAuth 2.0](http://oauth.net/2/) protocol, so any user of Kanboard can be linked to a Github account.
-
-That means you can use your Github account to login on Kanboard.
-
-How to link a Github account
-----------------------------
-
-1. Go to your user profile
-2. Click on **External accounts**
-3. Click on the link **Link my Github Account**
-4. You are redirected to the **Github Authorize application form**
-5. Authorize Kanboard by clicking on the button **Accept**
-6. Your account is now linked
-
-Now, on the login page you can be authenticated in one click with the link **Login with my Github Account**.
-
-Your name and email are automatically updated from your Github Account if defined.
-
-Installation instructions
--------------------------
-
-### Setting up OAuth 2.0
-
-- On Github, go to the page [Register a new OAuth application](https://github.com/settings/applications/new)
-- Just follow the [official Github documentation](https://developer.github.com/guides/basics-of-authentication/#registering-your-app)
-- In Kanboard, you can get the **callback url** in **Settings > Integrations > Github Authentication**
-
-### Setting up Kanboard
-
-Either create a new `config.php` file or rename the `config.default.php` file and set the following values:
-
-```php
-// Enable/disable Github authentication
-define('GITHUB_AUTH', true);
-
-// Github client id (Copy it from your settings -> Applications -> Developer applications)
-define('GITHUB_CLIENT_ID', 'YOUR_GITHUB_CLIENT_ID');
-
-// Github client secret key (Copy it from your settings -> Applications -> Developer applications)
-define('GITHUB_CLIENT_SECRET', 'YOUR_GITHUB_CLIENT_SECRET');
-```
-
-### Github Entreprise
-
-To use this authentication method with Github Enterprise you have to change the default urls.
-
-Replace these values by your self-hosted instance of Github:
-
-```php
-// Github oauth2 authorize url
-define('GITHUB_OAUTH_AUTHORIZE_URL', 'https://github.com/login/oauth/authorize');
-
-// Github oauth2 token url
-define('GITHUB_OAUTH_TOKEN_URL', 'https://github.com/login/oauth/access_token');
-
-// Github API url (don't forget the slash at the end)
-define('GITHUB_API_URL', 'https://api.github.com/');
-```
-
-Notes
------
-
-Kanboard uses these information from your public Github profile:
-
-- Full name
-- Public email address
-- Github unique id
-
-The Github unique id is used to link the local user account and the Github account.
diff --git a/doc/gitlab-authentication.markdown b/doc/gitlab-authentication.markdown
deleted file mode 100644
index 8d2f0000..00000000
--- a/doc/gitlab-authentication.markdown
+++ /dev/null
@@ -1,83 +0,0 @@
-Gitlab Authentication
-=====================
-
-Requirements
-------------
-
-- Account on [Gitlab.com](https://gitlab.com) or you own self-hosted Gitlab instance
-- Have Kanboard registered as application in Gitlab
-
-How does this work?
--------------------
-
-The Gitlab authentication in Kanboard uses the [OAuth 2.0](http://oauth.net/2/) protocol, so any user of Kanboard can be linked to a Gitlab account.
-
-That means you can use your Gitlab account to login on Kanboard.
-
-How to link a Gitlab account
-----------------------------
-
-1. Go to your user profile
-2. Click on **External accounts**
-3. Click on the link **Link my Gitlab Account**
-4. You are redirected to the **Gitlab authorization form**
-5. Authorize Kanboard by clicking on the button **Accept**
-6. Your account is now linked
-
-Now, on the login page you can be authenticated in one click with the link **Login with my Gitlab Account**.
-
-Your name and email are automatically updated from your Gitlab Account if defined.
-
-Installation instructions
--------------------------
-
-### Setting up OAuth 2.0
-
-- On Gitlab, register a new application by following the [official documentation](http://doc.gitlab.com/ce/integration/oauth_provider.html)
-- In Kanboard, you can get the **callback url** in **Settings > Integrations > Gitlab Authentication**, just copy and paste the url
-
-### Setting up Kanboard
-
-Either create a new `config.php` file or rename the `config.default.php` file and set the following values:
-
-```php
-// Enable/disable Gitlab authentication
-define('GITLAB_AUTH', true);
-
-// Gitlab application id
-define('GITLAB_CLIENT_ID', 'YOUR_APPLICATION_ID');
-
-// Gitlab application secret
-define('GITLAB_CLIENT_SECRET', 'YOUR_APPLICATION_SECRET');
-```
-
-### Custom endpoints for self-hosted Gitlab
-
-Change these default values if you use a self-hosted instance of Gitlab:
-
-```php
-// Gitlab oauth2 authorize url
-define('GITLAB_OAUTH_AUTHORIZE_URL', 'https://gitlab.com/oauth/authorize');
-
-// Gitlab oauth2 token url
-define('GITLAB_OAUTH_TOKEN_URL', 'https://gitlab.com/oauth/token');
-
-// Gitlab API url endpoint (don't forget the slash at the end)
-define('GITLAB_API_URL', 'https://gitlab.com/api/v3/');
-```
-
-Notes
------
-
-Kanboard uses these information from your Gitlab profile:
-
-- Full name
-- Email address
-- Gitlab unique id
-
-The Gitlab unique id is used to link the local user account and the Gitlab account.
-
-Known issues
-------------
-
-Gitlab OAuth will work only with url rewrite enabled. At the moment, Gitlab doesn't support callback url with query string parameters. See [Gitlab issue](https://gitlab.com/gitlab-org/gitlab-ce/issues/2443)
diff --git a/doc/google-authentication.markdown b/doc/google-authentication.markdown
deleted file mode 100644
index 0f4f3ec1..00000000
--- a/doc/google-authentication.markdown
+++ /dev/null
@@ -1,64 +0,0 @@
-Google Authentication
-=====================
-
-Requirements
-------------
-
-OAuth Google API credentials (available in the Google Developer Console)
-
-How does this work?
--------------------
-
-- The Google authentication in Kanboard use the OAuth 2.0 protocol
-- Any user account in Kanboard can be linked to a Google Account
-- When a Kanboard user account is linked to Google, you can login with one click
-
-Procedure to link a Google Account
-----------------------------------
-
-1. Go to your user profile
-2. Click on **External accounts**
-3. Click on the link **Link my Google Account**
-4. You are redirected to the **Google Consent screen**
-5. Authorize Kanboard by clicking on the button **Accept**
-6. Your account is now linked
-
-Now, on the login page you can be authenticated in one click with the link **Login with my Google Account**.
-
-Your name and email are automatically updated from your Google Account.
-
-Installation instructions
--------------------------
-
-### Setting up OAuth 2.0 in Google Developer Console
-
-- Follow the [official Google documentation](https://developers.google.com/accounts/docs/OAuth2Login#appsetup) to create a new application
-- In Kanboard, you can get the **redirect url** in **Settings > Integrations > Google Authentication**
-
-### Setting up Kanboad
-
-Create a custom `config.php` file or copy the `config.default.php` file:
-
-```php
-<?php
-
-// Enable/disable Google authentication
-define('GOOGLE_AUTH', true); // Set this value to true
-
-// Google client id (Get this value from the Google developer console)
-define('GOOGLE_CLIENT_ID', 'YOUR_CLIENT_ID');
-
-// Google client secret key (Get this value from the Google developer console)
-define('GOOGLE_CLIENT_SECRET', 'YOUR_CLIENT_SECRET');
-```
-
-Notes
------
-
-Kanboard use these information from your Google profile:
-
-- Full name
-- Email address
-- Google unique id
-
-The Google unique id is used to link together the local user account and the Google account.
diff --git a/doc/heroku.markdown b/doc/heroku.markdown
index 56d79bc9..f145f70e 100644
--- a/doc/heroku.markdown
+++ b/doc/heroku.markdown
@@ -35,5 +35,5 @@ heroku open
Limitations
-----------
-The storage of Heroku is ephemeral, that means uploaded files through Kanboard are not persistent after a reboot.
-We may want to install a plugin to store your files in a cloud storage provider like [Amazon S3](https://github.com/kanboard/plugin-s3).
+- The storage of Heroku is ephemeral, that means uploaded files through Kanboard are not persistent after a reboot. You may want to install a plugin to store your files in a cloud storage provider like [Amazon S3](https://github.com/kanboard/plugin-s3).
+- Some features of Kanboard require that you run [a daily background job](cronjob.markdown).
diff --git a/doc/index.markdown b/doc/index.markdown
index 1e95fe06..be1baa16 100644
--- a/doc/index.markdown
+++ b/doc/index.markdown
@@ -103,6 +103,7 @@ Technical details
### Configuration
- [Config file](config.markdown)
+- [Background tasks](cronjob.markdown)
- [Email configuration](email-configuration.markdown)
- [URL rewriting](nice-urls.markdown)
@@ -117,9 +118,6 @@ Technical details
- [LDAP authentication](ldap-authentication.markdown)
- [LDAP group synchronization](ldap-group-sync.markdown)
- [LDAP parameters](ldap-parameters.markdown)
-- [Google authentication](google-authentication.markdown)
-- [Github authentication](github-authentication.markdown)
-- [Gitlab authentication](gitlab-authentication.markdown)
- [Reverse proxy authentication](reverse-proxy-authentication.markdown)
### Contributors
diff --git a/doc/installation.markdown b/doc/installation.markdown
index b208be8a..dd4283f8 100644
--- a/doc/installation.markdown
+++ b/doc/installation.markdown
@@ -39,3 +39,8 @@ Security
- Don't forget to change the default user/password
- Don't allow everybody to access to the directory `data` from the URL. There is already a `.htaccess` for Apache but nothing for Nginx.
+
+Notes
+-----
+
+- Some features of Kanboard require that you run [a daily background job](cronjob.markdown)
diff --git a/doc/nice-urls.markdown b/doc/nice-urls.markdown
index 7cb8dbac..9fbb3510 100644
--- a/doc/nice-urls.markdown
+++ b/doc/nice-urls.markdown
@@ -86,3 +86,37 @@ define('ENABLE_URL_REWRITE', true);
```
Adapt the example above according to your own configuration.
+
+IIS configuration example
+---------------------------
+
+Create a web.config in you installation folder:
+
+```xml
+<?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>
+
+```
+
+In your Kanboard `config.php`:
+
+```php
+define('ENABLE_URL_REWRITE', true);
+```
+
+Adapt the example above according to your own configuration.
+
diff --git a/doc/plugin-external-link.markdown b/doc/plugin-external-link.markdown
new file mode 100644
index 00000000..36252aff
--- /dev/null
+++ b/doc/plugin-external-link.markdown
@@ -0,0 +1,78 @@
+External Link Providers
+=======================
+
+This functionality allows you to link a task to additional items stored on another system.
+
+For example, you can link a task to:
+
+- Traditional web page
+- Attachment (PDF documents stored on the web, archive...)
+- Any ticketing system (bug tracker, customer support ticket...)
+
+Each item has a type, a URL, a dependency type and a title.
+
+By default, Kanboard includes two kinds of providers:
+
+- Web Link: You copy and paste a link and Kanboard will fetch the page title automatically
+- Attachment: Link to anything that is not a web page
+
+Workflow
+--------
+
+1. The end-user copy and paste the URL to the form and submit
+2. If the link type is "auto", Kanboard will loop through all providers registered until there is a match
+3. Then, the link provider returns a object that implements the interface `ExternalLinkInterface`
+4. A form is shown to the user with all pre-filled data before to save the link
+
+Interfaces
+----------
+
+To implement a new link provider from a plugin, you need to create 2 classes that implement those interfaces:
+
+- `Kanboard\Core\ExternalLink\ExternalLinkProviderInterface`
+- `Kanboard\Core\ExternalLink\ExternalLinkInterface`
+
+### ExternalLinkProviderInterface
+
+| Method | Usage |
+|----------------------------|-----------------------------------------------------------------|
+| `getName()` | Get provider name (label) |
+| `getType()` | Get link type (will be saved in the database) |
+| `getDependencies()` | Get a dictionary of supported dependency types by the provider |
+| `setUserTextInput($input)` | Set text entered by the user |
+| `match()` | Return true if the provider can parse correctly the user input |
+| `getLink()` | Get the link found with the properties |
+
+### ExternalLinkInterface
+
+| Method | Usage |
+|-------------------|------------------|
+| `getTitle()` | Get link title |
+| `getUrl()` | Get link URL |
+| `setUrl($url)` | Set link URL |
+
+Register a new link provider
+----------------------------
+
+In your `Plugin.php`, just call the method `register()` from the object `ExternalLinkManager`:
+
+```php
+<?php
+
+namespace Kanboard\Plugin\MyExternalLink;
+
+use Kanboard\Core\Plugin\Base;
+
+class Plugin extends Base
+{
+ public function initialize()
+ {
+ $this->externalLinkManager->register(new MyLinkProvider());
+ }
+}
+```
+
+Examples
+--------
+
+- Kanboard includes the default providers "WebLink" and "Attachment"
diff --git a/doc/plugin-hooks.markdown b/doc/plugin-hooks.markdown
index 6e9718d9..eac027c2 100644
--- a/doc/plugin-hooks.markdown
+++ b/doc/plugin-hooks.markdown
@@ -58,8 +58,28 @@ class Plugin extends Base
}
```
+Example to override default values for task forms:
+
+```php
+class Plugin extends Base
+{
+ public function initialize()
+ {
+ $this->hook->on('controller:task:form:default', function (array $default_values) {
+ return empty($default_values['score']) ? array('score' => 4) : array();
+ });
+ }
+}
+```
+
List of merging hooks:
+#### controller:task:form:default
+
+- Override default values for task forms
+- Arguments:
+ - `$default_values`: actual default values (array)
+
#### controller:calendar:project:events
- Add more events to the project calendar
diff --git a/doc/plugins.markdown b/doc/plugins.markdown
index f3f922f3..55575612 100644
--- a/doc/plugins.markdown
+++ b/doc/plugins.markdown
@@ -21,6 +21,7 @@ Plugin creators should specify explicitly the compatible versions of Kanboard. I
- [Authentication plugin registration](plugin-authentication.markdown)
- [Authorization Architecture](plugin-authorization-architecture.markdown)
- [Custom Group Providers](plugin-group-provider.markdown)
+- [External Link Providers](plugin-external-link.markdown)
- [LDAP client](plugin-ldap-client.markdown)
Examples of plugins
diff --git a/doc/ubuntu-installation.markdown b/doc/ubuntu-installation.markdown
index cec3ebba..ab4dfe7c 100644
--- a/doc/ubuntu-installation.markdown
+++ b/doc/ubuntu-installation.markdown
@@ -26,3 +26,5 @@ sudo unzip kanboard-latest.zip
sudo chown -R www-data:www-data kanboard/data
sudo rm kanboard-latest.zip
```
+
+Some features of Kanboard require that you run [a daily background job](cronjob.markdown).
diff --git a/doc/windows-apache-installation.markdown b/doc/windows-apache-installation.markdown
index 2c8f74e1..27b6812e 100644
--- a/doc/windows-apache-installation.markdown
+++ b/doc/windows-apache-installation.markdown
@@ -123,3 +123,8 @@ Tested configuration
--------------------
- Windows 2008 R2 / Apache 2.4.12 / PHP 5.6.8
+
+Notes
+-----
+
+- Some features of Kanboard require that you run [a daily background job](cronjob.markdown).
diff --git a/doc/windows-iis-installation.markdown b/doc/windows-iis-installation.markdown
index 6206db21..bd4607de 100644
--- a/doc/windows-iis-installation.markdown
+++ b/doc/windows-iis-installation.markdown
@@ -65,3 +65,9 @@ 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
+-----
+
+- Some features of Kanboard require that you run [a daily background job](cronjob.markdown).
+