CentOS 7de Tavşan Kümesini Kümeleme
RabbitMQ, AMQP, STOMP ve diğer iletişim teknolojilerini destekleyen açık kaynaklı bir mesaj aracısıdır. Kurumsal uygulamalarda yaygın olarak kullanılan bir
Wekan, Meteor JavaScript çerçevesiyle oluşturulmuş bir kanban panosudur. Neredeyse aynı özellikleri sağlayan, açık kaynak kodlu ve Trello'ya kendi kendine barındırılan bir alternatif olarak kabul edilir. Kart tabanlı "yapılacaklar" yönetim listeleri oluşturmanızı sağlar. Wekan, işbirlikçi bir ortamda çalışırken verimliliği artırmak için çok faydalıdır. Wekan tamamen duyarlı bir web arayüzüne sahiptir ve birçok dilde aktif olarak tercüme edilmiştir.
Bu eğitimde, wekan.example.com
Vultr örneğine işaret eden alan adı olarak kullanacağız . Lütfen örnek alan adının tüm tekrarlarını gerçek adla değiştirdiğinizden emin olun.
CentOS 7'yi Güncelleme kılavuzunu kullanarak temel sisteminizi güncelleyin . Sisteminiz güncellendiğinde, bağımlılıkları yüklemeye devam edin.
Wekan sadece destekler Node.js LTS version 4.8
. Node.js'yi yüklemek için, düğüm sürüm yöneticisini kullanacağız. nvm
Yükleyici komut dosyasını çalıştırarak yükleyin .
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash
Hemen kullanmaya başlamak için nvm
bunu çalıştırın.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
Eğer nvm
başarıyla yüklendikten sonra onun sürümünü kontrol etmek mümkün olmalıdır.
[user@vultr ~]$ nvm --version
0.33.4
Node.js'yi yükleyin.
nvm install v4.8
Node.js'nin varsayılan sürümünü ayarlayın.
nvm use node
Node.js başarıyla yüklendiyse, sürümünü kontrol edebilmeniz gerekir.
node -v
Bu çıktıyı göreceksiniz.
[user@vultr ~]$ node -v
v4.8.4
NVM, yalnızca geçerli kullanıcı için Node.js'yi yükler. Node.js'nin küresel olarak erişilebilir olması için bunu çalıştırın.
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr
Node.js yayınlandı /bin/node
.
[user@vultr ~]$ sudo which node
/bin/node
MongoDB ücretsiz ve açık kaynaklı bir NoSQL veritabanı sunucusudur. Verilerini düzenlemek için tablolar kullanan geleneksel veritabanlarının aksine, MongoDB belge yönelimlidir ve şemaları olmayan JSON benzeri belgeleri kullanır. Wekan, verilerini saklamak için MongoDB'yi kullanır.
Wekan sadece ile uyumludur MongoDB version 3.2
. MongoDB varsayılan YUM
depoda mevcut olmadığından yeni bir depo dosyası oluşturmanız gerekir.
sudo nano /etc/yum.repos.d/mongodb-org-3.2.repo
Dosyayı aşağıdaki içerikle doldurun.
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
MongoDB'yi yükleyin.
sudo yum install -y mongodb-org
MongoDB sunucusunu başlatın ve otomatik olarak başlamasını sağlayın.
sudo systemctl start mongod
sudo systemctl enable mongod
Varsayılan olarak, bir MongoDB sunucusunda etkin kimlik doğrulaması yoktur. Sunucunun terminaline erişimi olan tüm kullanıcılar MongoDB kurulumunda tam ayrıcalıklara sahip olacaktır. Veritabanı sunucusunu güvenceye almak ve ayrıcalıksız bir kullanıcının erişimini kısıtlamak için sunucuda kimlik doğrulaması ayarlamamız gerekir.
MongoDB, MongoDB'de mongo
sorgu çalıştırmak için kullanılan bir kabuk sağlar . mongo
Yazarak kabuğa geçin .
mongo
Kök ayrıcalıklarına sahip yeni bir MongoDB kullanıcısı oluşturun. İstediğiniz herhangi bir kullanıcı adını kullanabilirsiniz. Lütfen şifreyi değiştirdiğinizden emin olun .
db.createUser(
{
user: "admin",
pwd: "StrongAdminPassword",
roles: [ { role: "root", db: "admin" } ]
}
)
Aşağıdaki çıktıyı görmelisiniz.
[user@vultr ~]$ mongo
MongoDB shell version: 3.2.17
connecting to: test
Welcome to the MongoDB shell.
...
2017-09-29T20:42:29.042+0000 I CONTROL [initandlisten]
> db.createUser(
... {
... user: "admin",
... pwd: "StrongAdminPassword",
... roles: [ { role: "root", db: "admin" } ]
... }
... )
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
" Ctrl+C
" Tuşuna basarak MongoDB komut arayüzünden Linux terminaline çıkın .
MongoDB yapılandırma dosyasını düzenleyin.
sudo nano /etc/mongod.conf
Dosyanın sonuna aşağıdaki satırı ekleyin.
security:
authorization: enabled
Yapılandırma değişikliğinin etkili olabilmesi için MongoDB'yi yeniden başlatın.
sudo systemctl restart mongod
Artık güvenlik etkinleştirildi, mongo
komutu kullanarak tekrar mongo kabuğuna geçerek çalışıp çalışmadığını test edebilirsiniz . Bu kez, show dbs
veritabanlarının listesini göstermek gibi bir sorgu çalıştırırsanız, yetkilendirmenin başarısız olduğunu bildiren bir ileti görürsünüz. sudo
Oturum açmayı yeni oluşturduğunuz yeni kullanıcı olarak test ettikten sonra kullanıcıya tekrar çıkın .
administrator
Yeni oluşturduğunuz kullanıcı olarak giriş yapın .
mongo -u admin -p
Başarılı bir giriş için kullanıcının şifresini girin. Wekan
Wekan verilerini depolamak için kullanılacak veritabanı için yeni bir kullanıcı oluşturun .
use wekan
db.createUser(
{
user: "wekan",
pwd: "StrongPassword",
roles: ["readWrite"]
}
)
Simgesini StrongPassword
güçlü bir parola ile değiştirdiğinizden emin olun . Aşağıdaki çıktıyı göreceksiniz.
[user@vultr ~]$ mongo -u admin -p
MongoDB shell version: 3.2.17
Enter password:
connecting to: test
...
2017-09-29T20:52:32.450+0000 I CONTROL [initandlisten]
>
> use wekan
switched to db wekan
> db.createUser(
... {
... user: "wekan",
... pwd: "StrongPassword",
... roles: ["readWrite"]
... }
... )
Successfully added user: { "user" : "wekan", "roles" : [ "readWrite" ] }
Yeni sürümler çok sık olduğu için Github'daki Wekan sürümüne en son bağlantı olup olmadığını kontrol edin . Yükleyici paketine bağlantıyı değiştirerek Wekan'ın en son sürümünü Github'dan indirin.
cd ~
wget https://github.com/wekan/wekan/releases/download/v0.41/wekan-0.41.tar.gz
İndirilen arşivi adlı yeni bir dizine çıkartın wekan
.
mkdir wekan
tar xzvf wekan-*.tar.gz -C wekan
Bzip2
Node.js bağımlılıklarını ayıklamak için gereken yükleme .
sudo yum -y install bzip2
Node.js bağımlılıklarını yükleyin.
cd wekan/bundle/programs/server && npm install
Wekan sunucusu, ortam değişkenlerinden yapılan yapılandırmaları okur. Yapılandırmaları ortam değişkenleri olarak ayarlamak için aşağıdaki komutları çalıştırın.
export MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
export ROOT_URL='http://wekan.example.com'
export MAIL_URL='smtp://user:[email protected]:25/'
export MAIL_FROM='[email protected]'
export PORT=4000
wekan
Oluşturduğunuz kullanıcı için MongoDB şifresini değiştirdiğinizden emin olun . Ayrıca, posta URL'sini SMTP sunucusu ayarlarınıza göre güncelleyin. Posta sunucunuz hazır değilse, bu yapılandırmayı daha sonra istediğiniz zaman değiştirebilirsiniz. Güvenlik duvarı 4000
üzerinden bağlantı noktasına izin vermek için güvenlik duvarını açın.
sudo firewall-cmd --zone=public --add-port=4000/tcp --permanent
sudo firewall-cmd --reload
Uygulamayı hemen başlatmak için.
cd ~/wekan/bundle
node main.js
Artık uygulamaya giderek erişebilirsiniz http://wekan.example.com:4000
. Wekan kanban panosunda oturum açmak için arayüz göreceksiniz.
Üretim kullanımı için, uygulamaya standart HTTP
bağlantı noktasında hizmet verecek bir ters proxy systemd
ve uygulama işlemini yönetmek için bir hizmet ayarlamanız önerilir . Bu derste, Nginx web sunucusunu Let's Encrypt ücretsiz SSL ile güvenlik altına alınan bir proxy olarak kullanacağız.
Nginx web sunucusunu ve Let's Encrypt CA'nın istemci uygulaması olan Certbot'u yükleyin.
sudo yum -y install certbot nginx
SSL sertifikalarını istemeden önce, bağlantı noktasına 80
ve 443
güvenlik duvarı üzerinden izin vermeniz gerekir . Certbot sertifika vermeden önce etki alanı yetkilisini kontrol eder.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
Artık Wekan'ı standart bir HTTPS
bağlantı noktasında çalıştırdığımız için 4000
, güvenlik duvarından bağlantı noktasına izin vermemize gerek yok . Bağlantı noktasını kaldırmak için güvenlik duvarını ayarlayın 4000
.
sudo firewall-cmd --zone=public --remove-port=4000/tcp --permanent
sudo firewall-cmd --reload
Not: Let's Encrypt CA'dan sertifika almak için kullandığınız etki alanı adı sunucuya yönlendirilmelidir. İstemci, sertifikaları vermeden önce etki alanı yetkilisini doğrular .
SSL sertifikaları oluşturun.
sudo certbot certonly --standalone -d wekan.example.com
Oluşturulan sertifikaların /etc/letsencrypt/live/wekan.example.com/
dizinde depolanması muhtemeldir . SSL sertifikası olarak fullchain.pem
ve özel anahtar olarak depolanacaktır privkey.pem
.
Sertifikaların şifrelenmesini 90 gün içinde sona erdirelim, bu nedenle Cronjob kullanarak sertifikaların otomatik olarak yenilenmesi önerilir. Cron, periyodik görevleri yürütmek için kullanılan bir sistem hizmetidir.
Cron iş dosyasını açın.
sudo crontab -e
Dosyanın sonuna aşağıdaki satırı ekleyin.
30 5 * * * /usr/bin/certbot renew --quiet
Yukarıdaki cron işi her gün 05: 30'da çalışacaktır. Sertifikaların süresinin dolması gerekiyorsa, sertifikalar otomatik olarak yenilenir.
Yeni bir sanal ana bilgisayar oluşturun.
sudo nano /etc/nginx/conf.d/wekan.example.com.conf
Dosyayı aşağıdakilerle doldurun.
upstream wekan {
server 127.0.0.1:4000;
}
server {
listen 80;
listen [::]:80;
server_name wekan.example.com;
location / {
if ($ssl_protocol = "") {
rewrite ^ https://$server_name$request_uri? permanent;
}
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name wekan.example.com;
add_header Strict-Transport-Security "max-age=15768000";
ssl_certificate /etc/letsencrypt/live/wekan.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wekan.example.com/privkey.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
ssl_stapling on;
ssl_stapling_verify on;
error_page 497 https://$host:$server_port$request_uri;
location / {
proxy_pass http://wekan;
proxy_http_version 1.1;
proxy_set_header Host $host:$server_port;
proxy_set_header Referer $http_referer;
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 https;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
proxy_send_timeout 86400;
proxy_read_timeout 86400;
}
}
wekan.example.com
Yukarıdaki yapılandırmada gerçek alan adınızla değiştirin .
Değişikliklerin etkili olabilmesi için Nginx'i yeniden başlatın.
sudo systemctl restart nginx
Nginx'in önyükleme zamanında otomatik olarak başlamasını etkinleştirin.
sudo systemctl enable nginx
İşlem için yeni bir kullanıcı oluşturun.
sudo adduser wekan -s /usr/sbin/nologin -d /opt/wekan
Şimdi tüm dosyaları /opt/wekan
dizine taşıyın .
sudo mv ~/wekan/* /opt/wekan/
Yeni oluşturulan kullanıcıya dosyaların sahipliğini sağlayın.
sudo chown -R wekan:wekan /opt/wekan
Wekan hiçbir yapılandırma dosyasından veri almaz. Bunun yerine, ortam değişkenlerinden erişir. Ortam değişkenlerini saklamak için yeni bir dosya oluşturacağız. Ortam değişkenlerini içeren dosya Systemd
hizmetten geçirilir .
Ortam değişkenlerini saklamak için yeni bir dosya oluşturun.
sudo nano /opt/wekan/config.env
Dosyayı aşağıdaki içerikle doldurun.
MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
ROOT_URL='http://wekan.example.com'
MAIL_URL='smtp://user:[email protected]:25/'
MAIL_FROM='[email protected]'
PORT=4000
HTTP_FORWARDED_COUNT=1
Yerine emin olun username
ve password
.
wekan
Kullanıcının sahipliğini sağlayın .
sudo chown -R wekan:wekan /opt/wekan/config.env
Wekan systemd hizmeti için yeni bir hizmet dosyası oluşturun.
sudo nano /etc/systemd/system/wekan.service
Dosyayı aşağıdakilerle doldurun.
[Unit]
Description=Wekan Server
After=syslog.target
After=network.target
[Service]
Type=simple
Restart=on-failure
StartLimitInterval=86400
StartLimitBurst=5
RestartSec=10
ExecStart=/bin/node /opt/wekan/bundle/main.js
EnvironmentFile=/opt/wekan/config.env
ExecReload=/bin/kill -USR1 $MAINPID
RestartSec=10
User=wekan
Group=wekan
WorkingDirectory=/opt/wekan
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=Wekan
[Install]
WantedBy=multi-user.target
Dosyayı kaydedin ve editörden çıkın. Artık Wekan'ı kolayca başlatabilirsiniz.
sudo systemctl start wekan
Wekan'ın önyükleme zamanında otomatik olarak başlamasını sağlamak için.
sudo systemctl enable wekan
Wekan servisinin durumunu kontrol etmek.
sudo systemctl status wekan
Artık Wekan örneğine adresinden erişebilirsiniz https://wekan.example.com
. Yeni bir hesap oluşturarak başlayın. Hesabı oluşturduktan sonra, yeni oluşturulan kullanıcıya yönetici erişimini etkinleştirebilirsiniz. Yönetici kullanıcı olarak MongoDB kabuğuna giriş yapın.
mongo -u wekan -p --authenticationDatabase "wekan"
Şimdi wekan
veritabanını seçin ve kullanıcıyı yönetici kullanıcıya tanıtmak için nesneyi güncelleyin.
use wekan
db.users.update({username:'admin_user'},{$set:{isAdmin:true}})
Lütfen admin_user
oluşturduğunuz kullanıcının gerçek kullanıcı adıyla değiştirdiğinizden emin olun . Yönetici arayüzünden, kendi kendine kaydı devre dışı bırakabilir ve SMTP ayarlarını güncelleyebilirsiniz.
Tebrikler, Vekanr CentOS örneğinize Wekan Kanban kartını başarıyla yüklediniz.
RabbitMQ, AMQP, STOMP ve diğer iletişim teknolojilerini destekleyen açık kaynaklı bir mesaj aracısıdır. Kurumsal uygulamalarda yaygın olarak kullanılan bir
Farklı Bir Sistem mi Kullanıyorsunuz? Pagekit PHP ile yazılmış açık kaynaklı bir CMSdir. Pagekit kaynak kodu GitHubda herkese açık olarak barındırılıyor. Bu kılavuz size
Çok Güvenli FTP arka plan programı, ya da sadece vsFTPd, özelleştirme yeteneği olan hafif bir yazılım parçasıdır. Bu derste bir müttefikimiz olacak
Belirli durumlarda, Sistem Yöneticisinin bir kullanıcı hesabı oluşturması ve yalnızca kendi dosyalarını sFTP yoluyla yönetmek için erişimini kısıtlaması gerekebilir, ancak b
Bu makalede, ModSecurity tarafından korunan bir LEMP yığını oluşturmayı açıklayacağım. ModSecurity faydalı bir açık kaynaklı web uygulaması güvenlik duvarıdır.
Giriş LAMP, Linux, Apache, MySQL ve PHPnin kısaltmasıdır. Bu yazılım yığını, kurulum için en popüler açık kaynaklı çözümdür.
Farklı Bir Sistem mi Kullanıyorsunuz? Chamilo, çevrimiçi eğitim ve takım işbirliği için yaygın olarak kullanılan ücretsiz ve açık kaynaklı bir öğrenme yönetim sistemidir (LMS).
Eskiden OpenERP olarak bilinen Odoo, iyi bilinen bir açık kaynaklı ERP iş platformudur. Her büyüklükteki işletme, bol miktarda lis sayesinde Odoodan yararlanabilir
Icinga2 güçlü bir izleme sistemidir ve bir ana istemci modelinde kullanıldığında, NRPE tabanlı izleme kontrollerine olan ihtiyacın yerini alabilir. Master-Clien
Farklı Bir Sistem mi Kullanıyorsunuz? Couch CMS, web tasarımcılarının tasarlamalarını sağlayan basit ve esnek, ücretsiz ve açık kaynaklı bir İçerik Yönetim Sistemidir (CMS)
Farklı Bir Sistem mi Kullanıyorsunuz? Netdata, gerçek zamanlı sistem ölçümleri izleme alanında yükselen bir yıldızdır. Aynı türdeki diğer araçlarla karşılaştırıldığında, Netdata:
Farklı Bir Sistem mi Kullanıyorsunuz? ERP veya Kurumsal Kaynak Planlaması, temel iş süreçlerini yönetmek için kullanılan bir kurumsal uygulama paketidir. ERPNext ücretsizdir
Başka bir Vultr eğitimine hoş geldiniz. Burada, bir SAMP sunucusunun nasıl kurulacağını ve çalıştırılacağını öğreneceksiniz. Bu kılavuz CentOS 6 için yazılmıştır. Önkoşullar
Genel Bakış Bu makale, bir Kubernetes kümesini hemen kurup kubeadm ile çalıştırmanıza yardımcı olmak içindir. Bu kılavuz iki sunucuyu
Farklı Bir Sistem mi Kullanıyorsunuz? Giriş Sails.js, Ruby on Railse benzer şekilde Node.js için bir MVC çerçevesidir. Modern uygulamalar geliştirmek için yapar
Bu eğitimde, CentOS 6 Sistemine Half Life 2 oyun sunucusu kurma süreci ele alınacaktır. 1. Adım: Önkoşulları kurma
PrestaShop popüler bir açık kaynaklı e-ticaret çözümüdür. Kendi çevrimiçi mağazanızı ücretsiz oluşturmak için kullanabilirsiniz. Bu eğitimde, size
Farklı Bir Sistem mi Kullanıyorsunuz? MODX Revolution hızlı, esnek, ölçeklenebilir, ücretsiz ve açık kaynaklı, kurumsal düzeyde bir İçerik Yönetim Sistemi (CMS)
Giriş Linux sistemleri, süreçleri ve disk alanını izlemeye yardımcı olan varsayılan olarak top, df ve du gibi izleme araçlarıyla birlikte gelir. Çoğu zaman, onlar ar
Farklı Bir Sistem mi Kullanıyorsunuz? Kolab Groupware, ücretsiz ve açık kaynaklı bir web tabanlı grup yazılımı uygulamasıdır. Özellikleri e-posta iletişiminden, olaylardan oluşur
26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.
Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.
Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.
Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.
CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?
Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.
Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!
Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.
Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun