NodeBB Forum Kurulumu

Bu yazımda Ubuntu yüklü bir suncuuda NodeBB forum kurulumu yapacağız.

Muhammed Ekici
Muhammed Ekici
NodeBB Forum Kurulumu
İçindekiler
İçindekiler

NodeBB, Node.JS tabanlı açık kaynak kodlu yeni nesil bir tek sayfa forum yazılımıdır. Veri tabanı olarak MongoDB ve veri tabanı köprüsü  (isteğe bağlı) olarak Redis kullanan NodeBB, oldukça hızlı ve akıcıdır. Tüm cihazlarla uyumlu bir şekilde (responsive) çalışmaktadır. Türkçe başta olmak üzere onlarca dil hazır olarak gelmekle bereber, kullanıcının tarayıcı dilini tespit edip o dilde site yayınlama özelliği vardır.

NodeBB geliştiricileri arasında Barış Uşaklı adında Kanada'da yaşayan bir Türk bulunmaktadır.

NodeBB Sunucu gereksinimleri

NodeBB hostingde çalışmaz. Bu yüzden bir VPS/VDS sunucu gerekiyor.  1 CPU ve en az 1 GB RAM olan bir sunucu ile başlamak ilk adım için yeterli olacaktır.

NodeBB Kurulumu

Bu yazımda Ubuntu 18.04/20.04 yüklü bir sunucuda NodeBB kurulumu yapacağız.

NodeBB'nin çalışması için sunucuda olması gereken uygulamalar;

  1. Web sunucusu oalrak Nginx
  2. Veri tabanı olarak MongoDB
  3. NodeJS 12 veya üzeri bir sürüm.

Sunucuya gerekli uygulamaların kurulması

Eğer sunucunuz sıfır ise gerekli uygulamaları kurmadan önce bir kaç işlem yapmamız gerekiyor. İlk olarak sunucuyu güncelleyebiliriz.

sudo apt update && sudo apt upgrade -y

Bu adımdan sonra aşağıdaki yazıda anlatılan adımları tamamlayıp bu makaleye geri gelin.

Yeni Ubuntu sunucuya ilk yapılması gerekenler
Ubuntu sunucu ilk kurulumu ve temel güvenlik ayarları

Adım 1 - Node.JS Kurulumu

Ben Node.JS 14.x sürümünü kuracağım. Node.JS kurmak için;

#Nodejs indirme
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

#Node.js kurmak için ardından;
sudo apt-get install -y nodejs

Adım 2 - MongoDB kurulumu

Aşağıdaki komutları tek tek çalıştırarak Ubuntu 18.04/20.04 sunucunuzda kolayca kurabilirsiniz.

Her satırdaki komut ayrı ayrı tek tek çalıştırılmalıdır.
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
sudo apt-get install gnupg
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

Eğer sunucunuz 18.04 ise aşağıdaki komutu;

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

Eğer sunucunuz 20.04 ise aşağıdaki komutu çalıştırın.

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

Şimdi kaldığımız yerden kurulum işlemlerine devam edelim

sudo apt-get update
sudo apt-get install -y mongodb-org
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections
ps --no-headers -o comm 1
sudo systemctl start mongod
sudo systemctl daemon-reload
sudo systemctl enable mongod

Şimdi NodeBB kurulumu esnasında kullanmak üzere yeni bir veri tabanı ve ver tabanı kullanıcısı oluşturacağız. İlk önce veri tabanına giriş için mongo komutunu çalıştırıyoruz.

Şimdi veri tabanı admin kullanıcısının şifresini belirleyelim.

#Admin kullanıcısına geriş için;
> use admin

#Admin kullanıcısının şifresini belirleyin. " işaretlerine dikkat edin. şifre " işaretleri arasına yazılacak.
> db.createUser( { user: "admin", pwd: "admin_şifresini_buraya_yaz", roles: [ { role: "root", db: "admin" } ] } )

