Redmine 问题追踪系统搭建
Redmine 是一款历史悠久的开源项目管理和问题追踪系统,使用 Ruby on Rails 编写。它提供了灵活的问题追踪、多项目管理、甘特图、日历、Wiki、论坛和时间跟踪等功能。Redmine 的插件生态非常丰富,经过多年发展已经成为最成熟的开源项目管理工具之一。在搬瓦工 VPS 上通过 Docker 可以快速搭建。
一、系统要求
- 操作系统:Ubuntu 20.04+(推荐 Ubuntu 22.04)。
- 内存:至少 1GB,建议 2GB。
- Docker:需要预先安装 Docker 和 Docker Compose。
二、Docker Compose 部署
mkdir -p /opt/redmine && cd /opt/redmine
cat > docker-compose.yml <<'EOF'
version: '3.8'
services:
redmine:
image: redmine:5
container_name: redmine
restart: always
ports:
- "127.0.0.1:3000:3000"
environment:
- REDMINE_DB_MYSQL=db
- REDMINE_DB_DATABASE=redmine
- REDMINE_DB_USERNAME=redmine
- REDMINE_DB_PASSWORD=RedminePass123
- REDMINE_SECRET_KEY_BASE=YourLongSecretKeyHere1234567890
volumes:
- redmine-data:/usr/src/redmine/files
- redmine-plugins:/usr/src/redmine/plugins
- redmine-themes:/usr/src/redmine/public/themes
depends_on:
db:
condition: service_healthy
db:
image: mysql:8.0
container_name: redmine-db
restart: always
environment:
- MYSQL_ROOT_PASSWORD=RootPass123
- MYSQL_DATABASE=redmine
- MYSQL_USER=redmine
- MYSQL_PASSWORD=RedminePass123
volumes:
- redmine-db:/var/lib/mysql
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
volumes:
redmine-data:
redmine-plugins:
redmine-themes:
redmine-db:
EOF
docker compose up -d
三、Nginx 反向代理
cat > /etc/nginx/sites-available/redmine <<'EOF'
server {
listen 443 ssl http2;
server_name redmine.your-domain.com;
ssl_certificate /etc/letsencrypt/live/redmine.your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/redmine.your-domain.com/privkey.pem;
client_max_body_size 50M;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
EOF
ln -sf /etc/nginx/sites-available/redmine /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
四、首次登录和配置
访问 https://redmine.your-domain.com,使用默认管理员账号登录:
- 用户名:admin
- 密码:admin
首次登录后必须修改密码。然后进行以下初始配置:
- 进入"管理" -> "配置",设置默认语言为中文。
- 配置邮件通知。
- 创建项目和用户角色。
五、项目管理功能
5.1 问题追踪
Redmine 的问题(Issue)系统支持多种追踪器类型:
- Bug:缺陷跟踪。
- Feature:功能需求。
- Support:支持请求。
每个问题包含优先级、状态、负责人、截止日期、进度等属性,支持自定义字段扩展。
5.2 自定义工作流
在"管理" -> "工作流"中,可以为每种追踪器和每个角色定义不同的状态转换规则,精确控制问题的流转过程。
5.3 甘特图和日历
Redmine 内置甘特图视图,自动根据问题的开始和截止日期生成。日历视图按月份展示各个问题的时间安排。
5.4 Wiki 和文档
每个项目都有独立的 Wiki 空间,使用 Textile 或 Markdown 语法编写文档。支持版本历史和页面链接。
六、邮件通知配置
# 在 docker-compose.yml 的 redmine 服务中添加环境变量
- REDMINE_EMAIL__DELIVERY__METHOD=smtp
- REDMINE_SMTP__ADDRESS=smtp.your-domain.com
- REDMINE_SMTP__PORT=587
- REDMINE_SMTP__DOMAIN=your-domain.com
- REDMINE_SMTP__USERNAME=noreply@your-domain.com
- REDMINE_SMTP__PASSWORD=your-smtp-password
- REDMINE_SMTP__AUTHENTICATION=login
- REDMINE_SMTP__ENABLE__STARTTLS__AUTO=true
七、REST API
Redmine 提供了完整的 REST API,需要在管理界面中启用:
# 获取项目列表
curl -H "X-Redmine-API-Key: YOUR_API_KEY" \
"https://redmine.your-domain.com/projects.json"
# 创建问题
curl -X POST -H "X-Redmine-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"issue":{"project_id":1,"subject":"New Bug","tracker_id":1,"priority_id":2}}' \
"https://redmine.your-domain.com/issues.json"
# 更新问题状态
curl -X PUT -H "X-Redmine-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"issue":{"status_id":3,"notes":"已修复"}}' \
"https://redmine.your-domain.com/issues/1.json"
八、数据备份
# 备份数据库
docker exec redmine-db mysqldump -uredmine -pRedminePass123 redmine > /opt/backups/redmine_$(date +%Y%m%d).sql
# 备份附件
docker cp redmine:/usr/src/redmine/files /opt/backups/redmine-files/
# 定时备份
crontab -e
0 3 * * * docker exec redmine-db mysqldump -uredmine -pRedminePass123 redmine > /opt/backups/redmine_$(date +\%Y\%m\%d).sql 2>&1
九、常见问题
页面加载缓慢
Redmine 的 Ruby 进程较吃内存,建议配置 swap 空间或选择更高内存的方案。
邮件发送失败
检查 SMTP 配置参数,确认邮件服务器地址和认证信息正确。
总结
Redmine 是功能成熟、稳定可靠的问题追踪系统,其灵活的自定义能力和丰富的插件生态使其适应各种项目管理需求。在搬瓦工 VPS 上使用 Docker 可以快速部署。建议选择 2GB 以上内存的方案。选购请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 折扣。相关工具:Kanboard 教程、OpenProject 教程。