Cách cài đặt công cụ quản lý dự án Redmine trên Debian

Tác giả AI+, T.Sáu 28, 2024, 06:51:05 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Redmine là một công cụ theo dõi lỗi và phần mềm quản lý dự án mã nguồn mở miễn phí. Nó là một công cụ quản lý dự án tự lưu trữ được viết bằng Ruby và khung Ruby on Rails. Redmine có thể được tích hợp với nhiều VCS (Hệ thống kiểm soát phiên bản) khác nhau như Git, Mercurial, v.v. Nó cung cấp trình quản lý kho lưu trữ, trình duyệt và trình xem khác biệt. Redmine có thể quản lý các dự án bằng wiki và diễn đàn, theo dõi thời gian và kiểm soát truy cập dựa trên vai trò. Nó đa nền tảng, có thể được cài đặt ở mọi nơi và hỗ trợ nhiều RDBMS và tối đa 49 ngôn ngữ.


Trong hướng dẫn này, bạn sẽ cài đặt Redmine, công cụ quản lý dự án và theo dõi sự cố trên máy chủ Debian 11. Trong hướng dẫn này, máy chủ web Apache2 được sử dụng làm proxy ngược cho Redmine và máy chủ cơ sở dữ liệu MariaDB được sử dụng làm cơ sở dữ liệu mặc định. Bạn sẽ có bản cài đặt Redmine sẵn sàng sản xuất được bảo mật bằng chứng chỉ SSL.

1. Điều kiện tiên quyết

Để bắt đầu với hướng dẫn này, bạn sẽ cần những điều kiện tiên quyết sau:

  • Máy chủ Debian 11 - bản demo này sử dụng máy chủ Debian có tên máy chủ là "redmine-server".
  • Người dùng không phải root có đặc quyền root/quản trị viên.
  • Một tên miền trỏ đến địa chỉ IP của máy chủ Debian.

Bây giờ, hãy bắt đầu cài đặt Redmine.

2. Cài đặt các phụ thuộc

Ở bước đầu tiên, bạn sẽ cài đặt một số gói phụ thuộc cho Redmine trên máy chủ Debian của mình. Redmine là một ứng dụng web được viết bằng Ruby. Do đó, bạn sẽ cài đặt các phần phụ thuộc bao gồm Ruby trên hệ thống của mình.

Chạy lệnh apt sau để cập nhật và làm mới chỉ mục gói Debian.

Mã nguồn [Chọn]
sudo apt update
Cài đặt các phần phụ thuộc cho Redmine bằng lệnh apt sau. Khi được nhắc xác nhận cài đặt, hãy nhập y và nhấn ENTER để tiếp tục.

Mã nguồn [Chọn]
sudo apt install build-essential ruby ruby-dev libxslt1-dev libxml2-dev zlib1g-dev imagemagick libmagickwand-dev curl vim
Sau khi cài đặt các phần phụ thuộc của gói, hãy chuyển sang bước tiếp theo để cài đặt máy chủ web Apache2 và máy chủ cơ sở dữ liệu MariaDB.

3. Cài đặt máy chủ web Apache2

Redmine có thể được vận hành với Apache2 và Nginx. Trong ví dụ này, bạn sẽ sử dụng máy chủ web Apache2 làm proxy ngược cho quá trình cài đặt Redmine của mình.

Chạy lệnh apt sau để cài đặt các gói Apache2. Lệnh này cũng sẽ cài đặt gói "libapache2-mod-passenger", gói này sẽ cho phép bạn chạy ứng dụng web Ruby trên Apache2.

Khi được nhắc xác nhận cài đặt, hãy nhập Y và nhấn ENTER để tiếp tục.

Mã nguồn [Chọn]
sudo apt install apache2 apache2-dev libapache2-mod-passenger

Sau khi Apache2 được cài đặt, hãy kiểm tra dịch vụ "apache2" bằng lệnh systemctl sau để đảm bảo nó được bật và chạy.

Mã nguồn [Chọn]
sudo systemctl is-enabled apache2
sudo systemctl status apache2

Bạn sẽ thấy dịch vụ "apache2" được bật và chạy tự động khi khởi động hệ thống. Và trạng thái hiện tại của dịch vụ "apache2" là "đang chạy".


4. Cài đặt máy chủ MariaDB

Sau khi cài đặt máy chủ web Apache2, bây giờ bạn cài đặt máy chủ cơ sở dữ liệu MariaDB trên hệ thống Debian của mình. Ứng dụng web Redmine hỗ trợ một số RDMBS, bao gồm PostgreSQL và MySQL/MariaDB.

Ở bước này, bạn cài đặt MariaDB và thiết lập triển khai bằng tập lệnh "mysql_secure_installation ".

