1. Giriş ve Ön Hazırlık
Redmine performansını artırmak amacıyla arka plan işlerini (e-posta, raporlama vb.) yönetmek için Sidekiq kullanılmaktadır. Öncelikle, işlemlerin yapılacağı uygulama dizinine geçiş yapıyoruz.
- Uygulama Dizini: /var/www/redmine
- Sistem: Ubuntu Server / Redmine 5.1.2.stable

2. Bağımlılıkların (Gem) Kurulması
Sidekiq kütüphanesini sisteme dahil etmek için Gemfile.local dosyası kullanılmalıdır. Ardından, bağımlılıklar Bundler ile yüklemelisiniz.
cd /var/www/redmine
echo 'gem "sidekiq"' | sudo tee -a Gemfile.local
sudo bundle install

Not: Kurulum sırasında karşılaşılan “Don’t run Bundler as root” uyarısı, sistem güvenliği ve dosya izinlerinin korunması adına yapılan önemli bir hatırlatmadır. Öncelikle, kütüphanelerin yanlış kullanıcı yetkileriyle yüklenmesi, uygulamanın çalışma anında beklenmedik hatalar vermesine yol açabilir. Bu kapsamda, kurulum tamamlandıktan sonra dosya sahipliği ve izin kontrollerini titizlikle yapmak, sistem stabilitesini garanti altına alacaktır. Böylece, yetki kaynaklı erişim engelleri aşılmış ve Sidekiq servislerinin Redmine ile uyumlu bir şekilde çalışması için gerekli zemin hazırlanmış olur.
3. Redmine Queue Adapter Yapılandırması
Redmine’in varsayılan işleyici yerine Sidekiq’i tanıması için yapılandırma dosyasında düzenleme yapılmalıdır. Buna ek olarak, YAML hiyerarşisine dikkat edilmelidir.
Dosya: config/configuration.yml Eklenecek Satırlar:
production:
active_job:
queue_adapter: sidekiq

Dikkat Etmen Gereken YAML Yapısı
Dosyayı sudo nano /var/www/redmine/config/configuration.yml ile açtığında şu hiyerarşiyi takip etmelisin (Boşluklara çok dikkat et):
Dikkat: active_job satırı production kelimesinden 2 boşluk, queue_adapter satırı ise active_job kelimesinden 2 boşluk içeride olmalıdır.
4. Sidekiq Systemd Servis Yapılandırması
Sidekiq’in arka planda sürekli çalışması için bir sistem servisi oluşturmalısınız. Böylece, sunucu yeniden başlasa dahi veri geçiş trafiği kesintiye uğramayacaktır.
Servis Dosyası Oluşturma: sudo nano /etc/systemd/system/redmine_sidekiq.service
[Unit]
Description=Sidekiq for Redmine
After=syslog.target network.target redis-server.service
[Service]
Type=simple
WorkingDirectory=/var/www/redmine
ExecStart=/usr/local/bin/bundle exec sidekiq -e production
User=www-data
Group=www-data
Restart=always
[Install]
WantedBy=multi-user.target

5. Servis Yönetimi ve Başlatma
Sonuç olarak, servis dosyası kaydedildikten sonra aşağıdaki komutlarla sistem aktif hale getirmelisiniz.
sudo systemctl daemon-reload
sudo systemctl enable redmine_sidekiq
sudo systemctl start redmine_sidekiq
sudo systemctl status redmine_sidekiq

6. Adım: routes.rb Yapılandırması ve Sidekiq Panel Erişimi
Redmine altyapısında Sidekiq Dashboard’un aktif edilebilmesi için uygulamanın rota (routing) mekanizmasına Sidekiq’in dahil edilmesi gerekir. Bu aşama, yapılandırmanın en kritik noktasıdır; çünkü yanlış bir sözdizimi (syntax) tüm uygulamanın erişilemez hale gelmesine neden olabilir.
Rotaların Tanımlanması
Yapılandırma için /var/www/redmine/config/routes.rb dosyasını nano ile açın:
sudo nano /var/www/redmine/config/routes.rb

Dosyanın en altına inerek, ana uygulama bloğunun kapanışından hemen önce aşağıdaki satırı ekleyin.
mount Sidekiq::Web => '/sidekiq'

Redmine Sidekiq Kurulum Rehberi: Sonuç
Redmine Sidekiq Kurulum Rehberi yazımızın sonuna geldik. Bu teknik yolculukta, Redmine altyapısını Sidekiq ve Redis ikilisiyle modernize ederek arka plan işlerini nasıl otomatize edeceğimizi adım adım inceledik.
Öncelikle, sistemin kalbi olan Redis kurulumuyla başladığımız bu süreçte, Sidekiq eklentisinin entegrasyonuyla yapımızı güçlendirdik. Ardından, karşılaşılan yapılandırma ve sözdizimi hatalarını log analizleriyle aşarak kararlı bir çalışma ortamına geçiş sağladık. Böylece, Redmine üzerinde e-posta gönderimi ve zamanlanmış görevler gibi ağır iş yüklerini ana uygulamadan ayırarak sistem performansını maksimum seviyeye çıkardık.
Sonuç olarak, techknowlojist.com okurları için hazırladığımız bu rehber, sadece bir kurulum dokümanı değil, aynı zamanda karşılaşılan teknik engelleri aşma noktasında bir tecrübe paylaşımı niteliği taşımaktadır.
