Requisits previs
Instal·leu Node.js
Instal·leu MongoDB
Instal·leu Wekan
Configuració del servidor intermediari invers Nginx
Configura el servei Systemd
Embolcallant
Wekan és un tauler kanban construït amb el marc de JavaScript Meteor. Es considera una alternativa de codi obert i autoallotjada a Trello, que ofereix gairebé les mateixes funcions. Us permet crear llistes de gestió de "tasques pendents" basades en targetes. Wekan és molt útil per augmentar la productivitat quan es treballa en un entorn col·laboratiu. Wekan té una interfície web totalment sensible i es tradueix activament a molts idiomes.
Requisits previs
Per a aquest tutorial, utilitzarem wekan.example.comcom a nom de domini apuntat cap a la instància Vultr. Assegureu-vos de substituir totes les ocurrències del nom de domini d'exemple per l'actual.
Actualitzeu el vostre sistema base mitjançant la guia Com actualitzar Ubuntu 16.04 . Un cop actualitzat el sistema, procediu a instal·lar les dependències.
Instal·leu Node.js
Wekan només és compatible Node.js LTS version 4.8. Per instal·lar Node.js, utilitzarem el gestor de versions del node. Instal·leu nvmexecutant l'script d'instal·lació.
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash
Per començar a utilitzar immediatament nvm, executeu-ho.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
Si nvms'ha instal·lat correctament, hauríeu de poder comprovar la seva versió.
user@vultr:~$ nvm --version
0.33.4
Instal·leu Node.js.
nvm install v4.8
Estableix la versió predeterminada de Node.js.
nvm use node
Si Node.js s'ha instal·lat correctament, hauríeu de poder comprovar-ne la versió.
node -v
Veureu aquesta sortida.
user@vultr:~$ node -v
v4.8.4
NVM instal·la Node.js només per a l'usuari actual. Perquè Node.js sigui accessible globalment, executeu-ho.
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr
Node.js ara està disponible com a /usr/bin/node.
user@vultr:~$ sudo which node
/usr/bin/node
Instal·leu MongoDB
MongoDB és un servidor de bases de dades NoSQL gratuït i de codi obert. A diferència de les bases de dades tradicionals que utilitzen taules per organitzar les seves dades, MongoDB està orientat a documents i utilitza documents semblants a JSON sense esquemes. Wekan utilitza MongoDB per emmagatzemar les seves dades.
Wekan només és compatible amb MongoDB version 3.2. Creeu un fitxer de repositori nou.
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
Importeu la clau GPG pública de MongoDB i actualitzeu la llista de paquets.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
sudo apt update
Instal·leu MongoDB.
sudo apt install -y mongodb-org
Inicieu MongoDB i activeu-lo perquè s'iniciï automàticament.
sudo systemctl start mongod
sudo systemctl enable mongod
Assegurant la instància de MongoDB
Per defecte, no hi ha cap autenticació habilitat en un servidor MongoDB. Qualsevol usuari que tingui accés al terminal del servidor tindrà privilegis complets a la instal·lació de MongoDB. Per protegir el servidor de bases de dades i restringir l'accés d'un usuari sense privilegis, haurem de configurar l'autenticació al servidor.
MongoDB proporciona un mongoshell que s'utilitza per executar consultes a MongoDB. Canvia a la mongoclosca.
mongo
Creeu un nou usuari de MongoDB amb privilegis root. Podeu utilitzar qualsevol nom d'usuari que vulgueu. Assegureu - vos de substituir la contrasenya .
db.createUser(
{
user: "admin",
pwd: "StrongAdminPassword",
roles: [ { role: "root", db: "admin" } ]
}
)
Hauríeu de veure la següent sortida.
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"
}
]
}
Sortiu de la interfície d'ordres de MongoDB al terminal Linux prement " Ctrl+C".
Editeu el fitxer de configuració de MongoDB.
sudo nano /etc/mongod.conf
Afegiu la línia següent al final del fitxer.
security:
authorization: enabled
Reinicieu MongoDB perquè el canvi de configuració tingui efecte.
sudo systemctl restart mongod
Ara que s'ha habilitat la seguretat, podeu provar si funciona canviant de nou a l'intèrpret d'ordres mongo mitjançant l' mongoordre. Aquesta vegada, si executeu una consulta, com ara show dbsper mostrar la llista de bases de dades, veureu un missatge que informa de l'autorització fallida. sudoTorneu a sortir de l' usuari després de provar l'inici de sessió com a usuari nou que acabeu de crear.
Inicieu sessió com l' administratorusuari que acabeu de crear.
mongo -u admin -p
Proporcioneu la contrasenya de l'usuari per iniciar sessió correctament. Creeu un usuari nou per a la wekanbase de dades que s'utilitzarà per emmagatzemar les dades de Wekan.
use wekan
db.createUser(
{
user: "wekan",
pwd: "StrongPassword",
roles: ["readWrite"]
}
)
Assegureu-vos de substituir la StrongPasswordcontrasenya per una contrasenya segura . Veureu la següent sortida.
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" ] }
Instal·leu Wekan
Check for the latest link to the Wekan release on Github as new releases are very frequent. Download the latest version of Wekan from Github replacing the link to the installer package.
cd ~
wget https://github.com/wekan/wekan/releases/download/v0.44/wekan-0.44.tar.gz
Extract the downloaded archive into a new directory named wekan.
mkdir wekan
tar xzvf wekan-*.tar.gz -C wekan
Install the Node.js dependencies.
cd wekan/bundle/programs/server && npm install
The Wekan server reads configurations from the environment variables. Run the following commands to set the configurations as environment variables.
export MONGO_URL='mongodb://wekan:StrongPassword@127.0.0.1:27017/wekan?authSource=wekan'
export ROOT_URL='http://wekan.example.com'
export MAIL_URL='smtp://user:pass@mail.example.com:25/'
export MAIL_FROM='wekan@example.com'
export PORT=4000
Make sure to replace the MongoDB password for the wekan user you have created. Also, update the mail URL according to your SMTP server settings. If you do not have an email server ready, you can always change this configuration later.
To immediately start the application.
cd ~/wekan/bundle
node main.js
You can now access the application by going to http://wekan.example.com:4000. You will see the interface to log-in into the Wekan kanban board.
For production use, it is recommended to set up a reverse proxy to serve the application on the standard HTTP port and a systemd service to manage the application process. In this tutorial, we will use the Nginx web server as a reverse proxy, secured with a Let's Encrypt free SSL.
Setting up the Nginx Reverse Proxy
Add the Certbot PPA repository to the system.
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
Install Nginx and Certbot, which is the client application for Let's Encrypt CA.
sudo apt -y install certbot nginx
Note: The domain name which you are using to obtain the certificates from the Let's Encrypt CA must be pointed towards the server. The client verifies the domain authority before issuing the certificates.
Generar els certificats SSL.
sudo certbot certonly --standalone -d wekan.example.com
És probable que els certificats generats s'emmagatzemin al /etc/letsencrypt/live/wekan.example.com/directori. El certificat SSL s'emmagatzemarà com a fullchain.pem, i la clau privada s'emmagatzemarà com a privkey.pem.
Els certificats de Let's Encrypt caduquen en 90 dies, per la qual cosa es recomana configurar la renovació automàtica dels certificats mitjançant Cronjob. Cron és un servei del sistema que s'utilitza per executar tasques periòdiques.
Obriu el fitxer de treball cron.
sudo crontab -e
Afegiu la línia següent al final del fitxer.
30 5 * * * /usr/bin/certbot renew --quiet
El treball cron anterior s'executarà cada dia a les 5:30 del matí. Si els certificats vencen, els renovarà automàticament.
Creeu un nou host virtual.
sudo nano /etc/nginx/sites-available/wekan.example.com.conf
Omple el fitxer amb el següent.
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;
}
}
Substituïu-lo wekan.example.compel vostre nom de domini real a la configuració anterior.
Activa el lloc recentment afegit.
sudo ln -s /etc/nginx/sites-available/wekan.example.com.conf /etc/nginx/sites-enabled/wekan.example.com.conf
Reinicieu Nginx perquè els canvis tinguin efecte.
sudo systemctl restart nginx
Habiliteu Nginx perquè s'iniciï automàticament en el moment de l'arrencada.
sudo systemctl enable nginx
Configura el servei Systemd
Creeu un usuari nou perquè s'executi el procés.
sudo adduser wekan --shell /usr/sbin/nologin --home /opt/wekan
Ara moveu tots els fitxers al /opt/wekandirectori.
sudo mv ~/wekan/* /opt/wekan/
Proporcioneu la propietat dels fitxers a l'usuari acabat de crear.
sudo chown -R wekan:wekan /opt/wekan
Wekan no pren dades de cap fitxer de configuració. En canvi, hi accedeix des de variables d'entorn. Crearem un nou fitxer per emmagatzemar les variables d'entorn. El fitxer que conté les variables d'entorn es passarà pel Systemdservei.
Creeu un fitxer nou per emmagatzemar variables d'entorn.
sudo nano /opt/wekan/config.env
Omple el fitxer amb el contingut següent.
MONGO_URL='mongodb://wekan:StrongPassword@127.0.0.1:27017/wekan?authSource=wekan'
ROOT_URL='http://wekan.example.com'
MAIL_URL='smtp://user:pass@mail.example.com:25/'
MAIL_FROM='wekan@example.com'
PORT=4000
HTTP_FORWARDED_COUNT=1
Assegureu-vos de substituir usernamei password.
Proporcioneu la propietat a l' wekanusuari executant.
sudo chown -R wekan:wekan /opt/wekan/config.env
Creeu un fitxer de servei nou per al servei systemd de Wekan.
sudo nano /etc/systemd/system/wekan.service
Omple el fitxer amb el següent.
[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
Deseu el fitxer i sortiu de l'editor. Ara podeu iniciar Wekan fàcilment.
sudo systemctl start wekan
Per permetre que Wekan s'iniciï automàticament en el moment de l'arrencada.
sudo systemctl enable wekan
Per comprovar l'estat del servei Wekan.
sudo systemctl status wekan
Embolcallant
Ara podeu accedir a la instància Wekan a https://wekan.example.com. Comenceu creant un compte nou. Un cop hàgiu creat el compte, podeu habilitar l'accés administratiu a l'usuari acabat de crear. Inicieu sessió al shell de MongoDB com a usuari administratiu.
mongo -u wekan -p --authenticationDatabase "wekan"
Ara seleccioneu la wekanbase de dades i actualitzeu l'objecte per promocionar l'usuari a l'usuari administrador.
use wekan
db.users.update({username:'admin_user'},{$set:{isAdmin:true}})
Assegureu-vos de substituir admin_useramb el nom d'usuari real de l'usuari que heu creat. Des de la interfície d'administració, podreu desactivar l'autoregistre i actualitzar la configuració d'SMTP.
Enhorabona, heu instal·lat correctament el tauler Wekan Kanban a la vostra instància Vultr Ubuntu.