Debian 9 NodeBB Forumu Nasıl Kurulur

NodeBB , Node.js tabanlı bir forumdur. Anlık etkileşimler ve gerçek zamanlı bildirimler için web soketlerini kullanır. NodeBB kaynak kodu genel barındırılan Github . Bu kılavuz, Node.js, veritabanı olarak MongoDB, ters proxy olarak Nginx ve SSL sertifikaları için Acme.sh kullanarak yeni bir Debian 9 Vultr örneğinde NodeBB kurulum işleminde size yol gösterecektir.

Gereksinimler

NodeBB için aşağıdaki yazılımların yüklenmesi gerekir:

  • Git
  • Node.js sürüm 6.9.0 veya üstü
  • MongoDB sürüm 2.6 veya üzeri
  • nginx
  • Minimum 1024 MB RAM
  • A/ AAAAKayıtlar ayarlanmış alan adı

Sen başlamadan önce

Debian sürümünü kontrol edin.

lsb_release -ds
# Debian GNU/Linux 9.4 (stretch)

Sisteminizin güncel olduğundan emin olun.

apt update && apt upgrade -y

Gerekli paketleri kurun.

apt install -y sudo dirmngr git build-essential apt-transport-https

Erişimi olan yeni bir non-rootkullanıcı hesabı oluşturun sudove bu hesaba geçin.

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

NOT : Kullanıcı adınızla değiştirin johndoe.

Saat dilimini ayarlayın.

sudo dpkg-reconfigure tzdata

Node.js dosyasını yükleyin

NodeBB, Node.js tarafından yönlendirilir ve bu nedenle yüklenmesi gerekir. Node.js'nin geçerli LTS sürümünün yüklenmesi önerilir.

Node.js dosyasını NodeSource deposundan yükleyin.

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs

Node.js ve npm kurulumunu doğrulayın.

node -v && npm -v
# v10.15.0
# 5.6.0

MongoDB'yi yükleme ve yapılandırma

MongoDB, NodeBB için varsayılan veritabanıdır.

MongoDB'yi resmi MongoDB deposundan yükleyin.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
echo "deb https://repo.mongodb.org/apt/debian stretch/mongodb-org/4.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
sudo apt update
sudo apt install -y mongodb-org

Versiyonu kontrol et.

mongo --version | head -n 1 && mongod --version | head -n 1
# MongoDB shell version v4.00
# db version v4.0.0

MongoDB'yi başlatın ve etkinleştirin.

sudo systemctl start mongod.service
sudo systemctl enable mongod.service

NodeBB için bir MongoDB veritabanı ve kullanıcı oluşturun.

MongoDB'ye bağlanın.

mongo

Yerleşik adminveritabanına geçin .

> use admin

Yönetici kullanıcı oluşturun.

> db.createUser( { user: "admin", pwd: "<Enter a secure password>", roles: [ { role: "readWriteAnyDatabase", db: "admin" }, { role: "userAdminAnyDatabase", db: "admin" } ] } )

NOT: Yer tutucuyu <Enter a secure password>seçtiğiniz şifreyle değiştirin.

Adlı yeni bir veritabanı ekleyin nodebb.

> use nodebb

Veritabanı oluşturulacak ve bağlam değiştirilecek nodebb. Ardından, nodebbkullanıcıyı uygun ayrıcalıklarla oluşturun.

> db.createUser( { user: "nodebb", pwd: "<Enter a secure password>", roles: [ { role: "readWrite", db: "nodebb" }, { role: "clusterMonitor", db: "admin" } ] } )

NOT: Yine, yer tutucuyu <Enter a secure password>kendi seçtiğiniz şifreyle değiştirin.

Mongo kabuğundan çıkın.

> quit()

MongoDB'yi yeniden başlatın ve daha önce oluşturulan yönetici kullanıcının bağlanabildiğini doğrulayın.

sudo systemctl restart mongod.service
mongo -u admin -p your_password --authenticationDatabase=admin

Nginx'i yükleme ve yapılandırma

Nginx'in en son ana sürümünü resmi Nginx deposundan yükleyin.

wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx\ndeb-src https://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx\n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx

Versiyonu kontrol et.

sudo nginx -v
# nginx version: nginx/1.15.0

