这是在生产环境中运行 Taiga 的最简单方法。本文档介绍了如何使用 docker为生产环境部署完整的 Taiga 服务。

如果您已经在使用 taiga-docker,请遵循此迁移指南 191使用.env基于新的部署。

注意:
您可以访问较旧的 docker 安装指南 238出于文档目的,仅适用于 Taiga 的早期版本(版本 6.6.0 之前)

要求

在开始安装之前,请确保您已安装:

  • docker:版本 >= 19.03.0+

如果您没有安装 docker,请按照docker.com的安装说明进行操作 163安装Docker引擎| Docker 文档 第556章此外,还需要熟悉 Docker、docker compose 和 Docker 存储库。

入门

复制这个仓库

​编辑Taiga 的 docker 仓库的屏幕截图

$ cd taiga-docker/
$ git checkout stable

启动应用程序

$ ./launch-all.sh

你想在控制台看到什么

过了一会儿,当应用程序启动时,您可以使用以下脚本继续创建超级用户:

$ ./taiga-manage.sh createsuperuser

taiga-manage.sh脚本允许在后台实例上启动manage.py命令:

$ ./taiga-manage.sh [COMMAND]

通过http://localhost:9000应用程序

基本配置

数据库配置

您将在文件中找到基本配置变量.env。如前所述,我们鼓励您编辑这些值,尤其是那些影响安全性的值。

数据库设置

这些变量用于为 Taiga 创建数据库并连接到它。

POSTGRES_USER=taiga  # user to connect to PostgreSQL
POSTGRES_PASSWORD=taiga  # database user's password

网址设置

这些变量设置您的 Taiga 实例应在何处提供服务,以及在通信层中使用的安全协议。

TAIGA_SCHEME=http  # serve Taiga using "http" or "https" (secured) connection
TAIGA_DOMAIN=localhost:9000  # Taiga's base URL
SUBPATH=""  # it'll be appended to the TAIGA_DOMAIN (use either "" or a "/subpath")
WEBSOCKETS_SCHEME=ws  # events connection protocol (use either "ws" or "wss")

默认配置假定 Taiga在子域中提供服务。例如:

TAIGA_SCHEME=https
TAIGA_DOMAIN=taiga.mycompany.com
SUBPATH=""
WEBSOCKETS_SCHEME=wss

如果 Taiga 在子路径而不是子域中提供服务,则配置应如下所示:

TAIGA_SCHEME=https
TAIGA_DOMAIN=mycompany.com
SUBPATH="/taiga"
WEBSOCKETS_SCHEME=wss

key设置

此变量允许您在 Taiga 中设置用于加密签名的密钥。

SECRET_KEY="taiga-secret-key"  # Please, change it to an unpredictable value!

电子邮件设置

默认情况下,电子邮件将在标准输出 ( ) 中打印EMAIL_BACKEND=console。如果您有自己的 SMTP 服务,请将其更改为EMAIL_BACKEND=smtp并使用 SMTP 提供商提供的值配置其余变量:

EMAIL_BACKEND=console  # use an SMTP server or display the emails in the console (either "smtp" or "console")
EMAIL_HOST=smtp.host.example.com  # SMTP server address
EMAIL_PORT=587   # default SMTP port
EMAIL_HOST_USER=user  # user to connect the SMTP server
EMAIL_HOST_PASSWORD=password  # SMTP user's password
EMAIL_DEFAULT_FROM=changeme@example.com  # email address for the automated emails

# EMAIL_USE_TLS/EMAIL_USE_SSL are mutually exclusive (only set one of those to True)
EMAIL_USE_TLS=True  # use TLS (secure) connection with the SMTP server
EMAIL_USE_SSL=False  # use implicit TLS (secure) connection with the SMTP server

队列管理器设置

这些变量用于在rabbitmq服务中留下消息。

RABBITMQ_USER=taiga  # user to connect to RabbitMQ
RABBITMQ_PASS=taiga  # RabbitMQ user's password
RABBITMQ_VHOST=taiga  # RabbitMQ container name
RABBITMQ_ERLANG_COOKIE=secret-erlang-cookie  # unique value shared by any connected instance of RabbitMQ

附件设置

