Bu rehberde, popüler proje yönetim aracı olan Redmine uygulaması için Ubuntu Server kurulum adımlarını detaylı bir şekilde ele alacağız. Özellikle Redmine kurulumu sırasında dikkat etmeniz gereken kritik noktaları ve sistem optimizasyonlarını bu dokümanda bulabilirsiniz.
Başlamadan Önce: Kurulum sürecine geçmeden öncelikle Ubuntu’nun resmi web sitesinden güncel ISO dosyasını indirmeniz gerekmektedir. Bununla birlikte, sunucu kaynaklarınızın Redmine’in ihtiyaç duyduğu kaynakları karşıladığından emin olmalısınız.
1. Temel Kurulum
İşletim sistemi kurulumu sırasında şu adımları izleyin:
- Disk Yapılandırması: LVM (Logical Volume Management) seçeneğini aktif edin. Çünkü bu, ileride disk yetmediğinde kolayca genişletme yapmanızı sağlar.

- SSH: “Install OpenSSH Server” seçeneğini mutlaka işaretleyin.

- Güncelleme: Kurulum biter bitmez sistemi güncelleyin:
“sudo apt update && sudo apt upgrade -y”

2. Uygulama Sunucusu (Redmine) Spesifik Ayarları
Bu sunucular işlemci (CPU) ve bellek (RAM) odaklı çalışacak. Bu yüzden kaynak yönetimi önemlidir.
A. Swap Alanı Oluşturma
Redmine gibi Ruby tabanlı uygulamalar, yoğun yük altında anlık bellek artışlarına ihtiyaç duyabilir. Bu nedenle, sistemin kararlılığını korumak adına bir Swap (takas alanı) oluşturulması tavsiye edilir.
İlk olarak, sunucunuzda 8 GB boyutunda bir takas dosyası ayırmak için şu komutu çalıştırın: sudo fallocate -l 8G /swapfile
Ardından, oluşturulan bu dosyanın güvenliğini sağlamak ve sadece sistem tarafından erişilmesini sağlamak amacıyla izinlerini kısıtlamalısınız: sudo chmod 600 /swapfile
Dosya hazırlandıktan sonra, sistemi bu alanın bir takas dosyası olduğuna belirlemek için alanı biçimlendirmeniz gerekmektedir: sudo mkswap /swapfile
Bir sonraki adımda, yapılandırdığınız bu alanı aktif hale getirerek sistem kullanımına sunun: sudo swapon /swapfile
Son olarak, sunucunuz yeniden başlatıldığında bu ayarların kaybolmaması için, ilgili yapılandırmayı sistem dosyasına kalıcı olarak eklemelisiniz: echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

B. Zaman Senkronizasyonu
Logların ve veri girişlerinin doğruluğuçok önemlidir. Bunun için saat dilimini ayarlayın:
“sudo timedatectl set-timezone Europe/Istanbul”

3. Veritabanı Sunucusu (MariaDB) Spesifik Ayarları
Bu sunucu disk (I/O) ve bellek (RAM) odaklıdır.
A. Disk İzinleri ve Veri Yolu
Sistem performansı açısından kritik bir diğer nokta ise disk yönetimidir. Şayet veritabanı işlemleri için sunucunuza ayrı bir disk veya bölüm (partition) eklediyseniz, MariaDB veri yolunu (datadir) doğrudan bu diske yönlendirmek performansı önemli ölçüde artıracaktır. Buna ek olarak, bu yöntem sayesinde veri büyümesi durumunda ana işletim sisteminin disk doluluğundan etkilenmesini de engellemiş olursunuz. Sonuç itibarıyla, yüksek trafikli bir Redmine kullanımı hedefliyorsanız, veri katmanını fiziksel olarak ayırmak en sağlıklı yaklaşım olacaktır.”
B. MariaDB Güvenlik Sıkılaştırma (Post-Install)
MariaDB kurulduktan sonra şu komutu çalıştırarak gereksiz yetkileri ve test tablolarını silin:
“sudo mysql_secure_installation”
- Root şifresi belirleyin.
- Anonymous kullanıcıları silin.
- Uzaktan root girişini kapatın (Zaten redmineuser kullanacağız).
C. Kernel Optimizasyonu (Limits)
Yüksek trafikli bir yapı için açık dosya sınırlarını artırın. Bunun için komut seti aşağıdaki gibidir.
“sudo nano /etc/security/limits.conf”

Dosyanın sonuna ekleyin:
“mysql soft nofile 65535
mysql hard nofile 65535”

4. Sunucular Arası Güvenlik (UFW Firewall)
Ayrı sunucu mimarisinde firewall en az izinle çalışmalıdır. Bunun için tablodaki komutlar ile gerekli izinleri yazın.
| Sunucu | Yapılacak İşlem | Komut |
| Uygulama | Sadece HTTP/S ve SSH aç | sudo ufw allow 80,443,22/tcp |
| Veritabanı | Sadece Uygulama IP’sine 3306 aç | sudo ufw allow from [Uygulama_IP] to any port 3306 |
| Veritabanı | SSH aç | sudo ufw allow 22/tcp |

5. Önerilen Kaynak Planlaması (Minimum)
| Bileşen | Uygulama Sunucusu | Veritabanı Sunucusu |
| CPU | 2 vCPU | 4 vCPU |
| RAM | 4 GB | 8 GB (Cache için önemlidir) |
| Disk | 40 GB (App + Log) | 60 GB+ (SSD önerilir – Veri boyutuyla orantılı) |
Bu kurulumları tamamladıktan sonra her iki sunucunun birbiriyle haberleştiğini ping [IP_Adresi] komutuyla test etmeyi unutmayın.

Ubuntu Server Kurulum Rehberi yazımızın sonuna geldik. Redmine için gerekli olan Uygulama (Application) ve veritabanı (Database) işletim sistemlerinin kurulumunu tamamladık. Bir sonraki adımda veritabanı ve uygulama kurulumlarını yapacağım. Umarım faydalı olur herkese sorunsuz günler dilerim.
