Takip et

Node.js Uygulamasını Rocky Linux 9 Üzerinde Üretim Ortamına Kurulumu

Node.js Uygulamasını Rocky Linux 9 Üzerinde Üretim Ortamına Kurulumu Giriş Modern web uygulamaları dünyasında Node.js, hızlı, ölçeklene

Node.js Uygulamasını Rocky Linux 9 Üzerinde Üretim Ortamına Kurulumu

Giriş

Modern web uygulamaları dünyasında Node.js, hızlı, ölçeklenebilir ve yüksek performanslı sunucu tarafı uygulamalar geliştirmek için popüler bir tercih haline gelmiştir. JavaScript’in sunucu tarafında çalışmasına olanak tanıyan bu çalışma zamanı ortamı, geliştiricilere uçtan uca tek bir dil ile uygulama geliştirme esnekliği sunar. Ancak bir Node.js uygulamasını geliştirme aşamasından çıkarıp gerçek dünya kullanıcılarına sunacak bir üretim ortamına taşımak, dikkatli planlama ve doğru yapılandırma gerektirir. Bu makalede, Node.js uygulamanızı Rocky Linux 9 işletim sistemi üzerinde güvenli, kararlı ve performanslı bir şekilde nasıl kuracağınızı, yapılandıracağınızı ve dağıtacağınızı adım adım ele alacağız. Rocky Linux 9, CentOS’un devamı niteliğinde olup, kurumsal düzeyde stabilite ve güvenlik sunan bir RHEL tabanlı dağıtımdır. Bu kombinasyon, üretim ortamları için güçlü ve güvenilir bir temel oluşturur.

Üretim ortamı kurulumu sadece kodunuzu sunucuya kopyalamaktan ibaret değildir. Uygulamanızın sürekli çalışmasını sağlamak, olası hatalara karşı dayanıklı hale getirmek, gelen trafiği etkin bir şekilde yönetmek, güvenliği sağlamak ve performansı optimize etmek gibi birçok kritik adımı içerir. Bu adımlar arasında Node..js çalışma zamanının doğru kurulumu, bir süreç yöneticisi (PM2) kullanarak uygulamanın kesintisiz çalışmasını sağlamak, bir ters proxy (Nginx) ile trafiği yönlendirmek ve yük dengelemesi yapmak, SSL/TLS sertifikaları ile iletişimi şifrelemek ve gerekli güvenlik önlemlerini almak yer almaktadır. Bu kapsamlı rehber, Node.js uygulamanızı Rocky Linux 9 üzerinde başarıyla yayına almanız için gereken tüm teknik detayları ve en iyi uygulamaları sunacaktır.

Ön Gereksinimler

Bu kurulum sürecine başlamadan önce aşağıdaki ön gereksinimlere sahip olmanız gerekmektedir:

* Rocky Linux 9 Kurulu Bir Sunucu: Tercihen yeni kurulmuş, temiz bir Rocky Linux 9 sunucusu. Bu bir sanal makine, VPS veya fiziksel bir sunucu olabilir.
* SSH Erişimi: Sunucuya SSH üzerinden erişim sağlayabilen bir istemci.
* Root veya Sudo Yetkilerine Sahip Kullanıcı: Sunucuda sistem düzeyinde değişiklikler yapabilmek için root kullanıcısı veya sudo yetkilerine sahip bir kullanıcı hesabı.
* Temel Linux Komut Bilgisi: Temel dosya sistemi navigasyonu, paket yönetimi ve metin düzenleyici (nano veya vim) kullanımı hakkında bilgi sahibi olmak.
* Bir Alan Adı (Domain Name): Uygulamanıza dışarıdan erişim sağlamak ve SSL/TLS sertifikası almak için bir alan adına ihtiyacınız olacaktır (örn. ornekuygulama.com). Bu alan adının DNS kayıtları, sunucunuzun IP adresini gösterecek şekilde yapılandırılmış olmalıdır.

Sunucu İlk Kurulumu ve Hazırlıklar

Uygulamanız için sağlam bir temel oluşturmak adına sunucunuzu ilk olarak doğru şekilde yapılandırmak önemlidir.

