如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://github.com/taigaio/taiga 是一款免费开源的项目管理工具,专为跨功能敏捷团队设计,帮助团队高效协作。Elestio提供的Taiga镜像经过验证和打包,确保与官方更新同步,并集成了便捷的部署和维护工具。
如果需要自动化备份、带SSL终止的反向代理、防火墙、自动操作系统与软件更新,以及专业团队支持,可通过Elestio部署完全托管的Taiga服务,确保服务安全稳定运行。
1. 克隆仓库
bashgit clone https://github.com/elestio-examples/taiga.git cd taiga
2. 配置环境变量
复制测试环境的.env文件到项目根目录:
bashcp ./tests/.env ./.env
编辑.env文件,替换以下关键参数(根据实际需求修改):
APP_PASSWORD:数据库和RabbitMQ的密码DOMAIN:服务域名(如taiga.example.com)BASE_URL:服务基础URL(如https://taiga.example.com)SMTP_*:SMTP邮件服务器配置(可选,用于邮件通知)3. 创建数据目录并设置权限
bashmkdir -p ./data chown -R 1001:1001 ./data # 确保容器用户(UID 1001)有权限访问
4. 启动服务
bashdocker-compose up -d
服务启动后,通过 http://your-domain:9000 访问Web界面(替换your-domain为实际域名或服务器IP)。
以下是完整的docker-compose.yml配置示例,包含各服务组件说明:
yamlversion: "3.5" x-environment: &default-back-environment # 数据库设置 POSTGRES_DB: taiga # 数据库名称(默认:taiga) POSTGRES_USER: taiga # 数据库用户(默认:taiga) POSTGRES_PASSWORD: ${APP_PASSWORD} # 数据库密码(来自.env文件) POSTGRES_HOST: taiga-db # 数据库服务名(需与db服务名一致) # Taiga核心设置 TAIGA_SECRET_KEY: ${APP_PASSWORD} # 应用密钥(建议使用强密码) TAIGA_SITES_SCHEME: "https" # 协议(http/https) TAIGA_SITES_DOMAIN: ${DOMAIN} # 服务域名 TAIGA_SUBPATH: "" # 子路径(如无则留空,如需子路径填"/subpath") # 邮件设置(可选,取消注释并配置SMTP服务器) EMAIL_BACKEND: "django.core.mail.backends.smtp.EmailBackend" DEFAULT_FROM_EMAIL: ${SMTP_FROM_EMAIL} # 发件人邮箱 EMAIL_USE_TLS: "False" # 是否启用TLS(True/False) EMAIL_USE_SSL: "False" # 是否启用SSL(True/False) EMAIL_HOST: ${SMTP_HOST} # SMTP服务器地址 EMAIL_PORT: ${SMTP_PORT} # SMTP端口(如25、587) EMAIL_HOST_USER: "" # SMTP用户名(如无需认证留空) EMAIL_HOST_PASSWORD: "" # SMTP密码(如无需认证留空) # RabbitMQ设置(需与消息队列服务一致) RABBITMQ_USER: taiga # RabbitMQ用户名 RABBITMQ_PASS: ${APP_PASSWORD} # RabbitMQ密码 # 其他设置 PUBLIC_REGISTER_ENABLED: "True" # 是否允许公开注册(True/False) ENABLE_TELEMETRY: "True" # 是否启用遥测(True/False) TAIGA_TELEMETRY_REFERER: "elest.io" # 遥测来源标识 x-volumes: &default-back-volumes - ./taiga-static-data:/taiga-back/static # 静态文件存储 - ./taiga-media-data:/taiga-back/media # 媒体文件存储 # - ./config.py:/taiga-back/settings/config.py # 自定义配置(可选) services: # 数据库服务(PostgreSQL) taiga-db: image: postgres:12.3 environment: POSTGRES_DB: taiga POSTGRES_USER: taiga POSTGRES_PASSWORD: ${APP_PASSWORD} volumes: - ./taiga-db-data:/var/lib/postgresql/data # 数据库数据持久化 networks: - taiga # Taiga后端服务 taiga-back: image: taigaio/taiga-back:${SOFTWARE_VERSION_TAG} # 后端镜像版本(来自.env) environment: *default-back-environment volumes: *default-back-volumes networks: - taiga depends_on: - taiga-db - taiga-events-rabbitmq - taiga-async-rabbitmq # 异步任务服务 taiga-async: image: taigaio/taiga-back:${SOFTWARE_VERSION_TAG} entrypoint: ["/taiga-back/docker/async_entrypoint.sh"] environment: *default-back-environment volumes: *default-back-volumes networks: - taiga depends_on: - taiga-db - taiga-back - taiga-async-rabbitmq # 异步任务消息队列(RabbitMQ) taiga-async-rabbitmq: image: rabbitmq:3.8-management-alpine environment: RABBITMQ_ERLANG_COOKIE: secret-erlang-cookie # Erlang Cookie(固定值) RABBITMQ_DEFAULT_USER: taiga RABBITMQ_DEFAULT_PASS: ${APP_PASSWORD} RABBITMQ_DEFAULT_VHOST: taiga # 虚拟主机 volumes: - ./taiga-async-rabbitmq-data:/var/lib/rabbitmq # 消息队列数据持久化 networks: - taiga # Taiga前端服务 taiga-front: image: taigaio/taiga-front:${SOFTWARE_VERSION_TAG} # 前端镜像版本 environment: TAIGA_URL: ${BASE_URL} # 后端API地址 TAIGA_WEBSOCKETS_URL: "wss://${DOMAIN}" # WebSocket地址 TAIGA_SUBPATH: "" # 子路径(与后端一致) PUBLIC_REGISTER_ENABLED: "true" # 公开注册开关 networks: - taiga # volumes: # - ./conf.json:/usr/share/nginx/html/conf.json # 自定义前端配置(可选) # 事件服务(实时通知) taiga-events: image: taigaio/taiga-events:${SOFTWARE_VERSION_TAG} environment: RABBITMQ_USER: taiga RABBITMQ_PASS: ${APP_PASSWORD} TAIGA_SECRET_KEY: ${APP_PASSWORD} networks: - taiga depends_on: - taiga-events-rabbitmq # 事件服务消息队列(RabbitMQ) taiga-events-rabbitmq: image: rabbitmq:3.8-management-alpine environment: RABBITMQ_ERLANG_COOKIE: secret-erlang-cookie RABBITMQ_DEFAULT_USER: taiga RABBITMQ_DEFAULT_PASS: ${APP_PASSWORD} RABBITMQ_DEFAULT_VHOST: taiga volumes: - ./taiga-events-rabbitmq-data:/var/lib/rabbitmq # 事件队列数据持久化 networks: - taiga # 受保护资源服务 taiga-protected: image: taigaio/taiga-protected:${SOFTWARE_VERSION_TAG} environment: MAX_AGE: 360 # 资源缓存时间(秒) SECRET_KEY: ${APP_PASSWORD} # 保护密钥 networks: - taiga # 网关服务(Nginx) taiga-gateway: image: nginx:1.19-alpine ports: - "172.17.0.1:9000:80" # 端口映射(主机:容器) volumes: - ./taiga-gateway/taiga.conf:/etc/nginx/conf.d/default.conf # Nginx配置 - ./taiga-static-data:/taiga/static # 静态文件代理 - ./taiga-media-data:/taiga/media # 媒体文件代理 networks: - taiga depends_on: - taiga-front - taiga-back - taiga-events networks: taiga: # 自定义网络(各服务互通)
容器日志输出到stdout,可通过以下命令查看:
bashdocker-compose logs -f # -f参数实时跟踪日志
停止所有服务(保留数据):
bashdocker-compose down
备份数据
bashdocker-compose down
docker-compose.yml所在目录,创建压缩包备份所有数据卷:
bashzip -r taiga_backup.zip . # 备份当前目录下所有文件(含数据卷文件夹)
恢复数据
bashunzip taiga_backup.zip -d /path/to/original/folder # 替换为实际部署路径
bashdocker-compose up -d
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务