MantisBT 全名是 Mantis Bug Tracker,是一個開源的專案 Bug 追蹤軟體,方便用於讓使用者向開發團隊回報問題,使用 PHP 開發,需要搭配資料庫如 MySQL, MariaDB 等。
本文使用的是 Github 上的 okainov/mantisbt-docker,是網友已經包好的 Docker image,然後再透過筆者撰寫 docker-compose.yml 和 .env(設定檔),完成 MantisBT + 資料庫的部屬。
在使用前請先在 Linux 中執行下面這行指令,用途是產生一個隨機的亂數,MantisBT 在加密時會加入此內容,用來增加安全性。具體資訊可以查看官方說明
範例輸出:
要建立兩個檔案,第一個檔名為 .env ,在第一行的部分加入剛剛產生出來的內容。後面的則是資料庫會使用的帳號密碼和資料庫名稱,可以自行更改。
註: 這裡並未設定 email 相關資訊,之後會連入 docker 一並設定
建立 docker-compose.yml 檔案,可自行替換 mantisBT 的 port(8989) 和 資料庫資訊,這裡使用的是 mariadb
啟動: (在這兩個檔案的路徑上直接執行)
開啟安裝頁面:
輸入資料庫連接資訊,依照 .env 的內容輸入,預設的內容如下:
Username: mantisbt123
Password: mantisbt123
Database: mantisbt
Admin Username: root
Admin Password: MantisBt8
然後改一下預設時區後點選「Install/Upgrade Database」
安裝完畢後使用下面的網址開啟登入頁面:
預設帳號密碼為: administrator / root
安裝 vi 編輯器,或是其他自己慣用的編輯器:
編輯設定檔
預設內容如下:
上面 15 到 17 行的內容可以刪除,替換為自己的 email,這裡提供筆者的範例:
設定完畢後不需要重新啟動即可使用。
註:官方建立將 /var/www/html/admin 資料夾刪除或是移動到其他地方,筆者是移動到 home 目錄下,這樣未來有需要變更時再移動回去即可。
註:Email 的設定值 「ON」不可加單引號,筆者就是不小心把他加上單引號,所以一直沒有辦法寄送 Email,連「管理」> 管理設置 > 電子郵件通知 按鈕都沒有出現
參考資料:
MantisBT 2.0 Admin Guide
Github - okainov/mantisbt-docker
本文使用的是 Github 上的 okainov/mantisbt-docker,是網友已經包好的 Docker image,然後再透過筆者撰寫 docker-compose.yml 和 .env(設定檔),完成 MantisBT + 資料庫的部屬。
在使用前請先在 Linux 中執行下面這行指令,用途是產生一個隨機的亂數,MantisBT 在加密時會加入此內容,用來增加安全性。具體資訊可以查看官方說明
cat /dev/urandom | head -c 64 | base64
範例輸出:
Rs2tLgKQPkI5ZdZas6CjwIOxEAdODYfyLFr7mgcDWMMikJicOiXYUXLtRUjC1aA+Z2oUkFdduXicImhd7H6CEw==
要建立兩個檔案,第一個檔名為 .env ,在第一行的部分加入剛剛產生出來的內容。後面的則是資料庫會使用的帳號密碼和資料庫名稱,可以自行更改。
MASTER_SALT='Rs2tLgKQPkI5ZdZas6CjwIOxEAdODYfyLFr7mgcDWMMikJicOiXYUXLtRUjC1aA+Z2oUkFdduXicImhd7H6CEw=='
MARIADB_ROOT_PASSWORD='MantisBt8'
MARIADB_USER='mantisbt123'
MARIADB_PASSWORD='mantisbt123'
MARIADB_DATABASE='mantisbt'
註: 這裡並未設定 email 相關資訊,之後會連入 docker 一並設定
建立 docker-compose.yml 檔案,可自行替換 mantisBT 的 port(8989) 和 資料庫資訊,這裡使用的是 mariadb
version: "3.8"
services:
web:
image: okainov/mantisbt:latest
container_name: mantisbt_web
ports:
- "8989:80"
environment:
- MANTIS_ENABLE_ADMIN=1
- MASTER_SALT=${MASTER_SALT}
- MYSQL_HOST=db
- MYSQL_DATABASE=${MARIADB_DATABASE}
- MYSQL_USER=${MARIADB_USER}
- MYSQL_PASSWORD=${MARIADB_PASSWORD}
depends_on:
- db
restart: always
db:
image: mariadb:10.7.8
container_name: mantisbt_db
volumes:
- ./db/mantisbt_db:/var/lib/mysql
environment:
- MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
- MARIADB_USER=${MARIADB_USER}
- MARIADB_PASSWORD=${MARIADB_PASSWORD}
- MARIADB_DATABASE=${MARIADB_DATABASE}
啟動: (在這兩個檔案的路徑上直接執行)
docker compose up -d
開啟安裝頁面:
http://localhost:8989/admin/install.php
輸入資料庫連接資訊,依照 .env 的內容輸入,預設的內容如下:
Username: mantisbt123
Password: mantisbt123
Database: mantisbt
Admin Username: root
Admin Password: MantisBt8
然後改一下預設時區後點選「Install/Upgrade Database」
安裝完畢後使用下面的網址開啟登入頁面:
http://localhost:8989/login_page.php
預設帳號密碼為: administrator / root
修改 email 資訊
連入 docker 容器:
docker exec -it mantisbt_web bash
安裝 vi 編輯器,或是其他自己慣用的編輯器:
apt-get update && apt-get install -y vim
編輯設定檔
vi /var/www/html/config/config_inc.php
預設內容如下:
<?php
$g_db_type = 'mysqli';
$g_hostname = getenv('MYSQL_HOST') !== false ? getenv('MYSQL_HOST') : 'db';
$g_database_name = getenv('MYSQL_DATABASE') !== false ? getenv('MYSQL_DATABASE') : 'bugtracker';
$g_db_username = getenv('MYSQL_USER') !== false ? getenv('MYSQL_USER') : 'mantis';
$g_db_password = getenv('MYSQL_PASSWORD') !== false ? getenv('MYSQL_PASSWORD') : 'mantis';
$g_crypto_master_salt = getenv('MASTER_SALT');
# Configure email
$g_webmaster_email = getenv('EMAIL_WEBMASTER') !== false ? getenv('EMAIL_WEBMASTER') : null;
$g_from_email = getenv('EMAIL_FROM') !== false ? getenv('EMAIL_FROM') : null;
$g_return_path_email = getenv('EMAIL_RETURN_PATH') !== false ? getenv('EMAIL_RETURN_PATH') : null;
include 'config_inc_addon.php';
上面 15 到 17 行的內容可以刪除,替換為自己的 email,這裡提供筆者的範例:
<?php
$g_db_type = 'mysqli';
$g_hostname = getenv('MYSQL_HOST') !== false ? getenv('MYSQL_HOST') : 'db';
$g_database_name = getenv('MYSQL_DATABASE') !== false ? getenv('MYSQL_DATABASE') : 'bugtracker';
$g_db_username = getenv('MYSQL_USER') !== false ? getenv('MYSQL_USER') : 'mantis';
$g_db_password = getenv('MYSQL_PASSWORD') !== false ? getenv('MYSQL_PASSWORD') : 'mantis';
$g_crypto_master_salt = getenv('MASTER_SALT');
# Configure email
# 網站管理員的電子郵件地址
$g_webmaster_email='service@ruyut.com.tw';
# 管理員 email (舊版設定,已過時,現為 g_webmaster_email)
# $g_administrator_email ='service@ruyut.com.tw';
# 接收退回郵件的電子郵件地址
$g_return_path_email ='service@ruyut.com.tw';
# 發送的所有電子郵件來源的電子郵件地址
$g_from_email ='service@ruyut.com.tw';
# 啟用通知
$g_enable_email_notification= ON;
$g_smtp_host = 'ms.ruyut.com.tw';
$g_smtp_port = 25;
$g_smtp_connection_mode = 'ssl';
$g_smtp_username ='service';
$g_smtp_password ='service_password';
include 'config_inc_addon.php';
設定完畢後不需要重新啟動即可使用。
註:官方建立將 /var/www/html/admin 資料夾刪除或是移動到其他地方,筆者是移動到 home 目錄下,這樣未來有需要變更時再移動回去即可。
註:Email 的設定值 「ON」不可加單引號,筆者就是不小心把他加上單引號,所以一直沒有辦法寄送 Email,連「管理」> 管理設置 > 電子郵件通知 按鈕都沒有出現
參考資料:
MantisBT 2.0 Admin Guide
Github - okainov/mantisbt-docker
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com