Sistem Güncellemesi

Kuruluma başlamadan önce sistem paketlerinin güncel olduğundan emin olun:

sudo dnf update -y
sudo dnf upgrade -y

Bu komutlar, mevcut tüm paketleri en son sürümlerine güncelleyerek potansiyel güvenlik açıklarını kapatır ve kararlılığı artırır.

Yeni Bir Sudo Kullanıcısı Oluşturma

Güvenlik amacıyla, root kullanıcısı yerine sudo yetkilerine sahip yeni bir kullanıcı oluşturmak ve günlük işlemleri bu kullanıcıyla yapmak en iyi uygulamadır.

sudo adduser uygulama_kullanicisi
sudo passwd uygulama_kullanicisi
sudo usermod -aG wheel uygulama_kullanicisi

uygulama_kullanicisi yerine kendi istediğiniz kullanıcı adını yazın. wheel grubu, Rocky Linux’ta sudo yetkilerine sahip kullanıcıları içerir. Bu adımdan sonra, uygulama_kullanicisi ile giriş yapabilir ve sudo komutunu kullanarak yönetici ayrıcalıklarına sahip olabilirsiniz.

su - uygulama_kullanicisi

Artık geri kalan adımları bu yeni kullanıcı ile devam edebilirsiniz.

SSH Güvenliği

Sunucunuzun güvenliğini artırmak için SSH ayarlarını gözden geçirmek önemlidir:

* Varsayılan SSH Portunu Değiştirme (İsteğe Bağlı ama Önerilir): SSH’ın varsayılan portu olan 22’yi başka bir porta değiştirmek, otomatik bot saldırılarını azaltabilir.

sudo nano /etc/ssh/sshd_config

Port 22 satırını bulun ve örneğin Port 2222 olarak değiştirin.
* Parola ile Oturum Açmayı Devre Dışı Bırakma (Anahtar Tabanlı Kimlik Doğrulama): Daha güvenli olan anahtar tabanlı kimlik doğrulamayı kullanmak, parolanın tahmin edilmesi riskini ortadan kaldırır. Eğer henüz yapmadıysanız, yerel makinenizde bir SSH anahtar çifti oluşturun (ssh-keygen) ve genel anahtarınızı (~/.ssh/id_rsa.pub) sunucudaki ~/.ssh/authorized_keys dosyasına kopyalayın.
sshd_config dosyasında aşağıdaki satırları kontrol edin/değiştirin:

PasswordAuthentication no
    PubkeyAuthentication yes

Değişiklikleri kaydettikten sonra SSH servisini yeniden başlatın:

sudo systemctl restart sshd

ÖNEMLİ: Portu değiştirdiyseniz veya parola ile oturum açmayı devre dışı bıraktıysanız, sunucuya yeni ayarlarla erişebildiğinizden emin olmadan mevcut SSH oturumunuzu kapatmayın.

Firewall Kurulumu ve Yapılandırması

Rocky Linux’ta varsayılan güvenlik duvarı firewalld‘dir. Sunucunuzu yetkisiz erişimlerden korumak için firewalld‘yi yapılandırmak çok önemlidir.

sudo systemctl enable --now firewalld
sudo systemctl status firewalld

SSH erişimi için portu açın (eğer port 22’yi değiştirdiyseniz, yeni port numarasını kullanın):

sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

Daha sonra Nginx ve diğer servisler için portları açacağız.

Node.js ve npm Kurulumu

Node.js’i kurmanın birden fazla yolu olsa da, üretim ortamlarında farklı Node.js versiyonları arasında kolayca geçiş yapabilmek ve bağımsız bir kurulum sağlamak için NVM (Node Version Manager) kullanmak en iyi yöntemdir.

NVM (Node Version Manager) Kurulumu

NVM’i kurmak için aşağıdaki komutu kullanın:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

Kurulum betiği, NVM’i kullanıcınızın ~/.nvm dizinine kuracak ve kabuk yapılandırma dosyanıza (örn. ~/.bashrc, ~/.zshrc) gerekli satırları ekleyecektir. Kurulumun tamamlanmasının ardından, kabuğunuzu yeniden yüklemeniz veya yeni bir terminal oturumu açmanız gerekir:

