NodeBB nedir?
Nodebb, Nodejs ile yazılmış açık kaynak kodlu bir tek sayfa forum uygulamasıdır. Veri tabanı olarak MongoDB kullanılır. İsteğe bağlı olarak Redis’te kullanılabilir. Javascript ile yazılmıştır. Kullandığı altyapı sayesinde oldukça performanslı bir yapıya sahiptir. Büyük trafiklerde gayet iyi performans göstermektedir.
NodeBB Forum Özellikleri
- Dahili olarak Türkçe dil desteği vardır. Kullanıcının dil tercihini otomatik tespit ederek o dilde yayınlanma özelliği bulunmaktadır.
- Tüm cihazlarla uyumlu olarak çalışabilen NodeBB’de dahili PWA uygulaması bulunmaktadır.
- Her kategoriye özel Moderatör tayin edilebilir.
- Davet sistemi ile kayıt olma özelliği bulunmaktadır.
- Gelişmiş moderatör araçları vardır.
- Dahili anlık sohbet vardır.
- Dahili websocket ile anlık akış sağlanabilmektedir.
- Google, Facebook, Twitter, Github siteleri ile SSO aracılığıyla kayıt ve oturum açma seçenekleri vardır.
- Dahili SEO
- Gruplar oluşturma, davet ile gruba katılma ve onaylama
gibi bu listede olmayan onlarca özelliği içinde barındırmaktadır.
NodeBB Kurulumu
Ubuntu 20.04 yüklü bir sunucuda NodeBB forum kurulumu yapacağız.
NodeBB için ön hazırlık
Kuruluma başlayabilmemiz için aşağıdaki listede yer alanları hazırlamamız gerekiyor. Sunucuyu benim referansım ile Digitalocean’dan alırsanız 3 ay geçerli 100 USD kredi kazanabilirsiniz. Referans linki aşağıda.
5 USD’lik sunucu işinizi görecektir.
- En az 1 GB RAM’li sunucu
- A kaydı girilmiş bir alan adı
- Sunucu root kullanıcısına ait şifre
NodeBB sistem gereksinimleri
- Web sunucusu olarak Nginx
- Veri tabanı olarak MongoDB
- NodeJS 12+
1- Nginx Kurulumu
İlk olarak Ubuntu paketlerini güncelleyelim.
sudo apt update && sudo apt upgrade -y
Şimdi Nginx kurulumuna geçebiliriz.
sudo apt-get install -y nginx
2 - MongoDB kurulumu
MongoDB’nin son sürümünü sunucuya kurmak için aşağıdaki komutları girin.
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
Şimdi terminalde sudo systemctl start mongod
yazarak veri tabanı sunucusunu çalıştıralım.
mongo
yazarak veri tabanına girelim. Şimdi yeni bir veri tabanı ve kullanıcısı oluşturacağız.
#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()
3 - NodeJS kurulumu
NodeJS 16 kurulumu yapacağız.
#Nodejs indirme
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
#Node.js kurmak için ardından;
sudo apt-get install -y nodejs
NodeBB için yeni kullanıcı oluşturma
NodeBB, root veya sudo ayrıcalıklarına sahip kullanıcı ile kurulmamalıdır. Bu bazı karışıklıklara sebep olmaktadır. Bu yüzden hiç bir ayrıcalığı olmayan yeni bir kullanıcı oluşturacağız.
adduser nodebb
komutu ile nodebb adında bir kullanıcı oluşturmuş oldum. Şimdi bu kullanıcıya geçiş yapıp nodebb kurulumuna başlayacağız. NodeBB kullanıcısına geçmek için su - nodebb
komutunu çalıştıralım.
NodeBB kurulumu
NodeBB kullanıcısı ile Nodebb klasörüne NodeBB indirmek için;
git clone -b v3.x https://github.com/NodeBB/NodeBB.git nodebb
Nodebb dizinine geçmek için cd nodebb komutunu kullanın.
Şimdi NodeBB kurulum komutunu çalıştırabiliriz.
./nodebb setup
Kurulum sırasında sizden bir takım bilgileri isteyecek. Aşağıdaki resimde vermeniz gereken cevaplar için bir görsel mevcut.
Admin kullanıcısına ait bilgileri de girdikten sonra artık NodeBB’yi başlatabiliriz.
./nodebb start
NodeBB yayınlama
Şimdi root kullanıcısına geçiş yapalım. Bunun için exit
yazmak yeterlidir.
Şimdi kurmuş olduğumuz NodeBB forumunu Nginx’te yayına alacağız. İlk olarak dizine geçiş yapalım.
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://alanadiniz. com adresinden sitenizi görüntüleyebiliyor olanız gerekiyor.