Taiga Setup using Docker-compose

Taiga简要介绍

Taiga是一款免费开源项目管理系统,比较适用于中小型敏捷项目管理,支持Scrum和kanban两种board 模板来跟踪项目的进度,同时还提供了丰富的第三方应用集成支持,如:视频会议功能与Talky.ioAppear.in的第三方服务结合;与基于Web的版本控制存储库(如GitHub和Bitbucket)进行交互;以及实时聊天工具slack集成等. 具体详细介绍,请参见https://taiga.io/,我们就直接进入setup 环节

Taiga 安装

安装先决条件

  • 安装了docker的linux机(暂时不讨论swarm情况,做法也是基本类似的)

  • 一个域名(然了没有也可以暂时使用ip)

准备docker-compose.yml

内容如下:

version: '2'    
services:
  taiga:
    image: benhutchins/taiga
    restart: always
    ports:
      - 8043:80 
      # - 443:443 # To enable SSL, uncomment this line. See "Enable SSL" below.
    depends_on:
      - postgres
      - postfix

      # To enable taiga-events, uncomment the following lines:
      # - events
      # - rabbit
      # - redis
    environment:
      # Hostname for your instance of Taiga. Required.
      #TAIGA_HOSTNAME:  IP or FQDN
      TAIGA_HOSTNAME: taiga.xxx.com

      # Database variables. Required.
      TAIGA_DB_HOST: postgres
      TAIGA_DB_NAME: taigadb
      TAIGA_DB_USER: taiga
      TAIGA_DB_PASSWORD: 123456
      # Enable SSL internally, within the Docker container. Optional.
      # This is not great. I suggest using something on top of this
      # to enable SSL. See the example example-nginx-ssl.conf file
      # for an alternative way to enable SSL.
      # TAIGA_SSL: 'True'

      # Enable SSL externally, preferred method
      # TAIGA_SSL_BY_REVERSE_PROXY: 'True'
    volumes:
      # Media and uploads directory. Required (or you will lose all uploads)
      - ./media:/usr/src/taiga-back/media

      # Taiga configuration directory. Makes it easier to change configuration.
      - ./taiga-conf:/taiga

  postgres:
    image: postgres
    restart: always
    environment:
      POSTGRES_DB: taigadb
      POSTGRES_USER: taiga
      POSTGRES_PASSWORD: 123456
    ports:
      - 5432
     # expose port or not depends on you
    volumes:
      # Postgres data directory. This ensures the database is not lost.
      - ./pgdata:/var/lib/postgresql/data

  postfix:
    image: catatnight/postfix
    restart: always
    environment:
      smtp_user: taiga_user:password,taiga_user1:password1
      #  you can add user as above
      maildomain: taiga-xxx.com
     # vitual domain name, set it as whatever you like
    ports:
      - 25

  # To enable taiga-events, uncomment the following lines:
  # rabbit:
  #   image: rabbitmq:3
  #   hostname: rabbit
  #
  # redis:
  #   image: redis:3
  #
  # celery:
  #   image: celery
  #   links:
  #     - rabbit
  #
  # events:
  #   image: benhutchins/taiga-events
  #   links:
  #     - rabbit
说明
  1. taiga - benhutchins/taiga:latest taiga的docker镜像很多,但是很多都在2015年以后没有维护,且不容易setup成功。taiga github上主要分为taiga-front and taiga-back两大工程,而且没有‘官方’的docker images
  2. postgres - postgresql,taiga主要采用postgres来存过程数据
  3. postfix - SMTP server,optional, 由于taiga很多项目动态都是通过邮件提醒,可以设置一个自己有效的SMTP 配置而不用postfix或者其他的类似的SMTP 实现方式。
  4. 其他几个services,如celery,events等不setup暂时也不影响使用,暂时还没有深入去看。

taiga 配置

我们在上面配置taiga docker-compose file的时候,有一个数据卷的配置

 ./taiga-conf:/ taiga  

我们可以在taiga-conf目录下放置 taiga的配置信息,主要有两个文件:

  • conf.json - Taiga front 的配置
  • local.py - Taiga back的配置