Nginx'i etkinleştirin ve başlatın.

sudo systemctl enable nginx.service
sudo systemctl start nginx.service

NodeBB varsayılan olarak bağlantı noktasında çalışır 4567. Yazmayı önlemek http://example.com:4567için, Nginx'i NodeBB uygulaması için ters proxy olarak yapılandıracağız. Bağlantı noktasındaki 80veya 443SSL kullanılıyorsa her istek bağlantı noktasına yönlendirilir 4567.

sudo vim /etc/nginx/conf.d/nodebb.confAşağıda gösterilen temel ters proxy yapılandırmasıyla çalıştırın ve doldurun.

server {

  listen [::]:80;
  listen 80;

  server_name forum.example.com;

  root /usr/share/nginx/html;

  client_max_body_size 50M;

  location /.well-known/acme-challenge/ {
    allow all;
  }

  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_hide_header X-Powered-By;
    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";
  }

}

Yukarıdaki yapılandırmada, server_nameyönergeyi alan adınız / ana bilgisayar adınızla güncelleyin .

Yapılandırmayı kontrol edin.

sudo nginx -t

Nginx'i yeniden yükleyin.

sudo systemctl reload nginx.service

Acme.sh istemcisini yükleyin ve Let's Encrypt sertifikası edinin (isteğe bağlı)

Forumunuzu HTTPS ile güvenli hale getirmek gerekli değildir, ancak sitenizin trafiğini güvenli hale getirecektir. Acme.sh sıfır bağımlılık ile Let's Encrypt SSL sertifikaları almak için saf bir Unix kabuk yazılımıdır.

Acme.sh dosyasını indirin ve yükleyin.

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~
source ~/.bashrc

Versiyonu kontrol et.

acme.sh --version
# v2.7.9

İçin RSA ve ECDSA sertifikaları alın forum.example.com.

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d forum.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo systemctl reload nginx.service" --accountemail [email protected] --ocsp-must-staple --keylength 2048
# ECDSA/ECC P-256
sudo /etc/letsencrypt/acme.sh --issue --home /etc/letsencrypt -d forum.example.com --webroot /usr/share/nginx/html --reloadcmd "sudo systemctl reload nginx.service" --accountemail [email protected] --ocsp-must-staple --keylength ec-256

Yukarıdaki komutları çalıştırdıktan sonra, sertifikalarınız ve anahtarlarınız aşağıdaki dizinlerde olacaktır:

  • RSA: /etc/letsencrypt/forum.example.com
  • ECC / ECDSA: /etc/letsencrypt/forum.example.com_ecc

Let's Encrypt'ten sertifika aldıktan sonra, bunları kullanmak için Nginx'i yapılandırmamız gerekir.

sudo vim /etc/nginx/conf.d/nodebb.confTekrar çalıştırın ve Nginx'i HTTPS ters proxy olarak yapılandırın.

server {

  listen [::]:443 ssl http2;
  listen 443 ssl http2;
  listen [::]:80;
  listen 80;

  server_name forum.example.com;

  root /usr/share/nginx/html;

  client_max_body_size 50M;

  location /.well-known/acme-challenge/ {
    allow all;
  }

  # RSA
  ssl_certificate /etc/letsencrypt/forum.example.com/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/forum.example.com/forum.example.com.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/forum.example.com_ecc/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/forum.example.com_ecc/forum.example.com.key;

  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";
  }

}

Yapılandırmayı kontrol edin.

sudo nginx -t

Nginx'i yeniden yükleyin.

sudo systemctl reload nginx.service

NodeBB Kurulumu

Bir belge kök dizini oluşturun.

sudo mkdir -p /var/www/nodebb

/var/www/nodebbDizinin sahipliğini olarak değiştirin johndoe.

sudo chown -R johndoe:johndoe /var/www/nodebb

Belge kök klasörüne gidin.

cd /var/www/nodebb

En son NodeBB'yi belge kök klasörüne kopyalayın.

git clone -b v1.10.x https://github.com/NodeBB/NodeBB.git .

NodeBB kurulum komutunu çalıştırın ve istendiğinde her soruyu cevaplayın.

./nodebb setup

NodeBB kurulumu tamamlandıktan sonra ./nodebb start, NodeBB sunucunuzu manuel olarak başlatmak için çalıştırın .