source ~/.bashrc # veya kullandığınız kabuk yapılandırma dosyası

NVM’in doğru kurulduğunu kontrol edin:

nvm --version

NVM ile Node.js Kurulumu

Şimdi NVM’i kullanarak Node.js’in en son LTS (Uzun Süreli Destek) sürümünü kuralım:

nvm install --lts
nvm use --lts
nvm alias default --lts

* nvm install --lts: En son LTS sürümünü indirir ve kurar.
* nvm use --lts: Mevcut kabuk oturumunuz için bu Node.js sürümünü kullanır.
* nvm alias default --lts: Yeni kabuk oturumları açtığınızda otomatik olarak bu LTS sürümünün kullanılmasını sağlar.

Kurulumu doğrulayın:

node -v
npm -v

Bu komutlar Node.js ve npm’in yüklü sürümlerini göstermelidir.

Uygulama Süreç Yöneticisi: PM2 Kurulumu

Node.js uygulamaları tek iş parçacıklı olduğundan, bir hata durumunda uygulamanın çökmesi tüm servisi durdurabilir. Ayrıca, birden fazla çekirdekten faydalanmak ve uygulamayı arka planda sürekli çalışır durumda tutmak için bir süreç yöneticisine ihtiyaç vardır. PM2 (Process Manager 2), bu görevler için en popüler ve güvenilir araçlardan biridir.

PM2 Nedir ve Neden Kullanılır?

PM2, Node.js uygulamalarınızı üretim ortamında yönetmek için kapsamlı bir süreç yöneticisidir. Sunduğu temel özellikler şunlardır:

* Uygulama Sürekliliği: Uygulamanız çöktüğünde otomatik olarak yeniden başlatır.
* Yük Dengeleme (Cluster Mode): Uygulamanızı sunucunun CPU çekirdekleri arasında dağıtarak performansını artırır.
* Log Yönetimi: Uygulama loglarını kolayca görüntüleme ve yönetme imkanı sunar.
* Sistem Başlangıcında Otomatik Başlatma: Sunucu yeniden başlatıldığında uygulamalarınızı otomatik olarak başlatır.
* Bellek İzleme: Uygulamalarınızın bellek kullanımını izler ve eşik değer aşıldığında yeniden başlatabilir.

PM2 Kurulumu

PM2’yi global olarak npm ile kurun:

npm install pm2 -g

Kurulumu doğrulayın:

pm2 --version

PM2 ile Uygulamanızı Başlatma ve Yönetme

Uygulamanızı PM2 ile başlatmak için (örneğin, app.js adlı bir ana dosyanız varsa):

pm2 start app.js --name "my-nodejs-app"

* --name "my-nodejs-app": Uygulamanıza kolayca tanınabilir bir isim verir.

Uygulamalarınızın durumunu görmek için:

pm2 list

Uygulamanızın loglarını görüntülemek için:

pm2 logs my-nodejs-app

Uygulamanızı yeniden başlatmak için:

pm2 restart my-nodejs-app

Uygulamanızı durdurmak için:

pm2 stop my-nodejs-app

Uygulamanızı PM2 listesinden kaldırmak için:

pm2 delete my-nodejs-app

PM2’yi Sistem Başlangıcında Otomatik Başlatma

Sunucunuz yeniden başlatıldığında PM2’nin uygulamalarınızı otomatik olarak başlatması için bir systemd servisi oluşturmanız gerekir:

pm2 startup systemd

Bu komut, sisteminiz için uygun bir başlangıç betiği oluşturacak ve size çalıştırmanız gereken bir komut verecektir (genellikle sudo env PATH=$PATH:/home/uygulama_kullanicisi/.nvm/versions/node/vXX.YY.Z/bin pm2 startup systemd -u uygulama_kullanicisi --hp /home/uygulama_kullanicisi). Bu komutu kopyalayıp çalıştırın.

