在Ubuntu 16.04上安装Taiga.io Agile项目管理软件
Taiga.io是敏捷开发人员,设计人员和项目经理的开源项目管理系统。 这是一个漂亮的项目管理工具,可以为初创公司,软件开发人员等处理简单和复杂的项目。
Taiga平台有三个主要组件,每个组件都有自己的依赖关系。
- taiga-back :提供API的应用程序的后端。 用Python和Django编写。
- taiga-front-dist :Taiga Frontend是用AngularJS和CoffeeScript编写的。
- taiga-events :Taiga WebSocket服务器在应用程序中显示实时更改。 并使用RabbitMQ作为消息代理。
在本教程中,我将逐步向您展示如何在Ubuntu 16.04服务器上安装Taiga.io项目管理工具。 我们将学习如何为Taiga.io安装设置Ubuntu服务器。
先决条件
- Ubuntu 16.04
- 根权限
我们将要做什么
- 安装先决条件
- 添加Taiga用户
- 安装和配置Taiga后端
- 安装和配置Taiga前端
- 安装和配置Taiga事件
- 配置马戏团和Gunicorn
- 配置Taiga Nginx虚拟主机
- 测试
第1步 - 安装先决条件
在安装所有Taiga.io组件之前,我们需要通过安装所需的软件包来准备系统。 在这第一步中,我们将安装所有Taiga组件和模块所需的软件包,包括Nginx,RabitMQ,Redis等。
首先,更新存储库并升级系统。
sudo apt update
sudo apt upgrade -y
- 安装依赖关系
下面的软件包将用于编译一些python模块。 运行下面的apt命令将其全部安装到系统上。
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
- 安装Nginx
Taiga.io是一个基于Web的应用程序工具。 它正在Web服务器上运行。 而对于本指南,我们将使用Nginx Web服务器进行安装。
使用下面的apt命令安装Nginx。
sudo apt install nginx -y
安装完成后,启动Nginx服务并启用它在系统启动时启动,这可以使用systemctl命令来完成。
systemctl start nginx
systemctl enable nginx
现在检查使用netstat并确保HTTP端口在列表中。
netstat -plntu
- 安装Redis和RabbitMQ
如果您不想要异步通知,则这是一个可选包。 使用下面的apt命令安装Redis和RabbitMQ。
sudo apt install -y redis-server rabbitmq-server
安装完成后,启动redis和rabbitmq服务并将这些服务添加到引导时间。
systemctl start redis
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
接下来,我们需要为RabbitMQ创建一个名为“taiga”的新用户和虚拟主机 - 它将用于“taiga-events”。
运行下面的命令创建名为taiga的新用户和虚拟主机,密码为“aqwe123”,然后设置“taiga”用户的权限。
sudo rabbitmqctl add_user taiga aqwe123
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
- 安装Python
'taiga-back'是用Django Web Framework创建的,它使用'Python 3.5'。 所以我们需要在系统上安装Python 3.5。
运行以下命令以安装具有所有所需依赖项的Python 3.5。
sudo apt install -y python3 python3-pip python-dev python3-dev python-pip virtualenvwrapper libxml2-dev libxslt-dev
- 安装马戏团
马戏团是一个进程管理器和套接字管理器。 它可以用来监视和控制Linux系统上的进程和套接字。
对于本指南,我们将使用马戏团来管理使用CoffeeScript创建的“taiga-events”过程。
用下面的apt命令安装马戏团。
sudo apt install -y circus
安装完成后,启动“circusd”服务并启用每次系统启动。
systemctl start circusd
systemctl enable circusd
现在使用以下命令检查服务。
systemctl status circusd
circusctl status
你会得到如下结果。
- 安装和配置PostgreSQL数据库
Taiga.io使用PostgreSQL作为数据库,组件'taiga-back'使用PostgreSQL(> = 9.4)作为数据库。
运行以下apt命令安装PostgreSQL 9.5。
sudo apt install -y postgresql-9.5 postgresql-contrib-9.5
sudo apt install -y postgresql-doc-9.5 postgresql-server-dev-9.5
如果数据库安装完成,请启动PostgreSQL服务并使其在系统引导时每次启动。
systemctl start postgresql
systemctl enable postgresql
接下来,我们将为Taiga.io安装创建新的数据库和用户。
登录到'postgres'用户。
su - postgres
使用下面的命令创建一个名为'taiga'的新数据库和用户。
createuser taiga
createdb taiga -O taiga
PostgreSQL数据库已经安装,Taiga.io的数据库已经创建。
- 安装Nodejs
“taiga-events”需要节点 - 添加nodejs nodesource存储库并使用apt命令进行安装。
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt install -y nodejs
Taiga.io安装所需的所有软件包已成功安装。
第2步 - 添加新用户Taiga
在这一步中,我们将创建一个名为“taiga”的新系统用户,然后将其添加到sudo组。
运行命令创建新的“taiga”用户。
useradd -m -s /bin/bash taiga
passwd taiga
现在将“taiga”用户添加到“sudo”组中。
usermod -a -G sudo taiga
现在登录为“taiga”,并尝试使用sudo命令。
su - taiga
sudo su
输入您的密码,并确保您获得root权限。
新的“taiga”用户已创建。
第3步 - 配置Taiga后端
Taiga-back是Taiga.io的后端,提供API。 它是用Python和Django Web框架编写的。
在这一步中,我们将安装和配置taiga组件“taiga-back”作为提供API的后端。
登录“taiga”用户并从GitHub下载“taiga-back”源代码。
su - taiga
git clone https://github.com/taigaio/taiga-back.git taiga-back
现在进入'taiga-back'目录,把分支改成'stable'分支。
cd taiga-back/
git checkout stable
接下来,我们需要使用virtualenv创建新的Python环境“taiga”。
mkvirtualenv -p /usr/bin/python3.5 taiga
登录到新的'taiga'虚拟环境,并使用pip命令安装'taiga-back'所需的所有python模块,如下所示。
workon taiga
pip install -r requirements.txt
完成所有必需模块的安装后,我们需要使用初始基本数据填充数据库。
运行下面的所有初始化命令。
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
这些命令将自动创建一个密码为“ 123123 ”的管理员帐户“ admin ”。
接下来,使用vim为'taiga-back'创建一个新的配置。
vim ~/taiga-back/settings/local.py
在那里粘贴下面的配置。
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 = "no-reply@taiga.hakase-labs.co"
SERVER_EMAIL = DEFAULT_FROM_EMAIL
#CELERY_ENABLED = True
EVENTS_PUSH_BACKEND = "taiga.events.backends.rabbitmq.EventsPushBackend"
EVENTS_PUSH_BACKEND_OPTIONS = {"url": "amqp://taiga:aqwe123@localhost: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"
保存并退出。
注意:
- 用您自己的域名更改“MEDIA_URL”和“STATIC_URL”。
- 使用您自己的密钥更改“SECRET_KEY”。
- 将EVENTS_PUSH_BACKEND_OPTIONS密码值更改为您自己的RabbitMQ值。 对于本指南,我们使用密码“aqwe123”。
现在用下面的命令测试'taiga-back'。
workon taiga
python manage.py runserver 0.0.0.0:8000
该命令将在端口8000的服务器公共IP下运行。
打开Web浏览器并访问以下地址。 我的是: http : //192.168.33.10 : 8000/api/v1/
你应该得到如下的JSON格式的“taiga-back”API。
作为后端的“taiga-back”的安装和配置已经完成。
第4步 - 配置Taiga前端
在这一步中,我们将下载并配置taiga前端。 前端将处理所有的taiga接口。
作为taiga用户登录。
su - taiga
使用git命令下载'taiga-front-dist'脚本。
cd ~
git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
之后,进入“taiga-front-dist”目录并将分支更改为“stable”。
cd taiga-front-dist/
git checkout stable
现在将'taiga-front-dist'配置样本复制到'conf.json',并使用vim编辑器进行编辑。
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
vim ~/taiga-front-dist/dist/conf.json
进行如下所有配置,并使用自己的域名更改“api”和“eventsUrl”。
{
"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": []
}
保存并退出。
Taiga前端配置已经完成。
第5步 - 配置Taiga事件
Taiga事件是一个WebSocket服务器,允许你在Taiga.io仪表板上显示实时的变化,并且使用RabbitMQ作为消息代理。 在这一步中,我们将下载并配置'taiga-events'。
以“taiga”用户登录。
su - taiga
使用git命令从GitHub下载'taiga-events'源代码,然后进入'taiga-events'目录。
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events
现在使用npm安装'taiga-events'所需的所有javascript模块,然后将'coffee-script'软件包安装到系统中。
npm install
sudo npm install -g coffee-script
接下来,将“taiga-events”的默认配置复制到“config.json”,并使用vim编辑器进行编辑。
cp config.example.json config.json
vim config.json
进行如下配置。
{
"url": "amqp://taiga:aqwe123@localhost:5672/taiga",
"secret": "myverysecretkey",
"webSocketServer": {
"port": 8888
}
}
保存并退出。
注意:
- 用你自己的rabbitmq用户和密码更改'url'值。
- 对于“秘密”值,请确保它与'taiga-back'配置文件'local.py'中的'SECRET_KEY'匹配。
大溪地事件配置已经完成。
第6步 - 配置马戏团和Gunicorn
马戏团将被用于控制和管理'taiga-back'和'taiga-events'的过程。 'taiga-events'正在作为一个咖啡剧本运行,而'taiga-back'正在Gunicorn下运行。
在这一步,我们将增加新的taiga事件和taiga-bac到circusd。
对于“taiga-events”,使用vim创建新文件“taiga-events.ini”。
vim /etc/circus/conf.d/taiga-events.ini
粘贴下面的配置。
[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
保存并退出。
对于taiga-back,创建新文件“taiga.ini”。
vim /etc/circus/conf.d/taiga.ini
在那里粘贴下面的配置。
[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
保存并退出。
接下来,我们需要为“taiga-events”和“taiga-back”进程创建新的“日志”目录。
su - taiga
mkdir -p ~/logs
现在重新启动circusd服务并检查所有可用的进程。
systemctl restart circusd
circusctl status
并确保在过程列表中“taiga-events”和“taiga-back”处于活动状态,如下所示。
第7步 - 配置Taiga Nginx虚拟主机
在这一步中,我们将为Nginx虚拟主机配置Taiga.io。 我们将在'conf.d'目录下为我们的Taiga.io安装创建新的虚拟主机文件。
转到nginx配置目录并删除“默认”虚拟主机文件。
cd /etc/nginx/
sudo rm -f sites-enabled/default
现在在conf.d目录下创建新的虚拟主机文件“taiga.conf”。
vim /etc/nginx/conf.d/taiga.conf
在那里粘贴下面的配置。
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;
}
}
保存并退出。
现在运行测试nginx配置,并确保没有错误。 然后重新启动Web服务器服务。
nginx -t
systemctl restart nginx
Taiga.io的Nginx虚拟主机配置已经完成。
第8步 - 测试
打开您的网页浏览器并访问Taiga.io域名。 我的是:http://taiga.hakase-labs.co
你会得到默认的泰加主页。
现在点击右上角的“登录”按钮,您将看到管理员登录页面。
用默认用户“ admin ”和密码“ 123123 ”登录。
你会得到如下结果。
接下来,我们将重置默认的管理员密码。
点击右上角的“管理员”按钮,然后点击“更改密码”。
现在输入旧密码“123123”和新密码,然后点击“保存”。
Ubuntu 16.04上Taiga.io的安装和配置已经成功完成。