./nodebb start

Bu komuttan sonra forumunuza web tarayıcınızdan erişebileceksiniz.

NodeBB'u Sistem Hizmeti Olarak Çalıştırma

Aracılığıyla ./nodebb startbaşlatıldığında, sistem yeniden başlatıldığında NodeBB otomatik olarak yeniden başlamaz. Bundan kaçınmak için NodeBB'yi bir sistem hizmeti olarak ayarlamamız gerekecek.

Çalışıyorsa, NodeBB'yi durdurun.

./nodebb stop

Yeni bir nodebbkullanıcı oluşturun :

sudo adduser nodebb

/var/www/nodebbDizinin sahipliğini olarak değiştirin nodebb.

sudo chown -R nodebb:nodebb /var/www/nodebb

Bir nodebb.servicesystemd birim yapılandırma dosyası oluşturun. Bu birim dosyası NodeBB deamonunun başlatılmasını yönetir. sudo vim /etc/systemd/system/nodebb.serviceDosyayı aşağıdaki içerikle çalıştırın ve doldurun:

[Unit]
Description=NodeBB
Documentation=https://docs.nodebb.org
After=system.slice multi-user.target mongod.service

[Service]
Type=forking
User=nodebb

StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodebb

Environment=NODE_ENV=production
WorkingDirectory=/var/www/nodebb
PIDFile=/var/www/nodebb/pidfile
ExecStart=/usr/bin/env node loader.js
Restart=always

[Install]
WantedBy=multi-user.target

NOT: Seçtiğiniz adlara göre kullanıcı adı ve dizin yollarını ayarlayın.

nodebb.serviceYeniden başlatma sırasında etkinleştirin ve hemen başlayın nodebb.service.

sudo systemctl enable nodebb.service
sudo systemctl start nodebb.service

nodebb.serviceDurumu kontrol edin .

sudo systemctl status nodebb.service
sudo systemctl is-enabled nodebb.service

Bu kadar. NodeBB örneğiniz şimdi çalışıyor.



Leave a Comment

Debianda NFS Paylaşımı Ayarla

Debianda NFS Paylaşımı Ayarla

NFS, bilgisayarların bilgisayar ağı üzerindeki dosyalara erişmesine izin veren ağ tabanlı bir dosya sistemidir. Bu kılavuz, klasörleri NF üzerinden nasıl açığa çıkarabileceğinizi açıklar

Debian 9da Diaspora ile Sosyal Ağınızı Kurun

Debian 9da Diaspora ile Sosyal Ağınızı Kurun

Farklı Bir Sistem mi Kullanıyorsunuz? Diaspora gizliliğe duyarlı, açık kaynaklı bir sosyal ağdır. Bu derste, bir Diaspora posının nasıl kurulacağını ve yapılandırılacağını öğreneceksiniz

Debian 9 Üzerinde Yakıt CMS Kurulumu

Debian 9 Üzerinde Yakıt CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Fuel CMS, CodeIgniter tabanlı bir içerik yönetim sistemidir. Kaynak kodu GitHubda barındırılmaktadır. Bu kılavuz size

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

Ç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

Debian 9 Üzerinde Thelia 2.3 Kurulumu

Debian 9 Üzerinde Thelia 2.3 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Thelia, e-iş web siteleri oluşturmak ve PHP ile yazılmış çevrimiçi içeriği yönetmek için açık kaynaklı bir araçtır. Thelia kaynak kodu i

Debianda Chroot Oluşturma

Debianda Chroot Oluşturma

Bu makale size Debianda nasıl bir cezaevi hapishane kurulacağını öğretecek. Debian 7.x kullandığınızı varsayıyorum. Debian 6 veya 8 çalıştırıyorsanız, bu işe yarayabilir, bu

Debian 9 InvoicePlane Nasıl Kurulur

Debian 9 InvoicePlane Nasıl Kurulur

Farklı Bir Sistem mi Kullanıyorsunuz? InvoicePlane ücretsiz ve açık kaynaklı bir faturalandırma uygulamasıdır. Kaynak kodu bu Github deposunda bulunabilir. Bu rehber

Debian 9u Debian 10a Yükseltme

Debian 9u Debian 10a Yükseltme

