2021-11-17 14:53:02 +08:00
|
|
|
|
# Docker 方式安装 Redmine
|
|
|
|
|
|
2023-05-04 12:49:32 +08:00
|
|
|
|
容器名称为 redmine。
|
|
|
|
|
|
2021-11-17 14:53:02 +08:00
|
|
|
|
```bash
|
2024-05-10 12:50:28 +08:00
|
|
|
|
# 工作目录
|
|
|
|
|
cd /home/web/redmine
|
2021-11-17 14:53:02 +08:00
|
|
|
|
# Run Redmine with SQLite3
|
2021-11-24 22:57:08 +08:00
|
|
|
|
docker run -d -p 9001:3000 --name redmine redmine
|
2021-11-17 14:53:02 +08:00
|
|
|
|
# Run Redmine with a Database Container
|
2022-03-11 16:04:50 +08:00
|
|
|
|
docker run -d --name redminedb -v "$PWD/database":/var/lib/mysql -e MYSQL_USER=root -e MYSQL_PASSWORD=<password> -e MYSQL_DATABASE=redmine -e MYSQL_ROOT_PASSWORD=<password> mariadb:latest
|
2024-05-10 12:50:28 +08:00
|
|
|
|
# docker run -d --name redmine --link redminedb:mysql -p 9001:3000 -e REDMINE_DB_MYSQL=redminedb -e REDMINE_DB_USERNAME=root -e REDMINE_DB_PASSWORD=<password> -v /home/web/redmine/config/configuration.yml:/usr/src/redmine/config/configuration.yml -v /home/web/redmine/log:/usr/src/redmine/log -v /home/web/redmine/data:/home/redmine/data -v /home/web/redmine/plugins:/usr/src/redmine/redmine/redmine/plugins redmine:latest
|
|
|
|
|
|
|
|
|
|
mkdir home
|
|
|
|
|
mkdir -p usr/config
|
|
|
|
|
touch usr/config/configuration.yml
|
|
|
|
|
docker run -d --name redmine --link redminedb:mysql -p 9001:3000 -e REDMINE_DB_MYSQL=redminedb -e REDMINE_DB_USERNAME=root -e REDMINE_DB_PASSWORD=<password> \
|
|
|
|
|
-v /home/web/redmine/usr/config/configuration.yml:/usr/src/redmine/config/configuration.yml \
|
|
|
|
|
-v /home/web/redmine/usr/log:/usr/src/redmine/log \
|
|
|
|
|
-v /home/web/redmine/usr/plugins:/usr/src/redmine/plugins \
|
|
|
|
|
-v /home/web/redmine/usr/redmine/plugins:/usr/src/redmine/redmine/redmine/plugins \
|
|
|
|
|
-v /home/web/redmine/home:/home/redmine redmine:latest
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
configuration.yml 初始配置如下:
|
|
|
|
|
|
|
|
|
|
```yml
|
|
|
|
|
# = Redmine configuration file
|
|
|
|
|
#
|
|
|
|
|
# Each environment has its own configuration options. If you are only
|
|
|
|
|
# running in production, only the production block needs to be configured.
|
|
|
|
|
# Environment specific configuration options override the default ones.
|
|
|
|
|
#
|
|
|
|
|
# Note that this file needs to be a valid YAML file.
|
|
|
|
|
# DO NOT USE TABS! Use 2 spaces instead of tabs for indentation.
|
|
|
|
|
|
|
|
|
|
# default configuration options for all environments
|
|
|
|
|
default:
|
|
|
|
|
# Outgoing emails configuration
|
|
|
|
|
# See the examples below and the Rails guide for more configuration options:
|
|
|
|
|
# http://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration
|
|
|
|
|
email_delivery:
|
|
|
|
|
|
|
|
|
|
# ==== Simple SMTP server at localhost
|
|
|
|
|
#
|
|
|
|
|
# email_delivery:
|
|
|
|
|
# delivery_method: :smtp
|
|
|
|
|
# smtp_settings:
|
|
|
|
|
# address: "localhost"
|
|
|
|
|
# port: 25
|
|
|
|
|
#
|
|
|
|
|
# ==== SMTP server at example.com using LOGIN authentication and checking HELO for foo.com
|
|
|
|
|
#
|
|
|
|
|
# email_delivery:
|
|
|
|
|
# delivery_method: :smtp
|
|
|
|
|
# smtp_settings:
|
|
|
|
|
# address: "example.com"
|
|
|
|
|
# port: 25
|
|
|
|
|
# authentication: :login
|
|
|
|
|
# domain: 'foo.com'
|
|
|
|
|
# user_name: 'myaccount'
|
|
|
|
|
# password: 'password'
|
|
|
|
|
#
|
|
|
|
|
# ==== SMTP server at example.com using PLAIN authentication
|
|
|
|
|
#
|
|
|
|
|
# email_delivery:
|
|
|
|
|
# delivery_method: :smtp
|
|
|
|
|
# smtp_settings:
|
|
|
|
|
# address: "example.com"
|
|
|
|
|
# port: 25
|
|
|
|
|
# authentication: :plain
|
|
|
|
|
# domain: 'example.com'
|
|
|
|
|
# user_name: 'myaccount'
|
|
|
|
|
# password: 'password'
|
|
|
|
|
#
|
|
|
|
|
# ==== SMTP server at using TLS (GMail)
|
|
|
|
|
# This might require some additional configuration. See the guides at:
|
|
|
|
|
# http://www.redmine.org/projects/redmine/wiki/EmailConfiguration
|
|
|
|
|
#
|
|
|
|
|
# email_delivery:
|
|
|
|
|
# delivery_method: :smtp
|
|
|
|
|
# smtp_settings:
|
|
|
|
|
# enable_starttls_auto: true
|
|
|
|
|
# address: "smtp.gmail.com"
|
|
|
|
|
# port: 587
|
|
|
|
|
# domain: "smtp.gmail.com" # 'your.domain.com' for GoogleApps
|
|
|
|
|
# authentication: :plain
|
|
|
|
|
# user_name: "your_email@gmail.com"
|
|
|
|
|
# password: "your_password"
|
|
|
|
|
#
|
|
|
|
|
# ==== Sendmail command
|
|
|
|
|
#
|
|
|
|
|
# email_delivery:
|
|
|
|
|
# delivery_method: :sendmail
|
|
|
|
|
|
|
|
|
|
# Absolute path to the directory where attachments are stored.
|
|
|
|
|
# The default is the 'files' directory in your Redmine instance.
|
|
|
|
|
# Your Redmine instance needs to have write permission on this
|
|
|
|
|
# directory.
|
|
|
|
|
# Examples:
|
|
|
|
|
# attachments_storage_path: /var/redmine/files
|
|
|
|
|
# attachments_storage_path: D:/redmine/files
|
|
|
|
|
attachments_storage_path:
|
|
|
|
|
|
|
|
|
|
# Configuration of the autologin cookie.
|
|
|
|
|
# autologin_cookie_name: the name of the cookie (default: autologin)
|
|
|
|
|
# autologin_cookie_path: the cookie path (default: /)
|
|
|
|
|
# autologin_cookie_secure: true sets the cookie secure flag (default: false)
|
|
|
|
|
autologin_cookie_name:
|
|
|
|
|
autologin_cookie_path:
|
|
|
|
|
autologin_cookie_secure:
|
|
|
|
|
|
|
|
|
|
# Configuration of SCM executable command.
|
|
|
|
|
#
|
|
|
|
|
# Absolute path (e.g. /usr/local/bin/hg) or command name (e.g. hg.exe, bzr.exe)
|
|
|
|
|
# On Windows + CRuby, *.cmd, *.bat (e.g. hg.cmd, bzr.bat) does not work.
|
|
|
|
|
#
|
|
|
|
|
# On Windows + JRuby 1.6.2, path which contains spaces does not work.
|
|
|
|
|
# For example, "C:\Program Files\TortoiseHg\hg.exe".
|
|
|
|
|
# If you want to this feature, you need to install to the path which does not contains spaces.
|
|
|
|
|
# For example, "C:\TortoiseHg\hg.exe".
|
|
|
|
|
#
|
|
|
|
|
# Examples:
|
|
|
|
|
# scm_subversion_command: svn # (default: svn)
|
|
|
|
|
# scm_mercurial_command: C:\Program Files\TortoiseHg\hg.exe # (default: hg)
|
|
|
|
|
# scm_git_command: /usr/local/bin/git # (default: git)
|
|
|
|
|
# scm_cvs_command: cvs # (default: cvs)
|
|
|
|
|
# scm_bazaar_command: bzr.exe # (default: bzr)
|
|
|
|
|
#
|
|
|
|
|
scm_subversion_command:
|
|
|
|
|
scm_mercurial_command:
|
|
|
|
|
scm_git_command:
|
|
|
|
|
scm_cvs_command:
|
|
|
|
|
scm_bazaar_command:
|
|
|
|
|
|
|
|
|
|
# SCM paths validation.
|
|
|
|
|
#
|
|
|
|
|
# You can configure a regular expression for each SCM that will be used to
|
|
|
|
|
# validate the path of new repositories (eg. path entered by users with the
|
|
|
|
|
# "Manage repositories" permission and path returned by reposman.rb).
|
|
|
|
|
# The regexp will be wrapped with \A \z, so it must match the whole path.
|
|
|
|
|
# And the regexp is case sensitive.
|
|
|
|
|
#
|
|
|
|
|
# You can match the project identifier by using %project% in the regexp.
|
|
|
|
|
#
|
|
|
|
|
# You can also set a custom hint message for each SCM that will be displayed
|
|
|
|
|
# on the repository form instead of the default one.
|
|
|
|
|
#
|
|
|
|
|
# Examples:
|
|
|
|
|
# scm_subversion_path_regexp: file:///svnpath/[a-z0-9_]+
|
|
|
|
|
# scm_subversion_path_info: SVN URL (eg. file:///svnpath/foo)
|
|
|
|
|
#
|
|
|
|
|
# scm_git_path_regexp: /gitpath/%project%(\.[a-z0-9_])?/
|
|
|
|
|
#
|
|
|
|
|
scm_subversion_path_regexp:
|
|
|
|
|
scm_mercurial_path_regexp:
|
|
|
|
|
scm_git_path_regexp:
|
|
|
|
|
scm_cvs_path_regexp:
|
|
|
|
|
scm_bazaar_path_regexp:
|
|
|
|
|
scm_filesystem_path_regexp:
|
|
|
|
|
|
|
|
|
|
# Absolute path to the SCM commands errors (stderr) log file.
|
|
|
|
|
# The default is to log in the 'log' directory of your Redmine instance.
|
|
|
|
|
# Example:
|
|
|
|
|
# scm_stderr_log_file: /var/log/redmine_scm_stderr.log
|
|
|
|
|
scm_stderr_log_file:
|
|
|
|
|
|
|
|
|
|
# Key used to encrypt sensitive data in the database (SCM passwords,
|
|
|
|
|
# LDAP passwords, and TOTP (two-factor authentication) secret keys).
|
|
|
|
|
# If you don't want to enable data encryption, just leave it blank.
|
|
|
|
|
# WARNING: losing/changing this key will make encrypted data unreadable.
|
|
|
|
|
#
|
|
|
|
|
# If you want to encrypt existing data in your database:
|
|
|
|
|
# * set the cipher key here in your configuration file
|
|
|
|
|
# * encrypt data using 'rake db:encrypt RAILS_ENV=production'
|
|
|
|
|
#
|
|
|
|
|
# If you have encrypted data and want to change this key, you have to:
|
|
|
|
|
# * decrypt data using 'rake db:decrypt RAILS_ENV=production' first
|
|
|
|
|
# * change the cipher key here in your configuration file
|
|
|
|
|
# * encrypt data using 'rake db:encrypt RAILS_ENV=production'
|
|
|
|
|
database_cipher_key:
|
|
|
|
|
|
|
|
|
|
# Set this to false to disable plugins' assets mirroring on startup.
|
|
|
|
|
# You can use `rake redmine:plugins:assets` to manually mirror assets
|
|
|
|
|
# to public/plugin_assets when you install/upgrade a Redmine plugin.
|
|
|
|
|
#
|
|
|
|
|
#mirror_plugins_assets_on_startup: false
|
|
|
|
|
|
|
|
|
|
# Your secret key for verifying cookie session data integrity. If you
|
|
|
|
|
# change this key, all old sessions will become invalid! Make sure the
|
|
|
|
|
# secret is at least 30 characters and all random, no regular words or
|
|
|
|
|
# you'll be exposed to dictionary attacks.
|
|
|
|
|
#
|
|
|
|
|
# If you have a load-balancing Redmine cluster, you have to use the
|
|
|
|
|
# same secret token on each machine.
|
|
|
|
|
#secret_token: 'change it to a long random string'
|
|
|
|
|
|
|
|
|
|
# Requires users to re-enter their password for sensitive actions (editing
|
|
|
|
|
# of account data, project memberships, application settings, user, group,
|
|
|
|
|
# role, auth source management and project deletion). Disabled by default.
|
|
|
|
|
# Timeout is set in minutes.
|
|
|
|
|
#
|
|
|
|
|
#sudo_mode: true
|
|
|
|
|
#sudo_mode_timeout: 15
|
|
|
|
|
|
|
|
|
|
# Absolute path (e.g. /usr/bin/convert, c:/im/convert.exe) to
|
|
|
|
|
# the ImageMagick's `convert` binary. Used to generate attachment thumbnails.
|
|
|
|
|
#imagemagick_convert_command:
|
|
|
|
|
|
|
|
|
|
# Absolute path (e.g. /usr/bin/gs, c:/ghostscript/gswin64c.exe) to
|
|
|
|
|
# the `gs` binary. Used to generate attachment thumbnails of PDF files.
|
|
|
|
|
#gs_command:
|
|
|
|
|
|
|
|
|
|
# Configuration of MiniMagick font.
|
|
|
|
|
#
|
|
|
|
|
# Redmine uses MiniMagick in order to export a gantt chart to a PNG image.
|
|
|
|
|
# This setting is necessary to properly display CJK (Chinese, Japanese,
|
|
|
|
|
# and Korean) characters in the PNG image. Please make sure that the
|
|
|
|
|
# specified font is installed in the Redmine server.
|
|
|
|
|
#
|
|
|
|
|
# This setting is necessary only when CJK characters are used in gantt.
|
|
|
|
|
#
|
|
|
|
|
# Note that rmagick_font_path in prior to Redmine 4.1.0 has been renamed
|
|
|
|
|
# to minimagick_font_path.
|
|
|
|
|
#
|
|
|
|
|
# Examples for Japanese:
|
|
|
|
|
# Windows:
|
|
|
|
|
# minimagick_font_path: C:\windows\fonts\msgothic.ttc
|
|
|
|
|
# Linux:
|
|
|
|
|
# minimagick_font_path: /usr/share/fonts/ipa-mincho/ipam.ttf
|
|
|
|
|
#
|
|
|
|
|
minimagick_font_path:
|
|
|
|
|
|
|
|
|
|
# Maximum number of simultaneous AJAX uploads
|
|
|
|
|
#max_concurrent_ajax_uploads: 2
|
|
|
|
|
|
|
|
|
|
# Configure OpenIdAuthentication.store
|
|
|
|
|
#
|
|
|
|
|
# allowed values: :memory, :file, :memcache
|
|
|
|
|
#openid_authentication_store: :memory
|
|
|
|
|
|
|
|
|
|
# URL of the avatar server
|
|
|
|
|
#
|
|
|
|
|
# By default, Redmine uses Gravatar as the avatar server for displaying
|
|
|
|
|
# user icons. You can switch to another Gravatar-compatible server such
|
|
|
|
|
# as Libravatar and opensource servers listed on
|
|
|
|
|
# https://wiki.libravatar.org/running_your_own/
|
|
|
|
|
#
|
|
|
|
|
# URL of each avatar is: #{avatar_server_url}/avatar/#{hash}
|
|
|
|
|
#
|
|
|
|
|
#avatar_server_url: https://www.gravatar.com # default
|
|
|
|
|
#avatar_server_url: https://seccdn.libravatar.org
|
|
|
|
|
|
|
|
|
|
# Configure CommonMark hardbreaks behaviour
|
|
|
|
|
#
|
|
|
|
|
# allowed values: true, false
|
|
|
|
|
# true: treats regular line break (\n) as hardbreaks
|
|
|
|
|
# false: switches to default common mark where two or more spaces are required
|
|
|
|
|
# common_mark_enable_hardbreaks: true
|
|
|
|
|
|
|
|
|
|
# specific configuration options for production environment
|
|
|
|
|
# that overrides the default ones
|
|
|
|
|
production:
|
|
|
|
|
|
|
|
|
|
# specific configuration options for development environment
|
|
|
|
|
# that overrides the default ones
|
|
|
|
|
development:
|
2021-11-17 14:53:02 +08:00
|
|
|
|
```
|
|
|
|
|
|
2022-03-11 16:07:06 +08:00
|
|
|
|
之后使用默认用户名密码登陆:admin/admin
|
|
|
|
|
|
2021-11-17 14:53:02 +08:00
|
|
|
|
## 登录后配置
|
|
|
|
|
|
|
|
|
|
角色增加:
|
|
|
|
|
|
2023-05-04 12:49:32 +08:00
|
|
|
|
- Manager
|
|
|
|
|
- Developer
|
2024-05-10 13:54:25 +08:00
|
|
|
|
- Tester
|
|
|
|
|
- Product
|
|
|
|
|
- Quality
|
2021-11-17 14:53:02 +08:00
|
|
|
|
|
2023-05-04 12:49:32 +08:00
|
|
|
|
问题状态增加:
|
2021-11-17 14:53:02 +08:00
|
|
|
|
|
2023-05-04 12:49:32 +08:00
|
|
|
|
- 新建
|
|
|
|
|
- 待审核
|
|
|
|
|
- 已指派
|
|
|
|
|
- 不处理
|
|
|
|
|
- 进行中
|
|
|
|
|
- 已解决
|
|
|
|
|
- 测试中
|
|
|
|
|
- 已验证
|
2021-11-17 14:53:02 +08:00
|
|
|
|
|
2023-05-04 12:49:32 +08:00
|
|
|
|
跟踪标签增加:
|
2021-11-17 14:53:02 +08:00
|
|
|
|
|
2023-05-04 12:49:32 +08:00
|
|
|
|
- 里程碑
|
2024-05-10 13:54:25 +08:00
|
|
|
|
- 开发
|
2023-05-04 12:49:32 +08:00
|
|
|
|
- 需求用例
|
|
|
|
|
- 功能
|
|
|
|
|
- 缺陷
|
|
|
|
|
- 需求单
|
|
|
|
|
- 维护单
|
|
|
|
|
- 故障单
|
|
|
|
|
- 发布申请单
|
2021-11-17 14:53:02 +08:00
|
|
|
|
|
|
|
|
|
枚举中为问题优先级增加:
|
|
|
|
|
|
2023-05-04 12:49:32 +08:00
|
|
|
|
- 普通
|
|
|
|
|
- 优先
|
|
|
|
|
- 紧急
|
2022-03-12 13:03:45 +08:00
|
|
|
|
|
|
|
|
|
## config/configuration.yml 文件配置
|
|
|
|
|
|
2022-03-17 15:39:21 +08:00
|
|
|
|
### 附件设置
|
2022-03-12 13:03:45 +08:00
|
|
|
|
|
|
|
|
|
```yml
|
2022-03-17 15:39:21 +08:00
|
|
|
|
attachments_storage_path: /path/to/attachments
|
2022-03-12 13:03:45 +08:00
|
|
|
|
attachments_mas_size: 51200
|
|
|
|
|
```
|
2022-03-17 15:39:21 +08:00
|
|
|
|
|
|
|
|
|
### 电子邮件服务器配置
|
|
|
|
|
|
|
|
|
|
```yml
|
|
|
|
|
# For exmail.qq.com
|
|
|
|
|
email_delivery:
|
|
|
|
|
delivery_method: :smtp
|
|
|
|
|
smtp_settings:
|
|
|
|
|
address: "smtp.exmail.qq.com"
|
|
|
|
|
port: 465
|
|
|
|
|
domain: 'smtp.exmail.qq.com'
|
|
|
|
|
authentication: login
|
|
|
|
|
user_name: 'noreply@xxx.com'
|
|
|
|
|
password: '******'
|
|
|
|
|
ssl: true
|
|
|
|
|
enable_starttls_auto: true
|
|
|
|
|
|
|
|
|
|
# For smtp.163.com
|
|
|
|
|
email_delivery:
|
|
|
|
|
delivery_method: :smtp
|
|
|
|
|
smtp_settings:
|
|
|
|
|
address: "smtp.163.com"
|
|
|
|
|
port: 25
|
|
|
|
|
domain: 'smtp.163.com'
|
|
|
|
|
authentication: :login
|
|
|
|
|
user_name: 'noreply@xxx.com'
|
|
|
|
|
password: '******'
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
邮件测试:redmine 的 配置->邮件通知 页面,设定之后点击“发送测试邮件”即可确认。成功之后,登陆用户会收到从设置的邮箱服务器发来的一封 email,否则会在设置页面中提示相关错误。
|
2023-05-04 12:49:32 +08:00
|
|
|
|
|
|
|
|
|
## 容器配置
|
|
|
|
|
|
|
|
|
|
### 进入 Redmine 容器命令行
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker exec -it redmine bash
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 安装插件
|
|
|
|
|
|
|
|
|
|
下载插件到容器的 /usr/src/redmine/plugins 目录中。
|
|
|
|
|
|
|
|
|
|
执行以下命令:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
bundle install
|
|
|
|
|
RAILS_ENV=production bundle exec rake redmine:plugins:migrate NAME=<plugin name>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 插件列表
|
|
|
|
|
|
|
|
|
|
- [Custom Workflows](https://www.redmine.org/plugins/custom-workflows)
|
|
|
|
|
- [Redmine Issue Autoflow](https://redmineplugins.cn/projects/1/plugin_blocks/36?tab=general)
|
2023-05-04 20:12:00 +08:00
|
|
|
|
|
|
|
|
|
### Custom Workflows 插件
|
|
|
|
|
|
|
|
|
|
在 管理->Custom Workflows 中 Create a custom workflow。
|
|
|
|
|
|
|
|
|
|
输入名称,设置 Observable object,设置项目。
|
|
|
|
|
|
|
|
|
|
脚本参考示例如下:
|
|
|
|
|
|
|
|
|
|
```ruby
|
|
|
|
|
if self.status_id==4
|
|
|
|
|
self.assigned_to = User.find_by(login: 'lion')
|
|
|
|
|
elsif self.status_id==6
|
|
|
|
|
self.assigned_to = User.find_by(login: 'rick')
|
|
|
|
|
elsif self.status_id==8
|
|
|
|
|
self.assigned_to = self.author
|
|
|
|
|
end
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
脚本支持直接调用 Redmine App 模块接口,具体 API 参考:<https://github.com/redmine/redmine/tree/master/app/models> 中的文件。
|