Comment installer Wekan (Open Source Kanban) sur Ubuntu 16.04

Wekan est un tableau kanban construit avec le framework JavaScript Meteor. Il est considéré comme une alternative open source et auto-hébergée à Trello, offrant presque les mêmes fonctionnalités. Il vous permet de créer des listes de gestion "à faire" basées sur des cartes. Wekan est très utile pour augmenter la productivité lorsque vous travaillez dans un environnement collaboratif. Wekan possède une interface Web entièrement réactive et il est activement traduit dans de nombreuses langues.

Conditions préalables

Pour ce didacticiel, nous utiliserons wekan.example.comle nom de domaine pointé vers l'instance Vultr. Veuillez vous assurer de remplacer toutes les occurrences de l'exemple de nom de domaine par celui réel.

Mettez à jour votre système de base à l'aide du guide Comment mettre à jour Ubuntu 16.04 . Une fois votre système mis à jour, procédez à l'installation des dépendances.

Installez Node.js

Wekan ne supporte que Node.js LTS version 4.8. Pour installer Node.js, nous utiliserons le gestionnaire de version de nœud. Installez nvmen exécutant le script d'installation.

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash

Pour commencer immédiatement à utiliser nvm, exécutez ceci.

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

Si l' nvminstallation a réussi, vous devriez pouvoir vérifier sa version.

user@vultr:~$ nvm --version
0.33.4

Installez Node.js.

nvm install v4.8

Définissez la version par défaut de Node.js.

nvm use node

Si Node.js a été installé avec succès, vous devriez pouvoir vérifier sa version.

node -v

Vous verrez cette sortie.

user@vultr:~$ node -v
v4.8.4

NVM installe Node.js pour l'utilisateur actuel uniquement. Pour que Node.js soit accessible globalement, exécutez ceci.

n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr

Node.js est désormais disponible en tant que /usr/bin/node.

user@vultr:~$ sudo which node
/usr/bin/node

Installer MongoDB

MongoDB est un serveur de base de données NoSQL gratuit et open source. Contrairement aux bases de données traditionnelles qui utilisent des tables pour organiser leurs données, MongoDB est orienté document et utilise des documents de type JSON sans schémas. Wekan utilise MongoDB pour stocker ses données.

Wekan n'est compatible qu'avec MongoDB version 3.2. Créez un nouveau fichier de référentiel.

echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

Importez la clé GPG publique de MongoDB et mettez à jour la liste des packages.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
sudo apt update

Installez MongoDB.

sudo apt install -y mongodb-org

Démarrez MongoDB et activez-le pour démarrer automatiquement.

sudo systemctl start mongod
sudo systemctl enable mongod

Sécuriser l'instance MongoDB

Par défaut, aucune authentification n'est activée sur un serveur MongoDB. Tout utilisateur ayant accès au terminal du serveur aura tous les privilèges sur l'installation de MongoDB. Pour sécuriser le serveur de base de données et restreindre l'accès d'un utilisateur non privilégié, nous devrons configurer une authentification sur le serveur.

MongoDB fournit un mongoshell qui est utilisé pour exécuter des requêtes sur MongoDB. Basculez vers le mongoshell.

mongo

Créez un nouvel utilisateur MongoDB avec des privilèges root. Vous pouvez utiliser n'importe quel nom d'utilisateur de votre choix. Veuillez vous assurer de remplacer le mot de passe .

db.createUser(
  {
    user: "admin",
    pwd: "StrongAdminPassword",
    roles: [ { role: "root", db: "admin" } ]
  }
)

Vous devriez voir la sortie suivante.

user@vultr:~$ mongo
MongoDB shell version: 3.2.17
connecting to: test
Welcome to the MongoDB shell.

...

2017-09-30T18:11:40.274+0000 I CONTROL  [initandlisten]
> db.createUser(
...   {
...     user: "admin",
...     pwd: "StrongAdminPassword",
...     roles: [ { role: "root", db: "admin" } ]
...   }
... )
Successfully added user: {
        "user" : "admin",
        "roles" : [
                {
                        "role" : "root",
                        "db" : "admin"
                }
        ]
}

Quittez l'interface de commande MongoDB vers le terminal Linux en appuyant sur " Ctrl+C".

Modifiez le fichier de configuration MongoDB.

sudo nano /etc/mongod.conf

Ajoutez la ligne suivante à la fin du fichier.

security:
 authorization: enabled

Redémarrez MongoDB pour que le changement de configuration puisse prendre effet.

sudo systemctl restart mongod

Maintenant que la sécurité a été activée, vous pouvez tester si elle fonctionne en basculant à nouveau vers le shell mongo à l'aide de la mongocommande. Cette fois, si vous exécutez une requête, comme show dbspour afficher la liste des bases de données, vous verrez un message signalant l'échec de l'autorisation. Revenez à l' sudoutilisateur après avoir testé la connexion en tant que nouvel utilisateur que vous venez de créer.