您可以通过更改令牌过期计时器来配置附件的可访问时间。经过该秒数后,令牌将过期,但您始终可以获得带有活动令牌的新附件 URL。

ATTACHMENTS_MAX_AGE=360  # token expiration date (in seconds)

高级配置

高级配置将忽略docker-compose.yml或中的环境变量docker-compose-inits.yml。如果您使用环境变量,请跳过此部分。

它要求您将配置文件taiga-backtaiga-front服务映射到本地文件,以便解锁更多配置选项。

映射config.py文件

点击此链接下载文件settings/config.py.prod.example并重命名:

mv settings/config.py.prod.example settings/config.py

使用您自己的配置进行编辑config.py

  • Taiga秘钥:改变它很重要。taiga-events它必须与和中的密钥具有相同的值taiga-protected
  • Taiga url:使用TAIGA_URL,SITES和配置 Taiga 的服务位置FORCE_SCRIPT_NAME(参见下面的示例)
  • 连接到 PostgreSQL;检查DATABASES文件中的部分
  • 连接到 RabbitMQ taiga-events;检查文件中的“EVENTS”部分
  • 连接到 RabbitMQ taiga-async;检查文件中的“TAIGA ASYNC”部分
  • 电子邮件凭据;检查文件中的“电子邮件”部分
  • 启用/禁用匿名遥测;检查文件中的“TELEMETRY”部分

在子域中配置 Taiga 的示例:

TAIGA_SITES_SCHEME = "https"
TAIGA_SITES_DOMAIN = "taiga.mycompany.com"
FORCE_SCRIPT_NAME = ""

在子路径中配置 Taiga 的示例:

TAIGA_SITES_SCHEME = "https"
TAIGA_SITES_DOMAIN = "taiga.mycompany.com"
FORCE_SCRIPT_NAME = "/taiga"

如果您需要启用某些高级功能,请检查其余配置。

将文件映射到/taiga-back/settings/config.py. 请记住,您必须将其映射到 和docker-compose.ymldocker-compose-inits.ymlx-volumes您可以通过示例查看docker-compose.yml 中的部分。

映射conf.json文件

此链接下载文件dist/conf.example.json并重命名:

mv dist/conf.example.json dist/conf.json

使用您自己的配置编辑它:

  • Taiga url:使用api,eventsUrl和配置 Taiga 的服务位置baseHref(参见下面的示例)

在子域中conf.json为 Taiga 提供服务的示例:

{
    "api": "https://taiga.mycompany.com/api/v1/",
    "eventsUrl": "wss://taiga.mycompany.com/events",
    "baseHref": "/",

在子路径conf.json中服务 Taiga的示例:

{
    "api": "https://mycompany.com/taiga/api/v1/",
    "eventsUrl": "wss://mycompany.com/taiga/events",
    "baseHref": "/taiga/",

如果您需要启用某些高级功能,请检查其余配置。

将文件映射到/taiga-front/dist/config.py.

配置管理员用户

$ docker compose up -d

$ docker compose -f docker-compose.yml -f docker-compose-inits.yml run --rm taiga-manage createsuperuser

启动并运行

安装完所有内容后,启动所有服务并检查结果:

$ docker compose up -d

配置代理

您的主机配置需要为http://localhost:9000.

如果 Taiga 在子域中提供服务:

  server {
      server_name taiga.mycompany.com;
      
      location / {
        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_redirect off;
        proxy_pass http://localhost:9000/;
      }
      
      # Events
      location /events {
        proxy_pass http://localhost:9000/events;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_connect_timeout 7d;
        proxy_send_timeout 7d;
        proxy_read_timeout 7d;
      }
  
      # TLS: Configure your TLS following the best practices inside your company
      # Logs and other configurations
  }

如果 Taiga 在子路径而不是子域中提供服务,则配置应类似于:

server {
  server_name mycompany.com;
  
  location /taiga/ {
    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_redirect off;
    proxy_pass http://localhost:9000/;
  }
  
  # Events
  location /taiga/events {
    proxy_pass http://localhost:9000/events;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_connect_timeout 7d;
    proxy_send_timeout 7d;
    proxy_read_timeout 7d;
  }
  
  # TLS: Configure your TLS following the best practices inside your company
  # Logs and other configurations
}

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