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

theanh

Administrator
Nhân viên
Redmine là công cụ quản lý dự án và theo dõi vấn đề miễn phí và mã nguồn mở. Đây là phần mềm ứng dụng dựa trên web, chủ yếu được viết bằng Ruby on Rails. Nó đa nền tảng và hỗ trợ nhiều cơ sở dữ liệu và nhiều ngôn ngữ.

Redmine linh hoạt và có thể được sử dụng cho nhiều loại tổ chức và dự án khác nhau, từ các tổ chức nhỏ, vừa hoặc lớn. Nó cho phép bạn tạo và quản lý nhiều dự án và mỗi dự án đều có Wiki, Diễn đàn, theo dõi vấn đề, v.v. riêng. Ngoài ra, nó cho phép bạn tạo các vai trò tùy chỉnh dựa trên nhu cầu của tổ chức bạn và nhiều hơn nữa.

Redmine được phát hành theo giấy phép GNU GPL v2 và có thể được cài đặt trên bất kỳ hệ điều hành nào như Linux, Windows hoặc macOS. Nó hỗ trợ nhiều loại cơ sở dữ liệu khác nhau, bao gồm PostgreSQL, MySQL và SQLite (mặc định).

Trong hướng dẫn này, bạn sẽ cài đặt Redmine với máy chủ web Apache2 và máy chủ MySQL trên máy chủ Ubuntu 22.04. Bạn cũng sẽ bảo mật cài đặt Redmine bằng chứng chỉ SSL.

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

Hướng dẫn này yêu cầu các yêu cầu sau:
  • Máy chủ Ubuntu 22.04 - Ví dụ này sử dụng máy chủ Ubuntu có tên máy chủ là redmine-server.
  • Người dùng không phải root có quyền root sudo - Nhưng bạn cũng có thể sử dụng người dùng root.
  • Tên miền trỏ đến địa chỉ IP máy chủ của bạn - đối với sản xuất, bạn phải đảm bảo rằng tên miền của mình được trỏ đến địa chỉ IP máy chủ.
Khi bạn đã chuẩn bị mọi thứ, bây giờ bạn có thể tiến hành bước đầu tiên của quá trình cài đặt Redmine.

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

Redmine là một công cụ quản lý dự án và theo dõi sự cố nguồn mở chủ yếu được viết bằng Ruby và Ruby on Rails (RoR). Để cài đặt Redmine, trước tiên bạn phải cài đặt Ruby, sau đó bạn có thể cài đặt các phụ thuộc khác như máy chủ web Apache2 và cơ sở dữ liệu bằng máy chủ MySQL.

Trong ví dụ này, bạn sẽ chạy Redmine với máy chủ web Apache2 và máy chủ MySQL.

Trước khi bắt đầu cài đặt các gói, hãy chạy lệnh apt bên dưới để cập nhật và làm mới chỉ mục gói Ubuntu của bạn.
Mã:
sudo apt update
Sau khi kho lưu trữ được cập nhật, hãy cài đặt một số phụ thuộc gói sau thông qua lệnh apt bên dưới.

Với lệnh này, bạn sẽ cài đặt máy chủ web Apache2 theo sau là linapache2-mod-passenger sẽ được sử dụng để thiết lập ứng dụng RoR để chạy trên Apache2. Bạn cũng sẽ cài đặt các gói Ruby.
Mã:
sudo apt install apache2 ruby ruby-dev build-essential libapache2-mod-passenger libmysqlclient-dev
Khi được nhắc xác nhận cài đặt, hãy nhập y rồi nhấn ENTER để tiếp tục.



Sau khi Apache2 và Ruby được cài đặt, hãy chạy lệnh sau để cài đặt máy chủ MySQL. Redmine hỗ trợ nhiều RDBMS như PostgreSQL, MySQL/MariaDB và SQLite. trong ví dụ này, bạn sẽ sử dụng máy chủ MySQL.
Mã:
sudo apt install mysql-server
Nhập y khi được nhắc xác nhận cài đặt, sau đó nhấn ENTER để tiếp tục.



Để cài đặt Redmine, bạn cũng sẽ cần cài đặt một bundler trên máy chủ Ubuntu của mình. bundler là một dòng lệnh sẽ được sử dụng để quản lý các gói Ruby Gems.

Chạy lệnh sau để cài đặt bundler vào hệ thống của bạn.
Mã:
sudo gem install bundler
Sau khi bundler được cài đặt, bạn sẽ thấy đầu ra như sau:



