本文档介绍了如何部署完整的Taiga服务(每一个模块都是Taiga平台的一部分)。
Taiga平台由三个主要组件组成,每一个组件在编译时和运行时都有本身的依赖关系:前端
每一个组件均可以在一台独特的机器上运行,或者全部组件均可以安装到不一样的机器上。在本教程中,咱们将在一台机器上安装全部内容,安装全部三个Taiga组件。这种类型的设置应该足以知足中小型生产环境。python
本教程假设您使用的是干净的,最近更新的Ubuntu 16.04映像。
因为前端的性质,Taiga经过域/ public-ip使用,由于前端应用程序在您的浏览器中运行。前端必须可以与后端/ API通讯,所以前端和后端都必须能够经过域/ public-ip访问。
Taiga的安装必须由“常规”用户完成,而不是root用户。
在本教程中,咱们假设如下细节:nginx
这是一个简短的系统架构描述,可帮助您了解Taiga的构建和工做方式。在进一步安装以前,请务必阅读此说明以得到高级概述。
Taiga由2个核心(mandatory)模块组成:git
taiga-back用django,python3编写,并为前端提供API端点。angularjs
taiga-front主要用angularjs和coffeescript编写,取决于后端。github
python后端由gunicorn(端口9001)公开,它是一个Python WSGI HTTP服务器。进程管理器是systemd,它一块儿运行gunicorn和taiga-back。从技术上讲,后端与数据库(postgresql)通讯,经过前端,它容许用户使用Taiga的功能。前端和后端之间的通讯使用API完成。web
而后后端由nginx公开暴露,nginx充当这种状况的反向代理。前端位于dist文件夹中,并由nginx公开公开,nginx充当此案例的静态Web服务器。redis
Taiga由三个模块组成,每一个模块都须要不一样的包和第三方包。本节将收集成功的Taiga安装和配置所需的软件包。在本节中,咱们将为全部模块安装全部依赖项,包括可选模块和服务。
该组件taiga-back使用postgresql(> = 9.4)做为数据库:
必须与几个第三方库一块儿安装Python(3)和virtualenvwrapper pip升级到最新版本
sudo apt-get update sudo apt-get install -y build-essential binutils-doc autoconf flex bison libjpeg-dev libfreetype6-dev zlib1g-dev libzmq3-dev libgdbm-dev libncurses5-dev automake libtool curl git tmux gettext nginx rabbitmq-server redis-server postgresql-9.5 postgresql-contrib-9.5 postgresql-doc-9.5 postgresql-server-dev-9.5 python3 python3-pip python3-dev virtualenvwrapper libxml2-dev libxslt-dev libssl-dev libffi-dev
不要不更改成root用户。必须与taiga用户一块儿完成安装。
sudo adduser taiga sudo adduser taiga sudo sudo su taiga cd ~
sudo -u postgres createuser taiga sudo -u postgres createdb taiga -O taiga --encoding='utf-8' --locale=en_US.utf8 --template=template0
sudo rabbitmqctl add_user taiga PASSWORD_FOR_EVENTS sudo rabbitmqctl add_vhost taiga sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
本节有助于配置后端(api)Taiga服务及其依赖项。
cd ~ git clone https://github.com/taigaio/taiga-back.git taiga-back cd taiga-back git checkout stable
mkvirtualenv -p /usr/bin/python3 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
这将建立管理员账户。登陆凭据为admin,密码为123123。sql
可选: 若是您但愿将一些示例数据加载到Taiga中,请执行如下命令,该命令使用示例项目和随机数据填充数据库(对于演示很是有用):数据库
python manage.py sample_data
from .common import * MEDIA_URL = "http://example.com/media/"STATIC_URL = "http://example.com/static/"SITES["front"]["scheme"] = "http"SITES["front"]["domain"] = "example.com" SECRET_KEY = "theveryultratopsecretkey" DEBUG = FalsePUBLIC_REGISTER_ENABLED = True DEFAULT_FROM_EMAIL = "no-reply@example.com"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"
(可选)要确保一切正常,请发出如下命令以在开发模式下运行后端以进行测试:
workon taiga python manage.py runserver
而后,您必须可以在URL上看到表示端点列表的json:http:// localhost:8000 / api / v1 /。
在此阶段,后端已成功安装,但要在生产中运行python后端,必须首先配置应用程序服务器。有关详细信息,请参阅本文档后面的内容。
从Github下载代码:
cd ~ git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist cd taiga-front-dist git checkout stable
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
{ "api": "http://example.com/api/v1/", "eventsUrl": "ws://example.com/events", "debug": "true", "publicRegisterEnabled": true, "feedbackEnabled": true, "privacyPolicyUrl": null, "termsOfServiceUrl": null, "GDPRUrl": null, "maxUploadFileSize": null, "contribPlugins": []}
当心使用浏览器中的复制粘贴以免 http://重复。
有taiga-front-dist,前-dist的下载和配置是不够的。下一步是在静态文件Web服务器下公开代码(在dist目录中)。在本教程中,咱们使用nginx做为静态文件Web服务器和反向代理。稍后将解释nginx的配置。