Giriş Debian 10 (Buster), Debian 9un (Stretch) halefidir. 6 Temmuz 2019da piyasaya sürüldü. Bu derste, bir var olanı yükselteceğiz

Debian 9 LAMP VPS Arka Plan CMS 1.8.0 Kurulumu

Debian 9 LAMP VPS Arka Plan CMS 1.8.0 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Backdrop CMS 1.8.0, basit ve esnek, mobil uyumlu, ücretsiz ve açık kaynaklı bir İçerik Yönetim Sistemidir (CMS)

Debian 9 Üzerinde BookStack Kurulumu

Debian 9 Üzerinde BookStack Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? BookStack, bilgileri düzenlemek ve depolamak için basit, kendi kendine barındırılan, kullanımı kolay bir platformdur. BookStack tamamen ücretsiz ve açık

Ubuntu ve CentOS İçin Daha İyi İzleme Araçları

Ubuntu ve CentOS İçin Daha İyi İzleme Araçları

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

CentOS 7, Ubuntu 16.04 ve Debian 9da Golang 1.8.3 Kurulumu

CentOS 7, Ubuntu 16.04 ve Debian 9da Golang 1.8.3 Kurulumu

Golang, Google tarafından geliştirilen bir programlama dilidir. Çok yönlülüğü, sadeliği ve güvenilirliği sayesinde Golang en popüler topluluklardan biri haline geldi

Debian 9a Cıvata CMS Takma (Uzatma)

Debian 9a Cıvata CMS Takma (Uzatma)

Farklı Bir Sistem mi Kullanıyorsunuz? Bolt PHP ile yazılmış açık kaynaklı bir CMSdir. Cıvata kaynak kodu GitHubda barındırılıyor. Bu kılavuz size Bolt CMnin nasıl kurulacağını gösterecektir

Munin ile Debian Sunucu Durumunu İzleme

Munin ile Debian Sunucu Durumunu İzleme

Munin, makinenizdeki süreçleri ve kaynakları araştırmak için bir izleme aracıdır ve bilgileri bir web arayüzü aracılığıyla grafiklerde sunar. Aşağıdaki kullanın

Debian 10da Apachede TLS 1.3ü Etkinleştirme

Debian 10da Apachede TLS 1.3ü Etkinleştirme

Farklı Bir Sistem mi Kullanıyorsunuz? TLS 1.3, 2018de RFC 8446da önerilen bir standart olarak yayınlanan Taşıma Katmanı Güvenliği (TLS) protokolünün bir sürümüdür

Debian 9 Üzerinde PyroCMS Kurulumu

Debian 9 Üzerinde PyroCMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? PyroCMS, PHP ile yazılmış açık kaynaklı bir CMSdir. PyroCMS kaynak kodu GitHubda barındırılmaktadır. Bu kılavuzda entir boyunca yürüyün

Sunucunuza IP Adresi Aralığı Ekleyin (CentOS / Ubuntu / Debian)

Sunucunuza IP Adresi Aralığı Ekleyin (CentOS / Ubuntu / Debian)

Giriş Bu eğitimde, CentOS, Debian veya Ubuntu çalıştıran bir Linux sunucusuna tüm IP aralığını / alt ağını ekleme işlemini ele alacağız. Süreç

Counter Strikeı Ayarlama: Debianda Kaynak

Counter Strikeı Ayarlama: Debianda Kaynak

Bu kılavuzda, Debian 7de Counter Strike: Source oyun sunucusu kuracağız. Bu komutlar Debian 7de test edildi, ancak aynı zamanda o

Debian Üzerinde Snort Nasıl Yapılandırılır

Debian Üzerinde Snort Nasıl Yapılandırılır

Snort, ücretsiz bir ağ saldırı tespit sistemidir (IDS). Daha az resmi terimle, ağınızı şüpheli etkinlikler için gerçek zamanlı olarak izlemenizi sağlar

Debian 9 Üzerinde Dolibarr Kurulumu

Debian 9 Üzerinde Dolibarr Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Dolibarr, işletmeler için açık kaynaklı bir kurumsal kaynak planlaması (ERP) ve müşteri ilişkileri yönetimi (CRM). Dolibarr

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

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.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

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: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği 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 ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

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!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

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.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

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