ERPNext Yığını Ubuntu 18.04 Üzerine Nasıl Kurulur?
ERPNext, modern işletmelerin tüm ihtiyaçlarını karşılamak üzere tasarlanmış, açık kaynak kodlu ve kapsamlı bir Kurumsal Kaynak Planlama (ERP) sistemidir. Finans, satış, satın alma, üretim, proje yönetimi, insan kaynakları, stok yönetimi ve müşteri ilişkileri yönetimi (CRM) gibi birçok iş fonksiyonunu tek bir platformda birleştirir. Kullanıcı dostu arayüzü, modüler yapısı ve güçlü özelleştirme yetenekleri sayesinde küçük ve orta ölçekli işletmelerden büyük kuruluşlara kadar geniş bir yelpazede tercih edilmektedir. Frappe Framework üzerine inşa edilmiş olup, Python ve JavaScript teknolojilerini kullanır.
Bu makale, ERPNext’in Ubuntu 18.04 işletim sistemi yüklü bir sunucu üzerine adım adım nasıl kurulacağını detaylı bir şekilde açıklamaktadır. Ubuntu 18.04, uzun süreli destek (LTS) sunan stabil bir dağıtım olduğu için üretim ortamları için güvenilir bir temel oluşturur. Kurulum süreci, gerekli tüm bağımlılıkların yüklenmesi, Frappe Bench CLI’nin yapılandırılması ve ERPNext uygulamasının devreye alınmasını içerecektir. Amacımız, makalenin sonunda tamamen işlevsel, üretim ortamına hazır bir ERPNext kurulumuna sahip olmanızı sağlamaktır.
Kurulum Öncesi Gereksinimler
ERPNext kurulumuna başlamadan önce, sunucunuzun belirli gereksinimleri karşıladığından emin olmanız önemlidir. Bu gereksinimler, sistemin sorunsuz çalışması ve gelecekteki performans ihtiyaçları için kritik öneme sahiptir.
Donanım Gereksinimleri
* İşlemci (CPU): Minimum 1-2 vCPU önerilir. Küçük bir işletme için 2 vCPU yeterli olabilirken, daha fazla kullanıcı ve işlem yoğunluğu için 4 vCPU veya daha fazlası tavsiye edilir.
* Bellek (RAM): Minimum 2 GB RAM gereklidir, ancak üretim ortamları ve orta ölçekli işletmeler için 4 GB veya daha fazla RAM, özellikle eş zamanlı kullanıcı sayısı arttıkça performans açısından büyük fark yaratacaktır.
* Depolama (Disk): Minimum 20 GB boş disk alanı önerilir. Veritabanı boyutu ve depolanacak dosya sayısı arttıkça bu alanın genişletilmesi gerekebilir. SSD tabanlı depolama, genel sistem performansını önemli ölçüde artıracaktır.
Yazılım Gereksinimleri
* İşletim Sistemi: Ubuntu 18.04 LTS (64-bit) kurulu bir sunucu. Bu makaledeki adımlar özellikle bu sürüm için optimize edilmiştir.
* Erişim: Sunucuya SSH üzerinden erişim ve sudo yetkilerine sahip bir kullanıcı hesabı. Tüm kurulum adımları bu yetkilerle gerçekleştirilecektir.
* Ağ Yapılandırması: Sunucunuzun internet erişimine sahip olması ve gerekli portların (HTTP için 80, HTTPS için 443, SSH için 22) dışarıdan erişime açık olması gerekmektedir.
Temel Kavramlar
ERPNext yığını, birden fazla yazılım bileşeninin bir araya gelmesiyle oluşur. Bu bileşenlerin her birinin belirli bir rolü vardır:
* Python 3: Frappe Framework’ün ve ERPNext’in ana programlama dilidir.
* Node.js ve npm: Frontend geliştirme araçları ve bazı arka plan süreçleri için kullanılır.
* MariaDB: ERPNext’in tüm verilerini depoladığı ilişkisel veritabanı yönetim sistemidir. MySQL ile uyumludur.
* Redis: Önbellekleme, oturum yönetimi ve arka plan görevleri için kullanılan bir bellek içi veri yapısı sunucusudur.
* Nginx: Bir ters proxy sunucusu ve web sunucusu olarak görev yapar, gelen HTTP isteklerini ERPNext uygulamasına yönlendirir.
* Supervisor: Arka plan görevlerini ve işçileri (workers) yöneten bir süreç denetleyicisidir, ERPNext’in üretim ortamında sürekli çalışmasını sağlar.
* Git: Kaynak kodu yönetimi için kullanılır ve Frappe Bench’in uygulamaları çekmesi için gereklidir.
* Frappe Bench CLI: Frappe Framework ve ERPNext uygulamalarını yönetmek için kullanılan komut satırı aracıdır. Site oluşturma, uygulama yükleme, yedekleme ve güncelleme gibi işlemleri kolaylaştırır.
Adım Adım Kurulum Süreci
ERPNext’i Ubuntu 18.04 üzerine kurmak için aşağıdaki adımları sırasıyla takip edin.
1. Sunucu Hazırlığı ve Temel Bağımlılıkların Kurulumu
İlk olarak, sunucunuzun güncel olduğundan ve gerekli temel paketlere sahip olduğundan emin olun.
# Sistem paketlerini güncelleyin
sudo apt update && sudo apt upgrade -y
Gerekli build araçlarını ve yazılım özelliklerini ekleyin
build-essential: Yazılım derlemek için gerekli temel paketleri içerir.
software-properties-common: Depo eklemek için kullanılan araçları sağlar.
sudo apt install -y build-essential software-properties-common
Diğer temel araçları yükleyin
git: Kaynak kod yönetimi için.
curl, wget: Dosya indirme ve web istekleri için.
htop: Sistem kaynaklarını izlemek için.
screen: SSH oturumu kopsa bile çalışan süreçleri devam ettirmek için.
sudo apt install -y git curl wget htop screen
2. Python 3 ve Pip Kurulumu
Ubuntu 18.04, Python 3.6 ile gelir, ancak ERPNext için gerekli olan bazı geliştirme kütüphaneleri ve pip paket yöneticisi ayrıca yüklenmelidir.
# Python 3 geliştirme başlıklarını ve pip'i yükleyin
python3-dev: Python C API'si için gerekli başlık dosyalarını ve statik kütüphaneleri içerir.
python3-pip: Python 3 için paket yöneticisi.
python3-setuptools: Python paketlerinin kurulumunu kolaylaştıran bir kütüphane.
sudo apt install -y python3-dev python3-pip python3-setuptools
pip'i en son sürüme güncelleyin
sudo pip3 install --upgrade pip
3. Node.js ve npm Kurulumu
ERPNext’in bazı frontend bileşenleri ve build süreçleri Node.js’e bağımlıdır. Ubuntu 18.04’ün varsayılan depoları genellikle eski Node.js sürümlerini içerdiğinden, Nodesource deposunu kullanarak daha güncel ve uyumlu bir sürüm yüklemek en iyi yaklaşımdır. ERPNext genellikle Node.js LTS sürümlerini destekler (örneğin 12.x, 14.x veya 16.x). Bu örnekte Node.js 12.x sürümünü kullanacağız, ancak Frappe belgelerinden güncel uyumlu sürümü kontrol etmek faydalıdır.
# Nodesource deposunu ekleyin ve Node.js 12.x sürümünü yükleyin
curl -sL ... | sudo -E bash -: Nodesource kurulum betiğini çalıştırır.
sudo apt install -y nodejs: Node.js ve npm'i yükler.
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt install -y nodejs
Node.js ve npm sürümlerini kontrol edin
node -v
npm -v
4. MariaDB Kurulumu ve Yapılandırması
MariaDB, ERPNext’in verilerini depoladığı ana veritabanıdır. Kurulumdan sonra güvenlik ayarlarını yapmalı ve ERPNext için özel optimizasyonlar uygulamalısınız.
# MariaDB sunucusu ve istemcisini yükleyin
sudo apt install -y mariadb-server mariadb-client
MariaDB kurulumunu güvenli hale getirin
Bu komut, root şifresi belirlemenizi, anonim kullanıcıları kaldırmanızı,
uzaktan root erişimini kapatmanızı ve test veritabanını kaldırmanızı isteyecektir.
sudo mysql_secure_installation
MariaDB’yi ERPNext için optimize etmek üzere bir yapılandırma dosyası oluşturmanız gerekmektedir. Bu ayarlar, veritabanının karakter setini, depolama motorunu ve bağlantı limitlerini ERPNext’in ihtiyaçlarına göre düzenler.
# MariaDB yapılandırma dosyasını oluşturun veya düzenleyin
Bu dosya, /etc/mysql/conf.d/ dizini altında olmalıdır.
Örneğin, erpnext.cnf adında bir dosya oluşturabiliriz.
sudo nano /etc/mysql/conf.d/erpnext.cnf
Açılan dosyaya aşağıdaki içeriği ekleyin:
[mysqld]
Karakter seti ve sıralama düzeni, çok dilli destek için önemlidir.
charset = utf8mb4
collation_server = utf8mb4_unicode_ci
Maksimum bağlantı sayısı, eş zamanlı kullanıcı sayısına göre ayarlanmalıdır.
max_connections = 400
InnoDB depolama motoru ayarları.
Barracuda: Gelişmiş sıkıştırma ve büyük satır formatları için.
innodb_large_prefix: İndekslerde daha uzun önekleri destekler.
innodb_file_per_table: Her tablo için ayrı .ibd dosyası oluşturur, daha iyi performans ve yönetim.
innodb_file_format = Barracuda
innodb_large_prefix = 1
innodb_file_per_table = 1
SQL modu, bazı katı kuralları etkinleştirerek veri tutarlılığını artırır.
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Dosyayı kaydedip kapatın (Ctrl+X, Y, Enter). Ardından MariaDB servisini yeniden başlatın:
sudo systemctl restart mariadb
sudo systemctl enable mariadb # Servisin sistem başlangıcında otomatik başlamasını sağlayın
5. Redis Kurulumu
Redis, ERPNext’te önbellekleme, oturum yönetimi ve arka plan görevleri için kullanılır.
# Redis sunucusunu yükleyin
sudo apt install -y redis-server
Redis servisini etkinleştirin ve durumunu kontrol edin
sudo systemctl enable redis-server
sudo systemctl status redis-server
6. Nginx Kurulumu
Nginx, ERPNext uygulamanıza gelen web isteklerini yöneten ters proxy ve web sunucusudur.
# Nginx'i yükleyin
sudo apt install -y nginx
Nginx servisini etkinleştirin ve durumunu kontrol edin
sudo systemctl enable nginx
sudo systemctl status nginx
7. Supervisor Kurulumu
Supervisor, ERPNext’in arka plan işlerini (örneğin, zamanlanmış görevler, e-posta işleyicileri) sürekli olarak çalıştıran bir süreç denetleyicisidir.
# Supervisor'ı yükleyin
sudo apt install -y supervisor
Supervisor servisini etkinleştirin ve durumunu kontrol edin
sudo systemctl enable supervisor
sudo systemctl status supervisor
8. Frappe Bench CLI Kurulumu
Frappe Bench, ERPNext ekosistemini yönetmek için kullanılan bir komut satırı aracıdır. Güvenlik ve izolasyon için ERPNext’i çalıştırmak üzere özel bir sistem kullanıcısı oluşturmak en iyi uygulamadır.
# Yeni bir sistem kullanıcısı oluşturun (örneğin 'frappe')
--system: Kullanıcının sistem kullanıcısı olduğunu belirtir (normal oturum açma yeteneği yok).
--group: Kullanıcıyla aynı adı taşıyan bir grup oluşturur.
sudo adduser --system --group frappe
Frappe kullanıcısının ev dizini oluşturulmamış olabilir, manuel oluşturun.
sudo mkdir /home/frappe
sudo chown frappe:frappe /home/frappe
Frappe kullanıcısına geçiş yapın
su - frappe
Frappe Bench CLI'yi yükleyin
pip3: Python 3'ün paket yöneticisi.
pip3 install frappe-bench
Bench sürümünü kontrol ederek kurulumu doğrulayın
bench --version
Önemli Not: Bundan sonraki tüm bench komutlarını frappe kullanıcısı olarak çalıştırmanız gerekmektedir. Eğer sudo yetkileri gerekiyorsa, sudo -H -u frappe şeklinde kullanabilirsiniz, ancak bench setup production gibi komutlar için direkt sudo bench setup production frappe kullanmak daha yaygındır.
9. Frappe Bench ve ERPNext Kurulumu
Şimdi Frappe Bench ortamını başlatacak ve ERPNext uygulamasını kuracağız.
# Bench dizinini başlatın
--python python3: Python 3'ü varsayılan olarak kullanmasını sağlar.
frappe-bench: Oluşturulacak dizinin adı.
bench init frappe-bench --python python3
Oluşturulan bench dizinine gidin
cd frappe-bench
Yeni bir ERPNext sitesi oluşturun
site.example.com: Kendi alan adınız veya sunucu IP adresiniz olmalıdır.
Bu adımda MariaDB root şifresi ve ERPNext site admin şifresi istenecektir.
bench new-site site.example.com
Eğer domain kullanmıyorsanız, IP adresinizi veya localhost'u kullanabilirsiniz:
bench new-site 192.168.1.100
ERPNext uygulamasını indirin
bench get-app erpnext
İndirilen ERPNext uygulamasını oluşturulan siteye kurun
bench --site site.example.com install-app erpnext
10. Üretim Ortamı Yapılandırması
ERPNext’i üretim ortamında çalıştırmak için Nginx ve Supervisor’ı Frappe Bench ile yapılandırmanız gerekir. Bu adım, Nginx için bir sanal ana bilgisayar yapılandırması ve Supervisor için ERPNext işçilerini yönetecek süreç tanımları oluşturur.
# Nginx ve Supervisor'ı üretim modunda yapılandırın
frappe: bench'i çalıştıran kullanıcı adıdır.
Bu komut, /etc/nginx/sites-enabled/ ve /etc/supervisor/conf.d/ dizinlerine
gerekli yapılandırma dosyalarını oluşturur.
sudo bench setup production frappe
Nginx servisini yeniden yükleyerek yeni yapılandırmayı etkinleştirin
sudo systemctl reload nginx
Supervisor'ı yeniden yükleyerek yeni yapılandırmayı etkinleştirin
sudo supervisorctl reload
11. Güvenlik Duvarı (UFW) Yapılandırması
Sunucunuzun güvenliğini sağlamak için Ubuntu’nun varsayılan güvenlik duvarı olan UFW’yi yapılandırmanız önemlidir.
# SSH erişimine izin verin
sudo ufw allow OpenSSH
HTTP (Port 80) erişimine izin verin
sudo ufw allow 'Nginx HTTP'
HTTPS (Port 443) erişimine izin verin (SSL kurulumundan sonra gerekli olacak)
sudo ufw allow 'Nginx HTTPS'
Güvenlik duvarını etkinleştirin
sudo ufw enable
Güvenlik duvarı durumunu kontrol edin
sudo ufw status
12. SSL/HTTPS Kurulumu (Şiddetle Tavsiye Edilir)
Üretim ortamında ERPNext’i HTTPS üzerinden çalıştırmak, veri güvenliği için kritik öneme sahiptir. Let’s Encrypt, ücretsiz SSL/TLS sertifikaları sağlar ve Frappe Bench bu sertifikaları kolayca entegre edebilir.
# Bench ile Let's Encrypt sertifikasını kurun
site.example.com: Kendi alan adınız olmalıdır.
Bu komut Certbot'u kurar, sertifika alır ve Nginx yapılandırmasını otomatik olarak günceller.
bench setup lets-encrypt site.example.com
Bu komut, sertifika alma ve Nginx’i HTTPS’e yönlendirme işlemini otomatik olarak tamamlayacaktır.
13. ERPNext’e Erişim
Tüm kurulum adımları başarıyla tamamlandıktan sonra, bir web tarayıcısı açın ve ERPNext sitenizin alan adını (örneğin, https://site.example.com) veya sunucu IP adresini girerek erişim sağlayın. İlk erişimde, ERPNext’in ilk kurulum sihirbazı sizi karşılayacaktır. Bu sihirbazda dil, ülke, şirket adı gibi temel bilgileri girerek ERPNext’i kullanmaya başlayabilirsiniz.
Post-Kurulum ve Bakım
ERPNext’in kurulumundan sonra, sistemin sağlıklı ve güvenli bir şekilde çalışmaya devam etmesi için bazı önemli bakım ve yönetim görevleri bulunmaktadır.
Yedekleme Stratejileri
Veri kaybını önlemek için düzenli yedeklemeler kritik öneme sahiptir. ERPNext, hem veritabanını hem de dosyaları yedeklemek için yerleşik araçlar sunar.
* Manuel Yedekleme: frappe kullanıcısı olarak bench dizininde iken aşağıdaki komutu çalıştırabilirsiniz:
cd ~/frappe-bench
bench --site site.example.com backup
Bu komut, ~/frappe-bench/sites/site.example.com/private/backups dizinine bir veritabanı yedeği (.sql.gz) ve bir dosya yedeği (.tar) oluşturacaktır.
* Otomatik Yedekleme (Cron Job): Bu yedekleme komutunu günlük veya belirli aralıklarla çalışacak bir cron işi olarak ayarlayabilirsiniz.
crontab -e
Açılan dosyaya aşağıdaki satırı ekleyerek her gece 02:00’de yedekleme yapılmasını sağlayabilirsiniz:
0 2 * cd /home/frappe/frappe-bench && /usr/bin/bench --site site.example.com backup --compress --with-files
Yedekleri güvenli bir yere (örneğin, bulut depolama veya harici bir sunucuya) düzenli olarak aktarmayı unutmayın.
Güncellemeler
ERPNext ve Frappe Framework, düzenli olarak yeni özellikler, hata düzeltmeleri ve güvenlik yamaları yayınlar. Sisteminizin güncel kalması önemlidir.
# frappe kullanıcısı olarak bench dizinine gidin
su - frappe
cd ~/frappe-bench
Tüm uygulamaları ve framework'ü güncelleyin
bench update
bench update komutu, hem Frappe Framework’ü hem de kurulu tüm ERPNext uygulamalarını günceller. Güncelleme öncesinde her zaman yedekleme yapılması şiddetle tavsiye edilir.
Performans Optimizasyonu
Sisteminizdeki kullanıcı sayısı ve işlem yoğunluğu arttıkça performans izlemesi ve optimizasyonu önemli hale gelir.
* Sistem Kaynakları: htop, free -h, df -h gibi komutlarla CPU, RAM ve disk kullanımını düzenli olarak kontrol edin.
* MariaDB Optimizasyonu: my.cnf dosyasındaki innodb_buffer_pool_size gibi ayarları sunucunuzun RAM miktarına göre optimize edebilirsiniz.
* Redis İzleme: redis-cli info komutuyla Redis’in bellek kullanımını ve bağlantı durumunu kontrol edebilirsiniz.
* Bench Ayarları: bench config komutuyla bench ayarlarını (örneğin, worker sayısı) yönetebilirsiniz.
Sorun Giderme (Troubleshooting)
Kurulum veya çalışma sırasında karşılaşabileceğiniz bazı yaygın sorunlar ve çözümleri:
* Servislerin Çalışmaması: MariaDB, Nginx, Redis veya Supervisor servislerinin durumunu kontrol edin:
sudo systemctl status mariadb nginx redis-server supervisor
Eğer bir servis durmuşsa, sudo systemctl start ile başlatmayı deneyin.
* Web Arayüzüne Erişilemiyor:
* Nginx’in çalışıp çalışmadığını kontrol edin.
* Güvenlik duvarının (UFW) 80 ve 443 portlarına izin verdiğinden emin olun.
* bench setup production frappe komutunun başarıyla çalıştığından ve Nginx yapılandırmasının doğru olduğundan emin olun.
* ~/frappe-bench/logs/ dizinindeki log dosyalarını kontrol edin.
* Bench Komutları Çalışmıyor: frappe kullanıcısı olarak çalıştığınızdan emin olun. Eğer sudo yetkisi gerekiyorsa, sudo -H -u frappe bench veya sudo bench kullanın.
* Veritabanı Bağlantı Hataları: MariaDB servisinin çalıştığından ve erpnext.cnf dosyasındaki ayarların doğru olduğundan emin olun. MariaDB root şifresinin doğru girildiğini kontrol edin.
* Yetki Hataları: Dosya ve dizin izinlerini kontrol edin. frappe kullanıcısının ~/frappe-bench dizininde tam yetkiye sahip olması gerekir.
Sonuç
Bu makalede, ERPNext yığınının Ubuntu 18.04 üzerine nasıl kurulacağını ayrıntılı bir şekilde ele aldık. Temel sistem hazırlığından, gerekli bağımlılıkların kurulumuna, Frappe Bench CLI’nin yapılandırılmasına ve ERPNext uygulamasının devreye alınmasına kadar tüm adımları tamamladık. Ayrıca, üretim ortamı için kritik olan Nginx ve Supervisor yapılandırmalarını, güvenlik duvarı ayarlarını ve SSL sertifikası kurulumunu da detaylandırdık.
Artık tamamen işlevsel, güvenli ve üretim ortamına hazır bir ERPNext kurulumuna sahipsiniz. ERPNext’in açık kaynak kodlu doğası ve Frappe Framework’ün esnekliği sayesinde, işletmenizin özel ihtiyaçlarına göre sistemi özelleştirebilir ve genişletebilirsiniz. Düzenli yedekleme, güncelleme ve performans izleme pratikleriyle sisteminizin uzun ömürlü ve verimli çalışmasını sağlayabilirsiniz. ERPNext, işletmenizin dijital dönüşüm yolculuğunda size güçlü bir destek sunacaktır.