BESTNET क्लाउड पर Redmine सेटअप करें

BESTNET क्लाउड पर Redmine सेटअप करें

4 min read

यह लेख BESTNET-CLOUD पर प्रोविज़न की गई Ubuntu 24.04 LTS वर्चुअल मशीन पर Redmine बनाने के स्टेप्स बताता है,
उस बिंदु तक जहाँ आप पहली बार ब्राउज़र से लॉगिन कर सकते हैं।

LDAP/LDAPS इंटीग्रेशन, external SMTP और Zabbix इंटीग्रेशन आगे आने वाले अलग लेखों में कवर किए जाएँगे।
यह गाइड एक स्थिर Redmine सर्वर पूरा करने पर केंद्रित है जो लॉगिन स्क्रीन भरोसेमंद ढंग से दिखा सके।

इस गाइड का लक्ष्य #

एंडपॉइंट #

Redmine लॉगिन स्क्रीन HTTPS पर दिखती है और आप पहली बार एडमिनिस्ट्रेटर के रूप में लॉगिन कर पाते हैं।

इस बार का स्कोप #

OS का शुरुआती सेटअप, Redmine डिप्लॉयमेंट, DB इनिशियलाइज़ेशन, Apache + Passenger और self-signed SSL।

अगले कदम #

AD / LDAPS, external SMTP, Zabbix agent डिप्लॉयमेंट और मॉनिटरिंग इंटीग्रेशन अलग से किए जाएँगे।

आर्किटेक्चर ओवरव्यू #

OS Ubuntu Server 24.04 LTS
Web/AP Apache + Passenger
DB PostgreSQL
Redmine 6.1.1
Ruby Ubuntu 24.04 में शामिल Ruby 3.2 सीरीज़
पब्लिकेशन का तरीका 80 → 443 रीडायरेक्ट, 443 self-signed सर्टिफिकेट के साथ listen करता है
डिप्लॉयमेंट लोकेशन /opt/redmine/releases/redmine-6.1.1
नोट:
वेरिफिकेशन की आसानी के लिए यह लेख self-signed सर्टिफिकेट इस्तेमाल करता है।
प्रोडक्शन एनवायरनमेंट के लिए हम कमर्शियल या internal CA सर्टिफिकेट से बदलने की सिफारिश करते हैं।

Step 1. OS अपडेट और आवश्यक पैकेजों का इंस्टॉलेशन #

सबसे पहले, OS को लेटेस्ट वर्शन में अपडेट करें और Redmine बिल्ड तथा PostgreSQL कनेक्शन के लिए जरूरी पैकेज एक साथ इंस्टॉल करें।
libyaml-dev को शामिल करना न भूलें।

sudo apt update
sudo apt full-upgrade -y

sudo apt install -y \
  build-essential \
  ruby-full ruby-dev bundler \
  zlib1g-dev libpq-dev libyaml-dev pkg-config \
  postgresql postgresql-contrib \
  apache2 apache2-dev \
  imagemagick ghostscript \
  curl ca-certificates gnupg dirmngr apt-transport-https \
  ldap-utils tar

Step 2. Passenger इंस्टॉलेशन #

ऑफिशियल Passenger रिपॉज़िटरी जोड़ें और उसे Apache मॉड्यूल के रूप में इंस्टॉल करें।

curl https://oss-binaries.phusionpassenger.com/auto-software-signing-gpg-key-2025.txt \
  | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/phusion.gpg >/dev/null

echo "deb https://oss-binaries.phusionpassenger.com/apt/passenger noble main" \
  | sudo tee /etc/apt/sources.list.d/passenger.list

sudo apt update
sudo apt install -y passenger libapache2-mod-passenger

sudo a2enmod passenger
sudo a2enconf servername
echo "ServerName rdm.bestnetllc.co.jp" | sudo tee /etc/apache2/conf-available/servername.conf

sudo apache2ctl configtest
sudo systemctl reload apache2

निम्न से ऑपरेशन वेरिफाई करें:

sudo /usr/bin/passenger-config validate-install
sudo /usr/sbin/passenger-memory-stats

Step 3. Redmine यूज़र और डिप्लॉयमेंट डायरेक्टरी की तैयारी #

अपग्रेड आसान बनाने के लिए releases डायरेक्टरी वाले तरीके से डिप्लॉय करें।

sudo adduser --system --group --home /opt/redmine --shell /bin/bash redmine

sudo mkdir -p /opt/redmine/releases
sudo chown -R redmine:redmine /opt/redmine

Step 4. PostgreSQL सेटअप #

Redmine के लिए एक डेडिकेटेड role और database बनाएँ।

sudo -u postgres psql
CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD '<DB_PASSWORD>' NOINHERIT VALID UNTIL 'infinity';
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
\q

Step 5. Redmine सोर्स कोड डिप्लॉयमेंट #

