Come installare Wekan (Kanban open source) su Ubuntu 16.04

Wekan è una scheda kanban costruita con il framework JavaScript Meteor. È considerata un'alternativa open source e self-hosted a Trello, fornendo quasi le stesse funzionalità. Ti consente di creare elenchi di gestione "da fare" basati su carte. Wekan è molto utile per aumentare la produttività quando si lavora in un ambiente collaborativo. Wekan ha un'interfaccia web completamente reattiva ed è tradotta attivamente in molte lingue.

Prerequisiti

  • Un'istanza del server Vultr Ubuntu 16.04.
  • Un utente sudo .

Per questo tutorial, useremo wekan.example.comcome nome di dominio puntato verso l'istanza Vultr. Assicurati di sostituire tutte le occorrenze del nome di dominio di esempio con quello effettivo.

Aggiorna il tuo sistema di base usando la guida Come aggiornare Ubuntu 16.04 . Dopo aver aggiornato il sistema, procedere con l'installazione delle dipendenze.

Installa Node.js

Wekan supporta solo Node.js LTS version 4.8. Per installare Node.js, useremo il gestore versione nodo. Installa nvmeseguendo lo script di installazione.

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

Per iniziare immediatamente a utilizzare nvm, esegui questo.

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

Se nvmè stato installato correttamente, dovresti essere in grado di controllarne la versione.

user@vultr:~$ nvm --version
0.33.4

Installa Node.js.

nvm install v4.8

Imposta la versione predefinita di Node.js.

nvm use node

Se Node.js è stato installato correttamente, dovresti essere in grado di controllarne la versione.

node -v

Vedrai questo risultato.

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

NVM installa Node.js solo per l'utente corrente. Affinché Node.js sia accessibile a livello globale, esegui questo.

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

Node.js è ora disponibile come /usr/bin/node.

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

Installa MongoDB

MongoDB è un server di database NoSQL gratuito e open source. A differenza dei database tradizionali che utilizzano le tabelle per organizzare i propri dati, MongoDB è orientato ai documenti e utilizza documenti simili a JSON senza schemi. Wekan utilizza MongoDB per archiviare i suoi dati.

Wekan è compatibile solo con MongoDB version 3.2. Crea un nuovo file repository.

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

Importa la chiave GPG pubblica MongoDB e aggiorna l'elenco dei pacchetti.

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

Installa MongoDB.

sudo apt install -y mongodb-org

Avviare MongoDB e abilitare l'avvio automatico.

sudo systemctl start mongod
sudo systemctl enable mongod

Protezione dell'istanza MongoDB

Per impostazione predefinita, non è abilitata l'autenticazione in un server MongoDB. Qualsiasi utente che abbia accesso al terminale del server disporrà di privilegi completi sull'installazione di MongoDB. Per proteggere il server di database e limitare l'accesso di un utente non privilegiato, dovremo impostare l'autenticazione sul server.

MongoDB fornisce una mongoshell che viene utilizzata per eseguire query su MongoDB. Passa alla mongoshell.

mongo

Crea un nuovo utente MongoDB con i privilegi di root. Puoi usare qualsiasi nome utente a tua scelta. Assicurati di sostituire la password .

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

Dovresti vedere il seguente output.

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"
                }
        ]
}

Chiudere l'interfaccia di comando MongoDB sul terminale Linux premendo " Ctrl+C".

Modifica il file di configurazione di MongoDB.

sudo nano /etc/mongod.conf

Aggiungi la seguente riga alla fine del file.

security:
 authorization: enabled

Riavvia MongoDB in modo che la modifica della configurazione abbia effetto.

sudo systemctl restart mongod

Ora che la sicurezza è stata abilitata, è possibile verificare se funziona passando nuovamente alla shell mongo utilizzando il mongocomando. Questa volta, se si esegue una query, ad esempio show dbsper visualizzare l'elenco dei database, verrà visualizzato un messaggio che riporta l'autorizzazione non riuscita. Esci sudonuovamente dall'utente dopo aver testato l'accesso come nuovo utente appena creato.

Accedi come l' administratorutente appena creato.

mongo -u admin -p

Fornire la password dell'utente per un accesso riuscito. Crea un nuovo utente per il wekandatabase che verrà utilizzato per archiviare i dati Wekan.

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

Assicurati di sostituire il StrongPasswordcon una password complessa. Vedrai il seguente output.

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" ] }

Installa Wekan

Controlla l'ultimo collegamento alla versione Wekan su Github poiché le nuove versioni sono molto frequenti. Scarica l'ultima versione di Wekan da Github sostituendo il collegamento al pacchetto di installazione.

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

Estrarre l'archivio scaricato in una nuova directory denominata wekan.

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