Cuối cùng, hãy xác minh các dịch vụ Apache2 và MySQL thông qua lệnh systemctl bên dưới. Điều này sẽ đảm bảo cả dịch vụ Apache2 và MariaDB đều đang chạy và được bật.

Xác minh dịch vụ Apache2.
Mã:
sudo systemctl is-enabled apache2
sudo systemctl status apache2
Bên dưới, bạn có thể thấy dịch vụ Apache2 được bật và sẽ tự động chạy khi khởi động hệ thống. Và trạng thái hiện tại của dịch vụ đang chạy.\



Xác minh dịch vụ MySQL.
Mã:
sudo systemctl is-enabled mysql
sudo systemctl status mysql
Bạn sẽ thấy một đầu ra tương tự như sau - Dịch vụ MySQL được bật và sẽ tự động chạy khi khởi động. Và trạng thái hiện tại của dịch vụ MySQL đang chạy.


Cấu hình máy chủ MySQL​

Sau khi Apache2 và máy chủ MySQL được cài đặt, bạn sẽ thiết lập mật khẩu gốc MySQL và bảo mật triển khai thông qua mysql_secure_installation. Sau đó, bạn cũng sẽ tạo một cơ sở dữ liệu MySQL và người dùng mới cho Redmine.

Đăng nhập vào MySQL thông qua lệnh mysql bên dưới.
Mã:
sudo mysql
Bây giờ hãy thay đổi mật khẩu gốc MySQL thông qua truy vấn sau. Và hãy nhớ thay đổi mật khẩu bằng mật khẩu của bạn. Sau đó, nhập quit exiting từ shell MySQL.
Mã:
ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY 'password';
quit


Tiếp theo, chạy lệnh sau để bắt đầu bảo mật triển khai máy chủ MySQL.
Mã:
sudo mysql_secure_installation
Khi được nhắc nhập mật khẩu gốc MySQL, hãy nhập mật khẩu chính xác của bạn.

Sau đó, bạn sẽ được yêu cầu cấu hình MySQL khác như vô hiệu hóa đăng nhập từ xa cho người dùng gốc, xóa người dùng ẩn danh, xóa kiểm tra cơ sở dữ liệu mặc định và tải lại tất cả các đặc quyền bảng. Đối với tất cả các thiết lập máy chủ MySQL đó, hãy nhập Y để xác nhận cấu hình.

Sau khi bảo mật triển khai MySQL, đã đến lúc thiết lập cơ sở dữ liệu và người dùng mới cho Redmine.

Đăng nhập vào shell MySQL thông qua lệnh mysql bên dưới. Bạn sẽ được yêu cầu nhập mật khẩu root MySQL, hãy nhập mật khẩu chính xác cho người dùng root MySQL của bạn, sau đó nhấn ENTER.
Mã:
sudo mysql -u root -p
Bây giờ hãy chạy các truy vấn sau để tạo cơ sở dữ liệu MySQL và người dùng mới cho Redmine. Trong ví dụ này, bạn sẽ tạo một cơ sở dữ liệu và người dùng mới redmine với mật khẩu 'secretPassword'. Bạn có thể thay thế mật khẩu cơ sở dữ liệu bằng mật khẩu của mình.
Mã:
CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'secretPassword';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
FLUSH PRIVILEGES;


Tiếp theo, hãy chạy các truy vấn sau để xác minh các đặc quyền của người dùng MySQL redmine. Hãy đảm bảo rằng người dùng MySQL redmine có quyền đối với cơ sở dữ liệu redmine.
Mã:
SHOW GRANTS FOR redmine@localhost;
quit
Bên dưới, bạn có thể thấy người dùng MySQL redmine@localhost có quyền đối với cơ sở dữ liệu redmine.



Cuối cùng, nhập quit để đăng xuất khỏi shell MySQL.

Sau khi cài đặt tất cả các phụ thuộc và tạo cơ sở dữ liệu MySQL cùng người dùng, bạn đã sẵn sàng cài đặt công cụ quản lý dự án Redmine trên máy chủ Ubuntu của mình.

Cài đặt Redmine​

Trong bước này, bạn sẽ cài đặt phiên bản Redmine mới nhất. 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.

Bạn sẽ tải xuống mã nguồn Redmine, cấu hình cơ sở dữ liệu, cài đặt các phụ thuộc Ruby thông qua bản dựng, thiết lập mã thông báo bí mật Redmine và di chuyển cơ sở dữ liệu.

Trong ví dụ này, bạn sẽ cài đặt Redmine trong thư mục /opt/redmine.

