花色管理体系 TAIGA 布署

【转载请附】愿以此功德,回向 >>

原来的小说链接:http://www.huangwenchao.com.cn/二零一六/05/taiga-deployment.html【项目管理类别
Taiga
安插手札】

编纂配置 ~/taiga-front-dist/dist/js/conf.json
{
    "api": "http://example.com/api/v1/",
    "eventsUrl": "ws://example.com/events",
    "debug": "true",
    "publicRegisterEnabled": true,
    "feedbackEnabled": true,
    "privacyPolicyUrl": null,
    "termsOfServiceUrl": null,
    "maxUploadFileSize": null,
    "contribPlugins": []
}

接下来把 nginx 的虚拟主机配置到这么些目录下即可运转。

5. 事变安装

(非必须)跳过

安装 PyPI 依赖项
pip install -r requirements.txt

留神!在实操中那里的信赖性项不全,因而一旦跑步起来须要看日志看一下少了哪些库。

3.5. 异步职分

(非必须)跳过

安装 Nginx
sudo apt-get install -y nginx
创建 virtualenv taiga
mkvirtualenv -p /usr/bin/python3.4 taiga

3.2. 安装 postgresql

sudo apt-get install -y postgresql-9.3 postgresql-contrib-9.3
sudo apt-get install -y postgresql-doc-9.3 postgresql-server-dev-9.3
# 创建数据库
sudo -u postgres createuser taiga
sudo -u postgres createdb taiga -O taiga

4. 前端布署

由于是静态页面,安插比较简单,基本无意外。

填写 Python 配置文件
from .common import *

MEDIA_URL = "http://example.com/media/"
STATIC_URL = "http://example.com/static/"
ADMIN_MEDIA_PREFIX = "http://example.com/static/admin/"
SITES["front"]["scheme"] = "http"
SITES["front"]["domain"] = "example.com"

SECRET_KEY = "theveryultratopsecretkey"

DEBUG = False
TEMPLATE_DEBUG = False
PUBLIC_REGISTER_ENABLED = True

DEFAULT_FROM_EMAIL = "no-reply@example.com"
SERVER_EMAIL = DEFAULT_FROM_EMAIL

# Uncomment and populate with proper connection parameters
# for enable email sending.
#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"

留意把地点的域名换掉就大致了,发送邮件的远非调节和测试。

添加虚拟主机

制造虚拟主机配置文件:/etc/nginx/sites-available/taiga

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;
    }
}

注意里面包车型大巴 default_server 和 server_name
如若在急需单独计划虚拟主机而不是直接占用全站资源,须求遵照实际修改(删除
default-server,把 server_name) 改成本身的。

下一场将其启用:

sudo ln -s /etc/nginx/sites-available/taiga /etc/nginx/sites-enabled/taiga

6.1. Circus 和 Gunicorn

安装部件,注意 Circus 必要选拔 pip2 安装。

sudo pip2 install circus

6.2.1. 启用 HTTPS

(非必须)跳过


(完)


3.1. 设置注重项

sudo apt-get install -y build-essential binutils-doc autoconf flex bison libjpeg-dev
sudo apt-get install -y libfreetype6-dev zlib1g-dev libzmq3-dev libgdbm-dev libncurses5-dev
sudo apt-get install -y automake libtool libffi-dev curl git tmux

3.4. 安装验证

在 ~/taiga-back/ 下边执行:

workon taiga
python manage.py runserver 0.0.0.0:8111

好通晓后,能够通过 http://example.com:8111/api/v1/ 访问接口,用户名
admin 密码 123123 登录符合规律即表明安装正确。

下载代码
cd ~
git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
cd taiga-front-dist
git checkout stable

1. 配备概要

率先,项目是应用 RESTFUL 情势开发的,也正是说,后台前面台完全部独用立。

前台部分,使用的是 AngularJS (也尤其对俺的口味),因而唯有施用 nginx
静态计划,不设有太大的难点。

注重是后端,使用 Django + REST
Framework,因而计划起来总是有那么点质疑,上边重点必要缓解的是后端计划的难题。