यह उदाहरण वर्शन 6.1.1 इस्तेमाल करता है। मेंटेनेंस रिलीज़ के हिसाब से जरूरत अनुसार बदलें।

cd /tmp
curl -L -o redmine-6.1.1.tar.gz https://www.redmine.org/releases/redmine-6.1.1.tar.gz

sudo -u redmine tar xzf redmine-6.1.1.tar.gz -C /opt/redmine/releases
sudo ln -sfn /opt/redmine/releases/redmine-6.1.1 /opt/redmine/current

Step 6. database.yml कॉन्फ़िगरेशन #

यह एक आम pitfall है। केवल PostgreSQL डेफिनिशन रखें और MySQL सैंपल हटा दें।

cd /opt/redmine/releases/redmine-6.1.1

sudo tee config/database.yml > /dev/null <<'EOF'
production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: "<DB_PASSWORD>"
  encoding: utf8
  schema_search_path: public
EOF

एन्क्रिप्शन keys के लिए configuration.yml भी तैयार करें।

sudo -u redmine cp config/configuration.yml.example config/configuration.yml
default:
  database_cipher_key: "<LONG_RANDOM_STRING>"

production:

Step 7. bundle install और डेटाबेस इनिशियलाइज़ेशन #

gem इंस्टॉलेशन, secret जनरेशन, डेटाबेस माइग्रेशन और शुरुआती डेटा लोडिंग एक्सीक्यूट करें।

sudo chown -R redmine:redmine /opt/redmine

sudo -u redmine -H bash -lc '
  cd /opt/redmine/releases/redmine-6.1.1
  rm -rf vendor/bundle
  bundle config set --local path vendor/bundle
  bundle config set --local without "development test"
  bundle install
  bundle exec rake generate_secret_token
  RAILS_ENV=production bundle exec rake db:migrate
  RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data
'
नोट:
अगर yaml.h not found दिखे, तो libyaml-dev मौजूद नहीं है।
अगर bundle टार्गेट्स में mysql2 दिखे, तो संभवतः MySQL कॉन्फ़िगरेशन
config/database.yml में बचा रह गया है।

Step 8. Self-Signed सर्टिफिकेट बनाना #

यह उदाहरण CA:FALSE और SAN के साथ self-signed सर्टिफिकेट बनाता है।
पुराने तरीकों की तुलना में यह तरीका ब्राउज़र और Apache की ज्यादा वार्निंग से बचाता है।

sudo mkdir -p /etc/apache2/ssl

sudo tee /tmp/rdm-openssl.cnf > /dev/null <<'EOF'
[req]
default_bits = 4096
prompt = no
default_md = sha256
x509_extensions = v3_req
distinguished_name = dn

[dn]
C  = JP
ST = Tokyo
L  = Tokyo
O  = BestNetLLC
OU = IT
CN = rdm.bestnetllc.co.jp

[v3_req]
basicConstraints = critical,CA:FALSE
keyUsage = critical,digitalSignature,keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1 = rdm.bestnetllc.co.jp
EOF

sudo openssl req -x509 -nodes -newkey rsa:4096 -sha256 -days 3650 \
  -keyout /etc/apache2/ssl/rdm.bestnetllc.co.jp.key \
  -out /etc/apache2/ssl/rdm.bestnetllc.co.jp.crt \
  -config /tmp/rdm-openssl.cnf

sudo chmod 600 /etc/apache2/ssl/rdm.bestnetllc.co.jp.key
sudo chmod 644 /etc/apache2/ssl/rdm.bestnetllc.co.jp.crt

Step 9. Apache VirtualHost कॉन्फ़िगरेशन #

पोर्ट 80, 443 पर रीडायरेक्ट करता है, और पोर्ट 443 Redmine की public डायरेक्टरी को DocumentRoot के रूप में सेट करता है।
वास्तविक path सीधे इस्तेमाल करने से symlink से होने वाले 403 एरर से बचाव होता है।

sudo a2enmod ssl rewrite headers

sudo tee /etc/apache2/sites-available/redmine.conf > /dev/null <<'EOF'
<VirtualHost *:80>
    ServerName rdm.bestnetllc.co.jp
    RewriteEngine On
    RewriteRule ^/(.*)$ https://rdm.bestnetllc.co.jp/$1 [R=301,L]
</VirtualHost>

<VirtualHost *:443>
    ServerName rdm.bestnetllc.co.jp
    DocumentRoot /opt/redmine/releases/redmine-6.1.1/public

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/rdm.bestnetllc.co.jp.crt
    SSLCertificateKeyFile /etc/apache2/ssl/rdm.bestnetllc.co.jp.key

    PassengerRuby /								
Updated on 2026 वर्ष 6 माह 10 दिन

What are your feelings

  • Happy
  • Normal
  • Sad