Connectez-vous en tant administratorqu'utilisateur que vous venez de créer.

mongo -u admin -p

Fournissez le mot de passe de l'utilisateur pour une connexion réussie. Créez un nouvel utilisateur pour la wekanbase de données qui sera utilisée pour stocker les données Wekan.

use wekan
db.createUser(
    {
      user: "wekan",
      pwd: "StrongPassword",
      roles: ["readWrite"]
    }
 ) 

Assurez-vous de remplacer le StrongPasswordpar un mot de passe fort. Vous verrez la sortie suivante.

user@vultr:~$ mongo -u admin -p
MongoDB shell version: 3.2.17
Enter password:
connecting to: test

...

2017-09-30T18:13:26.007+0000 I CONTROL  [initandlisten]
>
> use wekan
switched to db wekan
> db.createUser(
...     {
...       user: "wekan",
...       pwd: "StrongPassword",
...       roles: ["readWrite"]
...     }
...  )
Successfully added user: { "user" : "wekan", "roles" : [ "readWrite" ] }

Installer Wekan

Vérifiez le dernier lien vers la version Wekan sur Github car les nouvelles versions sont très fréquentes. Téléchargez la dernière version de Wekan depuis Github en remplaçant le lien vers le package d'installation.

cd ~
wget https://github.com/wekan/wekan/releases/download/v0.44/wekan-0.44.tar.gz

Extrayez l'archive téléchargée dans un nouveau répertoire nommé wekan.

mkdir wekan
tar xzvf wekan-*.tar.gz -C wekan

Installez les dépendances Node.js.

cd wekan/bundle/programs/server && npm install

Le serveur Wekan lit les configurations à partir des variables d'environnement. Exécutez les commandes suivantes pour définir les configurations en tant que variables d'environnement.

export MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
export ROOT_URL='http://wekan.example.com'
export MAIL_URL='smtp://user:[email protected]:25/'
export MAIL_FROM='[email protected]'
export PORT=4000

Assurez-vous de remplacer le mot de passe MongoDB pour l' wekanutilisateur que vous avez créé. Mettez également à jour l'URL de messagerie en fonction des paramètres de votre serveur SMTP. Si vous n'avez pas de serveur de messagerie prêt, vous pouvez toujours modifier cette configuration ultérieurement.

Pour démarrer immédiatement l'application.

cd ~/wekan/bundle
node main.js

Vous pouvez maintenant accéder à l'application en allant sur http://wekan.example.com:4000. Vous verrez l'interface pour vous connecter au tableau kanban Wekan.

Pour une utilisation en production, il est recommandé de configurer un proxy inverse pour servir l'application sur le HTTPport standard et un systemdservice pour gérer le processus d'application. Dans ce tutoriel, nous utiliserons le serveur Web Nginx comme proxy inverse, sécurisé avec un SSL gratuit Let's Encrypt.

Configuration du proxy inverse Nginx

Ajoutez le Certbot PPAréférentiel au système.

sudo add-apt-repository ppa:certbot/certbot
sudo apt update

Installez Nginx et Certbot, qui est l'application cliente de Let's Encrypt CA.

sudo apt -y install certbot nginx

Remarque: Le nom de domaine que vous utilisez pour obtenir les certificats de l'autorité de certification Let's Encrypt doit être dirigé vers le serveur. Le client vérifie l'autorité de domaine avant d'émettre les certificats .

Générez les certificats SSL.

sudo certbot certonly --standalone -d wekan.example.com

Les certificats générés sont susceptibles d'être stockés dans le /etc/letsencrypt/live/wekan.example.com/répertoire. Le certificat SSL sera stocké sous fullchain.pemet la clé privée sera stockée sous privkey.pem.

Les certificats Let's Encrypt expirent dans 90 jours, il est donc recommandé de configurer le renouvellement automatique des certificats à l'aide de Cronjob. Cron est un service système utilisé pour exécuter des tâches périodiques.

Ouvrez le fichier de tâche cron.

sudo crontab -e

Ajoutez la ligne suivante à la fin du fichier.

30 5 * * * /usr/bin/certbot renew --quiet

La tâche cron ci-dessus s'exécutera tous les jours à 5h30. Si les certificats doivent expirer, il les renouvellera automatiquement.

Créez un nouvel hôte virtuel.

sudo nano /etc/nginx/sites-available/wekan.example.com.conf

Remplissez le fichier avec les éléments suivants.

upstream wekan {
        server 127.0.0.1:4000;
}
server {
        listen  80;
        listen [::]:80;
        server_name  wekan.example.com;

        location / {
                if ($ssl_protocol = "") {
                        rewrite     ^   https://$server_name$request_uri? permanent;
                }
        }
}

