# Kanboard

__The lightweigth kanban project manager__

## Link to documentation

[Official Kanboard documentation](https://docs.kanboard.org/en/1.2.10/index.html)

## Installation

Use script `install-kanboard` in the folder `Install` in this repository.

## Setup GUI

### Website domain

In _Settings/Application Settings_.

## Plugins

### Install

Go to the plugins settings (you should be logged as an admin).

### Useful plugins

[GitHub authentication](https://github.com/kanboard/plugin-github-auth)

[Gogs webhook](https://github.com/kanboard/plugin-gogs-webhook)

[Mattermost notification](https://github.com/kanboard/plugin-mattermost)

[Zulip notifications](https://github.com/ptr0x01/kanboard-plugin-zulip)

[Signal notification](https://github.com/stratmaster/kanboard-plugin-signal)

[SMS two factor authentication](https://github.com/kanboard/plugin-sms-2fa)

## Setup GitHub authentication

### Install plugin

First install the GitHub authentification plugin.

### Create the application on GitHub

With your _admin_ user account, connect to Kanboard and go to _Settings > Integration_. You should see the GitHub authentication panel with the _Github OAuth callback URL_ already completed.

Now, open a new tab and connect to your GitHub account. Then you have to [register your application to GitHub](https://github.com/settings/applications/new). Fill in the form, and do not forget to put the _Authorization callback URL_ retrieved in Kanboard. Now valid the application creation by clicking on _Register application_.

Now, you have been redirected to another GitHub page with the message _Application successfully created_. You have now access to the _client id_ and the _client secret_. Copy paste these two strings in your first tab, inside the GitHub authentication panel in Kanboard.

Now, your application is registered.

### Create a new user

You can now create remote user accounts to allow your team members to connect with their own GitHub account. Please replace the example user name _DricomDragon_ by the username you want to add.

In Kanboard, go to _Settings > User Management_ and click on _Create a new user_. Type _DricomDragon_ in the username field and check the box _Remote user_. Click on _Save_.

Then, click on the newly created user. In the left side panel, in the _Actions_ category, click on _Edit authentication_. You should see a Github Id field. You have to put the GitHub id yourself. To do so, use the GitHub API [https://api.github.com/users/DricomDragon](https://api.github.com/users/DricomDragon). Put the _id_ in the _GitHub Id_ field. Click on _Save_.

Congratulations ! This user can now connect to Kanboard using his own GitHub account.

### Connect with a GitHub account

In the login page, instead of using the login form, hit the _Login with my GitHub Account_. The first time, the user should give the authorization to the Kanboard application to access public data. The next time, the user will only need to click the link and will be automatically redirected to Kanboard dashboard.

Beware, sometimes Kanboard can fail. Try again, it should work. ^\_^'

## Migrate

New version or new host.

### PostgreSQL

Install Kanboard with the install script. Do not forget to install the database.

Delete the kanboard database with `sudo -u postgres psql -c 'DROP DATABASE kanboard_db'`.

Export the database on the previous version `sudo -u postgres pg_dump kanboard_db > kanboard_db_file`.

Copy the created file on the new host if needed.

Restore the database with `sudo -u postgres createdb -T template0 kanboard_db`.
Then restore the database with `sudo -u postgres psql --single-transaction kanboard_db < kanboard_db_file`.

NOTICE : a bug was encountered while migrating from 10.10 to 9.6.13. If you get the error about `SEQUENCE ... AS integer`, you simply have to remove every `AS integer` occurrence in the `kanboard_db_file`.

### Data

Zip the folder data in `/www/html/kanboard-1.2.10` with the command `zip -r kanboard_data /var/www/html/kanboard-1.2.10/data`.

Copy the zip file to the new host.

Unzip the file : `unzip kanboard_data.zip`

Move the files : `sudo cp -r var/www/html/kanboard-1.2.10/data/ /var/www/kanboard-1.2.11/`

Change the ownership of the files : `sudo chown -R www-data:www-data data`

Note : _Are avatars now ok ? The first time it didn't work, maybe because the application was launched before complete migration. Or maybe id change._

### Plugins

You have to manually reinstall your plugins.
