ubuntu16.04或者centos7下部署taiga项目管理软件

        Taiga是一款开源的敏捷项目管理软件,提供Scrum和KanBan两种敏捷管理工具。taiga项目管理工具的搭建过程比较繁琐,下面将其搭建步骤进行了整理。

    BackLog

    KanBan 

 兼容性

一、前言

Taiga平台主要有三部分构成:taiga-back、taiga-front-dist、taiga-event。

1、Taiga-back: taiga平台的后端,提供API接口响应前端请求返回json数据,由Python和Django编写。

2、Taiga-front-dist: taiga平台的前端,提供用户操作界面,由AngularJs和CoffeeScript编写。

3、Taiga-events:taiga平台的事件,提供实时的信息更改,使用RabbitMQ作为消息代理。

二、搭建

    Ubuntu16.04和Centos7的搭建方法基本一致,毕竟Ubuntu和Centos以及Debian和Redhat本是同源。这两者的安装只是包的安装工具apt和yum的区别。下面就以Centos7的安装为例。

1、安装依赖关系

yum -y install gcc gcc-c++ make openssl-devel binutils autoconf flex bison libjpeg-devel freetype-devel zlib-devel perl-ZMQ-LibZMQ3 gdbm-devel ncurses-devel automake libtool libffi-devel curl git tmux gettext epel-release

2、安装python

    Ubuntu和Centos会默认安装python2.7版本(输入python测试),在这个项目taiga-back使用的是django web framework使用的是3.5版本,因此需要安装python3.5。

sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm

## 安装python3.5
sudo yum -y install python35u python35u-pip python35u-devel python-devel python-pip python-virtualenvwrapper libxml2-devel libxslt-devel

3、安装Nginx

    Taiga是一个网页版项目管理工具,在web服务器下运行,因此将使用Nginx作为web服务器。

sudo yum -y install nginx

    启动该服务以及添加引导启动

systemctl start nginx
systemctl enable nginx

    使用netstat检查打开的端口,确保Http端口在列表中。

4、安装Redis和RabbitMQ

    Redis和RabbitMQ包将被taiga事件使用。

yum -y install rabbitmq-server redis

    安装成功启动、添加引导启动

systemctl start rabbitmq-server
systemctl enable rabbitmq-server

systemctl start redis
systemctl enable redis

5、创建新的taiga用户以及虚拟主机,并且设置用户权限,注意密码

sudo rabbitmqctl add_user taiga aqwe123
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"

6、安装Nodejs

    “taiga-events”需要节点 - 添加nodejs nodesource存储库并使用yum命令进行安装(curl在最开始安装依赖的时候已经安装)。

curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
sudo yum -y install nodejs

7、安装Postgresql

    Taiga项目是基于Django框架的,后台数据库是依赖postgresql数据库,下面安装Postgresql9.5。

# 将Postgresql9.5数据库添加到系统中
sudo rpm -Uvh http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm

# 使用yum安装PostgreSQL9.5
sudo yum -y install postgresql95 postgresql95-devel postgresql95-contrib postgresql95-docs postgresql95-server

# 初始化数据库
sudo /usr/pgsql-9.5/bin/postgresql95-setup initdb

# 启动数据库以及添加引导启动
systemctl start postgresql-9.5
systemctl enable postgresql-9.5

# 登录数据库(默认)
su - postgres

# 为taiga项目创建新的数据库和用户(taiga-back用到taiga数据库)
createuser taiga
createdb taiga -O taiga

   为Taiga项目的数据库已经创建。

8、添加taiga用户

    将创建一个名为“taiga”的新系统用户和组,然后将其添加到wheel组中以进行sudo命令访问。

# 使用"useradd"来创建"taiga"用户和组,并设置密码
useradd -U -m -s /bin/bash taiga
passwd taiga

# 将"taiga"用户添加到"wheel"组
usermod -a -G wheel taiga

# 测试"taiga"用户的sudo访问权限
su - taiga
sudo su

9、安装Taiga后端

    Taiga-back是taiga项目的后端,它为前端提供了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软件包
sudo pip install --upgrade virtualenv

# 使用mkvirtualenv命令创建新的python环境'taiga'
mkvirtualenv -p /usr/bin/python3.5 taiga

# 安装所有用于taiga-back的模块之前,我们需要为'/ usr / bin'目录创建'pg_config'命令的新链接
sudo ln -s /usr/pgsql-9.5/bin/pg_config /usr/bin/pg_config


# 安装'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 = "theveryultratopsecretkey"
 
DEBUG = False
PUBLIC_REGISTER_ENABLED = True
 
DEFAULT_FROM_EMAIL = "[email protected]"
SERVER_EMAIL = DEFAULT_FROM_EMAIL
 