Ardından, mevcut PM2 süreçlerinizi kaydedin, böylece sunucu yeniden başlatıldığında PM2 bunları geri yükleyebilir:

pm2 save

Veritabanı Kurulumu (İsteğe Bağlı)

Node.js uygulamanızın bir veritabanına ihtiyacı varsa, bu adımda onu kurmanız gerekir. Popüler seçenekler arasında MongoDB (NoSQL), PostgreSQL (İlişkisel) ve MySQL (İlişkisel) bulunur. Burada PostgreSQL için kısa bir örnek vereceğiz.

PostgreSQL Kurulumu

sudo dnf install postgresql-server postgresql-contrib -y

Veritabanı kümesini başlatın:

sudo postgresql-setup --initdb

PostgreSQL servisini etkinleştirin ve başlatın:

sudo systemctl enable --now postgresql
sudo systemctl status postgresql

postgres kullanıcısına geçerek veritabanı istemcisine erişebilirsiniz:

sudo -i -u postgres
psql

\q yazarak psql‘den çıkabilir, exit yazarak postgres kullanıcısından çıkabilirsiniz. Kendi uygulamanız için bir veritabanı ve kullanıcı oluşturmayı unutmayın.

Nginx Ters Proxy Olarak Kurulumu ve Yapılandırması

Node.js uygulamalarını doğrudan internete açmak yerine, Nginx gibi bir ters proxy kullanmak en iyi uygulamadır. Nginx, aşağıdaki avantajları sunar:

* Yük Dengeleme: Gelen trafiği birden fazla Node.js örneğine dağıtabilir.
* Statik Dosya Sunumu: Resimler, CSS, JavaScript gibi statik dosyaları Node.js uygulamanızdan daha verimli bir şekilde sunabilir.
* SSL/TLS Sonlandırma: SSL sertifikalarını yönetir ve şifreli trafiği Node.js uygulamanıza iletmeden önce şifresini çözebilir.
* Güvenlik: Doğrudan erişimi engelleyerek uygulamanızı potansiyel saldırılardan korur.
* HTTP/2 Desteği: Modern web standartlarını destekler.

Nginx Kurulumu

sudo dnf install nginx -y

Nginx servisini etkinleştirin ve başlatın:

sudo systemctl enable --now nginx
sudo systemctl status nginx

Firewall’da Nginx Portlarını Açma

HTTP (80) ve HTTPS (443) portlarını firewalld‘de açın:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Şimdi tarayıcınızdan sunucunuzun IP adresine giderek Nginx’in varsayılan karşılama sayfasını görmelisiniz.

Node.js Uygulaması için Nginx Yapılandırması

Nginx’i Node.js uygulamanıza gelen istekleri yönlendirecek şekilde yapılandırmanız gerekir. Bunun için yeni bir yapılandırma dosyası oluşturacağız:

sudo nano /etc/nginx/conf.d/your_domain.com.conf

your_domain.com.conf yerine kendi alan adınızı kullanın. Dosyanın içine aşağıdaki yapılandırmayı ekleyin. Bu örnekte Node.js uygulamanızın 3000 portunda çalıştığını varsayıyoruz.