Cài đặt máy chủ cơ sở dữ liệu MariaDB bằng lệnh apt bên dưới. Nhập Y để xác nhận cài đặt và nhấn ENTER để tiếp tục.

Mã nguồn [Chọn]
sudo apt install mariadb mariadb-server libmariadb-dev

Sau khi MariaDB được cài đặt, hãy chạy lệnh sau để kiểm tra dịch vụ MariaDB và đảm bảo dịch vụ đang chạy.

Mã nguồn [Chọn]
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Bạn sẽ thấy dịch vụ MariaDB đã được kích hoạt, tức là nó sẽ tự động chạy khi khởi động hệ thống. Và trạng thái của dịch vụ MariaDB hiện tại đang chạy.


Tiếp theo, bạn cần bảo mật quá trình cài đặt MariaDB bằng tập lệnh "mysql_secure_installation". Điều này bao gồm thiết lập mật khẩu gốc MariaDB, vô hiệu hóa đăng nhập root từ xa và xóa cơ sở dữ liệu mặc định cũng như người dùng ẩn danh.

Chạy lệnh "mysql_secure_installation" để bảo mật cài đặt MariaDB của bạn.

Mã nguồn [Chọn]
sudo mysql_secure_installation
Bạn sẽ được nhắc về một số cấu hình máy chủ MariaDB sau.

  • Chuyển sang unix_socket để xác thực? nhập n cho không.
  • Thiết lập mật khẩu root? nhập y, sau đó nhập mật khẩu của bạn và lặp lại.
  • Vô hiệu hóa đăng nhập root từ xa? nhập y để xác nhận và hủy kích hoạt mục nhập.
  • Xóa người dùng ẩn danh? nhập y để xóa người dùng ẩn danh.
  • Xóa kiểm tra cơ sở dữ liệu tiêu chuẩn? xác nhận với y.
  • Cuối cùng, hãy nhập để tải lại quyền cho các bảng và áp dụng các thay đổi mới cho máy chủ MariaDB.

5. Thêm người dùng Redmine

Để cài đặt Redmine, bạn nên sử dụng người dùng không phải root hoặc tạo một người dùng riêng để cài đặt Redmine.

Bây giờ hãy tạo một người dùng mới để sử dụng Redmine.

Tạo người dùng mới "redmine" bằng lệnh bên dưới. Trong ví dụ này, bạn tạo một người dùng mới với thư mục gốc mặc định "/opt/redmine" và kích hoạt bash shell.

Đồng thời nhập mật khẩu cho người dùng mới của bạn và lặp lại nó.

Mã nguồn [Chọn]
sudo useradd -r -m -d /opt/redmine -s /bin/bash redmine
sudo passwd redmine

Tiếp theo, chạy lệnh sau để thêm người dùng "www-data " vào nhóm "redmine ". Điều này là cần thiết vì ứng dụng web Redmine chạy dưới quyền " redmine " của người dùng và Apache2 yêu cầu quyền truy cập vào thư mục Redmine.

Mã nguồn [Chọn]
sudo usermod -aG redmine www-data

Bây giờ hãy chuyển sang bước tiếp theo để thiết lập cơ sở dữ liệu và người dùng cho Redmine.

6. Tạo cơ sở dữ liệu và người dùng mới

Để tạo cơ sở dữ liệu MariaDB mới và người dùng mới, bạn phải đăng nhập vào trình bao MariaDB bằng lệnh mysql bên dưới.

Mã nguồn [Chọn]
sudo mysql -u root -p
Sau khi bạn đăng nhập, hãy chạy các truy vấn sau để tạo cơ sở dữ liệu và người dùng mới cho Redmine. Trong ví dụ này, bạn tạo cơ sở dữ liệu mới "redmine_db" với người dùng "redmine@localhost " và thay đổi mật khẩu.

Mã nguồn [Chọn]
CREATE DATABASE redmine_db;
CREATE USER redmine@localhost IDENTIFIED BY 'password';
GRANT ALL ON redmine_db.* to redmine@localhost;
FLUSH PRIVILEGES;


Tiếp theo, chạy các truy vấn sau để kiểm tra quyền người dùng đối với "redmine@localhost". Sau đó đăng xuất khỏi vỏ MariaDB.

Mã nguồn [Chọn]
SHOW GRANTS FOR redmine@localhost;
quit

Trong kết quả đầu ra sau, bạn sẽ thấy người dùng " redmine@localhost" có quyền đối với cơ sở dữ liệu "redmine_db ".


Nếu tất cả các yêu cầu đều được đáp ứng, bạn có thể bắt đầu cài đặt Redmine.

7. Cài đặt Redmine

Trước khi bạn bắt đầu cài đặt Redmine, hãy chạy lệnh gem sau để cài đặt "bundler", dòng lệnh để cài đặt các phần phụ thuộc của Ruby.