EVENTS_PUSH_BACKEND = "taiga.events.backends.rabbitmq.EventsPushBackend"
EVENTS_PUSH_BACKEND_OPTIONS = {"url": "amqp://taiga:PASSWORD_FOR_EVENTS@localhost:5672/taiga"}
##################################################################

    注意:

            (1) 、用自己的ip地址更改“MEDIA_URL”和“STATIC_URL”。例如:"http://10.193.40.137/media/"

            (2) 、用你自己的密钥更改'SECRET_KEY',注意该密码需要与后面的taiga-events保持一致。

            (3) 、将EVENTS_PUSH_BACKEND_OPTIONS密码值更改为您自己的RabbitMQ值。 在为rabbitmq添加用户的时候的密码。

     测试"taiga-back"

workon taiga
python manage.py runserver 0.0.0.0:8000

    在浏览器输入 http://10.193.40.137:8000/api/v1/        (ip地址为本机地址也是local.py里面填写的地址)

返回数据:至此taiga后端已经安装成功,可以在http://10.193.40.137/admin/ 后台管理界面登录 账号:admin 密码:123123

10、安装Taiga前端

    Taiga-front-dist是Taiga项目的前端代码,该项目采用前后端分离的架构,前端处理所有的taiga接口

# 登录到taiga用户
su - taiga

# 使用git下载'Taiga前端'源代码
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

# 编辑默认配置文件
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
vim ~/taiga-front-dist/dist/conf.json


# 注意注意 将下面的taiga.hakase-labs.co替换为本机ip 和 搭建后端一样(###内###)
##################################################################
{
     "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": []
 }
##################################################################

# 修改app-loader.js文件
vi ~/taiga-front-dist/dist/v-1573835111605/js/app-loader.js

# 将第一行 window.taigaConfig={api:"http://xxxx:8000/api/v1/"....} 此处的xxxx修改为本机ip

11、安装Taiga事件

    Taiga-events是一个webSocket服务器,允许taiga仪表盘中显示实时更改,并使用RabbitMQ作为消息代理。

# 登录到taiga用户
su - taiga

# 下载"taiga-events源码",然后进入目录
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events

# 使用npm命令下载并安装'taiga-events'所需的所有javascript库
npm install
sudo npm install -g coffee-script

# 编辑配置文件
cp config.example.json config.json
vim config.json

# 粘贴一下配置,注意此处的两个密码"aqwe123"和 "theveryultratopsecretkey"需要和前面taiga-back设# 置的密码保持一致。(###内###)
##################################################################
{
     "url": "amqp://taiga:aqwe123@localhost:5672/taiga",
     "secret": "theveryultratopsecretkey",
     "webSocketServer": {
         "port": 8888
     }
 }
##################################################################

12、安装circus

    circus将用于控制和管理'taiga-back'和'taiga-events'过程。 'taiga-events'正在作为coffee运行,而'taiga-back'正在django下运行

# 登录taiga
su - taiga

# 使用git下载马戏团的源代码
cd ~/
git clone https://github.com/circus-tent/circus.git circus

# 在taiga用户下创建新的'conf'目录
mkdir -p ~/conf

# 创建名为'taiga.ini'的新马戏团配置文件
vim ~/conf/taiga.ini

# 粘贴如下配置,该配置包括circus基础配置以及taiga-back、taiga-events配置(###内###)
##################################################################
[circus]
 check_delay = 5
 endpoint = tcp://127.0.0.1:5555
 pubsub_endpoint = tcp://127.0.0.1:5556
 statsd = true
 
 [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
 
 [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
##################################################################

# 创建日志文件目录
mkdir -p ~/logs

# 安装circus
cd ~/circus
sudo python3.5 setup.py install

# 创建circus服务
sudo su
vim /usr/lib/systemd/system/circusd.service

# 粘贴如下配置,帮助其找到taiga.ini(###内###)
##################################################################

[Unit]
Description=circus
 
[Service]
ExecStart=/usr/bin/circusd /home/taiga/conf/taiga.ini
##################################################################

# 重新加载systemd系统
systemctl daemon-reload

# 启动circusd服务并添加引导启动
systemctl start circusd
systemctl enable circusd

# 检查circus状态
systemctl status circusd

13、 配置nginx

    Nginx是一个web服务器

# 在nginx配置目录'conf.d'目录下创建一个新文件'taiga.conf'
cd /etc/nginx/
vim conf.d/taiga.conf

# 粘贴如下配置(###内###)
##################################################################
server {
    listen 80;
    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对taiga-front-dist的访问权限
sudo gpasswd -a nginx taiga

sudo chmod g+x /home/taiga
sudo chmod g+x /home/taiga/taiga-front-dist
sudo chmod g+x /home/taiga/taiga-front-dist/dist

# 重启nginx服务
nginx -t
systemctl restart nginx

14、测试

    在浏览器中运行 10.193.40.137,默认进入taiga主页。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章