在Ubuntu 16.04上安装Taiga.io Agile项目管理软件

在Ubuntu 16.04上安装Taiga.io Agile项目管理软件

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

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

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

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

先决条件

  • Ubuntu 16.04
  • 根权限

我们将要做什么

  1. 安装先决条件
  2. 添加Taiga用户
  3. 安装和配置Taiga后端
  4. 安装和配置Taiga前端
  5. 安装和配置Taiga事件
  6. 配置马戏团和Gunicorn
  7. 配置Taiga Nginx虚拟主机
  8. 测试

第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的安装和配置已经成功完成。

参考

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