Cómo instalar y configurar Wekan Trello-like Kanban en CentOS 7
Wekan es un tablero kanban de código abierto similar a Trello y basado en el framework Javascript Meteor. Es una herramienta de gestión basada en la web que te permite crear un tablero para la colaboración en tus proyectos. Con el tablero wekan, sólo tienes que invitar a un miembro al tablero y ya está. En el tablero de wekan, puedes crear una gestión de tareas y tareas pendientes basada en tarjetas, y luego asignarla al miembro.
En este tutorial, te mostraré paso a paso cómo instalar y configurar Wekan Trello-like Kanban en un servidor CentOS 7. Utilizaremos MongoDB como base de datos y el servidor web Nginx como Proxy inverso para la aplicación Wekan. Este tutorial cubrirá algunos temas en detalle, incluyendo la seguridad del servidor de base de datos MongoDB y la configuración de Nginx como Proxy inverso.
Requisitos previos
- Servidor CentOS 7
- Privilegios de root
Qué haremos
- Instalar Nodejs
- Instalar y configurar MongoDB
- Instalar Wekan
- Ejecutar Wekan como servicio en CentOS 7
- Instalar y configurar Nginx como proxy inverso para Wekan
- Prueba de
Paso 1 – Instalar NodeJS utilizando el Gestor de Versiones de Node NVM
Wekan es una aplicación basada en nodejs, y requiere la versión 4.8 de nodejs. En este tutorial, no instalaremos nodejs desde el repositorio de CentOS, sino que instalaremos nodejs 4.8 utilizando el Gestor de Versiones de Nodos nvm.
Antes de instalar nodejs, añade un nuevo usuario del sistema ‘wekan’ utilizando el siguiente comando.
useradd -m -s /bin/bash wekan
passwd wekan
Inicia sesión con el usuario ‘wekan’, luego descarga y ejecuta el script instalador de nvm.
su - wekan
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
El comando instalará nvm bajo el usuario ‘wekan’ y añadirá una nueva configuración al archivo de configuración ‘.bashrc’. Ahora vuelve a cargar el archivo ‘.bashrc’.
source ~/.bashrc
Prueba utilizando el comando nvm como se indica a continuación.
command -v nvm
nvm --version
Ahora puedes ver nvm ‘0.33.8’ instalado en el sistema.
A continuación, instala nodejs 4.8 utilizando el siguiente comando nvm.
nvm install v4.8
nvm use node
Una vez completada la instalación, comprueba la versión de nodejs.
node -v
Y verás que nodejs 4.8 está instalado en el servidor CentOS 7, bajo el usuario ‘wekan’.
Paso 2 – Instalar y configurar MongoDB
En este paso, instalaremos MongoDB 3.2.x utilizando el repositorio oficial, y luego configuraremos la seguridad básica para el servidor de bases de datos NoSQL MongoDB.
Ve al directorio ‘/etc/yum.repos.d./ y crea un nuevo archivo .repo utilizando el editor vim.
cd /etc/yum.repos.d/
vim mongodb-org-3.2.repo
Pega allí el siguiente repositorio de MongoDB.
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
Guarda y sal.
Ahora instala MongoDB utilizando el siguiente comando yum.
yum -y install mongodb-org mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools
Una vez completada la instalación, inicia el servicio MongoDB y haz que se inicie al arrancar el sistema.
systemctl start mongod
systemctl enable mongod
MongoDB 3.2 ha sido instalado en el sistema CentOS 7.
A continuación, tenemos que configurar la autenticación de MongoDB. Entra en el shell de mongo y crea un nuevo usuario llamado ‘admin’ para el acceso de superusuario.
Accede al shell de mongo.
mongo
Ahora crea un nuevo usuario ‘admin’ con la contraseña ‘MyAdminPassword’ con el rol de ‘root’. Ejecuta las siguientes consultas de MongoDB.
db.createUser(
{
user: "admin",
pwd: "MyAdminPassword",
roles: [ { role: "root", db: "admin" } ]
}
)
El usuario administrador de MongoDB ha sido creado.
Ahora tenemos que editar el archivo de configuración ‘/etc/mongod.conf’ para habilitar la autenticación.
Edita el archivo de configuración ‘mongod.conf’ utilizando vim.
vim /etc/mongod.conf
Descomenta la línea ‘security’ y añade la configuración como se muestra a continuación.
security:
authorization: enabled
Guarda y sal.
Ahora reinicia el servicio MongoDB.
systemctl restart mongod
La autenticación de MongoDB ha sido habilitada.
A continuación, tenemos que crear una nueva base de datos y un nuevo usuario para Wekan. Crearemos una nueva base de datos llamada ‘wekan’ con el usuario ‘wekan’ y la contraseña ‘WekanPassword’.
Accede al shell de mongo como usuario admin.
mongo -u admin -p
Escribe la contraseña de administrador ‘MyAdminPassword’.
Y cuando obtengas el shell de mongo, ejecuta las consultas de MongoDB que aparecen a continuación.
use wekan
db.createUser(
{
user: "wekan",
pwd: "WekanPassword",
roles: ["readWrite"]
}
)
La base de datos y el usuario para la instalación de wekan han sido creados.
Paso 3 – Instalar Wekan
Inicia sesión como el usuario wekan.
su - wekan
Descarga el código fuente de wekan utilizando el comando wget y extráelo.
wget https://github.com/wekan/wekan/releases/download/v0.63/wekan-0.63.tar.gz
tar xf wekan-0.63.tar.gz
Y obtendrás un nuevo directorio llamado ‘bundle’ – ve a ese directorio e instala las dependencias de wekan usando el comando npm como se muestra a continuación.
cd bundle/programs/server
npm install
Una vez completada la instalación de todas las dependencias, obtendrás el resultado que se muestra a continuación.
A continuación, intentaremos ejecutar Wekan en el sistema.
Ejecuta los siguientes comandos para configurar la variable de entorno para la aplicación Wekan.
export MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
export ROOT_URL='http://192.168.33.10'
export MAIL_URL='smtp://user:[email protected]:25/'
export MAIL_FROM='[email protected]'
export PORT=8000
Ahora ve al directorio ‘bundle’ y ejecuta la aplicación wekan.
cd ~/bundle
node main.js
El servidor Wekan se ejecuta ahora en el puerto 8000. Abre tu navegador web y escribe la dirección de tu servidor con el puerto 8000.
http://192.168.33.10:8000/
Y obtendrás la página de inicio de sesión de Wekan como se indica a continuación.
Ahora Wekan está instalado con éxito en el servidor CentOS 7.
Paso 4 – Ejecutar Wekan como servicio en CentOS 7
Vamos a ejecutar la aplicación wekan como un servicio en el sistema Ubuntu. Así que necesitamos crear un nuevo archivo de servicio en el directorio del sistema systemd.
Antes de crear el archivo de servicio de wekan, tenemos que crear el archivo de variables de entorno.
Inicia sesión como el usuario wekan.
su - wekan
Ve al directorio ‘bundle/’ y crea un nuevo archivo de variables de entorno ‘.env’ utilizando vim.
cd bundle/
vim .env
Pega allí la siguiente configuración.
MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
ROOT_URL='http://wekan.hakase-labs.co'
MAIL_URL='smtp://user:[email protected]:25/'
MAIL_FROM='[email protected]'
PORT=8000
HTTP_FORWARDED_COUNT=1
Guarda y sal.
A continuación, vuelve a tu terminal raíz.
Ve al directorio ‘/etc/systemd/system’ y crea un nuevo archivo de servicio ‘wekan.service’.
cd /etc/systemd/system
vim wekan.service
Pega allí la siguiente configuración.
[Unit]
Description=Wekan Server
After=syslog.target
After=network.target
[Service]
Type=simple
Restart=on-failure
StartLimitInterval=86400
StartLimitBurst=5
RestartSec=10
ExecStart=/home/wekan/.nvm/versions/node/v4.8.7/bin/node bundle/main.js
EnvironmentFile=/home/wekan/bundle/.env
ExecReload=/bin/kill -USR1 $MAINPID
RestartSec=10
User=wekan
Group=wekan
WorkingDirectory=/home/wekan
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=Wekan
[Install]
WantedBy=multi-user.target
Guarda y sal.
Recarga el sistema systemd con el comando systemctl.
systemctl daemon-reload
Inicia el servicio wekan y habilita su lanzamiento cada vez que se inicie el sistema.
systemctl start wekan
systemctl enable wekan
Ahora comprueba el servicio wekan utilizando los siguientes comandos.
netstat -plntu
systemctl status wekan
Y el siguiente es el resultado en nuestro caso.
Wekan se ejecuta ahora como un servicio en el puerto 8000 en un sistema CentOS 7.
Paso 5 – Instalar y configurar Nginx como proxy inverso para Wekan
En este paso, instalaremos el servidor web Nginx y lo configuraremos como proxy inverso para el servicio wekan que se ejecuta bajo el puerto 8000.
Antes de instalar el servidor web Nginx, añade un nuevo repositorio EPEL (Extra Package for Enterprise Linux).
yum -y install epel-release
Ahora instala nginx desde el repositorio epel utilizando el siguiente comando yum.
yum -y install nginx
Una vez completada la instalación, ve al directorio de configuración ‘/etc/nginx/’ y crea un nuevo archivo de host virtual ‘wekan.conf’ en el directorio ‘conf.d’.
cd /etc/nginx
vim conf.d/wekan.conf
Pega allí la siguiente configuración del host virtual.
server {
server_name wekan.hakase-labs.co;
listen 80;
access_log /var/log/nginx/wekan-access.log;
error_log /var/log/nginx/wekan-error.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_cache_bypass $http_upgrade;
proxy_pass http://127.0.0.1:8000;
}
}
Guarda y sal.
Prueba la configuración de nginx y asegúrate de que no hay ningún error.
nginx -t
Si no hay ningún error, inicia el servicio Nginx y haz que se inicie al arrancar el sistema.
systemctl start nginx
systemctl enable nginx
Ahora comprueba el puerto HTTP con el comando netstat, y asegúrate de que está en estado «LISTEN».
netstat -plntu
La configuración del host virtual Nginx para Wekan se ha completado.
Paso 6 – Prueba
Abre tu navegador web y escribe la url de instalación de Wekan en la barra de direcciones.
http://wekan.hakase-labs.co/
Y serás redirigido a la página de inicio de sesión – haz clic en el enlace «Registro».
Ahora escribe tu nombre de usuario, tu correo electrónico, tu contraseña y deja en blanco el código de invitación.
Haz clic en el botón azul «Registro».
Aparecerá el mensaje «Error interno del servidor». Déjalo y vuelve a tu terminal. Porque vamos a activar el primer usuario desde el terminal.
Abre tu terminal y entra en el shell de mongo como usuario ‘wekan’.
mongo -u wekan -p --authenticationDatabase "wekan"
Ahora activa el usuario mediante las siguientes consultas.
use wekan
db.users.update({username:'hakase'},{$set:{isAdmin:true}})
Sal del shell de mongo.
Vuelve a tu navegador y abre de nuevo la instalación de la url de Wekan.
http://wekan.hakase-labs.co/
Escribe tu nombre de usuario y tu contraseña, y haz clic en el botón «Iniciar sesión».
Y obtendrás el panel de usuario de Wekan.
A continuación se muestra el proyecto de ejemplo de Wekan.
La instalación de Wekan en un sistema CentOS 7 con MongoDB y un servidor web Nginx se ha completado con éxito.