什么是 Taiga ?
Taiga 是一个免费开源,而且功能非常强大的项目管理平台,用于初创企业和敏捷开发团队。Taiga  专注于简洁性,并且界面很干净简单。Taiga  也非常个性化,并集合了很多其它功能和外部工具,还有大量社区创建的工具。
软件特点:
- 开源免费:Taiga是完全开源的,允许用户自由使用、修改和分发。
- 友好的界面:Taiga提供了一个清晰、直观的用户界面,易于理解和使用。
- 敏捷管理:支持 Scrum和Kanban两种主要的敏捷开发方法,用户可以根据团队的需求选择合适的方法。
- 任务管理:任务卡片详细记录每个工作项的状态、优先级、标签等信息,便于团队成员协作。
- 维基与文档:内置维基功能,方便团队共享知识和编写项目文档。
- 版本控制集成:无缝对接 Git,实现代码提交和版本控制的实时同步。
- 权限和角色管理:允许用户根据角色设置不同的权限,以控制对项目和任务的访问。
- 通知系统:通过电子邮件或应用内通知让用户了解重要的更新和变更。
- 自动化工作流:通过自定义规则和 Webhooks实现自动化任务分配。
- 多语言支持:Taiga提供多种语言,满足全球化团队的需求。
- API 可扩展性:开放 API允许与其他系统集成。
- 分析和报告:提供完整的仪表板和进度报告功能。

安装
在群晖上以 Docker 方式安装。
Taiga 用到 9 个镜像,采用 docker-compose 安装方式,需要准备好三个文件
env.txt
env.txt 是环境变量文件,在官方的 .env 文件基础上修改而成,源文件地址: https://github.com/taigaio/taiga-docker/blob/main/.env
因为添加了中文注释,保存时记得采用 UTF-8 格式
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 
 | 
 
 TAIGA_SCHEME=http
 
 
 TAIGA_DOMAIN=192.168.0.197:9118
 
 TAIGA_SUBPATH=""
 
 WEBSOCKETS_SCHEME=ws
 
 
 
 TAIGA_SECRET_KEY=M3JJcauWbz9Zzd6gt8d9mxrQPHpU69PWNsJJd6aFVXa3a8VrtrhHbLC7HE2ayS7a
 
 
 
 POSTGRES_HOST=taiga-db
 
 POSTGRES_DB=taiga
 
 POSTGRES_USER=taiga
 
 POSTGRES_PASSWORD=taiga
 
 
 
 EMAIL_BACKEND=django.core.mail.backends.console.EmailBackend
 
 EMAIL_HOST=smtp.88.com
 
 EMAIL_PORT=465
 
 EMAIL_HOST_USER=wbsu2003@88.com
 
 EMAIL_HOST_PASSWORD=<第三方邮件客户端密码>
 
 DEFAULT_FROM_EMAIL=wbsu2003@88.com
 
 EMAIL_USE_TLS=False
 
 EMAIL_USE_SSL=True
 
 
 
 RABBITMQ_USER=taiga
 
 RABBITMQ_PASS=taiga
 
 RABBITMQ_VHOST=taiga
 
 RABBITMQ_ERLANG_COOKIE=secret-erlang-cookie
 
 
 
 ATTACHMENTS_MAX_AGE=360
 
 
 ENABLE_TELEMETRY=True
 
 | 
taiga.conf
taiga.conf 是 Nginx 的配置文件,由多个块组成,定义了不同的请求处理规则,用于代理前端资源、API 请求、管理界面访问、静态文件服务和媒体文件服务,以及 WebSocket 事件通信。
该文件来自官方,未做任何修改,文件地址:https://github.com/taigaio/taiga-docker/blob/main/taiga-gateway/taiga.conf
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 
 | server {listen 80 default_server;
 
 client_max_body_size 100M;
 charset utf-8;
 
 
 location / {
 proxy_pass http://taiga-front/;
 proxy_pass_header Server;
 proxy_set_header Host $http_host;
 proxy_redirect off;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Scheme $scheme;
 }
 
 
 location /api/ {
 proxy_pass http://taiga-back:8000/api/;
 proxy_pass_header Server;
 proxy_set_header Host $http_host;
 proxy_redirect off;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Scheme $scheme;
 }
 
 
 location /admin/ {
 proxy_pass http://taiga-back:8000/admin/;
 proxy_pass_header Server;
 proxy_set_header Host $http_host;
 proxy_redirect off;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Scheme $scheme;
 }
 
 
 location /static/ {
 alias /taiga/static/;
 }
 
 
 location /_protected/ {
 internal;
 alias /taiga/media/;
 add_header Content-disposition "attachment";
 }
 
 
 location /media/exports/ {
 alias /taiga/media/exports/;
 add_header Content-disposition "attachment";
 }
 
 location /media/ {
 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://taiga-protected:8003/;
 proxy_redirect off;
 }
 
 
 location /events {
 proxy_pass http://taiga-events: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;
 }
 }
 
 | 