Di chuyển đến thư mục /opt.
Mã:
cd /opt/
Bây giờ, hãy tải xuống mã nguồn Redmine bằng lệnh wget bên dưới. Sau khi tải xuống, bạn sẽ thấy tệp redmine-5.0.2.tar.gz trong thư mục /opt của bạn.
Mã:
wget https://www.redmine.org/releases/redmine-5.0.2.tar.gz
Tiếp theo, chạy lệnh sau để trích xuất mã nguồn Redmine redmine-5.0.2.tar.gz và tạo liên kết tượng trưng mới cho thư mục Redmine đến /opt/redmine.
Mã:
tar -xvzf redmine-5.0.2.tar.gz
sudo ln -s redmine-5.0.2 redmine
Thư mục cài đặt Redmine chính sẽ là /opt/redmine.

Di chuyển đến thư mục /opt/redmine.
Mã:
cd /opt/redmine/
Sao chép cấu hình cơ sở dữ liệu mặc định 'config/database.yml.example' vào 'config/database.yml'. Sau đó, mở tệp cấu hình cơ sở dữ liệu 'config/database.yml' bằng trình soạn thảo nano.
Mã:
cp config/database.yml.example config/database.yml
nano config/database.yml


Trong phần 'production', hãy thay đổi thông tin chi tiết của cơ sở dữ liệu MySQL và người dùng. Hãy đảm bảo sử dụng đúng tên người dùng và mật khẩu cơ sở dữ liệu cho Redmine.
Mã:
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "secretPassword" 
 # Sử dụng "utf8" thay vì "utfmb4" cho MySQL trước 5.7.7
encoding: utf8mb4
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 lệnh bundler sau để cài đặt các phụ thuộc Ruby cho ứng dụng Redmine.
Mã:
bundle config set --local without 'development test'
bundle install
Bạn sẽ thấy đầu ra tương tự như sau:



Sau khi các phụ thuộc Redmine được cài đặt, hãy chạy lệnh sau để tạo mã thông báo bí mật Redmine và di chuyển cơ sở dữ liệu.
Mã:
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
Trong ảnh chụp màn hình sau, bạn có thể thấy mã thông báo bí mật Redmine được tạo và quá trình di chuyển cơ sở dữ liệu Redmine.



Cuối cùng, hãy tải mặc định vào cài đặt Redmine của bạn bằng lệnh sau. Khi được yêu cầu chọn ngôn ngữ, hãy nhập en như đối với English.
Mã:
RAILS_ENV=production bundle exec rake redmine:load_default_data
Khi dữ liệu mặc định của Redmine được tải, bạn sẽ thấy thông báo đầu ra là "Dữ liệu cấu hình mặc định đã được tải".



Bây giờ Redmine đã được cài đặt, tiếp theo bạn sẽ thiết lập máy chủ ảo Apache2 cho Redmine.

Thiết lập máy chủ ảo cho Redmine​

Trong bước này, bạn sẽ tạo cấu hình máy chủ ảo Apache2 mới cho Redmine. Vì vậy, hãy đảm bảo rằng bạn có tên miền trỏ đến địa chỉ IP máy chủ của mình và chứng chỉ SSL được tạo.

Chạy lệnh sau để kích hoạt mô-đun Apache ssl và viết lại.
Mã:
sudo a2enmod ssl rewrite
Bạn sẽ thấy đầu ra như sau:



Bây giờ, hãy tạo cấu hình máy chủ ảo Apache2 mới '/etc/apache2/sites-available/redmine.conf' bằng trình soạn thảo nano.
Mã:
sudo nano /etc/apache2/sites-available/redmine.conf
Thêm cấu hình sau vào tệp. Và hãy chắc chắn thay đổi tên miền và đường dẫn của chứng chỉ SSL bằng cấu hình của bạn.
Mã:
 ServerName redmine.howtoforge.local
 ServerAdmin [emailprotected]

 # Chuyển hướng yêu cầu đến SSL
 Chuyển hướng vĩnh viễn "/" "https://redmine.howtoforge.local/"





 

 ServerName redmine.howtoforge.local
 RailsEnv production
 DocumentRoot /opt/redmine/public

 ErrorLog ${APACHE_LOG_DIR}/redmine.howtoforge.local.error.log
 CustomLog ${APACHE_LOG_DIR}/redmine.howtoforge.local.access.log combined

 SSLEngine on
 SSLCertificateFile /etc/letsencrypt/live/redmine.howtoforge.local/fullchain.pem
 SSLCertificateKeyFile /etc/letsencrypt/live/redmine.howtoforge.local/privkey.pem

 
 Allow from all
 Require all granted