Mã nguồn [Chọn]
sudo gem install bundler
Bây giờ hãy chạy lệnh sau để tải mã nguồn Redmine về thư mục "/opt/ ". Tại thời điểm viết bài này, phiên bản mới nhất của Redmine là v5.0.2.

Mã nguồn [Chọn]
wget https://www.redmine.org/releases/redmine-5.0.2.tar.gz -P /opt
Sau khi tải xuống mã nguồn Redmine, bạn sẽ thấy tệp " redmine-5.0.2.tar.gz " trong thư mục "/opt/ ".

Giải nén file "redmine-5.0.2.tar.gz " bằng lệnh tar bên dưới vào thư mục "/opt/redmine". Đồng thời thực hiện lệnh sau với tư cách người dùng "redmine".

Mã nguồn [Chọn]
sudo -u redmine tar xzf /opt/redmine-5.0.2.tar.gz -C /opt/redmine/ --strip-components=1

Bây giờ hãy đăng nhập với tư cách người dùng "redmine" bằng lệnh sau. Từ giờ trở đi, bạn sẽ thực thi các lệnh với tư cách người dùng "redmine " và thiết lập cài đặt Redmine.

Mã nguồn [Chọn]
su - redmine
Thực hiện lệnh sau để sao chép một số cấu hình mặc định cho Redmine.

  • Tệp "database.yml" là cấu hình cơ sở dữ liệu cho Redmine. Bạn có thể có nhiều cơ sở dữ liệu cho các môi trường khác nhau, chẳng hạn như môi trường phát triển và sản xuất.
  • Tệp "configuration.yml" là cấu hình chính cho quá trình cài đặt Redmine của bạn. Bạn có thể thay đổi cấu hình chi tiết nếu cần.
  • Tệp "dispatch.fcgi" là cấu hình CGI cho Redmine.

Mã nguồn [Chọn]
cp config/database.yml.example config/database.yml
cp config/configuration.yml.example config/configuration.yml
cp public/dispatch.fcgi.example public/dispatch.fcgi


Chỉnh sửa cấu hình cơ sở dữ liệu "config/database.yml" bằng trình chỉnh sửa nano.

Mã nguồn [Chọn]
nano config/database.yml
Thay đổi cấu hình cơ sở dữ liệu cho "môi trường sản xuất". Thay đổi tên cơ sở dữ liệu, tên người dùng và mật khẩu theo cấu hình của bạn.

Mã nguồn [Chọn]
production:
  adapter: mysql2
  database: redmine_db
  host: localhost
  username: redmine
  password: "password"
  encoding: utf8

Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.

Tiếp theo, chạy các lệnh sau để tải xuống và cài đặt các phần phụ thuộc Ruby cho Redmine.

Mã nguồn [Chọn]
bundle config set --local without 'development test'
bundle install

Bạn sẽ thấy quá trình tải xuống và cài đặt các phụ thuộc Ruby cho Redmine.


Sau khi cài đặt xong các phần phụ thuộc, hãy chạy lệnh sau để tạo mã thông báo bí mật cho Redmine và di chuyển cơ sở dữ liệu. Mã thông báo bí mật được tạo tự động và lưu trong "configuration.yml". Lược đồ cơ sở dữ liệu mới được tạo để di chuyển cơ sở dữ liệu.

Mã nguồn [Chọn]
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate


Sau khi quá trình di chuyển cơ sở dữ liệu hoàn tất, hãy tải cấu hình mặc định cho Redmine bằng lệnh bên dưới.

Mã nguồn [Chọn]
RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data
Bạn sẽ thấy thông báo như "Default configuration data loaded".


Việc này hoàn tất việc cài đặt và cấu hình công cụ theo dõi sự cố và quản lý dự án Redmine. Để kiểm tra cài đặt của bạn, bạn có thể bắt đầu dự án Redmine bằng lệnh sau.

Mã nguồn [Chọn]
bundle exec rails server -u webrick -e production
Bây giờ ứng dụng web Redmine sẽ chạy với cổng TCP 3000 mặc định thông qua WEBrick. Dưới đây bạn có thể thấy đầu ra của lệnh.


Mở trình duyệt web và gọi địa chỉ IP của máy chủ của bạn theo sau là cổng WEBrick 3000.

Nếu quá trình cài đặt Redmine của bạn thành công, bạn sẽ thấy trang chủ của ứng dụng web Redmine như bên dưới.


Cuối cùng, quay lại thiết bị đầu cuối của bạn và nhấn "Ctrl+c " để thoát quy trình WEBrick. Tiếp theo, bạn sẽ thiết lập máy chủ web Apache2 làm proxy ngược cho Redmine.

8. Chạy Redmine với proxy ngược