唯独幸亏眼前给出的设置指南链接上边给出了详实可用惊叹不已的配置流程,尽管步骤较多,不过也是一步一步搞下去就能够选用了,上面就依照这几个流程过1遍,并且对未尽部分,一些只怕过不去的气象开始展览一下验证,兼做笔录。

实在依照指南装下去基本没什么障碍,重要难点在于,有些 PyPI
的包其实在 requirements.txt 里面是未曾的,因而需求看日志发现标题,然后手动补上这个包。


修改 Circus 的起步设置

布局文件在:/etc/init/circus.conf

start on filesystem and net-device-up IFACE=lo
stop on runlevel [016]

respawn
exec /usr/local/bin/circusd /home/taiga/circus.ini

注意 circus.ini 的路径倘若不在这些地点要求相应修改。

然后就能够运营服务了。

sudo service circus start

6.2. Nginx

Circus 基础配置 ~/circus.ini

安份守己原版配置大旨无需修改,可以将 circus.ini 放到任何目录,作者本人的实行中置放了 /var/www/circus.ini 中。

[circus]
check_delay = 5
endpoint = tcp://127.0.0.1:5555
pubsub_endpoint = tcp://127.0.0.1:5556
statsd = true

[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.4/site-packages

专注上边有一些特地简单卡住,正是出口的日志文件所在目录 /home/taiga/logs/ 必须存在!不然会运维失败,引起需求保险日志目录事先创造好。

3. 后台装置:

3.3. 安装 python 环境

sudo apt-get install -y python3 python3-pip python-dev python3-dev python-pip virtualenvwrapper
sudo apt-get install libxml2-dev libxslt-dev

此地设置了 Python3.4 作为第壹的 python 环境,也便是说 python, pip
那七个指令日后在系统里面对应 3.4 版本,而 python2 和 pip2 对应旧版的 2.7
版本。

另有值得注意的是 virtualenv
的装置,前面用到这么些布局很是关键,具体逻辑在经过中进行了就学,参考:

http://www.huangwenchao.com.cn/2015/05/python-virtualenv.html

照耀数据库和载入初阶数据
python manage.py migrate --noinput
python manage.py loaddata initial_user
python manage.py loaddata initial_project_templates
python manage.py loaddata initial_role
python manage.py collectstatic --noinput

在意第2步很不难卡住,原因是不够 PyPI 库的题材,关切日志。

6. 最终章(HTTP 和 WSGI 部署)

笔者们使用 Circus 做进度守护,Gunicorn 做 WSGI 容器,然后经过 Nginx
对外提供 HTTP 服务。

2. 环境准备

http://taigaio.github.io/taiga-doc/dist/setup-production.html#_before_starting

首先,大家的条件基本跟指点里面包车型大巴同样,使用 Ubuntu14.04,对一下别样标准化:

  1. IP 没什么好说的
  2. 主机名,大家用的是 taiga.easecloud.cn,注意把前面包车型大巴 example.com
    换到大家协调的即可。
  3. 用户 taiga,那个大家须要事先创设好,并且给予其 sudo 权限。
  4. system ram 请无视。

近期成立 taiga 用户:

adduser taiga

下一场给予其 sudo 权限:

visudo

# User privilege specification
root    ALL=(ALL:ALL) ALL
# 在这行后面加上:
taiga    ALL=(ALL:ALL) ALL

题记

应用了 MantisBT
一段时间,觉得功效太少,只局限在错误跟踪,而且操作体验比较差,界面很不好,很已经想将其换掉。

突发性发现3个很不错的新采用:Taiga,于是就试着将其配备下来,发现纯属是叁个好东西,对于进行Scrum 项目管理章程的,更是头角峥嵘的利器!

产品官网:https://taiga.io/

GITHUB:https://github.com/taigaio

设置指南:http://taigaio.github.io/taiga-doc/dist/setup-production.html

鉴于那几个项目是用 Django(1.7)
开发的,由此个人情绪特别承认,并且在布局的进程中,也顺手牵羊 GET
到了关于 Django 安顿的部分技术。

下载源码
cd ~
git clone https://github.com/taigaio/taiga-back.git taiga-back
cd taiga-back
git checkout stable

相关文章