Lưu tệp và thoát khỏi trình chỉnh sửa.

Tiếp theo, chạy lệnh sau để kích hoạt tệp máy chủ ảo 'redmine.conf'. Sau đó, hãy xác minh cấu hình Apache2 của bạn để đảm bảo bạn có cấu hình phù hợp.
Mã:
sudo a2ensite redmine.conf
sudo apachectl configtest
Bây giờ bạn sẽ nhận được thông báo đầu ra như "Cú pháp OK" khi bạn có cấu hình Apache2 phù hợp.



Cuối cùng, hãy khởi động lại dịch vụ Apache2 thông qua lệnh systemctl bên dưới để áp dụng tệp máy chủ ảo mới.
Mã:
sudo systemctl restart apache2
Tại thời điểm này, Redmine đã được cài đặt và máy chủ ảo đã được cấu hình. Bây giờ bạn có thể truy cập cài đặt Redmine của mình thông qua tên miền của bạn.

Thiết lập Tường lửa UFW​

Khi sản xuất, bạn phải bật tường lửa. Đối với hệ thống Ubuntu, bạn có thể sử dụng tường lửa mặc định UFE (Uncomplicated Firewall).

Bây giờ, bạn sẽ thêm các quy tắc UFW mở các dịch vụ HTTP và HTTPS mặc định để Redmine có thể truy cập được từ bên ngoài mạng.

Chạy lệnh ufw sau để thêm cấu hình ứng dụng "OpenSSH" mặc định vào UFW. Sau đó, khởi động và bật tường lửa UFW.
Mã:
sudo ufw allow "OpenSSH"
sudo ufw enable
Khi được yêu cầu xác nhận, hãy nhập y để khởi động và bật dịch vụ tường lửa UFW.



Tiếp theo, chạy lệnh sau để thêm cấu hình ứng dụng "Apache Full" vào tường lửa. Sau đó, hãy xác minh trạng thái UFW thông qua lệnh sau.
Mã:
sudo ufw allow "Apache Full"
sudo ufw status
Bạn sẽ thấy trạng thái tường lửa UFW đang hoạt động và các cấu hình ứng dụng hiện đang được bật là OpenSSH và "Apache Full". Thao tác này sẽ mở cổng SSH mặc định 22 và các cổng dịch vụ HTTP và HTTPS 80 và 443.


Cài đặt Redmine​

Mở trình duyệt web và truy cập tên miền cài đặt Redmine của bạn (ví dụ: https://redmine.howtoforge.local/).

Bây giờ bạn sẽ thấy trang chủ mặc định của Redmine Project Management and Issue Tracking Tool. Nhấp vào "Đăng nhập" để đăng nhập vào bảng điều khiển quản trị Redmine.



Nhập người dùng và mật khẩu quản trị Redmine mặc định là "admin - admin".



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



Cuối cùng, hãy chỉnh sửa thông tin chi tiết về người dùng quản trị Redmine của bạn và nhấp vào "Lưu" để áp dụng các cấu hình. Bây giờ bạn đã cấu hình cơ sở của Redmine.



Để thêm một dự án mới, hãy nhấp vào menu "Dự án". Bạn sẽ có thể tạo, chỉnh sửa hoặc xóa Dự án trên Redmine của mình.



Bây giờ, nếu bạn muốn thêm cấu hình vào Redmine, hãy nhấp vào menu "Quản trị". Với menu này, 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à nhiều hơn nữa.


Kết luận​

Trong hướng dẫn này, bạn đã cài đặt và cấu hình Redmine Project Management and Issue Tracking Tool trên máy chủ Ubuntu 22.04. Bạn cũng đã cấu hình cơ sở dữ liệu MariaDB và máy chủ web Nginx cho Redmine. Ngoài ra, bạn cũng đã bảo mật cài đặt Redmine bằng chứng chỉ SSL.

Bây giờ bạn đã cài đặt Redmine trên hệ thống của mình, bạn có thể mở rộng cài đặt Redmine của mình bằng cách thêm một số cấu hình bổ sung như tích hợp Redmine vào cơ sở hạ tầng hiện tại của bạn như thêm xác thực LDAP và tích hợp với SCM như SVN, Git và Mercurial. Ngoài ra, bạn có thể thêm vai trò theo tổ chức hoặc công ty của mình.
 
Back
Bên trên