Taiga.io es un sistema de gestión de proyectos de código abierto para desarrolladores, diseñadores y gestores de proyectos ágiles. Es una hermosa herramienta de administración de proyectos que puede manejar proyectos simples y complejos para empresas emergentes, desarrolladores de software, etc.
La plataforma Taiga tiene tres componentes principales y cada componente tiene sus propias dependencias.
- espalda de taiga :Backend de la aplicación que proporciona una API. Escrito en Python y Django.
- taiga-front-dist :Taiga Frontend está escrito en AngularJS y CoffeeScript.
- eventos-taiga :servidor Taiga WebSocket para mostrar cambios en tiempo real en las aplicaciones. Y usando RabbitMQ como intermediario de mensajes.
En este tutorial, le mostraré paso a paso cómo instalar la herramienta de administración de proyectos Taiga.io en el servidor Ubuntu 16.04. Aprenderemos cómo configurar el servidor Ubuntu para la instalación de Taiga.io.
Requisitos previos
- Ubuntu 16.04
- Privilegios de raíz
Qué haremos
- Instalar requisitos previos
- Añadir usuario Taiga
- Instalar y configurar Taiga Backend
- Instalar y configurar Taiga Frontend
- Instalar y configurar eventos Taiga
- Configurar Circus y Gunicorn
- Configurar Taiga Nginx Virtualhost
- Pruebas
Paso 1:Requisitos previos de instalación
Antes de instalar todos los componentes de Taiga.io, debemos preparar el sistema instalando los paquetes necesarios. En este primer paso, instalaremos los paquetes necesarios para todos los componentes y módulos de Taiga, incluidos Nginx, RabitMQ, Redis, etc.
Para empezar, actualice el repositorio y actualice el sistema.
sudo apt update
sudo apt upgrade -y
- Dependencias de instalación
Los siguientes paquetes se utilizarán para compilar algunos módulos de Python. Ejecute el siguiente comando apt para instalarlos todos en el sistema.
sudo apt install -y build-essential binutils-doc autoconf flex bison libjpeg-dev libfreetype6-dev zlib1g-dev libzmq3-dev libgdbm-dev libncurses5-dev automake libtool libffi-dev curl git tmux gettext
- Instalar Nginx
Taiga.io es una herramienta de aplicación basada en la web. Se está ejecutando en el servidor web. Y para esta guía, usaremos el servidor web Nginx para la instalación.
Instale Nginx usando el comando apt a continuación.
sudo apt install nginx -y
Una vez completada la instalación, inicie el servicio Nginx y permita que se inicie en el arranque del sistema, algo que puede hacer con el comando systemctl.
systemctl start nginx
systemctl enable nginx
Ahora verifique usando netstat y asegúrese de que el puerto HTTP esté en la lista.
netstat -plntu
- Instalar Redis y RabbitMQ
Este es un paquete opcional si no desea una notificación asíncrona. Instale Redis y RabbitMQ con el siguiente comando apt.
sudo apt install -y redis-server rabbitmq-server
Una vez completada la instalación, inicie los servicios redis y rabbitmq y agréguelos al tiempo de arranque.
systemctl start redis
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
A continuación, debemos crear un nuevo usuario y host virtual llamado 'taiga' para RabbitMQ; se usará para 'taiga-events'.
Ejecute los comandos a continuación para crear un nuevo usuario y vhost llamado taiga con la contraseña 'aqwe123', luego establezca el permiso para el usuario 'taiga'.
sudo rabbitmqctl add_user taiga aqwe123
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
- Instalar Python
'taiga-back' se crea con Django Web Framework y usa 'Python 3.5'. Entonces necesitamos instalar Python 3.5 en el sistema.
Ejecute el siguiente comando para instalar Python 3.5 con todas las dependencias requeridas.
sudo apt install -y python3 python3-pip python-dev python3-dev python-pip virtualenvwrapper libxml2-dev libxslt-dev
- Instalar Circus
Circus es un administrador de procesos y un administrador de sockets. Puede usarse para monitorear y controlar procesos y sockets en el sistema Linux.
Para esta guía, usaremos circus para administrar el proceso de 'taiga-events' creado con CoffeeScript.
Instale Circus con el siguiente comando apt.
sudo apt install -y circus
Una vez completada la instalación, inicie el servicio 'circusd' y habilítelo para que se inicie cada vez que se inicie el sistema.
systemctl start circusd
systemctl enable circusd
Ahora verifique el servicio usando los siguientes comandos.
systemctl status circusd
circusctl status
Y obtendrá el resultado como se muestra a continuación.
- Instalar y configurar la base de datos PostgreSQL
Taiga.io usa PostgreSQL como base de datos y el componente 'taiga-back' usa PostgreSQL (>=9.4) como base de datos.
Instale PostgreSQL 9.5 ejecutando los siguientes comandos apt.
sudo apt install -y postgresql-9.5 postgresql-contrib-9.5
sudo apt install -y postgresql-doc-9.5 postgresql-server-dev-9.5
Si la instalación de la base de datos está completa, inicie el servicio PostgreSQL y permita que se inicie cada vez que se inicia el sistema.
systemctl start postgresql
systemctl enable postgresql
A continuación, crearemos una nueva base de datos y un usuario para la instalación de Taiga.io.
Inicie sesión en el usuario 'postgres'.
su - postgres
Cree una nueva base de datos y un usuario llamado 'taiga' usando los comandos a continuación.
createuser taiga
createdb taiga -O taiga
Se instaló la base de datos PostgreSQL y se creó la base de datos para Taiga.io.
- Instalar Nodejs
Node es necesario para 'taiga-events':agregue el repositorio nodesource de nodejs e instálelo con el comando apt.
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt install -y nodejs
Todos los paquetes necesarios para la instalación de Taiga.io se han instalado correctamente.
Paso 2:Agregar nuevo usuario Taiga
En este paso, crearemos un nuevo usuario del sistema llamado 'taiga' y luego lo agregaremos al grupo sudo.
Ejecute el comando para crear el nuevo usuario 'taiga'.
useradd -m -s /bin/bash taiga
passwd taiga
Ahora agregue el usuario 'taiga' al grupo 'sudo'.
usermod -a -G sudo taiga
Ahora inicie sesión como 'taiga' e intente usar el comando sudo.
su - taiga
sudo su
Escriba su contraseña y asegúrese de obtener los privilegios de root.
Se ha creado un nuevo usuario 'taiga'.
Paso 3:configurar el backend de Taiga
Taiga-back es un backend de Taiga.io que proporciona una API. Está escrito en Python y Django Web Framework.
En este paso, instalaremos y configuraremos el componente taiga 'taiga-back' como un backend que proporciona una API.
Inicie sesión en el usuario 'taiga' y descargue el código fuente 'taiga-back' de GitHub.
su - taiga
git clone https://github.com/taigaio/taiga-back.git taiga-back
Ahora ve al directorio 'taiga-back' y cambia la rama a la rama 'estable'.
cd taiga-back/
git checkout stable
A continuación, necesitamos crear un nuevo entorno de python 'taiga' usando virtualenv.
mkvirtualenv -p /usr/bin/python3.5 taiga
Inicie sesión en el nuevo entorno virtual 'taiga' e instale todos los módulos de Python que necesita 'taiga-back' usando el comando pip como se muestra a continuación.
workon taiga
pip install -r requirements.txt
Después de completar la instalación de todos los módulos requeridos, necesitamos llenar la base de datos con los datos básicos iniciales.
Ejecute todos los comandos de inicialización a continuación.
python manage.py migrate --noinput
python manage.py loaddata initial_user
python manage.py loaddata initial_project_templates
python manage.py compilemessages
python manage.py collectstatic --noinput
Los comandos crearán automáticamente una cuenta de administrador 'admin ' con contraseña '123123 '.
Luego, cree una nueva configuración para 'taiga-back' usando vim.
vim ~/taiga-back/settings/local.py
Pegue la siguiente configuración allí.
from .common import *
MEDIA_URL = "http://taiga.hakase-labs.co/media/"
STATIC_URL = "http://taiga.hakase-labs.co/static/"
SITES["front"]["scheme"] = "http"
SITES["front"]["domain"] = "taiga.hakase-labs.co"
SECRET_KEY = "myverysecretkey"
DEBUG = False
PUBLIC_REGISTER_ENABLED = True
DEFAULT_FROM_EMAIL = "[email protected]"
SERVER_EMAIL = DEFAULT_FROM_EMAIL
#CELERY_ENABLED = True
EVENTS_PUSH_BACKEND = "taiga.events.backends.rabbitmq.EventsPushBackend"
EVENTS_PUSH_BACKEND_OPTIONS = {"url": "amqp://taiga:[email protected]:5672/taiga"}
# Uncomment and populate with proper connection parameters
# for enable email sending. EMAIL_HOST_USER should end by @domain.tld
#EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
#EMAIL_USE_TLS = False
#EMAIL_HOST = "localhost"
#EMAIL_HOST_USER = ""
#EMAIL_HOST_PASSWORD = ""
#EMAIL_PORT = 25
# Uncomment and populate with proper connection parameters
# for enable github login/singin.
#GITHUB_API_CLIENT_ID = "yourgithubclientid"
#GITHUB_API_CLIENT_SECRET = "yourgithubclientsecret"
Guardar y salir.
- Cambie 'MEDIA_URL' y 'STATIC_URL' con su propio nombre de dominio.
- Cambie la 'SECRET_KEY' con su propia clave secreta.
- Cambie el valor de la contraseña de EVENTS_PUSH_BACKEND_OPTIONS a su propio valor de RabbitMQ. Para esta guía, usamos la contraseña 'aqwe123'.
Ahora prueba 'taiga-back' con el siguiente comando.
workon taiga
python manage.py runserver 0.0.0.0:8000
El comando ejecutará taiga-back bajo la IP pública del servidor con el puerto 8000.
Abra el navegador web y visite la siguiente dirección. El mío es:http://192.168.33.10:8000/api/v1/
Y debería obtener la API 'taiga-back' con formato JSON como se muestra a continuación.
Se completó la instalación y configuración de 'taiga-back' como backend.
Paso 4:configurar Taiga Frontend
En este paso, descargaremos y configuraremos la interfaz de taiga. La interfaz manejará todas las interfaces de taiga.
Inicie sesión como usuario de taiga.
su - taiga
Descarga el script 'taiga-front-dist' usando el comando git.
cd ~
git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
Después de esto, ve al directorio 'taiga-front-dist' y cambia la rama a 'estable'.
cd taiga-front-dist/
git checkout stable
Ahora copie la muestra de la configuración 'taiga-front-dist' en 'conf.json' y edítela usando el editor vim.
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
vim ~/taiga-front-dist/dist/conf.json
Realice toda la configuración como se indica a continuación y cambie la 'api' y la 'eventsUrl' con su propio nombre de dominio.
{
"api": "http://taiga.hakase-labs.co/api/v1/",
"eventsUrl": "ws://taiga.hakase-labs.co/events",
"debug": "true",
"publicRegisterEnabled": true,
"feedbackEnabled": true,
"privacyPolicyUrl": null,
"termsOfServiceUrl": null,
"maxUploadFileSize": null,
"contribPlugins": []
}
Guardar y salir.
La configuración de la interfaz de Taiga se ha completado.
Paso 5:configurar los eventos de Taiga
Taiga-events es un servidor WebSocket que le permite mostrar cambios en tiempo real en el panel de control de Taiga.io y utiliza RabbitMQ como intermediario de mensajes. En este paso, descargaremos y configuraremos 'taiga-events'.
Inicie sesión como usuario 'taiga'.
su - taiga
Descargue el código fuente de 'taiga-events' de GitHub usando el comando git y vaya al directorio 'taiga-events'.
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events
Ahora instale todos los módulos javascript que necesita 'taiga-events' usando npm y luego instale el paquete 'coffee-script' en el sistema.
npm install
sudo npm install -g coffee-script
A continuación, copie la configuración predeterminada de 'taiga-events' en 'config.json' y edítela con el editor vim.
cp config.example.json config.json
vim config.json
Realice la configuración como se indica a continuación.
{
"url": "amqp://taiga:[email protected]:5672/taiga",
"secret": "myverysecretkey",
"webSocketServer": {
"port": 8888
}
}
Guardar y salir.
- Cambie el valor de 'url' con su propio usuario y contraseña de rabbitmq.
- Para el valor 'secreto', asegúrese de que coincida con 'SECRET_KEY' en 'local.py' el archivo de configuración de 'taiga-back'.
La configuración de los eventos de Taiga se ha completado.
Paso 6:configurar Circus y Gunicorn
Circus se utilizará para controlar y gestionar el proceso de 'taiga-back' y 'taiga-events'. 'taiga-events' se ejecuta como un script de café y 'taiga-back' se ejecuta bajo Gunicorn.
En este paso, agregaremos nuevos eventos de taiga y taiga-bac a circusd.
Para los 'taiga-events', cree un nuevo archivo 'taiga-events.ini' usando vim.
vim /etc/circus/conf.d/taiga-events.ini
Pegue la configuración a continuación.
[watcher:taiga-events]
working_dir = /home/taiga/taiga-events
cmd = /usr/bin/coffee
args = index.coffee
uid = taiga
numprocesses = 1
autostart = true
send_hup = true
stdout_stream.class = FileStream
stdout_stream.filename = /home/taiga/logs/taigaevents.stdout.log
stdout_stream.max_bytes = 10485760
stdout_stream.backup_count = 12
stderr_stream.class = FileStream
stderr_stream.filename = /home/taiga/logs/taigaevents.stderr.log
stderr_stream.max_bytes = 10485760
stderr_stream.backup_count = 12
Guardar y salir.
Y para el taiga-back, cree un nuevo archivo 'taiga.ini'.
vim /etc/circus/conf.d/taiga.ini
Pegue la siguiente configuración allí.
[watcher:taiga]
working_dir = /home/taiga/taiga-back
cmd = gunicorn
args = -w 3 -t 60 --pythonpath=. -b 127.0.0.1:8001 taiga.wsgi
uid = taiga
numprocesses = 1
autostart = true
send_hup = true
stdout_stream.class = FileStream
stdout_stream.filename = /home/taiga/logs/gunicorn.stdout.log
stdout_stream.max_bytes = 10485760
stdout_stream.backup_count = 4
stderr_stream.class = FileStream
stderr_stream.filename = /home/taiga/logs/gunicorn.stderr.log
stderr_stream.max_bytes = 10485760
stderr_stream.backup_count = 4
[env:taiga]
PATH = /home/taiga/.virtualenvs/taiga/bin:$PATH
TERM=rxvt-256color
SHELL=/bin/bash
USER=taiga
LANG=en_US.UTF-8
HOME=/home/taiga
PYTHONPATH=/home/taiga/.virtualenvs/taiga/lib/python3.5/site-packages
Guardar y salir.
A continuación, necesitamos crear un nuevo directorio de 'registros' para los procesos 'taiga-events' y 'taiga-back'.
su - taiga
mkdir -p ~/logs
Ahora reinicie el servicio circusd y verifique todos los procesos disponibles.
systemctl restart circusd
circusctl status
Y asegúrese de que 'taiga-events' y 'taiga-back' estén activos en la lista de procesos, como se muestra a continuación.
Paso 7:configurar el host virtual Taiga Nginx
En este paso, configuraremos el host virtual Nginx para Taiga.io. Crearemos un nuevo archivo de host virtual en el directorio 'conf.d' para nuestra instalación de Taiga.io.
Vaya al directorio de configuración de nginx y elimine el archivo de host virtual "predeterminado".
cd /etc/nginx/
sudo rm -f sites-enabled/default
Ahora cree un nuevo archivo de host virtual 'taiga.conf' en el directorio 'conf.d'.
vim /etc/nginx/conf.d/taiga.conf
Pegue la siguiente configuración allí.
server {
listen 80 default_server;
server_name _;
large_client_header_buffers 4 32k;
client_max_body_size 50M;
charset utf-8;
access_log /home/taiga/logs/nginx.access.log;
error_log /home/taiga/logs/nginx.error.log;
# Frontend
location / {
root /home/taiga/taiga-front-dist/dist/;
try_files $uri $uri/ /index.html;
}
# Backend
location /api {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8001/api;
proxy_redirect off;
}
# Django admin access (/admin/)
location /admin {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8001$request_uri;
proxy_redirect off;
}
# Static files
location /static {
alias /home/taiga/taiga-back/static;
}
# Media files
location /media {
alias /home/taiga/taiga-back/media;
}
# Taiga-events
location /events {
proxy_pass http://127.0.0.1:8888/events;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
}
}
Guardar y salir.
Ahora ejecute la configuración de prueba nginx y asegúrese de que no haya ningún error. Luego reinicie el servicio del servidor web.
nginx -t
systemctl restart nginx
Se completó la configuración del host virtual Nginx para Taiga.io.
Paso 8 - Prueba
Abra su navegador web y visite el nombre de dominio Taiga.io. El mío es:http://taiga.hakase-labs.co
Y obtendrá la página de inicio predeterminada de taiga.
Ahora haga clic en el botón 'Iniciar sesión' en la parte superior derecha y obtendrá la página de inicio de sesión del administrador.
Inicie sesión con el usuario predeterminado 'admin ' y contraseña '123123 '.
Y obtendrá el resultado como se muestra a continuación.
A continuación, restableceremos la contraseña de administrador predeterminada.
Haga clic en el botón 'administrador' en la parte superior derecha, luego haga clic en 'Cambiar contraseña'.
Ahora escriba la contraseña anterior '123123' y la nueva contraseña que desee, luego haga clic en 'Guardar'.
La instalación y configuración de Taiga.io en Ubuntu 16.04 se completó con éxito.