server {
    listen 80;
    listen [::]:80;
    server_name your_domain.com www.your_domain.com; # Alan adınızı buraya yazın

    location / {
        proxy_pass http://localhost:3000; # Node.js uygulamanızın çalıştığı port
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # Statik dosyaları doğrudan Nginx ile sunmak için (isteğe bağlı)
    # location /static/ {
    #     alias /var/www/your_app/public/; # Statik dosyalarınızın yolu
    #     expires 30d;
    #     access_log off;
    #     log_not_found off;
    # }
}

Yapılandırma dosyasını kaydedin ve Nginx yapılandırmasını test edin:

sudo nginx -t

Eğer test başarılı olursa, Nginx servisini yeniden yükleyin:

sudo systemctl reload nginx

Bu yapılandırma, HTTP üzerinden gelen tüm istekleri Node.js uygulamanıza yönlendirecektir. SSL sertifikası kurduktan sonra bu dosyayı HTTPS’i de içerecek şekilde güncelleyeceğiz.

SSL/TLS Şifrelemesi (Let’s Encrypt ile Certbot)

Güvenli bir web sitesi için SSL/TLS şifrelemesi vazgeçilmezdir. Let’s Encrypt, ücretsiz SSL/TLS sertifikaları sağlayan bir sertifika yetkilisidir ve Certbot aracı ile kolayca kurulabilir.

Certbot Kurulumu

Rocky Linux 9’da Certbot’u Nginx eklentisi ile kurmak için aşağıdaki komutları kullanın:

sudo dnf install certbot python3-certbot-nginx -y

Sertifika Alma

Certbot’u Nginx eklentisi ile çalıştırarak sertifika alın. Certbot, Nginx yapılandırmanızı otomatik olarak algılayacak ve güncelleyecektir:

sudo certbot --nginx -d your_domain.com -d www.your_domain.com

your_domain.com ve www.your_domain.com yerine kendi alan adınızı yazın. Certbot sizden e-posta adresinizi isteyecek ve hizmet şartlarını kabul etmenizi isteyecektir. Ayrıca, HTTP trafiğini otomatik olarak HTTPS’e yönlendirip yönlendirmeyeceğinizi soracaktır. Genellikle “2: Redirect” seçeneğini seçmek iyi bir uygulamadır.

Başarılı bir kurulumdan sonra, Nginx yapılandırma dosyanız (/etc/nginx/conf.d/your_domain.com.conf) otomatik olarak güncellenecek ve SSL sertifikası bilgileri eklenecektir.

Otomatik Yenileme Testi

Let’s Encrypt sertifikaları 90 gün geçerlidir. Certbot, sertifikaları otomatik olarak yenilemek için bir cron işi veya systemd zamanlayıcısı kurar. Otomatik yenilemenin çalıştığını test edebilirsiniz:

sudo certbot renew --dry-run

Bu komut, yenileme sürecini simüle eder ve herhangi bir sorun olup olmadığını kontrol eder.

Node.js Uygulamasının Dağıtımı

Artık sunucunuz Node.js uygulamalarınızı çalıştırmak için hazır olduğuna göre, uygulamanızı dağıtabilirsiniz.

Uygulama Dosyalarını Sunucuya Aktarma

Uygulama dosyalarınızı sunucuya aktarmanın birkaç yolu vardır:

* Git Kullanarak: Eğer uygulamanız bir Git deposundaysa (örn. GitHub, GitLab, Bitbucket), doğrudan sunucudan klonlayabilirsiniz.

cd /var/www/ # Uygulamalarınızı bu dizine yerleştirmek iyi bir uygulamadır
    sudo mkdir your_app_name
    sudo chown -R uygulama_kullanicisi:uygulama_kullanicisi your_app_name
    cd your_app_name
    git clone https://github.com/your-username/your-repo.git . # . ile mevcut dizine klonlayın

Eğer Git kullanmıyorsanız, scp veya rsync gibi araçlarla dosyaları yerel makinenizden sunucuya kopyalayabilirsiniz.

# Yerel makinenizden:
    scp -r /path/to/your/local/app/* uygulama_kullanicisi@your_server_ip:/var/www/your_app_name/

Bağımlılıkları Yükleme

Uygulama dizininize gidin ve gerekli npm bağımlılıklarını yükleyin:

cd /var/www/your_app_name
npm install --production

--production bayrağı, yalnızca dependencies bölümünde listelenen paketleri kurar ve devDependencies paketlerini atlar, bu da üretim ortamında daha az yer kaplamasını ve daha hızlı kurulumu sağlar.

Ortam Değişkenlerini Yapılandırma

Uygulamanızın üretim ortamına özel yapılandırma değişkenlerine (örneğin, veritabanı bağlantı dizeleri, API anahtarları) ihtiyacı olabilir. Bunları yönetmek için genellikle .env dosyaları veya sistem ortam değişkenleri kullanılır.

.env dosyası kullanıyorsanız, your_app_name dizininizde bir .env dosyası oluşturun:

nano .env
PORT=3000
NODE_ENV=production
DATABASE_URL=postgres://user:password@host:port/database
API_KEY=your_api_key_here

ÖNEMLİ: .env dosyasını git deposuna eklemeyin. .gitignore dosyanıza .env eklediğinizden emin olun.

PM2 ile Uygulamayı Başlatma

Uygulamanızın ana giriş noktasını (örneğin index.js veya app.js) kullanarak PM2 ile başlatın:

pm2 start index.js --name "my-nodejs-app"

Eğer PM2’nin küme modunda (birden fazla CPU çekirdeğini kullanmak için) uygulamanızı başlatmasını istiyorsanız:

pm2 start index.js -i max --name "my-nodejs-app"

-i max argümanı, PM2’nin sunucunuzdaki mevcut CPU çekirdeği sayısı kadar uygulamanızın bir örneğini başlatmasını sağlar.

Uygulamanızın çalıştığından ve PM2 tarafından yönetildiğinden emin olun:

pm2 list
pm2 logs

Son olarak, PM2’nin bu yeni uygulamayı da sistem başlangıcında başlatması için yapılandırmayı kaydedin:

pm2 save

Güvenlik İpuçları ve En İyi Uygulamalar

Üretim ortamındaki uygulamanızın güvenliğini sağlamak sürekli bir süreçtir. İşte bazı ek ipuçları:

* Sistemi Güncel Tutun: İşletim sisteminizi, Node.js’i, npm paketlerinizi ve diğer tüm yazılımları düzenli olarak güncelleyin.

sudo dnf update -y
    nvm install --lts --reinstall-packages-from=$(nvm current) # Node.js'i günceller

* Minimum Yetki Prensibi: Uygulamanızı çalıştırmak için root kullanıcısı yerine sudo yetkisi olmayan ayrı bir kullanıcı kullanın. Uygulama dosyalarının ve dizinlerinin doğru izinlere sahip olduğundan emin olun.
* Logları İzleyin: Uygulama loglarını, Nginx loglarını ve sistem loglarını düzenli olarak kontrol edin. PM2’nin log yönetimi özellikleri bu konuda size yardımcı olacaktır.
* Yedeklemeler: Veritabanınızı ve uygulama dosyalarınızı düzenli olarak yedekleyin.
* SSH Anahtar Tabanlı Kimlik Doğrulama: Parola yerine her zaman SSH anahtar tabanlı kimlik doğrulamayı kullanın ve SSH portunu değiştirin.
* Güçlü Parolalar: Veritabanı ve diğer servisler için güçlü, karmaşık parolalar kullanın.
* Ortam Değişkenlerini Güvenli Yönetin: Hassas bilgileri (API anahtarları, veritabanı kimlik bilgileri) doğrudan kodunuza yazmak yerine ortam değişkenleri aracılığıyla yönetin. .env dosyalarını .gitignore ile Git’ten hariç tutun.
* Güvenlik Duvarı: firewalld‘yi yalnızca gerekli portları açacak şekilde yapılandırın.
* Bağımlılık Güvenliği: npm audit komutunu kullanarak uygulama bağımlılıklarınızdaki bilinen güvenlik açıklarını düzenli olarak kontrol edin.

Sonuç

Bu kapsamlı makalede, Node.js uygulamanızı Rocky Linux 9 üzerinde üretim ortamına kurmak için gereken tüm temel adımları ve en iyi uygulamaları ele aldık. Sunucu hazırlığından Node.js ve PM2 kurulumuna, Nginx ters proxy yapılandırmasından SSL/TLS şifrelemesine ve uygulama dağıtımına kadar her aşamayı detaylı bir şekilde inceledik. Bu rehberi takip ederek, Node.js uygulamanızı güvenli, kararlı ve yüksek performanslı bir şekilde yayına alabilir ve kullanıcılarınıza kesintisiz bir deneyim sunabilirsiniz. Unutmayın ki üretim ortamı yönetimi sürekli bir öğrenme ve iyileştirme sürecidir. Uygulamanızın ve sunucunuzun güvenliğini ve performansını düzenli olarak izlemeye ve güncellemeye devam edin. Başarılar dileriz!

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.