docker-compose.yml
在官方的基础上,根据需要做了调整,源文件地址:https://github.com/taigaio/taiga-docker/blob/main/docker-compose.yml
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 
 | version: "3.5"
 services:
 taiga-db:
 image: postgres:13
 container_name: taiga-db
 environment:
 POSTGRES_DB: "${POSTGRES_DB}"
 POSTGRES_USER: "${POSTGRES_USER}"
 POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}"
 healthcheck:
 test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
 interval: 2s
 timeout: 15s
 retries: 5
 start_period: 3s
 volumes:
 - ./db:/var/lib/postgresql/data
 
 taiga-back:
 image: taigaio/taiga-back:latest
 container_name: taiga-back
 volumes:
 - ./static:/taiga/static
 - ./media:/taiga/media
 env_file: env.txt
 depends_on:
 taiga-db:
 condition: service_healthy
 taiga-events-rabbitmq:
 condition: service_started
 taiga-async-rabbitmq:
 condition: service_started
 
 taiga-async:
 image: taigaio/taiga-back:latest
 container_name: taiga-async
 volumes:
 - ./static:/taiga/static
 - ./media:/taiga/media
 entrypoint: ["/taiga-back/docker/async_entrypoint.sh"]
 env_file: env.txt
 depends_on:
 taiga-db:
 condition: service_healthy
 taiga-events-rabbitmq:
 condition: service_started
 taiga-async-rabbitmq:
 condition: service_started
 
 taiga-async-rabbitmq:
 image: rabbitmq:3.8-management-alpine
 container_name: taiga-async-rabbitmq
 environment:
 RABBITMQ_ERLANG_COOKIE: "${RABBITMQ_ERLANG_COOKIE}"
 RABBITMQ_DEFAULT_USER: "${RABBITMQ_USER}"
 RABBITMQ_DEFAULT_PASS: "${RABBITMQ_PASS}"
 RABBITMQ_DEFAULT_VHOST: "${RABBITMQ_VHOST}"
 hostname: "taiga-async-rabbitmq"
 volumes:
 - ./async:/var/lib/rabbitmq
 
 taiga-front:
 image: taigaio/taiga-front:latest
 container_name: taiga-front
 environment:
 TAIGA_URL: "${TAIGA_SCHEME}://${TAIGA_DOMAIN}"
 TAIGA_WEBSOCKETS_URL: "${WEBSOCKETS_SCHEME}://${TAIGA_DOMAIN}"
 TAIGA_SUBPATH: "${TAIGA_SUBPATH}"
 
 
 
 
 taiga-events:
 image: taigaio/taiga-events:latest
 container_name: taiga-events
 environment:
 RABBITMQ_USER: "${RABBITMQ_USER}"
 RABBITMQ_PASS: "${RABBITMQ_PASS}"
 TAIGA_SECRET_KEY: "${TAIGA_SECRET_KEY}"
 depends_on:
 taiga-events-rabbitmq:
 condition: service_started
 
 taiga-events-rabbitmq:
 image: rabbitmq:3.8-management-alpine
 container_name: taiga-events-rabbitmq
 environment:
 RABBITMQ_ERLANG_COOKIE: "${RABBITMQ_ERLANG_COOKIE}"
 RABBITMQ_DEFAULT_USER: "${RABBITMQ_USER}"
 RABBITMQ_DEFAULT_PASS: "${RABBITMQ_PASS}"
 RABBITMQ_DEFAULT_VHOST: "${RABBITMQ_VHOST}"
 hostname: "taiga-events-rabbitmq"
 volumes:
 - ./events:/var/lib/rabbitmq
 
 taiga-protected:
 image: taigaio/taiga-protected:latest
 container_name: taiga-protected
 environment:
 MAX_AGE: "${ATTACHMENTS_MAX_AGE}"
 SECRET_KEY: "${TAIGA_SECRET_KEY}"
 
 taiga-gateway:
 image: nginx:1.19-alpine
 container_name: taiga-gateway
 ports:
 - "9118:80"
 volumes:
 - ./taiga.conf:/etc/nginx/conf.d/default.conf
 - ./static:/taiga/static
 - ./media:/taiga/media
 depends_on:
 - taiga-front
 - taiga-back
 - taiga-events
 
 | 
然后执行下面的命令
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | mkdir -p /volume1/docker/taiga/{async,db,events,media,static}
 
 
 cd /volume1/docker/taiga
 
 
 
 
 docker-compose --env-file env.txt up -d
 
 | 

运行
在开始访问之前,还需要创建一个管理员,需要进入到容器内操作
| 12
 3
 4
 5
 
 | docker exec -it taiga-back /bin/bash
 
 
 python manage.py createsuperuser
 
 | 
依次输入
- Username:用户名。例如:- laosu
- Email address:邮件地址。例如:- wbsu2003@gmail.com
- Password:密码。

接下来就可以访问了,在浏览器中输入 http://群晖IP:9118 

点右上角的 Login,进入到登录界面

输入我们前面创建的管理员账号,下面是登录成功后的主界面

点绿色按钮 NEW PROJECT 新建项目。模版类型包括:敏捷和看板两种


Scrum 是一个用于开发、交付和维护复杂产品的敏捷框架。尽管它最初侧重于软件开发,但它已用于研究、销售、营销和先进技术等其他领域。它专为十人或更少成员的团队而设计,这些团队将工作分解为可在时间限制内的迭代(称为冲刺)内完成的目标,迭代时间不超过一个月,最常见的是两周。
详细介绍和操作可以参考:https://community.taiga.io/t/quick-intro-to-scrum-module/124


Kanban 旨在通过平衡需求和可用容量以及改进系统级瓶颈的处理来管理工作。

详细介绍和操作可以参考::https://community.taiga.io/t/the-5-min-kanban-module-overview/122
中文
右上角用户 –> Edit Profile –> Language

下拉找到 中文(简体),保存之后就是中文界面了

参考文档
Taiga.io
地址:https://github.com/taigaio
taigaio/taiga-docker: Deployment utilities for Taiga
地址:https://github.com/taigaio/taiga-docker
Taiga: Your opensource agile project management software
地址:https://taiga.io/
Taiga Documentation
地址:https://docs.taiga.io/
Taiga
地址:https://tree.taiga.io/project/taiga/timeline