Installa le dipendenze Node.js.

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

Il server Wekan legge le configurazioni dalle variabili di ambiente. Eseguire i comandi seguenti per impostare le configurazioni come variabili di ambiente.

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

Assicurati di sostituire la password MongoDB per l' wekanutente che hai creato. Inoltre, aggiorna l'URL della posta in base alle impostazioni del tuo server SMTP. Se non si dispone di un server e-mail pronto, è sempre possibile modificare questa configurazione in un secondo momento.

Per avviare immediatamente l'applicazione.

cd ~/wekan/bundle
node main.js

Ora puoi accedere all'applicazione andando a http://wekan.example.com:4000. Vedrai l'interfaccia per accedere alla scheda kanban Wekan.

Per l'uso in produzione, si consiglia di impostare un proxy inverso per servire l'applicazione sulla HTTPporta standard e un systemdservizio per gestire il processo dell'applicazione. In questo tutorial, utilizzeremo il web server Nginx come proxy inverso, protetto con un SSL gratuito Let's Encrypt.

Impostazione del proxy inverso Nginx

Aggiungi il Certbot PPArepository al sistema.

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

Installa Nginx e Certbot, che è l'applicazione client per Let's Encrypt CA.

sudo apt -y install certbot nginx

Nota: il nome di dominio che si sta utilizzando per ottenere i certificati dalla CA Let's Encrypt deve essere puntato verso il server. Il client verifica l'autorità di dominio prima di emettere i certificati .

Genera i certificati SSL.

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

È probabile che i certificati generati siano archiviati nella /etc/letsencrypt/live/wekan.example.com/directory. Il certificato SSL verrà archiviato come fullchain.peme la chiave privata verrà archiviata come privkey.pem.

Let's Encrypt certificati scadranno tra 90 giorni, quindi si consiglia di impostare il rinnovo automatico dei certificati utilizzando Cronjob. Cron è un servizio di sistema che viene utilizzato per eseguire attività periodiche.

Apri il file di lavoro cron.

sudo crontab -e

Aggiungi la seguente riga alla fine del file.

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

Il precedente cron job verrà eseguito ogni giorno alle 5:30. Se i certificati sono in scadenza, li rinnoverà automaticamente.

Crea un nuovo host virtuale.

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

Popolare il file con il seguente.

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;
        }
}

Sostituisci wekan.example.comcon il tuo nome di dominio effettivo nella configurazione sopra.

Abilita il sito appena aggiunto.

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

Riavvia Nginx per rendere effettive le modifiche.

sudo systemctl restart nginx

Abilita Nginx per l'avvio automatico all'avvio.

sudo systemctl enable nginx

Installa il servizio Systemd

Crea un nuovo utente per l'esecuzione del processo.

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

Ora sposta tutti i file nella /opt/wekandirectory.

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

Fornire la proprietà dei file all'utente appena creato.

sudo chown -R wekan:wekan /opt/wekan

Wekan non accetta dati da alcun file di configurazione. Al contrario, vi accede dalle variabili di ambiente. Creeremo un nuovo file per memorizzare le variabili di ambiente. Il file contenente le variabili di ambiente verrà passato attraverso il Systemdservizio.

Creare un nuovo file per archiviare le variabili di ambiente.

 sudo nano /opt/wekan/config.env

Popolare il file con il seguente contenuto.

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

Assicurati di sostituire il usernamee password.

Fornire la proprietà wekanall'utente eseguendo.

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

Creare un nuovo file di servizio per il servizio systemd di Wekan.

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

Popolare il file con il seguente.

[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

Salvare il file ed uscire dall'editor. Ora puoi avviare facilmente Wekan.

sudo systemctl start wekan

Per consentire a Wekan di avviarsi automaticamente all'avvio.

sudo systemctl enable wekan

Per verificare lo stato del servizio Wekan.

sudo systemctl status wekan

Avvolgendo

Ora puoi accedere all'istanza di Wekan su https://wekan.example.com. Inizia creando un nuovo account. Dopo aver creato l'account, è possibile abilitare l'accesso amministrativo all'utente appena creato. Accedere alla shell MongoDB come utente amministrativo.

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

Ora seleziona il wekandatabase e aggiorna l'oggetto per promuovere l'utente nell'amministratore.

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

Assicurati di sostituire admin_usercon il nome utente effettivo dell'utente che hai creato. Dall'interfaccia di amministrazione, sarai in grado di disabilitare l'auto-registrazione e aggiornare le impostazioni SMTP.

Congratulazioni, hai installato con successo la scheda Wekan Kanban sulla tua istanza di Vultr Ubuntu.



Leave a Comment

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.