下面我们来看看这两个文件的内容:

conf.json
{
    "api": "http://{FQDN:port | ip:port}/api/v1/",
    "eventsUrl": null,
    "eventsMaxMissedHeartbeats": 5,
    "eventsHeartbeatIntervalTime": 60000,
    "eventsReconnectTryInterval": 10000,
    "debug": false,
    "debugInfo": false,
    "defaultLanguage": "en",
    "themes": ["taiga"],
    "defaultTheme": "taiga",
    "publicRegisterEnabled": true,
    "gravatar": false,
    "feedbackEnabled": false,
    "privacyPolicyUrl": null,
    "termsOfServiceUrl": null,
    "maxUploadFileSize": null,
    "contribPlugins": [],
    "tribeHost": null,
    "importers": []
}

这部分主要需要修改的参数有:1> api - 修改host和端口,提供对外访问的路径(这个端口需要和compose文件定义的taiga的端口映射保持一致);2>publicRegisterEnabled 是否开启用户自动注册,如果是false,则只能通过项目product owner/admin邀请的方式加入项目,否则无法成为系统的user,如下图
1.png

3> 其他配置项目,如 defaultLanguage设置taiga的默认显示语言等,contribPlugins加载其他插件/应用

local.py
from .docker import *

PUBLIC_REGISTER_ENABLED = True
DEBUG = False
TEMPLATE_DEBUG = False

#ADMINS = (
#    ("Admin", "taiga_service@taiga-csi.com")
#)

## Slack
# https://github.com/taigaio/taiga-contrib-slack
#INSTALLED_APPS += ["taiga_contrib_slack"]

## LDAP
# see https://github.com/ensky/taiga-contrib-ldap-auth
# INSTALLED_APPS += ["taiga_contrib_ldap_auth"]

# Allow Domain - other mail domain will be blocked when register/invite team member
USER_EMAIL_ALLOWED_DOMAINS = ["xxx.com","taiga-xxx.com"]

# PUCLIC OR PRIVATE NUMBER OF PROJECT PER USER
MAX_PRIVATE_PROJECTS_PER_USER = None # None == no limit
MAX_PUBLIC_PROJECTS_PER_USER = None # None == no limit
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = False
EMAIL_HOST = 'postfix'
EMAIL_PORT = 25
EMAIL_HOST_USER = 'taiga_user@taiga-xxx.com'
EMAIL_HOST_PASSWORD = 'password of taiga_user'

DEFAULT_FROM_EMAIL = 'taiga_user@taiga-xxx.com'
SERVER_EMAIL = 'taiga_user@taiga-xxx.com'    

## For additional configuration options, look at:
# https://github.com/taigaio/taiga-back/blob/master/settings/local.py.example

这部分主要配置了邮件SMTP的信息,当然了taiga还有其他支持的一些配置参数,可以在taiga github项目的local.py 样例去查看

运行docker compose命令

让taiga运行起来,运行的过程中会初始化很多数据表的配置

docker-compose up -d

但运行起来我们就可以访问了:http://host:port, 点击login,默认的用户和密码为:admin/123456,如果可以成功登陆,则恭喜你,你的setup完成了,可以开始去创建项目了去体验taiga的特性
图2-taiga welcome page

Taiga Admin管理入口for superuser

taiga也提供了superuser管理界面,方便admin去管理用户和项目,因为在上面的访问页面中 admin用户即使登陆进去了也没有入口去查看系统的user和user创建的private项目,所以需要一个管理端入口给superuser去使用。admin用户是默认的系统superuser,当然了也可以把某个用户设置为超级用户
说了这么多,还没有说超级用户入口的地址呢,它就是http://host:port/admin/,进入后页面如下图所示,
图3-taiga Django admin page

备注:

  1. 上面所说是基于Taiga的开源版本,如果想了解taiga的商业版本请访问https:taiga.io进行咨询和了解。
  2. 本文主要是记录了自己setup taiga过程,如有错误/遗漏,欢迎指正。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容