#nodebb kullanıcısına geçelim. Bu aynı zamanda veri tbanımız olacak.
 > use nodebb
 
 #Bu kullanıcının şifresini belirleyelim.
 > > db.createUser( { user: "nodebb", pwd: "şifreyi_buraya_yaz", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )
 
 #veri tabanından çıkmak için;
 quit()

Adım 3 - Nginx kurulumu

Son olarak Nginx web sunucusunu kuracağız.

sudo apt-get install -y nginx

Güvenlik duvarında HTTP ve HTTPS vbağlantılarına izin vermek içib;

sudo ufw allow 'Nginx Full'

Buraya kadar NodeBB'nin sunucuda çalışması için gerekli uygulamaların kurulumuna yönelikti. Artık Ubuntu sunucuda NodeBB kurulumu yapılabilir.

NodeBB Kurulumu

İlk olarak git kuralım.

sudo apt-get install -y git

Şimdi NodeBB'yi /home/mekici/nodebb dizinine indirmek için;

git clone -b v1.16.x https://github.com/NodeBB/NodeBB.git nodebb
Bu makalenin yazıldığı tarih itbarıyla güncel NodeBB sürümü 1.16 idi. Bu sayfadan kontrol edip daha üst bir sürüm yayınlanmış ise örneğin 1.17 gibi, o zaman yukarıdaki komutta 1.16.x yerine 1.1.7.x yazın.

Şimdi nodebb dizinine gitmek için cd nodebb komutunu çalıştırın. Ardından NodeBB kurulumunu başlatmak için ./nodebb setup komutunu çalıştırın.

Kurulum esnasında size bir dizi soracak. Site adresi, veri tabanı bilgisi gibi. Aşağıdaki görsel ne yapmanız gerektiğini resim oalrak koyuyorum. Bu aşamada herhangi bir hata yaparsanız geri gelip ./nodebb setup komutunu yeniden çalıştırarak kurulumu yeniden yapabilirsiniz.

MongoDB username sorunusunun cevabı: nodebb

MongoDB şifresi= Yukarıda MongoDB adımında belirlemiş olduğunuz şifre.

NodeBB kurulumu sırasında sorulan sorular ve verilecek yanıtlar

Kurulum işlemi tamamlanınca NodeBB'yi başlatmak içi aşağıdaki komutu çalıştırın.

./nodebb start

NodeBB site yayınlama

Artık NodeBB sunucuya kurulduğuna göre siteyi yayına alabiliriz.

İlk olarak Nginx'in ilgili dizinine gidelim.,

cd /etc/nginx/sites-available

Bu dizinde nodebb.conf adında bir dosya oluşturalım ve içini aşağıdakilerle dolduralım. Kendi alan adınızı eklemeyi unutmayın.

sudo nano nodebb.conf

Açılan ekrana aşağıdakileri yapıştıralım.

server {
    listen 80;

    server_name forum.example.com;

    location / {
        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;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://127.0.0.1:4567;
        proxy_redirect off;

        # Socket.IO Support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Şimdi aşağıdaki komutla ilgili dizine gidelim.

cd ../sites-enabled

Siteyi yayına almak için aşağıdaki komutu çalıştıralım.

sudo ln -s ../sites-available/nodebb.conf

Tüm değişikliklerin aktif olması için nginx'i yeniden başlatmak gerekiyor. Bunun için;

sudo systemctl restart nginx

Artık http://alan_adiniz. com adresinden sitenizi görüntüleyebiliyor olanız gerekiyor.

Cloudflare ile sitenizi optimize etmek ve ücretsiz SSL kullanımı için aşağıdaki makaleyi inceleyiniz:

Cloudflare Full (strict) SSL kullanımı ve ayarları
Bu makalede Cloud Flare tarafından ücretsiz olarak sunulan SSL’nin kendi sunucumuzda nasıl kullanacağımızı ve ayarlarının nasıl yapılacağı konusunu ele alacağım.


Harika! Muhammed Ekici | mekici.com sitesine tam erişim için ödemeyi tamamlayın
Tekrar hoşgeldiniz! Başarıyla giriş yaptınız
An error occurred
Başarılı! Hesabınız tamamen etkinleştirildi, artık tüm içeriğe erişebilirsiniz
Başarılı! Fatura bilgileriniz güncellendi
Faturalandırmanız güncellenmedi