如何在CentOS 7上安装Taiga.io项目管理软件

Taiga.io是敏捷开发人员,设计人员和项目经理的开源项目管理系统。它是一个漂亮的项目管理工具...

如何在CentOS 7上安装Taiga.io项目管理软件

Taiga.io是敏捷开发人员,设计人员和项目经理的开源项目管理系统。 这是一个漂亮的项目管理工具,可以为初创公司,软件开发人员等处理简单和复杂的项目。

Taiga平台有三个主要组件,每个组件都有自己的依赖关系。

  1. Taiga-back :提供API的应用程序的后端。 用Python和Django编写。
  2. Taiga-front-dist :用AngularJS和CoffeeScript编写的Taiga Frontend。
  3. Taiga事件 :Taiga WebSocket服务器在应用程序中显示实时更改。 并使用RabbitMQ作为消息代理。

在本教程中,我将逐步向您展示如何在CentOS 7服务器上安装Taiga.io项目管理工具。 我们也将学习如何设置和配置Taiga.io安装的CentOS 7服务器。

先决条件

  1. CentOS 7
  2. 根特权

我们将要做什么

  1. 安装软件包
  2. 安装和配置PostgreSQL
  3. 添加Taiga用户
  4. 配置Taiga返回
  5. 配置Taiga前端
  6. 配置Taiga事件
  7. 配置马戏团流程管理
  8. 为Taiga.io配置Nginx虚拟主机
  9. 允许Nginx访问Taiga前端
  10. 测试

第1步 - 安装软件包

在安装所有Taiga.io组件之前,我们需要通过安装一些软件包来准备系统。 在第一步中,我们将安装所有Taiga组件和模块所需的软件包,包括Nginx,RabitMQ,Redis等。

- 安装依赖关系

我们需要CentOS 7的'开发工具'来编译一些python模块。

使用下面的yum命令安装所需的软件包。

sudo 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存储库

现在我们需要安装EPEL(Extra Linux for Enterprise Linux)存储库。 需要安装Nginx Web服务器RabbitMQ和Redis。

使用以下命令在CentOS 7系统上安装EPEL存储库:

sudo yum -y install epel-release

- 安装Python

Taiga.io需要安装Python 3.5。 我们将使用第三方存储库 - 'ius community' - 来安装Python 3.5。

按以下方式添加'ius社区'资源库。

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

现在使用下面的yum命令安装Python 3.5。

sudo yum -y install python35u python35u-pip python35u-devel python-devel python-pip python-virtualenvwrapper libxml2-devel libxslt-devel

- 安装Nginx

Taiga.io是一个Web应用程序工具,它​​在Web服务器下运行。 对于本指南,我们将使用Nginx作为Web服务器。

使用下面的yum命令从EPEL存储库安装Nginx。

sudo yum -y install nginx

安装完成后,启动服务并使其在系统引导时启动。

systemctl start nginx
systemctl enable nginx

现在使用netstat命令检查打开的端口。

netstat -plntu

并确保您在列表中获得HTTP端口80,如下所示。

安装一个Check nginx Web服务器

- 安装Redis和RabbitMQ

这是可选的,因为你仍然可以在没有这些包的情况下运行Taiga.io。 基本上,Redis和RabbitMQ包将被taiga事件使用。

使用下面的yum命令从EPEL存储库安装Redis和RabbitMQ。

yum -y install rabbitmq-server redis

如果安装完成,请启动Redis和RabbitMQ服务,然后启用它们以在系统启动时启动。

systemctl start rabbitmq-server
systemctl enable rabbitmq-server

systemctl start redis
systemctl enable redis

安装Redis和RabbitMQ

接下来,我们需要为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 ".*" ".*" ".*"

的RabbitMQ

- 安装Nodejs

“taiga-events”需要节点 - 添加nodejs nodesource存储库并使用yum命令进行安装。

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

系统上安装了Taiga.io安装所需的所有基本软件包。

第2步 - 安装和配置PostgreSQL

Taiga.io是基于Python Django Web框架的Web应用程序,它使用PostgreSQL作为数据库。 我们需要安装PostgreSQL 9.5版本的Taiga.io。

将PostgreSQL 9.5存储库添加到系统中。

sudo rpm -Uvh http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm

现在使用下面的yum命令安装PostgreSQL 9.5。

sudo yum -y install postgresql95 postgresql95-devel postgresql95-contrib postgresql95-docs postgresql95-server

安装完成后,我们需要初始化PostgreSQL数据库。

sudo /usr/pgsql-9.5/bin/postgresql95-setup initdb

现在启动PostgreSQL服务并使其每次在系统启动时启动。

systemctl start postgresql-9.5
systemctl enable postgresql-9.5

安装PostgreSQL

接下来,我们必须为Taiga.io安装创建一个新的数据库。 我们需要创建一个新的数据库和一个名为'taiga'的用户。

以'postgres'用户身份登录。

su - postgres

现在使用以下命令为Taiga.io创建新的数据库和用户。

createuser taiga
createdb taiga -O taiga

创建postgres用户和数据库

用于Taiga.io安装的新PostgreSQL数据库已创建。

第3步 - 添加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

输入您的密码并确保您获得'taiga'用户的root权限。

添加Taiga用户

第4步 - 配置Taiga返回

Taiga-back是Taiga.io的后端,它为Taiga前端提供了一个API。 它是用Python和Django Web Framework编写的。

在这一步中,我们将安装和配置taiga组件'taiga-back'。

登录'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”的新演出已经创建。

在安装所有用于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 = "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:PASSWORD_FOR_EVENTS@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

该命令将在服务器公共IP下使用端口8000运行taiga-back。

启动TaigaIO

打开网页浏览器并访问以下地址。

http://192.168.33.10:8000/api/v1/

你将得到JSON格式的'taiga-back'API,如下所示。

TaigaIO API

'taiga-back'的安装和配置已经完成。

第5步 - 配置Taiga前端

在这一步中,我们将下载并配置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

复制默认配置文件并使用vim进行编辑。

cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
vim ~/taiga-front-dist/dist/conf.json

复制以下配置:

{
    "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前端'配置已经完成。

第6步 - 配置Taiga事件

Taiga事件是一个WebSocket服务器,它允许您在Taiga.io仪表板中显示实时更改,并使用RabbitMQ作为消息代理。 在这一步中,我们将下载并配置'taiga-events'。

登录到'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

注意:我们需要在根系统下安装'coffee-script'。

接下来,将JSON配置文件复制到'config.json',然后使用vim进行编辑。

cp config.example.json config.json
vim config.json

在那里粘贴以下配置。

{
    "url": "amqp://taiga:aqwe123@localhost:5672/taiga",
    "secret": "theveryultratopsecretkey",
    "webSocketServer": {
        "port": 8888
    }
}

保存并退出。

注意:

  • 使用您自己的rabbitmq用户和密码更改'url'值。
  • 对于“秘密”值,请确保它与'local.py'中的'SECRET_KEY'匹配 - 'taiga-back'的配置文件。

大溪地事件配置已经完成。

第7步 - 安装和配置马戏团

马戏团将用于控制和管理'taiga-back'和'taiga-events'过程。 'taiga-events'正在作为咖啡剧本运行,而'taiga-back'正在Gunicorn下运行。

在这一步中,我们将从源代码手动安装Circus。

作为taiga用户登录。

su - taiga

现在使用git下载马戏团的源代码。

cd ~/
git clone https://github.com/circus-tent/circus.git circus

在系统上安装马戏团之前,我们需要为马戏团配置创建一个新目录。

在taiga用户下创建新的'conf'目录。

mkdir -p ~/conf

并为Taiga.io创建名为'taiga.ini'的新马戏团配置。

vim ~/conf/taiga.ini

粘贴以下配置。

[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

转到马戏团目录并使用root权限安装软件。

cd ~/circus
sudo python3.5 setup.py install

安装完成后,我们将在系统上配置马戏团作为服务。

运行sudo命令,然后创建一个新的服务文件'circusd.service'。

sudo su
vim /usr/lib/systemd/system/circusd.service

在那里粘贴以下配置。

[Unit]
Description=circus

[Service]
ExecStart=/usr/bin/circusd /home/taiga/conf/taiga.ini

保存并退出。

现在使用下面的命令重新加载systemd系统。

systemctl daemon-reload

确保没有错误,然后启动circusd服务并使其每次在系统启动时启动。

systemctl start circusd
systemctl enable circusd

Taiga.io的马戏团安装和配置已完成。 使用下面的circusctl命令检查它。

circusctl status

并确保你在马戏团进程列表中获得taiga-back和taiga-events。

在马戏团进程列表中获得taiga-back和taiga事件

或者你可以使用systemctl命令如下。

systemctl status circusd

马戏团状态

第8步 - 配置Taiga Nginx虚拟主机

在这一步中,我们将为Taiga.io配置Nginx虚拟主机。 我们将在Taiga.io安装的'conf.d'目录下创建一个新的虚拟主机文件。

转到nginx配置目录并在'conf.d'目录下创建一个新文件'taiga.conf'。

cd /etc/nginx/
vim conf.d/taiga.conf

在那里粘贴以下配置。

server {
    listen 80;
    server_name taiga.hakase-labs.co;

    large_client_header_buffers 4 32k;
    client_max_body_size 50M;
    charset utf-8;

    access_log /var/log/nginx/taiga.access.log;
    error_log /var/log/nginx/taiga.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的虚拟主机配置已完成。

TaigaIO Nginx vhost

第9步 - 允许Nginx访问Taiga前端

有时你可能会得到关于Nginx Web服务器的错误,说它不能访问taiga-frontend文件 - 在这种情况下你会看到Nginx的'500 Internal Server Error'。

为了解决这个问题,我们需要更改所有taiga-frontend文件的所有者或组,并让Nginx访问所有文件。

默认情况下,在CentOS 7上,Nginx Web服务器在'nginx'用户下运行,Taiga.io安装在'taiga'用户下运行。

以下是我们正在讨论的Nginx错误的示例。

允许Nginx访问Taiga前端

Nginx Web服务器无法读取'/ home / taiga / taiga-front-dist / dist'目录中的所有内容。

使用下面的命令检查它。

sudo -u nginx stat /home/taiga/taiga-front-dist/dist

你会得到权限被拒绝的结果。

现在,我们需要将'nginx'用户添加到'taiga'组,并为taiga-front-dist目录提供nginx用户所需的权限。

将'nginx'用户添加到'taiga'组。

sudo gpasswd -a nginx taiga

授予Web服务器权限以读取taiga-front-dist目录中的所有内容。

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 Web服务器。

systemctl restart nginx

第10步 - 测试

打开你的网页浏览器并访问你的Taiga安装域名,我的地址是http://taiga.hakase-labs.co

你应该得到如下所示的Taiga默认主页。

发现项目

在这里,输入密码为“ 123123 ”的默认用户“ admin ”,然后点击“登录”按钮。

登录到TaigaIO

你会进入管理仪表板。

TaigaIO仪表板

使用Nginx Web服务器在CentOS 7上安装Taiga.io已成功完成。

参考