Redmine -является открытым серверным веб-приложением для управления проектами и задачами.
Предварительно обновим систему
sudo apt update
sudo apt upgrade
1. Подготовка к установке Redmine
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
Ставим необходимые пакеты
sudo apt update
sudo apt install postgresql postgresql-contrib \
postgresql-server-dev-11 imagemagick ruby build-essential \
patch ruby-dev zlib1g-dev liblzma-dev libmagick++-dev \
passenger libcurl4-openssl-dev libssl-dev \
python3-pip python3-dev subversion -y
2. Установка Redmine
Переходим в домашнюю директорию и скачиваем redmine
cd ~
svn co https://svn.redmine.org/redmine/branches/4.0-stable redmine-4.0 --non-interactive --trust-server-cert-failures=unknown-ca
ln -s redmine-* redmine
3. Настройка PostgreSQL
Заходим под пользователя postgres и запускаем утилиту управления базами данных
sudo su - postgres
psql
Создаем пользователя\роль и базу данных
CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'my_password' NOINHERIT VALID UNTIL 'infinity';
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
Выходим
\q
exit
4. Настраиваем подключение Redmine к БД
Копируем конфигурационный фаил из шаблона и редактируем его
sudo cp redmine-4.0/config/database.yml.example redmine-4.0/config/database.yml
sudo nano redmine-4.0/config/database.yml
Комментируем все секции и раскоментируем секцию PostgreSQL. В итоге должно получится:
production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: "my_password"
Сохраняем выходим(Ctrl+x — Y — Enter).
5. Установка Bundler
Далее устанавливаем Bundler менеджер управления зависимостями gems пакетов.
sudo gem install bundler
Затем переходим в ранее загруженную папку и устанавливаем все зависимости требующиеся Redmine.
cd redmine-4.0/
sudo bundle install --without development test
6. Генерируем ключ для безопасного хранения сессий
rake generate_secret_token
7. Создаем структуру базы данных
RAILS_ENV=production rake db:migrate
8. Загрузка данных и установка языка по умолчанию
RAILS_ENV=production REDMINE_LANG=ru rake redmine:load_default_data
9. Установка веб сервера nginx для Redmine
Теперь давайте настроим всеми известный веб сервер Nginx. Для взаимодействия Redmine с Nginx необходимо установить passenger сервер приложений для Ruby.
sudo gem install passenger
Затем скачиваем и ставим Nginx в дирректорию /opt/nginx/ , а также включаем язык ruby
sudo passenger-install-nginx-module --auto --prefix=/opt/nginx/ --auto-download --languages ruby
Редактируем конфиг nginx
sudo nano /opt/nginx/conf/nginx.conf
В секцию http вставляем строку include vhost/*.conf;
...
http {
passenger_root /var/lib/gems/2.5.0/gems/passenger-6.0.2;
passenger_ruby /usr/bin/ruby2.5;
include mime.types;
default_type application/octet-stream;
#ngu
include vhost/*.conf;
...
Сохраняем фаил и закрываем.
Создаем папку для хранения файлов конфигурации виртуальных хостов
sudo mkdir /opt/nginx/conf/vhost
Затем создадим фаил конфигурации для Redmine
sudo nano /opt/nginx/conf/vhost/redmine.conf
Правим конфиг
server {
listen 443 ssl;
ssl_certificate /home/admin/cert/server.crt;
ssl_certificate_key /home/admin/cert/server.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!RC4:!aNULL:!MD5:!kEDH";
passenger_enabled on;
client_max_body_size 100m; # Max attachment size
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ ^/redmine(/.*|$) {
alias /home/admin/redmine/public$1;
passenger_base_uri /redmine;
passenger_document_root /home/admin/redmine/public;
}
}
Где admin имя вашего пользователя (а если точнее то ваша домашняя папка куда ранее распаковали Redmine)
Создаем сертификаты в месте указанном в конфиге
mkdir ~/cert
cd ~/cert
openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt -nodes -days 3650 -subj '/CN=localhost'
Прописываем в фаил sudo nano /lib/systemd/system/nginx.service Nginx как сервис
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Производим «мягкую» перезагрузку. Стартуем nginx и включаем автозапуск.
sudo systemctl daemon-reload
sudo systemctl start nginx
sudo systemctl enable nginx.service
Также для удобства создаем ссылку
sudo ln -s /opt/nginx/sbin/nginx /usr/sbin/nginx
Последнее редактирование модератором:
30 июл 2025 в 22:52