server {
        listen 443 ssl;
        listen [::]:443 ssl;
        server_name wekan.example.com;

        add_header Strict-Transport-Security "max-age=15768000";

        ssl_certificate /etc/letsencrypt/live/wekan.example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/wekan.example.com/privkey.pem;

        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:10m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
        ssl_prefer_server_ciphers on;

        ssl_stapling on;
        ssl_stapling_verify on;

        error_page 497  https://$host:$server_port$request_uri;
        location / {
            proxy_pass http://wekan;
            proxy_http_version 1.1;
            proxy_set_header Host $host:$server_port;
            proxy_set_header Referer $http_referer;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto https;
            proxy_set_header X-Forwarded-Ssl on;
            proxy_set_header X-Nginx-Proxy true;

            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";

            proxy_redirect off;

            proxy_send_timeout 86400;
            proxy_read_timeout 86400;
        }
}

Remplacez wekan.example.compar votre nom de domaine réel dans la configuration ci-dessus.

Activez le site nouvellement ajouté.

sudo ln -s /etc/nginx/sites-available/wekan.example.com.conf /etc/nginx/sites-enabled/wekan.example.com.conf

Redémarrez Nginx pour que les modifications prennent effet.

sudo systemctl restart nginx

Activez Nginx pour démarrer automatiquement au démarrage.

sudo systemctl enable nginx

Configurer le service Systemd

Créez un nouvel utilisateur pour l'exécution du processus.

sudo adduser wekan --shell /usr/sbin/nologin --home /opt/wekan

Déplacez maintenant tous les fichiers dans le /opt/wekanrépertoire.

sudo mv ~/wekan/* /opt/wekan/

Attribuez la propriété des fichiers à l'utilisateur nouvellement créé.

sudo chown -R wekan:wekan /opt/wekan

Wekan ne prend pas de données d'aucun fichier de configuration. Au lieu de cela, il y accède à partir de variables d'environnement. Nous allons créer un nouveau fichier pour stocker les variables d'environnement. Le fichier contenant les variables d'environnement sera transmis via le Systemdservice.

Créez un nouveau fichier pour stocker les variables d'environnement.

 sudo nano /opt/wekan/config.env

Remplissez le fichier avec le contenu suivant.

MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
ROOT_URL='http://wekan.example.com'
MAIL_URL='smtp://user:[email protected]:25/'
MAIL_FROM='[email protected]'
PORT=4000
HTTP_FORWARDED_COUNT=1

Veuillez vous assurer de remplacer le usernameet password.

Fournissez la propriété à l' wekanutilisateur en exécutant.

sudo chown -R wekan:wekan /opt/wekan/config.env

Créez un nouveau fichier de service pour le service Wekan systemd.

sudo nano /etc/systemd/system/wekan.service

Remplissez le fichier avec les éléments suivants.

[Unit]
Description=Wekan Server
After=syslog.target
After=network.target

[Service]
Type=simple
Restart=on-failure
StartLimitInterval=86400
StartLimitBurst=5
RestartSec=10
ExecStart=/usr/bin/node /opt/wekan/bundle/main.js
EnvironmentFile=/opt/wekan/config.env
ExecReload=/bin/kill -USR1 $MAINPID
RestartSec=10
User=wekan
Group=wekan
WorkingDirectory=/opt/wekan
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=Wekan

[Install]
WantedBy=multi-user.target

Enregistrez le fichier et quittez l'éditeur. Maintenant, vous pouvez facilement démarrer Wekan.

sudo systemctl start wekan

Pour permettre à Wekan de démarrer automatiquement au démarrage.

sudo systemctl enable wekan

Pour vérifier l'état du service Wekan.

sudo systemctl status wekan

Emballer

Vous pouvez maintenant accéder à l'instance Wekan sur https://wekan.example.com. Commencez par créer un nouveau compte. Une fois le compte créé, vous pouvez activer l'accès administrateur à l'utilisateur nouvellement créé. Connectez-vous au shell MongoDB en tant qu'administrateur.

mongo -u wekan -p --authenticationDatabase "wekan"

Sélectionnez maintenant la wekanbase de données et mettez à jour l'objet pour promouvoir l'utilisateur en tant qu'administrateur.

use wekan
db.users.update({username:'admin_user'},{$set:{isAdmin:true}})

Veuillez vous assurer de remplacer admin_userpar le nom d'utilisateur réel de l'utilisateur que vous avez créé. Depuis l'interface d'administration, vous pourrez désactiver l'auto-enregistrement et mettre à jour les paramètres SMTP.

Félicitations, vous avez correctement installé la carte Wekan Kanban sur votre instance Vultr Ubuntu.



Leave a Comment

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1

Limpact de lintelligence artificielle dans les soins de santé 2021

Limpact de lintelligence artificielle dans les soins de santé 2021

L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.