Trong hướng dẫn này, bạn sẽ chạy Redmine với proxy ngược Apache2 và kích hoạt SSL. Vì vậy hãy đảm bảo bạn đã tạo chứng chỉ SSL cho tên miền của mình. Bạn có thể tạo SSL miễn phí từ Letsencrypt.

Trước khi tạo cấu hình máy chủ ảo, hãy kích hoạt một số mô-đun Apache2 bằng lệnh a2enmod (xem bên dưới).

Mã nguồn [Chọn]
sudo a2enmod ssl rewrite
Bây giờ hãy tạo một tệp mới cho máy chủ ảo "/etc/apache2/sites-available/redmine.conf" bằng trình chỉnh sửa nano.

Mã nguồn [Chọn]
sudo nano /etc/apache2/sites-available/redmine.conf
Thêm cấu hình sau vào tệp và đảm bảo rằng bạn thay đổi tên miền và đường dẫn của chứng chỉ SSL.

Mã nguồn [Chọn]
<VirtualHost *:80>
ServerName redmine.hwdomain.io
ServerAdmin [email protected]

# Redirect Requests to SSL
Redirect permanent "/" "https://redmine.hwdomain.io/"

</VirtualHost>

<IfModule mod_ssl.c>

<VirtualHost *:443>

ServerName redmine.hwdomain.io
RailsEnv production
DocumentRoot /opt/redmine/public

ErrorLog ${APACHE_LOG_DIR}/redmine.hwdomain.io.error.log
CustomLog ${APACHE_LOG_DIR}/redmine.hwdomain.io.access.log combined

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/redmine.hwdomain.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/redmine.hwdomain.io/privkey.pem

<Directory "/opt/redmine/public">
Allow from all
Require all granted
</Directory>

</VirtualHost>

</IfModule>

Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.

Tiếp theo, kích hoạt cấu hình máy chủ ảo "redmine.conf" bằng lệnh a2ensite bên dưới. Sau đó, kiểm tra cấu hình Apache2 để đảm bảo bạn có cấu hình Apache chính xác.

Mã nguồn [Chọn]
sudo a2ensite redmine.conf
sudo apacectl configtest

Nếu cấu hình Apache2 đúng, bạn sẽ thấy thông báo "Cú pháp OK".


Cuối cùng, chạy lệnh systemctl sau để khởi động lại dịch vụ Apache2 và áp dụng tệp cấu hình mới cho máy chủ ảo.

Mã nguồn [Chọn]
sudo systemctl restart apache2
Bây giờ cấu hình proxy ngược Apache2 cho Redmine đã hoàn tất. Redmine của bạn hiện có thể truy cập được thông qua tên miền cài đặt của bạn.

9. Hoàn thành

Mở trình duyệt web và truy cập tên miền cài đặt Redmine của bạn (ví dụ:   Đăng nhập để xem liên kết). Bạn sẽ thấy trang bắt đầu mặc định của Quản lý dự án Redmine.

Nhấp vào nút "Đăng nhập " ở góc trên bên phải để đăng nhập vào bảng điều khiển quản trị Redmine.


Đăng nhập vào bảng điều khiển quản trị Redmine với người dùng mặc định là "admin " và mật khẩu "admin ".


Bây giờ bạn sẽ được nhắc thay đổi mật khẩu mặc định cho Redmine. Nhập mật khẩu mới của bạn và nhấp vào "Áp dụng ".


Bây giờ hãy thay đổi dữ liệu tài khoản mặc định của quản trị viên Redmine của bạn và sau đó nhấp vào "Lưu ". Điều này hoàn thành cấu hình cơ bản cho Redmine.


Nhấp vào menu " Dự án " để quản lý các dự án trong quá trình cài đặt Redmine của bạn.


Nhấp vào menu " Quản trị " để thiết lập Redmine cho tổ chức của bạn. Bạn có thể thêm nhiều người dùng hơn, thiết lập nhóm, xác định vai trò, bật xác thực thông qua ứng dụng của bên thứ ba như LDAP, v.v.


Trong hướng dẫn này, bạn đã cài đặt và định cấu hình Redmine, công cụ theo dõi sự cố và quản lý dự án trên máy chủ Debian 11. Bạn đã cài đặt Redmine với MariaDB làm cơ sở dữ liệu mặc định và Apache2 làm proxy ngược. Bạn cũng đã đảm bảo việc triển khai Redmine thông qua kết nối SSL và HTTPS.

Để mở rộng cài đặt Redmine, bạn có thể muốn tích hợp Redmine vào cơ sở hạ tầng hiện có của mình, ví dụ: bằng cách thêm xác thực LDAP và tích hợp với SCM như SVN, Git và Mercurial. Bạn cũng có thể thêm vai trò cho tổ chức hoặc công ty của mình.