meta données pour cette page

Gestionnaire des tâches en todolist

Code source : https://github.com/plankanban/planka

Développé par Maksim Eltyshev

En espérant que ça restera un logiciel simple.


Installation

Voici la procédure d'installation.

Dans un premier lieu, on a besoin de NodeJs, NPM et quelques dépendances système :

curl -sL https://deb.nodesource.com/setup_14.x | bash -
apt-get install -y nodejs postgresql libexif-dev libpng-dev libwebp-dev

On copie le code source en s'y déplaçant dedans :

su - mon-compte-courrant
git clone https://github.com/plankanban/planka.git
cd planka

On génère un numéro au hasard pour rendre l'instance unique:

openssl rand -hex 64

Qui devrait ressembler à ceci:

 45f560c2d477e445f560c2d477e4d377eb34c149de65afad1964c42527b3f8d6c87999fb4eb61b4b3648bb1dd6e60284a68d1de6ba056d3c4350c60f344d9e868e8a93643e0f3dd377eb34c149de65afad1964c42527b3f8d6c87999fb4eb61b4b3648bb1dd6e60284a68d1de6ba056d3c4350c60f344d9e868e8a93643e0f3d

On renseigne ensuite dans le fichier suivant les informations concernant l'URL de base (BASE_URL), la clé secrête (SECRET_KEY) et l'url de la base de donné (DATABASE_URL) avec le bon mot de passe :

cat .env
TZ=UTC
BASE_URL=https://todo.autarcie.org
DATABASE_URL=postgresql://planka:$MDP-COMPTE-POSTGRES@localhost:5432/planka
SECRET_KEY=$OUTPUT_OF_OPENSSL_RAND

On installe les dépendances node et on construit l'application :

npm install npm@latest nodemon
npm install --prod --prefix server
npm install --prefix client
npm run build --prefix client

On copie les ressources dans le dossier parent :

cp -r server/* .
cp -r server/.* .
cp -r client/build/* public/
cp client/build/index.html  views/

On créer le compte et la base de donnée sur postgresql :

su - postgres -c "createuser -P planka"
su - postgres -c "createdb -O planka planka"

On indique que l'on souhaite que le compte puisse s'authentifier par mot de passe en y ajoutant la seconde ligne:

vim /etc/postgresql/11/main/pg_hba.conf
local   planka        planka                                password

Si la syntaxe est correcte, alors on recharge la configuration:

systemctl reload postgresql

On augmente les privilèges sur sa propre base:

su - postgres -c "psql -U planka -W"
GRANT ALL PRIVILEGES ON DATABASE planka TO planka;

Il reste à importer en base la structure et quelques informations:

node db/init.js

On peut enfin lancer l'application :

 REACT_APP_SERVER_BASE_URL=https://todo.autarcie.org NODE_ENV=production npm start --prod

Il reste plus qu'a mettre un service web (nginx, apache, haproxy, …) devant pour qu'il soit accéssible sur le port 80. Notons qu'une mise en place d'une unité systemd serait également le bienvenu pour faciliter les redémarrages.

Problèmes

  • Changer le mot de passe d'un compte utilisateur :

Il y a besoin de htpassword soit du paquet suivant :

apt install apache2-utils
MDP="mon-mot-de-passe"
htpasswd -bnBC 10 "" $MDP | tr -d ':\n' |sed 's/$2y/$2b/'

Il reste plus qu'a se connecter à la bonne base :

psql -l
psql -U planka
> \d
> \d user_account
> select name,username,email,password from user_account;
> update user_account set password = 'MDP' where email='mon@compte.mail';